@strapi/admin 5.48.1 → 5.50.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 (657) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +33 -20
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +6 -1
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/ConfirmDialog.js +3 -2
  6. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  7. package/dist/admin/admin/src/components/Context.js +4 -3
  8. package/dist/admin/admin/src/components/Context.js.map +1 -1
  9. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -4
  10. package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
  11. package/dist/admin/admin/src/components/ErrorElement.js +97 -2
  12. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  13. package/dist/admin/admin/src/components/ErrorElement.mjs +99 -4
  14. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  15. package/dist/admin/admin/src/components/Filters.js +3 -2
  16. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  17. package/dist/admin/admin/src/components/Form.js +9 -5
  18. package/dist/admin/admin/src/components/Form.js.map +1 -1
  19. package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
  20. package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
  21. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
  22. package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/FormInputs/Date.js +3 -2
  24. package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
  25. package/dist/admin/admin/src/components/FormInputs/Json.js +3 -2
  26. package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
  27. package/dist/admin/admin/src/components/GapDropZone.js +3 -2
  28. package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
  29. package/dist/admin/admin/src/components/GuidedTour/Context.js +3 -2
  30. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +3 -2
  32. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/Tours.js +9 -3
  34. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  35. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +6 -1
  36. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/LanguageProvider.js +5 -1
  38. package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +3 -2
  40. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  41. package/dist/admin/admin/src/components/LazyOutlet.js +57 -0
  42. package/dist/admin/admin/src/components/LazyOutlet.js.map +1 -0
  43. package/dist/admin/admin/src/components/LazyOutlet.mjs +35 -0
  44. package/dist/admin/admin/src/components/LazyOutlet.mjs.map +1 -0
  45. package/dist/admin/admin/src/components/LeftMenu.js +3 -2
  46. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  47. package/dist/admin/admin/src/components/MainNav/NavUser.js +10 -0
  48. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  49. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +10 -0
  50. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  51. package/dist/admin/admin/src/components/NpsSurvey.js +4 -3
  52. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  53. package/dist/admin/admin/src/components/PageHelpers.js +3 -2
  54. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  55. package/dist/admin/admin/src/components/Pagination.js +3 -2
  56. package/dist/admin/admin/src/components/Pagination.js.map +1 -1
  57. package/dist/admin/admin/src/components/PluginsInitializer.js +3 -2
  58. package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
  59. package/dist/admin/admin/src/components/RelativeTime.js +6 -4
  60. package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
  61. package/dist/admin/admin/src/components/RelativeTime.mjs +3 -2
  62. package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
  63. package/dist/admin/admin/src/components/ResizeIndicator.js +3 -2
  64. package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
  65. package/dist/admin/admin/src/components/SearchInput.js +3 -2
  66. package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
  67. package/dist/admin/admin/src/components/Table.js +3 -2
  68. package/dist/admin/admin/src/components/Table.js.map +1 -1
  69. package/dist/admin/admin/src/components/Theme.js +3 -2
  70. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  71. package/dist/admin/admin/src/components/WidgetRoot.js +9 -5
  72. package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
  73. package/dist/admin/admin/src/core/apis/CustomFields.js +14 -10
  74. package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
  75. package/dist/admin/admin/src/core/apis/Widgets.js +8 -4
  76. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  77. package/dist/admin/admin/src/core/apis/router.js +39 -33
  78. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  79. package/dist/admin/admin/src/core/apis/router.mjs +19 -17
  80. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  81. package/dist/admin/admin/src/features/Auth.js +78 -6
  82. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  83. package/dist/admin/admin/src/features/Auth.mjs +77 -6
  84. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  85. package/dist/admin/admin/src/features/BackButton.js +3 -2
  86. package/dist/admin/admin/src/features/BackButton.js.map +1 -1
  87. package/dist/admin/admin/src/features/Configuration.js +3 -2
  88. package/dist/admin/admin/src/features/Configuration.js.map +1 -1
  89. package/dist/admin/admin/src/features/Notifications.js +3 -2
  90. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  91. package/dist/admin/admin/src/features/Tracking.js +7 -3
  92. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  93. package/dist/admin/admin/src/features/Widgets.js +3 -2
  94. package/dist/admin/admin/src/features/Widgets.js.map +1 -1
  95. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +3 -2
  96. package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
  97. package/dist/admin/admin/src/hooks/useAdminRoles.js +3 -2
  98. package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
  99. package/dist/admin/admin/src/hooks/useControllableState.js +3 -2
  100. package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
  101. package/dist/admin/admin/src/hooks/useDebounce.js +3 -2
  102. package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
  103. package/dist/admin/admin/src/hooks/useDeviceType.js +3 -2
  104. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
  105. package/dist/admin/admin/src/hooks/useElementOnScreen.js +3 -2
  106. package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
  107. package/dist/admin/admin/src/hooks/useEnterprise.js +3 -2
  108. package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
  109. package/dist/admin/admin/src/hooks/useFetchClient.js +3 -2
  110. package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
  111. package/dist/admin/admin/src/hooks/useForceUpdate.js +3 -2
  112. package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
  113. package/dist/admin/admin/src/hooks/useIdleSessionLogout.js +85 -15
  114. package/dist/admin/admin/src/hooks/useIdleSessionLogout.js.map +1 -1
  115. package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs +82 -14
  116. package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs.map +1 -1
  117. package/dist/admin/admin/src/hooks/useIsMounted.js +3 -2
  118. package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
  119. package/dist/admin/admin/src/hooks/useMediaQuery.js +3 -2
  120. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
  121. package/dist/admin/admin/src/hooks/useMenu.js +7 -3
  122. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  123. package/dist/admin/admin/src/hooks/useOnce.js +3 -2
  124. package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
  125. package/dist/admin/admin/src/hooks/useQueryParams.js +0 -1
  126. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  127. package/dist/admin/admin/src/hooks/useQueryParams.mjs +0 -1
  128. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  129. package/dist/admin/admin/src/hooks/useRBAC.js +7 -3
  130. package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
  131. package/dist/admin/admin/src/hooks/useSettingsMenu.js +7 -3
  132. package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
  133. package/dist/admin/admin/src/hooks/useThrottledCallback.js +5 -1
  134. package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
  135. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -7
  136. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  137. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +4 -2
  138. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  139. package/dist/admin/admin/src/pages/Auth/AuthPage.js +3 -2
  140. package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
  141. package/dist/admin/admin/src/pages/Auth/AuthPage.mjs +3 -2
  142. package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
  143. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js +3 -2
  144. package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
  145. package/dist/admin/admin/src/pages/Auth/components/Login.js +8 -4
  146. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  147. package/dist/admin/admin/src/pages/Auth/components/Oops.js +3 -2
  148. package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
  149. package/dist/admin/admin/src/pages/Auth/components/Register.js +9 -5
  150. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  151. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +4 -3
  152. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  153. package/dist/admin/admin/src/pages/Home/HomePage.js +3 -2
  154. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  155. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +8 -4
  156. package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
  157. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +7 -3
  158. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +7 -3
  160. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
  161. package/dist/admin/admin/src/pages/ProfilePage.js +8 -4
  162. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  163. package/dist/admin/admin/src/pages/SessionsPage.js +318 -0
  164. package/dist/admin/admin/src/pages/SessionsPage.js.map +1 -0
  165. package/dist/admin/admin/src/pages/SessionsPage.mjs +296 -0
  166. package/dist/admin/admin/src/pages/SessionsPage.mjs.map +1 -0
  167. package/dist/admin/admin/src/pages/Settings/Layout.js +4 -1
  168. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/Layout.mjs +5 -2
  170. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +3 -2
  172. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -2
  174. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +3 -2
  176. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js +3 -2
  178. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +3 -2
  180. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +3 -2
  182. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +4 -3
  184. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -1
  185. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +3 -2
  186. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  187. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +7 -2
  188. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  189. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +5 -1
  190. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  191. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js +6 -2
  192. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
  193. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +4 -3
  194. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  195. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +4 -2
  196. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  197. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -0
  198. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  199. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +7 -3
  200. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  201. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +3 -2
  202. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  203. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +11 -3
  204. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  205. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +7 -0
  206. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  207. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +11 -4
  208. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  209. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +7 -1
  210. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  211. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +3 -2
  212. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  213. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +44 -6
  214. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  215. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +34 -0
  216. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  217. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -2
  218. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  219. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +13 -7
  220. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  221. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +15 -9
  222. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  223. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +9 -5
  224. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  225. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +71 -27
  226. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  227. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +38 -2
  228. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  229. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +10 -6
  230. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  231. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +3 -2
  232. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  233. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js +9 -3
  234. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
  235. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js +26 -4
  236. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
  237. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs +18 -1
  238. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
  239. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js +6 -2
  240. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
  241. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js +59 -0
  242. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js.map +1 -0
  243. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs +52 -0
  244. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs.map +1 -0
  245. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js +8 -3
  246. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
  247. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +4 -3
  248. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  249. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +4 -3
  250. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  251. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -5
  252. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  253. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +4 -3
  254. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  255. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +3 -2
  256. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  257. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +4 -3
  258. package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
  259. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js +3 -2
  260. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
  261. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js +3 -2
  262. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
  263. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +3 -2
  264. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  265. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +3 -2
  266. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  267. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +4 -3
  268. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  269. package/dist/admin/admin/src/pages/UseCasePage.js +3 -2
  270. package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
  271. package/dist/admin/admin/src/router.js +9 -0
  272. package/dist/admin/admin/src/router.js.map +1 -1
  273. package/dist/admin/admin/src/router.mjs +9 -0
  274. package/dist/admin/admin/src/router.mjs.map +1 -1
  275. package/dist/admin/admin/src/services/auth.js +43 -2
  276. package/dist/admin/admin/src/services/auth.js.map +1 -1
  277. package/dist/admin/admin/src/services/auth.mjs +41 -3
  278. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  279. package/dist/admin/admin/src/translations/en.json.js +22 -0
  280. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  281. package/dist/admin/admin/src/translations/en.json.mjs +22 -0
  282. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  283. package/dist/admin/admin/src/translations/ja.json.js +748 -265
  284. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  285. package/dist/admin/admin/src/translations/ja.json.mjs +745 -266
  286. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  287. package/dist/admin/admin/src/translations/languageNativeNames.js +1 -0
  288. package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
  289. package/dist/admin/admin/src/translations/languageNativeNames.mjs +1 -0
  290. package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
  291. package/dist/admin/admin/src/utils/getFetchClient.js +7 -2
  292. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  293. package/dist/admin/admin/src/utils/locales.js +3 -2
  294. package/dist/admin/admin/src/utils/locales.js.map +1 -1
  295. package/dist/admin/admin/src/utils/objects.js +9 -4
  296. package/dist/admin/admin/src/utils/objects.js.map +1 -1
  297. package/dist/admin/admin/src/utils/retryDynamicImport.js +85 -0
  298. package/dist/admin/admin/src/utils/retryDynamicImport.js.map +1 -0
  299. package/dist/admin/admin/src/utils/retryDynamicImport.mjs +80 -0
  300. package/dist/admin/admin/src/utils/retryDynamicImport.mjs.map +1 -0
  301. package/dist/admin/admin/src/utils/rulesEngine.js +5 -1
  302. package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
  303. package/dist/admin/admin/src/utils/urls.js +5 -1
  304. package/dist/admin/admin/src/utils/urls.js.map +1 -1
  305. package/dist/admin/admin/tests/server.js +25 -0
  306. package/dist/admin/admin/tests/server.js.map +1 -1
  307. package/dist/admin/admin/tests/server.mjs +25 -0
  308. package/dist/admin/admin/tests/server.mjs.map +1 -1
  309. package/dist/admin/admin/tests/utils.js +3 -2
  310. package/dist/admin/admin/tests/utils.js.map +1 -1
  311. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +7 -3
  312. package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
  313. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +3 -2
  314. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  315. package/dist/admin/ee/admin/src/pages/AuthResponse.js +3 -2
  316. package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
  317. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +3 -2
  318. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  319. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +3 -2
  320. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  321. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js +5 -1
  322. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
  323. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +3 -2
  324. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  325. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +7 -3
  326. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  327. package/dist/admin/index.js +2 -0
  328. package/dist/admin/index.js.map +1 -1
  329. package/dist/admin/index.mjs +1 -0
  330. package/dist/admin/index.mjs.map +1 -1
  331. package/dist/admin/src/StrapiApp.d.ts +11 -5
  332. package/dist/admin/src/components/FormInputs/Boolean.d.ts +0 -1
  333. package/dist/admin/src/components/FormInputs/Checkbox.d.ts +0 -1
  334. package/dist/admin/src/components/FormInputs/DateTime.d.ts +0 -1
  335. package/dist/admin/src/components/FormInputs/Email.d.ts +0 -1
  336. package/dist/admin/src/components/FormInputs/Enumeration.d.ts +0 -1
  337. package/dist/admin/src/components/FormInputs/Number.d.ts +0 -1
  338. package/dist/admin/src/components/FormInputs/Password.d.ts +0 -1
  339. package/dist/admin/src/components/FormInputs/Renderer.d.ts +0 -1
  340. package/dist/admin/src/components/FormInputs/String.d.ts +0 -1
  341. package/dist/admin/src/components/FormInputs/Textarea.d.ts +0 -1
  342. package/dist/admin/src/components/FormInputs/Time.d.ts +0 -1
  343. package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +0 -1
  344. package/dist/admin/src/components/LazyOutlet.d.ts +20 -0
  345. package/dist/admin/src/components/MainNav/MainNav.d.ts +1 -1
  346. package/dist/admin/src/components/MainNav/NavUser.d.ts +0 -1
  347. package/dist/admin/src/components/SubNav.d.ts +5 -6
  348. package/dist/admin/src/core/apis/Plugin.d.ts +1 -1
  349. package/dist/admin/src/core/apis/Widgets.d.ts +0 -1
  350. package/dist/admin/src/core/apis/router.d.ts +2 -3
  351. package/dist/admin/src/core/store/configure.d.ts +2 -2
  352. package/dist/admin/src/core/utils/createHook.d.ts +4 -4
  353. package/dist/admin/src/features/AppInfo.d.ts +1 -2
  354. package/dist/admin/src/features/StrapiApp.d.ts +1 -2
  355. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -1
  356. package/dist/admin/src/hooks/useAdminRoles.d.ts +2 -2
  357. package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
  358. package/dist/admin/src/hooks/useIdleSessionLogout.d.ts +66 -12
  359. package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
  360. package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
  361. package/dist/admin/src/hooks/useThrottledCallback.d.ts +0 -1
  362. package/dist/admin/src/index.d.ts +1 -0
  363. package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
  364. package/dist/admin/src/pages/SessionsPage.d.ts +2 -0
  365. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +2 -3
  366. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
  367. package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +0 -1
  368. package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -0
  369. package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +1 -1
  370. package/dist/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.d.ts +5 -0
  371. package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +3 -1
  372. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +8 -8
  373. package/dist/admin/src/reducer.d.ts +1 -1
  374. package/dist/admin/src/services/admin.d.ts +2 -2
  375. package/dist/admin/src/services/api.d.ts +1 -1
  376. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  377. package/dist/admin/src/services/auth.d.ts +29 -27
  378. package/dist/admin/src/services/contentApi.d.ts +1 -1
  379. package/dist/admin/src/services/users.d.ts +7 -7
  380. package/dist/admin/src/services/webhooks.d.ts +2 -2
  381. package/dist/admin/src/translations/languageNativeNames.d.ts +1 -0
  382. package/dist/admin/src/utils/locales.d.ts +0 -1
  383. package/dist/admin/src/utils/retryDynamicImport.d.ts +19 -0
  384. package/dist/admin/src/utils/shims.d.ts +1 -1
  385. package/dist/admin/tests/store.d.ts +4 -4
  386. package/dist/admin/tests/utils.d.ts +5 -5
  387. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +1 -1
  388. package/dist/ee/admin/src/services/ai.d.ts +2 -2
  389. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +1 -1
  390. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
  391. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +3 -3
  392. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  393. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -2
  394. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
  395. package/dist/ee/server/src/bootstrap.d.ts.map +1 -1
  396. package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +30 -31
  397. package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
  398. package/dist/ee/server/src/controllers/index.d.ts +1 -2
  399. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  400. package/dist/ee/server/src/controllers/user.d.ts +1 -1
  401. package/dist/ee/server/src/destroy.d.ts.map +1 -1
  402. package/dist/ee/server/src/index.d.ts +2 -3
  403. package/dist/ee/server/src/index.d.ts.map +1 -1
  404. package/dist/ee/server/src/register.d.ts.map +1 -1
  405. package/dist/ee/server/src/routes/utils.d.ts.map +1 -1
  406. package/dist/ee/server/src/services/auth.d.ts.map +1 -1
  407. package/dist/ee/server/src/services/index.d.ts +1 -1
  408. package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
  409. package/dist/ee/server/src/services/passport/sso.d.ts.map +1 -1
  410. package/dist/ee/server/src/services/persist-tables.d.ts +1 -1
  411. package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
  412. package/dist/ee/server/src/services/role.d.ts.map +1 -1
  413. package/dist/ee/server/src/services/user.d.ts.map +1 -1
  414. package/dist/ee/server/src/utils/index.d.ts.map +1 -1
  415. package/dist/ee/server/src/utils/sso-lock.d.ts.map +1 -1
  416. package/dist/ee/server/src/validation/authentication.d.ts +2 -2
  417. package/dist/ee/server/src/validation/role.d.ts +6 -6
  418. package/dist/ee/server/src/validation/role.d.ts.map +1 -1
  419. package/dist/ee/server/src/validation/user.d.ts.map +1 -1
  420. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +5 -1
  421. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  422. package/dist/server/ee/server/src/controllers/authentication.js +5 -1
  423. package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
  424. package/dist/server/ee/server/src/controllers/user.js +6 -2
  425. package/dist/server/ee/server/src/controllers/user.js.map +1 -1
  426. package/dist/server/ee/server/src/services/auth.js +5 -1
  427. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  428. package/dist/server/ee/server/src/services/user.js +8 -4
  429. package/dist/server/ee/server/src/services/user.js.map +1 -1
  430. package/dist/server/index.js +6 -2
  431. package/dist/server/index.js.map +1 -1
  432. package/dist/server/server/src/ai/services/ai.js +10 -4
  433. package/dist/server/server/src/ai/services/ai.js.map +1 -1
  434. package/dist/server/server/src/content-types/session.js +6 -0
  435. package/dist/server/server/src/content-types/session.js.map +1 -1
  436. package/dist/server/server/src/content-types/session.mjs +6 -0
  437. package/dist/server/server/src/content-types/session.mjs.map +1 -1
  438. package/dist/server/server/src/controllers/admin.js +9 -4
  439. package/dist/server/server/src/controllers/admin.js.map +1 -1
  440. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  441. package/dist/server/server/src/controllers/authenticated-session.js +61 -0
  442. package/dist/server/server/src/controllers/authenticated-session.js.map +1 -0
  443. package/dist/server/server/src/controllers/authenticated-session.mjs +59 -0
  444. package/dist/server/server/src/controllers/authenticated-session.mjs.map +1 -0
  445. package/dist/server/server/src/controllers/authentication.js +18 -6
  446. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  447. package/dist/server/server/src/controllers/authentication.mjs +12 -5
  448. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  449. package/dist/server/server/src/controllers/index.js +2 -0
  450. package/dist/server/server/src/controllers/index.js.map +1 -1
  451. package/dist/server/server/src/controllers/index.mjs +2 -0
  452. package/dist/server/server/src/controllers/index.mjs.map +1 -1
  453. package/dist/server/server/src/controllers/role.js +2 -4
  454. package/dist/server/server/src/controllers/role.js.map +1 -1
  455. package/dist/server/server/src/controllers/role.mjs +2 -4
  456. package/dist/server/server/src/controllers/role.mjs.map +1 -1
  457. package/dist/server/server/src/controllers/user.js +3 -2
  458. package/dist/server/server/src/controllers/user.js.map +1 -1
  459. package/dist/server/server/src/controllers/webhooks.js +7 -2
  460. package/dist/server/server/src/controllers/webhooks.js.map +1 -1
  461. package/dist/server/server/src/middlewares/rateLimit.js +7 -2
  462. package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
  463. package/dist/server/server/src/policies/hasPermissions.js +7 -3
  464. package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
  465. package/dist/server/server/src/routes/serve-admin-panel.js +9 -4
  466. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  467. package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
  468. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  469. package/dist/server/server/src/routes/users.js +12 -26
  470. package/dist/server/server/src/routes/users.js.map +1 -1
  471. package/dist/server/server/src/routes/users.mjs +12 -26
  472. package/dist/server/server/src/routes/users.mjs.map +1 -1
  473. package/dist/server/server/src/services/api-token.js +7 -3
  474. package/dist/server/server/src/services/api-token.js.map +1 -1
  475. package/dist/server/server/src/services/auth.js +8 -3
  476. package/dist/server/server/src/services/auth.js.map +1 -1
  477. package/dist/server/server/src/services/content-type.js +6 -2
  478. package/dist/server/server/src/services/content-type.js.map +1 -1
  479. package/dist/server/server/src/services/encryption.js +8 -4
  480. package/dist/server/server/src/services/encryption.js.map +1 -1
  481. package/dist/server/server/src/services/passport.js +6 -2
  482. package/dist/server/server/src/services/passport.js.map +1 -1
  483. package/dist/server/server/src/services/permission/engine.js +5 -1
  484. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  485. package/dist/server/server/src/services/permission/permissions-manager/index.js +5 -1
  486. package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
  487. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js +14 -10
  488. package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
  489. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +0 -2
  490. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  491. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +0 -2
  492. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  493. package/dist/server/server/src/services/permission/queries.js +5 -1
  494. package/dist/server/server/src/services/permission/queries.js.map +1 -1
  495. package/dist/server/server/src/services/project-settings.js +6 -2
  496. package/dist/server/server/src/services/project-settings.js.map +1 -1
  497. package/dist/server/server/src/services/role.js +10 -5
  498. package/dist/server/server/src/services/role.js.map +1 -1
  499. package/dist/server/server/src/services/role.mjs +2 -1
  500. package/dist/server/server/src/services/role.mjs.map +1 -1
  501. package/dist/server/server/src/services/token.js +7 -2
  502. package/dist/server/server/src/services/token.js.map +1 -1
  503. package/dist/server/server/src/services/transfer/permission.js +5 -1
  504. package/dist/server/server/src/services/transfer/permission.js.map +1 -1
  505. package/dist/server/server/src/services/transfer/token.js +10 -5
  506. package/dist/server/server/src/services/transfer/token.js.map +1 -1
  507. package/dist/server/server/src/services/user.js +10 -6
  508. package/dist/server/server/src/services/user.js.map +1 -1
  509. package/dist/server/server/src/strategies/admin.js +4 -0
  510. package/dist/server/server/src/strategies/admin.js.map +1 -1
  511. package/dist/server/server/src/strategies/admin.mjs +4 -0
  512. package/dist/server/server/src/strategies/admin.mjs.map +1 -1
  513. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js +5 -1
  514. package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
  515. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js +6 -2
  516. package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
  517. package/dist/server/server/src/validation/common-validators.js +6 -2
  518. package/dist/server/server/src/validation/common-validators.js.map +1 -1
  519. package/dist/server/server/src/validation/policies/hasPermissions.js +6 -2
  520. package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
  521. package/dist/server/shared/utils/session-auth.js +5 -1
  522. package/dist/server/shared/utils/session-auth.js.map +1 -1
  523. package/dist/server/src/ai/controllers/ai.d.ts +3 -3
  524. package/dist/server/src/ai/services/ai.d.ts.map +1 -1
  525. package/dist/server/src/bootstrap.d.ts.map +1 -1
  526. package/dist/server/src/config/admin-conditions.d.ts +2 -2
  527. package/dist/server/src/config/admin-conditions.d.ts.map +1 -1
  528. package/dist/server/src/content-types/index.d.ts +6 -0
  529. package/dist/server/src/content-types/index.d.ts.map +1 -1
  530. package/dist/server/src/content-types/session.d.ts +6 -0
  531. package/dist/server/src/content-types/session.d.ts.map +1 -1
  532. package/dist/server/src/controllers/admin-token.d.ts +5 -5
  533. package/dist/server/src/controllers/api-token.d.ts +1 -1
  534. package/dist/server/src/controllers/authenticated-session.d.ts +8 -0
  535. package/dist/server/src/controllers/authenticated-session.d.ts.map +1 -0
  536. package/dist/server/src/controllers/authenticated-user.d.ts +1 -1
  537. package/dist/server/src/controllers/authentication.d.ts +4 -4
  538. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  539. package/dist/server/src/controllers/formatters/conditions.d.ts +0 -1
  540. package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
  541. package/dist/server/src/controllers/formatters/format-actions-by-sections.d.ts.map +1 -1
  542. package/dist/server/src/controllers/homepage.d.ts +2 -2
  543. package/dist/server/src/controllers/homepage.d.ts.map +1 -1
  544. package/dist/server/src/controllers/index.d.ts +33 -43
  545. package/dist/server/src/controllers/index.d.ts.map +1 -1
  546. package/dist/server/src/controllers/role.d.ts +4 -4
  547. package/dist/server/src/controllers/transfer/runner.d.ts +4 -4
  548. package/dist/server/src/controllers/transfer/runner.d.ts.map +1 -1
  549. package/dist/server/src/controllers/transfer/token.d.ts +1 -1
  550. package/dist/server/src/controllers/user.d.ts +2 -2
  551. package/dist/server/src/controllers/webhooks.d.ts +4 -4
  552. package/dist/server/src/domain/action/index.d.ts +4 -65
  553. package/dist/server/src/domain/action/index.d.ts.map +1 -1
  554. package/dist/server/src/domain/action/provider.d.ts +30 -3
  555. package/dist/server/src/domain/action/provider.d.ts.map +1 -1
  556. package/dist/server/src/domain/condition/index.d.ts.map +1 -1
  557. package/dist/server/src/domain/condition/provider.d.ts +19 -2
  558. package/dist/server/src/domain/condition/provider.d.ts.map +1 -1
  559. package/dist/server/src/domain/permission/index.d.ts +0 -1
  560. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  561. package/dist/server/src/domain/user.d.ts.map +1 -1
  562. package/dist/server/src/index.d.ts +51 -63
  563. package/dist/server/src/index.d.ts.map +1 -1
  564. package/dist/server/src/middlewares/data-transfer.d.ts.map +1 -1
  565. package/dist/server/src/middlewares/index.d.ts +0 -1
  566. package/dist/server/src/middlewares/index.d.ts.map +1 -1
  567. package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
  568. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  569. package/dist/server/src/policies/index.d.ts.map +1 -1
  570. package/dist/server/src/policies/isAuthenticatedAdmin.d.ts.map +1 -1
  571. package/dist/server/src/policies/isTelemetryEnabled.d.ts.map +1 -1
  572. package/dist/server/src/register.d.ts.map +1 -1
  573. package/dist/server/src/routes/index.d.ts +0 -1
  574. package/dist/server/src/routes/index.d.ts.map +1 -1
  575. package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
  576. package/dist/server/src/routes/transfer.d.ts +0 -1
  577. package/dist/server/src/routes/transfer.d.ts.map +1 -1
  578. package/dist/server/src/routes/users.d.ts.map +1 -1
  579. package/dist/server/src/services/action.d.ts.map +1 -1
  580. package/dist/server/src/services/api-token.d.ts +5 -6
  581. package/dist/server/src/services/api-token.d.ts.map +1 -1
  582. package/dist/server/src/services/auth.d.ts.map +1 -1
  583. package/dist/server/src/services/condition.d.ts.map +1 -1
  584. package/dist/server/src/services/content-type.d.ts.map +1 -1
  585. package/dist/server/src/services/encryption.d.ts.map +1 -1
  586. package/dist/server/src/services/homepage.d.ts.map +1 -1
  587. package/dist/server/src/services/index.d.ts +12 -21
  588. package/dist/server/src/services/index.d.ts.map +1 -1
  589. package/dist/server/src/services/metrics.d.ts.map +1 -1
  590. package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
  591. package/dist/server/src/services/passport.d.ts +0 -1
  592. package/dist/server/src/services/passport.d.ts.map +1 -1
  593. package/dist/server/src/services/permission/engine.d.ts +1 -2
  594. package/dist/server/src/services/permission/engine.d.ts.map +1 -1
  595. package/dist/server/src/services/permission/permissions-manager/index.d.ts +5 -5
  596. package/dist/server/src/services/permission/permissions-manager/index.d.ts.map +1 -1
  597. package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -1
  598. package/dist/server/src/services/permission/permissions-manager/query-builders.d.ts.map +1 -1
  599. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts +3 -3
  600. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
  601. package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
  602. package/dist/server/src/services/permission/queries.d.ts.map +1 -1
  603. package/dist/server/src/services/permission/sections-builder/builder.d.ts +4 -4
  604. package/dist/server/src/services/permission/sections-builder/builder.d.ts.map +1 -1
  605. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  606. package/dist/server/src/services/permission/sections-builder/index.d.ts +4 -4
  607. package/dist/server/src/services/permission/sections-builder/section.d.ts.map +1 -1
  608. package/dist/server/src/services/permission/sections-builder/utils.d.ts +0 -1
  609. package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
  610. package/dist/server/src/services/permission.d.ts +13 -38
  611. package/dist/server/src/services/permission.d.ts.map +1 -1
  612. package/dist/server/src/services/project-settings.d.ts +2 -4
  613. package/dist/server/src/services/project-settings.d.ts.map +1 -1
  614. package/dist/server/src/services/role.d.ts +7 -1
  615. package/dist/server/src/services/role.d.ts.map +1 -1
  616. package/dist/server/src/services/token.d.ts +1 -1
  617. package/dist/server/src/services/token.d.ts.map +1 -1
  618. package/dist/server/src/services/transfer/token.d.ts +11 -11
  619. package/dist/server/src/services/transfer/token.d.ts.map +1 -1
  620. package/dist/server/src/services/user.d.ts +3 -3
  621. package/dist/server/src/services/user.d.ts.map +1 -1
  622. package/dist/server/src/strategies/admin-token.d.ts +4 -4
  623. package/dist/server/src/strategies/admin-token.d.ts.map +1 -1
  624. package/dist/server/src/strategies/admin.d.ts.map +1 -1
  625. package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -1
  626. package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
  627. package/dist/server/src/strategies/data-transfer.d.ts.map +1 -1
  628. package/dist/server/src/utils/normalize-email.d.ts.map +1 -1
  629. package/dist/server/src/validation/action-provider.d.ts +2 -2
  630. package/dist/server/src/validation/action-provider.d.ts.map +1 -1
  631. package/dist/server/src/validation/admin-tokens.d.ts +2 -2
  632. package/dist/server/src/validation/api-tokens.d.ts +4 -4
  633. package/dist/server/src/validation/authentication/forgot-password.d.ts +1 -1
  634. package/dist/server/src/validation/authentication/login.d.ts +1 -1
  635. package/dist/server/src/validation/authentication/register.d.ts +6 -6
  636. package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
  637. package/dist/server/src/validation/authentication/reset-password.d.ts +1 -1
  638. package/dist/server/src/validation/common-functions/check-fields-are-correctly-nested.d.ts.map +1 -1
  639. package/dist/server/src/validation/common-functions/check-fields-dont-have-duplicates.d.ts.map +1 -1
  640. package/dist/server/src/validation/common-validators.d.ts.map +1 -1
  641. package/dist/server/src/validation/permission.d.ts +6 -6
  642. package/dist/server/src/validation/permission.d.ts.map +1 -1
  643. package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -2
  644. package/dist/server/src/validation/project-settings.d.ts +6 -6
  645. package/dist/server/src/validation/role.d.ts +8 -8
  646. package/dist/server/src/validation/role.d.ts.map +1 -1
  647. package/dist/server/src/validation/transfer/token.d.ts +4 -4
  648. package/dist/server/src/validation/user.d.ts +8 -8
  649. package/dist/shared/contracts/permissions.d.ts +1 -0
  650. package/dist/shared/contracts/permissions.d.ts.map +1 -1
  651. package/dist/shared/contracts/sessions.d.ts +62 -0
  652. package/dist/shared/contracts/sessions.d.ts.map +1 -0
  653. package/dist/shared/contracts/shared.d.ts +1 -1
  654. package/dist/shared/contracts/shared.d.ts.map +1 -1
  655. package/dist/shared/utils/session-auth.d.ts +1 -1
  656. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  657. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Main } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { DragLayer, isWidgetDragItem } from '../../components/DragLayer';\nimport { GapDropZoneManager } from '../../components/GapDropZone';\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { WidgetResizeHandle } from '../../components/ResizeIndicator';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { WidgetRoot } from '../../components/WidgetRoot';\nimport { useEnterprise } from '../../ee';\nimport { useAppInfo } from '../../features/AppInfo';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useWidgets } from '../../features/Widgets';\nimport {\n useGetCountDocumentsQuery,\n useGetHomepageLayoutQuery,\n useGetKeyStatisticsQuery,\n} from '../../services/homepage';\nimport {\n getWidgetElement,\n WIDGET_DATA_ATTRIBUTES,\n applyHomepageLayout,\n createDefaultWidgetWidths,\n isLastWidgetInRow,\n canResizeBetweenWidgets,\n getWidgetWidth,\n} from '../../utils/widgetLayout';\nimport { hideDeployNowWidgetInProduction } from '../../utils/widgetVisibility';\n\nimport { AddWidgetModal } from './components/AddWidgetModal';\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetWithUID } from '../../core/apis/Widgets';\n\ntype WidgetPermissionStatus = 'allowed' | 'denied' | 'loading';\n\nconst getWidgetPermissionsCacheKey = (permissions: NonNullable<WidgetWithUID['permissions']>) => {\n return permissions\n .map((permission) =>\n JSON.stringify({\n action: permission.action,\n subject: permission.subject,\n conditions: permission.conditions ?? [],\n properties: permission.properties ?? {},\n })\n )\n .sort()\n .join('|');\n};\n\n// Styled wrapper for the drag preview\nconst DragPreviewWrapper = styled.div<{ $maxWidth: string }>`\n max-width: ${(props) => props.$maxWidth};\n overflow: hidden;\n opacity: 0.9;\n border: 2px solid ${({ theme }) => theme.colors.primary500};\n border-radius: ${({ theme }) => theme.borderRadius};\n pointer-events: none;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nexport const WidgetComponent = ({\n component,\n columnWidth,\n}: {\n component: () => Promise<React.ComponentType>;\n columnWidth: number;\n}) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType<{\n columnWidth?: number;\n }> | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component {...({ columnWidth } as Record<string, unknown>)} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const currentEnvironment = useAppInfo('HomePageCE', (state) => state.currentEnvironment);\n const allWidgets = React.useMemo(\n () => hideDeployNowWidgetInProduction(getAllWidgets(), currentEnvironment),\n [getAllWidgets, currentEnvironment]\n );\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n const { data: homepageLayout, isLoading: _isLoadingLayout } = useGetHomepageLayoutQuery();\n // Prefetch expensive widget data as soon as the homepage route is active.\n useGetCountDocumentsQuery();\n useGetKeyStatisticsQuery();\n const [filteredWidgets, setFilteredWidgets] = React.useState<WidgetWithUID[]>([]);\n const [widgetPermissionStatus, setWidgetPermissionStatus] = React.useState<\n Record<string, WidgetPermissionStatus>\n >(() =>\n allWidgets.reduce<Record<string, WidgetPermissionStatus>>((acc, widget) => {\n acc[widget.uid] =\n !widget.permissions || widget.permissions.length === 0 ? 'allowed' : 'loading';\n return acc;\n }, {})\n );\n const [isAddWidgetModalOpen, setIsAddWidgetModalOpen] = React.useState(false);\n\n // Use custom hook for widget management\n const {\n findWidget,\n deleteWidget,\n addWidget,\n moveWidget,\n columnWidths,\n setColumnWidths,\n handleWidgetResize,\n saveLayout,\n isDraggingWidget,\n draggedWidgetId,\n handleDragStart,\n handleDragEnd,\n } = useWidgets({\n filteredWidgets,\n setFilteredWidgets,\n });\n\n React.useEffect(() => {\n const initialPermissionStatus = allWidgets.reduce<Record<string, WidgetPermissionStatus>>(\n (acc, widget) => {\n acc[widget.uid] =\n !widget.permissions || widget.permissions.length === 0 ? 'allowed' : 'loading';\n return acc;\n },\n {}\n );\n\n setWidgetPermissionStatus(initialPermissionStatus);\n\n const widgetsWithPermissions = allWidgets.filter(\n (widget) => widget.permissions && widget.permissions.length > 0\n );\n\n if (widgetsWithPermissions.length === 0) {\n return;\n }\n\n const groupedPermissions = widgetsWithPermissions.reduce<\n Map<string, { permissions: NonNullable<WidgetWithUID['permissions']>; uids: string[] }>\n >((acc, widget) => {\n const permissions = widget.permissions ?? [];\n const key = getWidgetPermissionsCacheKey(permissions);\n const existingGroup = acc.get(key);\n\n if (existingGroup) {\n existingGroup.uids.push(widget.uid);\n } else {\n acc.set(key, { permissions, uids: [widget.uid] });\n }\n\n return acc;\n }, new Map());\n\n let isMounted = true;\n\n const checkWidgetsPermissions = async () => {\n try {\n const permissionResults = await Promise.all(\n Array.from(groupedPermissions.values()).map(async ({ permissions, uids }) => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const status: WidgetPermissionStatus =\n matchingPermissions.length >= permissions.length ? 'allowed' : 'denied';\n\n return { uids, status };\n })\n );\n\n if (!isMounted) return;\n\n setWidgetPermissionStatus((prev) => {\n const next = { ...prev };\n\n permissionResults.forEach(({ uids, status }) => {\n uids.forEach((uid) => {\n next[uid] = status;\n });\n });\n\n return next;\n });\n } catch {\n if (!isMounted) return;\n\n // Keep the UI responsive even when permission checks fail.\n setWidgetPermissionStatus((prev) => {\n const next = { ...prev };\n widgetsWithPermissions.forEach((widget) => {\n next[widget.uid] = 'denied';\n });\n return next;\n });\n }\n };\n\n checkWidgetsPermissions();\n\n return () => {\n isMounted = false;\n };\n }, [allWidgets, checkUserHasPermissions]);\n\n const allAvailableWidgets = React.useMemo(() => {\n return allWidgets.filter((widget) => widgetPermissionStatus[widget.uid] === 'allowed');\n }, [allWidgets, widgetPermissionStatus]);\n\n const renderableWidgets = React.useMemo(() => {\n return allWidgets.filter((widget) => widgetPermissionStatus[widget.uid] !== 'denied');\n }, [allWidgets, widgetPermissionStatus]);\n\n React.useEffect(() => {\n // If user has customized the homepage layout, apply it\n if (homepageLayout && homepageLayout.widgets) {\n const { filteredWidgets, widths: homepageWidths } = applyHomepageLayout(\n renderableWidgets,\n homepageLayout\n );\n\n setFilteredWidgets(filteredWidgets);\n setColumnWidths(homepageWidths);\n } else {\n // Set default layout when no custom layout exists\n setFilteredWidgets(renderableWidgets);\n setColumnWidths(createDefaultWidgetWidths(renderableWidgets));\n }\n }, [homepageLayout, renderableWidgets, setColumnWidths]);\n\n const widgetLayout = React.useMemo(() => {\n return filteredWidgets.map((widget, index) => {\n const rightWidgetId = filteredWidgets[index + 1]?.uid;\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n const rightWidgetWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n return {\n widget,\n index,\n isLastInRow: isLastWidgetInRow(index, filteredWidgets, columnWidths),\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize:\n rightWidgetId &&\n canResizeBetweenWidgets(widget.uid, rightWidgetId, columnWidths, filteredWidgets),\n };\n });\n }, [filteredWidgets, columnWidths]);\n\n return (\n <Layouts.Root>\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n primaryAction={\n <Button\n variant=\"tertiary\"\n size=\"S\"\n startIcon={<Plus />}\n onClick={() => setIsAddWidgetModalOpen(true)}\n fullWidth\n >\n {formatMessage({\n id: 'HomePage.addWidget.button',\n defaultMessage: 'Add Widget',\n })}\n </Button>\n }\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <AddWidgetModal\n isOpen={isAddWidgetModalOpen}\n onClose={() => setIsAddWidgetModalOpen(false)}\n onAddWidget={addWidget}\n currentWidgets={filteredWidgets}\n availableWidgets={allAvailableWidgets}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n <Box position=\"relative\" {...{ [WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER]: true }}>\n <Grid.Root gap={5}>\n {widgetLayout.map(\n ({\n widget,\n isLastInRow,\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize,\n }) => (\n <React.Fragment key={widget.uid}>\n <Grid.Item col={widgetWidth} xs={12}>\n <WidgetRoot\n uid={widget.uid}\n title={widget.title}\n icon={widget.icon}\n link={widget.link}\n findWidget={findWidget}\n deleteWidget={deleteWidget}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n component={widget.component}\n >\n {widgetPermissionStatus[widget.uid] === 'loading' ? (\n <Widget.Loading />\n ) : (\n <WidgetComponent\n component={widget.component}\n columnWidth={widgetWidth}\n />\n )}\n </WidgetRoot>\n </Grid.Item>\n\n {!isLastInRow && canResize && rightWidgetId && (\n <WidgetResizeHandle\n key={`resize-${widget.uid}`}\n leftWidgetId={widget.uid}\n rightWidgetId={rightWidgetId}\n leftWidgetWidth={widgetWidth}\n rightWidgetWidth={rightWidgetWidth}\n onResize={handleWidgetResize}\n saveLayout={saveLayout}\n filteredWidgets={filteredWidgets}\n />\n )}\n </React.Fragment>\n )\n )}\n </Grid.Root>\n\n {isDraggingWidget && (\n <GapDropZoneManager\n filteredWidgets={filteredWidgets}\n columnWidths={columnWidths}\n draggedWidgetId={draggedWidgetId}\n moveWidget={moveWidget}\n />\n )}\n </Box>\n </Flex>\n </Layouts.Content>\n\n {/* Add the DragLayer to handle custom drag previews */}\n <DragLayer\n renderItem={({ type: _type, item }) => {\n if (!isWidgetDragItem(item)) {\n return null;\n }\n\n const widgetElement = getWidgetElement(item.id);\n const maxWidth = `${widgetElement?.clientWidth}px`;\n\n return (\n <DragPreviewWrapper $maxWidth={maxWidth}>\n <WidgetRoot\n uid={item.id as WidgetWithUID['uid']}\n title={item.title || { id: `${item.id}`, defaultMessage: item.id }}\n icon={item.icon}\n link={item.link}\n >\n <WidgetComponent component={item.component} columnWidth={4} />\n </WidgetRoot>\n </DragPreviewWrapper>\n );\n }}\n />\n </Main>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["getWidgetPermissionsCacheKey","permissions","map","permission","JSON","stringify","action","subject","conditions","properties","sort","join","DragPreviewWrapper","styled","div","props","$maxWidth","theme","colors","primary500","borderRadius","WidgetComponent","component","columnWidth","loadedComponent","setLoadedComponent","React","useState","useEffect","loadComponent","resolvedComponent","Component","_jsx","Widget","Loading","HomePageCE","formatMessage","useIntl","user","useAuth","state","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","currentEnvironment","useAppInfo","allWidgets","useMemo","hideDeployNowWidgetInProduction","checkUserHasPermissions","data","homepageLayout","isLoading","_isLoadingLayout","useGetHomepageLayoutQuery","useGetCountDocumentsQuery","useGetKeyStatisticsQuery","filteredWidgets","setFilteredWidgets","widgetPermissionStatus","setWidgetPermissionStatus","reduce","acc","widget","uid","length","isAddWidgetModalOpen","setIsAddWidgetModalOpen","findWidget","deleteWidget","addWidget","moveWidget","columnWidths","setColumnWidths","handleWidgetResize","saveLayout","isDraggingWidget","draggedWidgetId","handleDragStart","handleDragEnd","useWidgets","initialPermissionStatus","widgetsWithPermissions","filter","groupedPermissions","key","existingGroup","get","uids","push","set","Map","isMounted","checkWidgetsPermissions","permissionResults","Promise","all","Array","from","values","matchingPermissions","status","prev","next","forEach","allAvailableWidgets","renderableWidgets","widths","homepageWidths","applyHomepageLayout","createDefaultWidgetWidths","widgetLayout","index","rightWidgetId","widgetWidth","getWidgetWidth","rightWidgetWidth","isLastInRow","isLastWidgetInRow","canResize","canResizeBetweenWidgets","Layouts","Root","_jsxs","Main","Page","Title","id","defaultMessage","Header","title","name","subtitle","primaryAction","Button","variant","size","startIcon","Plus","onClick","fullWidth","FreeTrialWelcomeModal","FreeTrialEndedModal","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","Content","Flex","direction","alignItems","gap","paddingBottom","GuidedTourHomepageOverview","Box","position","WIDGET_DATA_ATTRIBUTES","GRID_CONTAINER","Grid","Fragment","Item","col","xs","WidgetRoot","icon","link","onDragStart","onDragEnd","WidgetResizeHandle","leftWidgetId","leftWidgetWidth","onResize","GapDropZoneManager","DragLayer","renderItem","type","_type","item","isWidgetDragItem","widgetElement","getWidgetElement","maxWidth","clientWidth","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
1
+ {"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Main } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { DragLayer, isWidgetDragItem } from '../../components/DragLayer';\nimport { GapDropZoneManager } from '../../components/GapDropZone';\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { WidgetResizeHandle } from '../../components/ResizeIndicator';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { WidgetRoot } from '../../components/WidgetRoot';\nimport { useEnterprise } from '../../ee';\nimport { useAppInfo } from '../../features/AppInfo';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useWidgets } from '../../features/Widgets';\nimport {\n useGetCountDocumentsQuery,\n useGetHomepageLayoutQuery,\n useGetKeyStatisticsQuery,\n} from '../../services/homepage';\nimport {\n getWidgetElement,\n WIDGET_DATA_ATTRIBUTES,\n applyHomepageLayout,\n createDefaultWidgetWidths,\n isLastWidgetInRow,\n canResizeBetweenWidgets,\n getWidgetWidth,\n} from '../../utils/widgetLayout';\nimport { hideDeployNowWidgetInProduction } from '../../utils/widgetVisibility';\n\nimport { AddWidgetModal } from './components/AddWidgetModal';\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetWithUID } from '../../core/apis/Widgets';\n\ntype WidgetPermissionStatus = 'allowed' | 'denied' | 'loading';\n\nconst getWidgetPermissionsCacheKey = (permissions: NonNullable<WidgetWithUID['permissions']>) => {\n return permissions\n .map((permission) =>\n JSON.stringify({\n action: permission.action,\n subject: permission.subject,\n conditions: permission.conditions ?? [],\n properties: permission.properties ?? {},\n })\n )\n .sort()\n .join('|');\n};\n\n// Styled wrapper for the drag preview\nconst DragPreviewWrapper = styled.div<{ $maxWidth: string }>`\n max-width: ${(props) => props.$maxWidth};\n overflow: hidden;\n opacity: 0.9;\n border: 2px solid ${({ theme }) => theme.colors.primary500};\n border-radius: ${({ theme }) => theme.borderRadius};\n pointer-events: none;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nexport const WidgetComponent = ({\n component,\n columnWidth,\n}: {\n component: () => Promise<React.ComponentType>;\n columnWidth: number;\n}) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType<{\n columnWidth?: number;\n }> | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component {...({ columnWidth } as Record<string, unknown>)} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const currentEnvironment = useAppInfo('HomePageCE', (state) => state.currentEnvironment);\n const allWidgets = React.useMemo(\n () => hideDeployNowWidgetInProduction(getAllWidgets(), currentEnvironment),\n [getAllWidgets, currentEnvironment]\n );\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n const { data: homepageLayout, isLoading: _isLoadingLayout } = useGetHomepageLayoutQuery();\n // Prefetch expensive widget data as soon as the homepage route is active.\n useGetCountDocumentsQuery();\n useGetKeyStatisticsQuery();\n const [filteredWidgets, setFilteredWidgets] = React.useState<WidgetWithUID[]>([]);\n const [widgetPermissionStatus, setWidgetPermissionStatus] = React.useState<\n Record<string, WidgetPermissionStatus>\n >(() =>\n allWidgets.reduce<Record<string, WidgetPermissionStatus>>((acc, widget) => {\n acc[widget.uid] =\n !widget.permissions || widget.permissions.length === 0 ? 'allowed' : 'loading';\n return acc;\n }, {})\n );\n const [isAddWidgetModalOpen, setIsAddWidgetModalOpen] = React.useState(false);\n\n // Use custom hook for widget management\n const {\n findWidget,\n deleteWidget,\n addWidget,\n moveWidget,\n columnWidths,\n setColumnWidths,\n handleWidgetResize,\n saveLayout,\n isDraggingWidget,\n draggedWidgetId,\n handleDragStart,\n handleDragEnd,\n } = useWidgets({\n filteredWidgets,\n setFilteredWidgets,\n });\n\n React.useEffect(() => {\n const initialPermissionStatus = allWidgets.reduce<Record<string, WidgetPermissionStatus>>(\n (acc, widget) => {\n acc[widget.uid] =\n !widget.permissions || widget.permissions.length === 0 ? 'allowed' : 'loading';\n return acc;\n },\n {}\n );\n\n setWidgetPermissionStatus(initialPermissionStatus);\n\n const widgetsWithPermissions = allWidgets.filter(\n (widget) => widget.permissions && widget.permissions.length > 0\n );\n\n if (widgetsWithPermissions.length === 0) {\n return;\n }\n\n const groupedPermissions = widgetsWithPermissions.reduce<\n Map<string, { permissions: NonNullable<WidgetWithUID['permissions']>; uids: string[] }>\n >((acc, widget) => {\n const permissions = widget.permissions ?? [];\n const key = getWidgetPermissionsCacheKey(permissions);\n const existingGroup = acc.get(key);\n\n if (existingGroup) {\n existingGroup.uids.push(widget.uid);\n } else {\n acc.set(key, { permissions, uids: [widget.uid] });\n }\n\n return acc;\n }, new Map());\n\n let isMounted = true;\n\n const checkWidgetsPermissions = async () => {\n try {\n const permissionResults = await Promise.all(\n Array.from(groupedPermissions.values()).map(async ({ permissions, uids }) => {\n const matchingPermissions = await checkUserHasPermissions(permissions);\n const status: WidgetPermissionStatus =\n matchingPermissions.length >= permissions.length ? 'allowed' : 'denied';\n\n return { uids, status };\n })\n );\n\n if (!isMounted) return;\n\n setWidgetPermissionStatus((prev) => {\n const next = { ...prev };\n\n permissionResults.forEach(({ uids, status }) => {\n uids.forEach((uid) => {\n next[uid] = status;\n });\n });\n\n return next;\n });\n } catch {\n if (!isMounted) return;\n\n // Keep the UI responsive even when permission checks fail.\n setWidgetPermissionStatus((prev) => {\n const next = { ...prev };\n widgetsWithPermissions.forEach((widget) => {\n next[widget.uid] = 'denied';\n });\n return next;\n });\n }\n };\n\n checkWidgetsPermissions();\n\n return () => {\n isMounted = false;\n };\n }, [allWidgets, checkUserHasPermissions]);\n\n const allAvailableWidgets = React.useMemo(() => {\n return allWidgets.filter((widget) => widgetPermissionStatus[widget.uid] === 'allowed');\n }, [allWidgets, widgetPermissionStatus]);\n\n const renderableWidgets = React.useMemo(() => {\n return allWidgets.filter((widget) => widgetPermissionStatus[widget.uid] !== 'denied');\n }, [allWidgets, widgetPermissionStatus]);\n\n React.useEffect(() => {\n // If user has customized the homepage layout, apply it\n if (homepageLayout && homepageLayout.widgets) {\n const { filteredWidgets, widths: homepageWidths } = applyHomepageLayout(\n renderableWidgets,\n homepageLayout\n );\n\n setFilteredWidgets(filteredWidgets);\n setColumnWidths(homepageWidths);\n } else {\n // Set default layout when no custom layout exists\n setFilteredWidgets(renderableWidgets);\n setColumnWidths(createDefaultWidgetWidths(renderableWidgets));\n }\n }, [homepageLayout, renderableWidgets, setColumnWidths]);\n\n const widgetLayout = React.useMemo(() => {\n return filteredWidgets.map((widget, index) => {\n const rightWidgetId = filteredWidgets[index + 1]?.uid;\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n const rightWidgetWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n return {\n widget,\n index,\n isLastInRow: isLastWidgetInRow(index, filteredWidgets, columnWidths),\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize:\n rightWidgetId &&\n canResizeBetweenWidgets(widget.uid, rightWidgetId, columnWidths, filteredWidgets),\n };\n });\n }, [filteredWidgets, columnWidths]);\n\n return (\n <Layouts.Root>\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n primaryAction={\n <Button\n variant=\"tertiary\"\n size=\"S\"\n startIcon={<Plus />}\n onClick={() => setIsAddWidgetModalOpen(true)}\n fullWidth\n >\n {formatMessage({\n id: 'HomePage.addWidget.button',\n defaultMessage: 'Add Widget',\n })}\n </Button>\n }\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <AddWidgetModal\n isOpen={isAddWidgetModalOpen}\n onClose={() => setIsAddWidgetModalOpen(false)}\n onAddWidget={addWidget}\n currentWidgets={filteredWidgets}\n availableWidgets={allAvailableWidgets}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n <Box position=\"relative\" {...{ [WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER]: true }}>\n <Grid.Root gap={5}>\n {widgetLayout.map(\n ({\n widget,\n isLastInRow,\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize,\n }) => (\n <React.Fragment key={widget.uid}>\n <Grid.Item col={widgetWidth} xs={12}>\n <WidgetRoot\n uid={widget.uid}\n title={widget.title}\n icon={widget.icon}\n link={widget.link}\n findWidget={findWidget}\n deleteWidget={deleteWidget}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n component={widget.component}\n >\n {widgetPermissionStatus[widget.uid] === 'loading' ? (\n <Widget.Loading />\n ) : (\n <WidgetComponent\n component={widget.component}\n columnWidth={widgetWidth}\n />\n )}\n </WidgetRoot>\n </Grid.Item>\n\n {!isLastInRow && canResize && rightWidgetId && (\n <WidgetResizeHandle\n key={`resize-${widget.uid}`}\n leftWidgetId={widget.uid}\n rightWidgetId={rightWidgetId}\n leftWidgetWidth={widgetWidth}\n rightWidgetWidth={rightWidgetWidth}\n onResize={handleWidgetResize}\n saveLayout={saveLayout}\n filteredWidgets={filteredWidgets}\n />\n )}\n </React.Fragment>\n )\n )}\n </Grid.Root>\n\n {isDraggingWidget && (\n <GapDropZoneManager\n filteredWidgets={filteredWidgets}\n columnWidths={columnWidths}\n draggedWidgetId={draggedWidgetId}\n moveWidget={moveWidget}\n />\n )}\n </Box>\n </Flex>\n </Layouts.Content>\n\n {/* Add the DragLayer to handle custom drag previews */}\n <DragLayer\n renderItem={({ type: _type, item }) => {\n if (!isWidgetDragItem(item)) {\n return null;\n }\n\n const widgetElement = getWidgetElement(item.id);\n const maxWidth = `${widgetElement?.clientWidth}px`;\n\n return (\n <DragPreviewWrapper $maxWidth={maxWidth}>\n <WidgetRoot\n uid={item.id as WidgetWithUID['uid']}\n title={item.title || { id: `${item.id}`, defaultMessage: item.id }}\n icon={item.icon}\n link={item.link}\n >\n <WidgetComponent component={item.component} columnWidth={4} />\n </WidgetRoot>\n </DragPreviewWrapper>\n );\n }}\n />\n </Main>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["getWidgetPermissionsCacheKey","permissions","map","permission","JSON","stringify","action","subject","conditions","properties","sort","join","DragPreviewWrapper","styled","div","props","$maxWidth","theme","colors","primary500","borderRadius","WidgetComponent","component","columnWidth","loadedComponent","setLoadedComponent","React","useState","useEffect","loadComponent","resolvedComponent","Component","_jsx","Widget","Loading","HomePageCE","formatMessage","useIntl","user","useAuth","state","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","currentEnvironment","useAppInfo","allWidgets","useMemo","hideDeployNowWidgetInProduction","checkUserHasPermissions","data","homepageLayout","isLoading","_isLoadingLayout","useGetHomepageLayoutQuery","useGetCountDocumentsQuery","useGetKeyStatisticsQuery","filteredWidgets","setFilteredWidgets","widgetPermissionStatus","setWidgetPermissionStatus","reduce","acc","widget","uid","length","isAddWidgetModalOpen","setIsAddWidgetModalOpen","findWidget","deleteWidget","addWidget","moveWidget","columnWidths","setColumnWidths","handleWidgetResize","saveLayout","isDraggingWidget","draggedWidgetId","handleDragStart","handleDragEnd","useWidgets","initialPermissionStatus","widgetsWithPermissions","filter","groupedPermissions","key","existingGroup","get","uids","push","set","Map","isMounted","checkWidgetsPermissions","permissionResults","Promise","all","Array","from","values","matchingPermissions","status","prev","next","forEach","allAvailableWidgets","renderableWidgets","widths","homepageWidths","applyHomepageLayout","createDefaultWidgetWidths","widgetLayout","index","rightWidgetId","widgetWidth","getWidgetWidth","rightWidgetWidth","isLastInRow","isLastWidgetInRow","canResize","canResizeBetweenWidgets","Layouts","Root","_jsxs","Main","Page","Title","id","defaultMessage","Header","title","name","subtitle","primaryAction","Button","variant","size","startIcon","Plus","onClick","fullWidth","FreeTrialWelcomeModal","FreeTrialEndedModal","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","Content","Flex","direction","alignItems","gap","paddingBottom","GuidedTourHomepageOverview","Box","position","WIDGET_DATA_ATTRIBUTES","GRID_CONTAINER","Grid","Fragment","Item","col","xs","WidgetRoot","icon","link","onDragStart","onDragEnd","WidgetResizeHandle","leftWidgetId","leftWidgetWidth","onResize","GapDropZoneManager","DragLayer","renderItem","type","_type","item","isWidgetDragItem","widgetElement","getWidgetElement","maxWidth","clientWidth","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
@@ -8,7 +8,10 @@ var reactIntl = require('react-intl');
8
8
  var styled = require('styled-components');
9
9
  var HomePage = require('../HomePage.js');
10
10
 
11
- function _interopNamespaceDefault(e) {
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
12
15
  var n = Object.create(null);
13
16
  if (e) {
14
17
  Object.keys(e).forEach(function (k) {
@@ -25,10 +28,11 @@ function _interopNamespaceDefault(e) {
25
28
  return Object.freeze(n);
26
29
  }
27
30
 
28
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
31
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
29
33
 
30
34
  // Hide scrollbars in widget previews
31
- const WidgetWrapper = styled(designSystem.Box)`
35
+ const WidgetWrapper = styled__default.default(designSystem.Box)`
32
36
  * {
33
37
  scrollbar-width: none;
34
38
  -ms-overflow-style: none;
@@ -39,7 +43,7 @@ const WidgetWrapper = styled(designSystem.Box)`
39
43
  }
40
44
  `;
41
45
  // Interactive widget preview container
42
- const WidgetPreviewContainer = styled(designSystem.Box)`
46
+ const WidgetPreviewContainer = styled__default.default(designSystem.Box)`
43
47
  &:hover {
44
48
  background-color: ${({ theme })=>theme.colors.primary100};
45
49
  border-color: ${({ theme })=>theme.colors.primary200};
@@ -1 +1 @@
1
- {"version":3,"file":"AddWidgetModal.js","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;AACA,MAAMA,aAAAA,GAAgBC,MAAAA,CAAOC,gBAAAA,CAAI;;;;;;;;;AASjC,CAAC;AAED;AACA,MAAMC,sBAAAA,GAAyBF,MAAAA,CAAOC,gBAAAA,CAAI;;sBAEpB,EAAE,CAAC,EAAEE,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;kBAC7C,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACE,UAAU,CAAC;;;;sBAIrC,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;kBAC7C,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACE,UAAU,CAAC;;;AAG3D,CAAC;AAmBD,MAAMC,gBAAgB,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAsB,GAAA;IAC7D,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,IAAAA,GAAOJ,MAAAA,CAAOK,IAAI,IAAIC,iBAAAA;AAE5B,IAAA,MAAMC,gBAAgB,CAACC,KAAAA,GAAAA;AACrB,QAAA,IAAIA,MAAMC,GAAG,KAAK,WAAWD,KAAAA,CAAMC,GAAG,KAAK,GAAA,EAAK;AAC9CD,YAAAA,KAAAA,CAAME,cAAc,EAAA;AACpBT,YAAAA,QAAAA,EAAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACEU,cAAA,CAACjB,sBAAAA,EAAAA;QACCkB,OAAAA,EAAS,CAAA;QACTC,UAAAA,EAAW,UAAA;QACXC,WAAAA,EAAY,YAAA;QACZC,SAAS,EAAA,IAAA;QACTC,MAAAA,EAAO,aAAA;QACPC,OAAAA,EAAShB,QAAAA;QACTiB,SAAAA,EAAWX,aAAAA;QACXY,KAAAA,EAAO,MAAA;QACPC,MAAAA,EAAO,SAAA;QACPC,QAAAA,EAAU,CAAA;QACVC,IAAAA,EAAK,QAAA;AACLC,QAAAA,YAAAA,EAAYrB,aAAAA,CACV;YACEsB,EAAAA,EAAI,iCAAA;YACJC,cAAAA,EAAgB;SAClB,EACA;YAAEC,UAAAA,EAAYxB,aAAAA,CAAcF,OAAO2B,KAAK;AAAE,SAAA,CAAA;AAG5C,QAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;YAAKC,SAAAA,EAAU,QAAA;YAASC,UAAAA,EAAW,QAAA;YAASC,GAAAA,EAAK,CAAA;;8BAChDJ,eAAA,CAACC,iBAAAA,EAAAA;oBAAKG,GAAAA,EAAK,CAAA;oBAAGC,WAAAA,EAAY,MAAA;;sCACxBtB,cAAA,CAACP,IAAAA,EAAAA;4BAAK8B,IAAAA,EAAK,YAAA;4BAAaC,aAAW,EAAA;;sCACnCxB,cAAA,CAACyB,uBAAAA,EAAAA;4BAAWC,SAAAA,EAAU,YAAA;4BAAaC,OAAAA,EAAQ,OAAA;4BAAQC,GAAAA,EAAI,IAAA;AACpDrC,4BAAAA,QAAAA,EAAAA,aAAAA,CAAcF,OAAO2B,KAAK;;;;8BAG/BhB,cAAA,CAACpB,aAAAA,EAAAA;oBACC4B,KAAAA,EAAO,MAAA;oBACPqB,KAAAA,EAAO;wBACLC,aAAAA,EAAe;AACjB,qBAAA;AAEA,oBAAA,QAAA,gBAAA9B,cAAA,CAAC+B,wBAAAA,EAAAA;AAAgBC,wBAAAA,SAAAA,EAAW3C,OAAO2C,SAAS;wBAAEC,WAAAA,EAAa;;;;;;AAKrE,CAAA;AAEO,MAAMC,cAAAA,GAAiB,CAAC,EAC7BC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,cAAc,EACdC,gBAAgB,EACI,GAAA;IACpB,MAAM,EAAEhD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMgD,iBAAAA,GAAoBC,gBAAAA,CAAMC,OAAO,CACrC,IAAM,IAAIC,GAAAA,CAAIL,cAAAA,CAAeM,GAAG,CAAC,CAACvD,MAAAA,GAAWA,MAAAA,CAAOwD,GAAG,CAAA,CAAA,EACvD;AAACP,QAAAA;AAAe,KAAA,CAAA;AAGlB,IAAA,MAAMQ,qBAAqB,CAACzD,MAAAA,GAAAA;AAC1B,QAAA,IAAI,CAACmD,iBAAAA,CAAkBO,GAAG,CAAC1D,MAAAA,CAAOwD,GAAG,CAAA,EAAG;YACtCR,WAAAA,CAAYhD,MAAAA,CAAAA;AACZ+C,YAAAA,OAAAA,EAAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,MAAMY,cAAAA,GAAiBT,gBAAAA,CAAiBU,MAAM,CAAC,CAAC5D,MAAAA,GAAW,CAACmD,iBAAAA,CAAkBO,GAAG,CAAC1D,MAAAA,CAAOwD,GAAG,CAAA,CAAA;IAE5F,qBACE7C,cAAA,CAACkD,mBAAMC,IAAI,EAAA;QAACC,IAAAA,EAAMjB,MAAAA;QAAQkB,YAAAA,EAAcjB,OAAAA;gCACtCnB,eAAA,CAACiC,mBAAMI,OAAO,EAAA;;AACZ,8BAAAtD,cAAA,CAACkD,mBAAMK,MAAM,EAAA;4CACXvD,cAAA,CAACkD,mBAAMM,KAAK,EAAA;kCACTjE,aAAAA,CAAc;4BACbsB,EAAAA,EAAI,0BAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;;AAGJ,8BAAAd,cAAA,CAACkD,mBAAMO,IAAI,EAAA;AACT,oBAAA,QAAA,gBAAAzD,cAAA,CAAClB,gBAAAA,EAAAA;kCACEkE,cAAAA,CAAeU,MAAM,KAAK,CAAA,iBACzBzC,eAAA,CAACC,iBAAAA,EAAAA;4BAAKC,SAAAA,EAAU,QAAA;4BAASC,UAAAA,EAAW,QAAA;4BAASC,GAAAA,EAAK,CAAA;;8CAChDrB,cAAA,CAACL,iBAAAA,EAAAA;oCAAYa,KAAAA,EAAM,MAAA;oCAAOmD,MAAAA,EAAO,MAAA;oCAAOpC,IAAAA,EAAK;;8CAC7CvB,cAAA,CAACyB,uBAAAA,EAAAA;oCAAWC,SAAAA,EAAU,YAAA;oCAAakC,SAAAA,EAAU,QAAA;8CAC1CrE,aAAAA,CAAc;wCACbsB,EAAAA,EAAI,uCAAA;wCACJC,cAAAA,EAAgB;AAClB,qCAAA;;;2CAIJd,cAAA,CAACkB,iBAAAA,EAAAA;4BAAKC,SAAAA,EAAU,QAAA;4BAASE,GAAAA,EAAK,CAAA;4BAAGwC,cAAAA,EAAe,QAAA;AAC7Cb,4BAAAA,QAAAA,EAAAA,cAAAA,CAAeJ,GAAG,CAAC,CAACvD,MAAAA,iBACnBW,cAAA,CAACZ,aAAAA,EAAAA;oCAECC,MAAAA,EAAQA,MAAAA;AACRC,oCAAAA,QAAAA,EAAU,IAAMwD,kBAAAA,CAAmBzD,MAAAA;AAF9BA,iCAAAA,EAAAA,MAAAA,CAAOwD,GAAG,CAAA;;;;AAS3B,8BAAA7C,cAAA,CAACkD,mBAAMY,MAAM,EAAA;AACX,oBAAA,QAAA,gBAAA9D,cAAA,CAAC+D,mBAAAA,EAAAA;wBAAOzD,OAAAA,EAAS8B,OAAAA;wBAAST,OAAAA,EAAQ,UAAA;kCAC/BpC,aAAAA,CAAc;4BAAEsB,EAAAA,EAAI,8BAAA;4BAAgCC,cAAAA,EAAgB;AAAS,yBAAA;;;;;;AAM1F;;;;"}
1
+ {"version":3,"file":"AddWidgetModal.js","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
@@ -10,10 +10,14 @@ var styled = require('styled-components');
10
10
  var useLicenseLimits = require('../../../../../ee/admin/src/hooks/useLicenseLimits.js');
11
11
  var usePersistentState = require('../../../hooks/usePersistentState.js');
12
12
 
13
- const StyledModalContent = styled(designSystem.Modal.Content)`
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
16
+
17
+ const StyledModalContent = styled__default.default(designSystem.Modal.Content)`
14
18
  max-width: 51.6rem;
15
19
  `;
16
- const StyledModalBody = styled(designSystem.Modal.Body)`
20
+ const StyledModalBody = styled__default.default(designSystem.Modal.Body)`
17
21
  padding: 0;
18
22
  position: relative;
19
23
 
@@ -21,7 +25,7 @@ const StyledModalBody = styled(designSystem.Modal.Body)`
21
25
  padding: 0;
22
26
  }
23
27
  `;
24
- const StyledButton = styled(designSystem.Button)`
28
+ const StyledButton = styled__default.default(designSystem.Button)`
25
29
  border: 0;
26
30
  border-radius: 50%;
27
31
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"FreeTrialEndedModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialEndedModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, LinkButton, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { isAfter, subDays } from 'date-fns';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n`;\n\nexport const FreeTrialEndedModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = useScopedPersistentState<string | undefined>(\n 'STRAPI_FREE_TRIAL_ENDS_AT',\n undefined\n );\n\n const { license } = useLicenseLimits();\n\n const sevenDaysAgo = subDays(new Date(), 7);\n\n // When the license is not a trial + not EE, and the cached trial end date is found in the localstorage, that means the trial has ended\n // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)\n const isTrialEndedRecently = Boolean(\n !license?.isTrial &&\n !window.strapi.isEE &&\n cachedTrialEndsAt &&\n isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo)\n );\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (!previouslyOpen && isTrialEndedRecently) {\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <Flex\n direction=\"column\"\n alignItems=\"start\"\n justifyContent=\"stretch\"\n padding={8}\n gap={4}\n >\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.title',\n defaultMessage: 'Your trial has ended',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.description',\n defaultMessage:\n 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.',\n })}\n </Typography>\n <Box background=\"primary200\" padding={4} hasRadius>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.title',\n defaultMessage: 'Important to know:',\n })}\n </Typography>\n <ul style={{ listStyleType: 'disc', marginLeft: '1.5rem' }}>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item1',\n defaultMessage: 'Downgrading will remove access to the above features.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item2',\n defaultMessage: 'Document version history will be deleted.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item3',\n defaultMessage: 'All releases will be erased.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item4',\n defaultMessage:\n 'If you downgrade ensure to set a root admin password to keep access to the admin panel.',\n })}\n </Typography>\n </li>\n </ul>\n </Box>\n <Flex marginTop={4} gap={2}>\n <LinkButton href=\"https://billing.strapi.io/\" target=\"_blank\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.upgrade',\n defaultMessage: 'Stay on the Growth plan',\n })}\n </LinkButton>\n <Button variant=\"tertiary\" onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.downgrade',\n defaultMessage: 'Downgrade to Community',\n })}\n </Button>\n </Flex>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n }\n\n return null;\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialEndedModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","cachedTrialEndsAt","undefined","license","useLicenseLimits","sevenDaysAgo","subDays","Date","isTrialEndedRecently","Boolean","isTrial","window","strapi","isEE","isAfter","handleClose","handleOnOpenChange","isOpen","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","background","hasRadius","ul","style","listStyleType","marginLeft","li","marginTop","LinkButton","href","target"],"mappings":"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"}
1
+ {"version":3,"file":"FreeTrialEndedModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialEndedModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, LinkButton, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { isAfter, subDays } from 'date-fns';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n`;\n\nexport const FreeTrialEndedModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = useScopedPersistentState<string | undefined>(\n 'STRAPI_FREE_TRIAL_ENDS_AT',\n undefined\n );\n\n const { license } = useLicenseLimits();\n\n const sevenDaysAgo = subDays(new Date(), 7);\n\n // When the license is not a trial + not EE, and the cached trial end date is found in the localstorage, that means the trial has ended\n // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)\n const isTrialEndedRecently = Boolean(\n !license?.isTrial &&\n !window.strapi.isEE &&\n cachedTrialEndsAt &&\n isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo)\n );\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (!previouslyOpen && isTrialEndedRecently) {\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <Flex\n direction=\"column\"\n alignItems=\"start\"\n justifyContent=\"stretch\"\n padding={8}\n gap={4}\n >\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.title',\n defaultMessage: 'Your trial has ended',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.description',\n defaultMessage:\n 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.',\n })}\n </Typography>\n <Box background=\"primary200\" padding={4} hasRadius>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.title',\n defaultMessage: 'Important to know:',\n })}\n </Typography>\n <ul style={{ listStyleType: 'disc', marginLeft: '1.5rem' }}>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item1',\n defaultMessage: 'Downgrading will remove access to the above features.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item2',\n defaultMessage: 'Document version history will be deleted.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item3',\n defaultMessage: 'All releases will be erased.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item4',\n defaultMessage:\n 'If you downgrade ensure to set a root admin password to keep access to the admin panel.',\n })}\n </Typography>\n </li>\n </ul>\n </Box>\n <Flex marginTop={4} gap={2}>\n <LinkButton href=\"https://billing.strapi.io/\" target=\"_blank\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.upgrade',\n defaultMessage: 'Stay on the Growth plan',\n })}\n </LinkButton>\n <Button variant=\"tertiary\" onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.downgrade',\n defaultMessage: 'Downgrade to Community',\n })}\n </Button>\n </Flex>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n }\n\n return null;\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialEndedModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","cachedTrialEndsAt","undefined","license","useLicenseLimits","sevenDaysAgo","subDays","Date","isTrialEndedRecently","Boolean","isTrial","window","strapi","isEE","isAfter","handleClose","handleOnOpenChange","isOpen","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","background","hasRadius","ul","style","listStyleType","marginLeft","li","marginTop","LinkButton","href","target"],"mappings":"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"}
@@ -10,10 +10,14 @@ var useLicenseLimits = require('../../../../../ee/admin/src/hooks/useLicenseLimi
10
10
  var freeTrial = require('../../../assets/images/free-trial.png.js');
11
11
  var usePersistentState = require('../../../hooks/usePersistentState.js');
12
12
 
13
- const StyledModalContent = styled(designSystem.Modal.Content)`
13
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
+
15
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
16
+
17
+ const StyledModalContent = styled__default.default(designSystem.Modal.Content)`
14
18
  max-width: 51.6rem;
15
19
  `;
16
- const StyledModalBody = styled(designSystem.Modal.Body)`
20
+ const StyledModalBody = styled__default.default(designSystem.Modal.Body)`
17
21
  padding: 0;
18
22
  position: relative;
19
23
 
@@ -21,7 +25,7 @@ const StyledModalBody = styled(designSystem.Modal.Body)`
21
25
  padding: 0;
22
26
  }
23
27
  `;
24
- const StyledButton = styled(designSystem.Button)`
28
+ const StyledButton = styled__default.default(designSystem.Button)`
25
29
  border: 0;
26
30
  border-radius: 50%;
27
31
 
@@ -1 +1 @@
1
- {"version":3,"file":"FreeTrialWelcomeModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialWelcomeModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport lightIllustration from '../../../assets/images/free-trial.png';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n\n > span {\n line-height: 0;\n }\n`;\n\nexport const FreeTrialWelcomeModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_WELCOME_MODAL',\n false\n );\n const { license } = useLicenseLimits();\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (previouslyOpen || !license?.isTrial) {\n return null;\n }\n\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"tertiary\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <img src={lightIllustration} alt=\"free-trial\" width=\"100%\" height=\"100%\" />\n <Flex direction=\"column\" alignItems=\"start\" justifyContent=\"stretch\" padding={8} gap={4}>\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.title',\n defaultMessage: \"We're glad to have you on board\",\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description1',\n defaultMessage:\n 'For the next 30 days, you will have full access to advanced features like Content History, Releases and Single Sign-On (SSO) – everything you need to explore the power of Strapi CMS.',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description2',\n defaultMessage:\n 'Use this time to build, customize, and test your content workflows with complete flexibility!',\n })}\n </Typography>\n <Box marginTop={4}>\n <Button onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.button',\n defaultMessage: 'Start exploring',\n })}\n </Button>\n </Box>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialWelcomeModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","license","useLicenseLimits","handleClose","handleOnOpenChange","isOpen","isTrial","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","img","src","lightIllustration","alt","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","marginTop"],"mappings":"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"}
1
+ {"version":3,"file":"FreeTrialWelcomeModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialWelcomeModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport lightIllustration from '../../../assets/images/free-trial.png';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n\n > span {\n line-height: 0;\n }\n`;\n\nexport const FreeTrialWelcomeModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_WELCOME_MODAL',\n false\n );\n const { license } = useLicenseLimits();\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (previouslyOpen || !license?.isTrial) {\n return null;\n }\n\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"tertiary\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <img src={lightIllustration} alt=\"free-trial\" width=\"100%\" height=\"100%\" />\n <Flex direction=\"column\" alignItems=\"start\" justifyContent=\"stretch\" padding={8} gap={4}>\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.title',\n defaultMessage: \"We're glad to have you on board\",\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description1',\n defaultMessage:\n 'For the next 30 days, you will have full access to advanced features like Content History, Releases and Single Sign-On (SSO) – everything you need to explore the power of Strapi CMS.',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description2',\n defaultMessage:\n 'Use this time to build, customize, and test your content workflows with complete flexibility!',\n })}\n </Typography>\n <Box marginTop={4}>\n <Button onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.button',\n defaultMessage: 'Start exploring',\n })}\n </Button>\n </Box>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialWelcomeModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","license","useLicenseLimits","handleClose","handleOnOpenChange","isOpen","isTrial","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","img","src","lightIllustration","alt","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","marginTop"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAMA,kBAAAA,GAAqBC,uBAAAA,CAAOC,kBAAAA,CAAMC,OAAO,CAAC;;AAEhD,CAAC;AAED,MAAMC,eAAAA,GAAkBH,uBAAAA,CAAOC,kBAAAA,CAAMG,IAAI,CAAC;;;;;;;AAO1C,CAAC;AAED,MAAMC,YAAAA,GAAeL,uBAAAA,CAAOM,mBAAAA,CAAO;;;;;;;AAOnC,CAAC;MAEYC,qBAAAA,GAAwB,IAAA;IACnC,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGC,cAAAA,CAAS,IAAA,CAAA;AACjC,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGC,4CAC1C,iCAAA,EACA,KAAA,CAAA;IAEF,MAAM,EAAEC,OAAO,EAAE,GAAGC,iCAAAA,EAAAA;AAEpB,IAAA,MAAMC,WAAAA,GAAc,IAAA;QAClBJ,iBAAAA,CAAkB,IAAA,CAAA;QAClBH,OAAAA,CAAQ,KAAA,CAAA;AACV,IAAA,CAAA;AAEA,IAAA,MAAMQ,qBAAqB,CAACC,MAAAA,GAAAA;AAC1B,QAAA,IAAI,CAACA,MAAAA,EAAQ;YACXN,iBAAAA,CAAkB,IAAA,CAAA;AACpB,QAAA;QAEAH,OAAAA,CAAQS,MAAAA,CAAAA;AACV,IAAA,CAAA;IAEA,IAAIP,cAAAA,IAAkB,CAACG,OAAAA,EAASK,OAAAA,EAAS;QACvC,OAAO,IAAA;AACT,IAAA;IAEA,qBACEC,cAAA,CAACrB,mBAAMsB,IAAI,EAAA;QAACb,IAAAA,EAAMA,IAAAA;QAAMc,YAAAA,EAAcL,kBAAAA;AACpC,QAAA,QAAA,gBAAAG,cAAA,CAACvB,kBAAAA,EAAAA;YAAmB0B,iBAAAA,EAAgB,OAAA;AAClC,YAAA,QAAA,gBAAAC,eAAA,CAACvB,eAAAA,EAAAA;;kCACCmB,cAAA,CAACK,gBAAAA,EAAAA;wBAAIC,QAAAA,EAAS,UAAA;wBAAWC,GAAAA,EAAK,CAAA;wBAAGC,KAAAA,EAAO,CAAA;wBAAGC,OAAAA,EAAS,CAAA;AAClD,wBAAA,QAAA,gBAAAT,cAAA,CAACjB,YAAAA,EAAAA;AACC2B,4BAAAA,YAAAA,EAAYxB,aAAAA,CAAc;gCACxByB,EAAAA,EAAI,uBAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA,CAAA;4BACAC,OAAAA,EAAQ,UAAA;4BACRC,KAAAA,EAAM,QAAA;4BACNC,MAAAA,EAAO,QAAA;4BACPC,OAAAA,EAASpB,WAAAA;AAET,4BAAA,QAAA,gBAAAI,cAAA,CAACiB,WAAAA,EAAAA,EAAAA;;;kCAGLjB,cAAA,CAACkB,KAAAA,EAAAA;wBAAIC,GAAAA,EAAKC,SAAAA;wBAAmBC,GAAAA,EAAI,YAAA;wBAAaP,KAAAA,EAAM,MAAA;wBAAOC,MAAAA,EAAO;;kCAClEX,eAAA,CAACkB,iBAAAA,EAAAA;wBAAKC,SAAAA,EAAU,QAAA;wBAASC,UAAAA,EAAW,OAAA;wBAAQC,cAAAA,EAAe,SAAA;wBAAUhB,OAAAA,EAAS,CAAA;wBAAGiB,GAAAA,EAAK,CAAA;;0CACpF1B,cAAA,CAAC2B,uBAAAA,EAAAA;gCAAWd,OAAAA,EAAQ,OAAA;gCAAQe,UAAAA,EAAW,MAAA;gCAAOC,QAAAA,EAAU,CAAA;gCAAGlB,EAAAA,EAAG,OAAA;0CAC3DzB,aAAAA,CAAc;oCACbyB,EAAAA,EAAI,4CAAA;oCACJC,cAAAA,EAAgB;AAClB,iCAAA;;0CAEFZ,cAAA,CAAC2B,uBAAAA,EAAAA;0CACEzC,aAAAA,CAAc;oCACbyB,EAAAA,EAAI,mDAAA;oCACJC,cAAAA,EACE;AACJ,iCAAA;;0CAEFZ,cAAA,CAAC2B,uBAAAA,EAAAA;0CACEzC,aAAAA,CAAc;oCACbyB,EAAAA,EAAI,mDAAA;oCACJC,cAAAA,EACE;AACJ,iCAAA;;0CAEFZ,cAAA,CAACK,gBAAAA,EAAAA;gCAAIyB,SAAAA,EAAW,CAAA;AACd,gCAAA,QAAA,gBAAA9B,cAAA,CAAChB,mBAAAA,EAAAA;oCAAOgC,OAAAA,EAASpB,WAAAA;8CACdV,aAAAA,CAAc;wCACbyB,EAAAA,EAAI,6CAAA;wCACJC,cAAAA,EAAgB;AAClB,qCAAA;;;;;;;;;AAQhB;;;;"}
@@ -25,7 +25,10 @@ var translatedErrors = require('../utils/translatedErrors.js');
25
25
  var users = require('../utils/users.js');
26
26
  var validation = require('./Settings/pages/Users/utils/validation.js');
27
27
 
28
- function _interopNamespaceDefault(e) {
28
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
29
+
30
+ function _interopNamespace(e) {
31
+ if (e && e.__esModule) return e;
29
32
  var n = Object.create(null);
30
33
  if (e) {
31
34
  Object.keys(e).forEach(function (k) {
@@ -42,8 +45,9 @@ function _interopNamespaceDefault(e) {
42
45
  return Object.freeze(n);
43
46
  }
44
47
 
45
- var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
46
- var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
48
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
49
+ var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
50
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
47
51
 
48
52
  const PROFILE_VALIDTION_SCHEMA = yup__namespace.object().shape({
49
53
  ...validation.COMMON_USER_SCHEMA,
@@ -398,7 +402,7 @@ const PreferencesSection = ({ localeNames })=>{
398
402
  }, {
399
403
  name: formatMessage({
400
404
  id: theme,
401
- defaultMessage: upperFirst(theme)
405
+ defaultMessage: upperFirst__default.default(theme)
402
406
  })
403
407
  }),
404
408
  value: theme