@strapi/admin 5.13.1 → 5.15.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 (294) hide show
  1. package/dist/admin/admin/src/assets/images/free-trial.png.js +6 -0
  2. package/dist/admin/admin/src/assets/images/free-trial.png.js.map +1 -0
  3. package/dist/admin/admin/src/assets/images/free-trial.png.mjs +4 -0
  4. package/dist/admin/admin/src/assets/images/free-trial.png.mjs.map +1 -0
  5. package/dist/admin/admin/src/components/ConfirmDialog.js +2 -2
  6. package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
  7. package/dist/admin/admin/src/components/ContentBox.js +3 -3
  8. package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
  9. package/dist/admin/admin/src/components/ErrorElement.js +3 -3
  10. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  11. package/dist/admin/admin/src/components/GradientBadge.js +37 -0
  12. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -0
  13. package/dist/admin/admin/src/components/GradientBadge.mjs +35 -0
  14. package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -0
  15. package/dist/admin/admin/src/components/GuidedTour/Modal.js +3 -3
  16. package/dist/admin/admin/src/components/GuidedTour/Modal.js.map +1 -1
  17. package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
  18. package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
  19. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +1 -1
  20. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  21. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +1 -1
  22. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  23. package/dist/admin/admin/src/components/Layouts/Layout.js +3 -3
  24. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  25. package/dist/admin/admin/src/components/LeftMenu.js +7 -5
  26. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  27. package/dist/admin/admin/src/components/LeftMenu.mjs +3 -1
  28. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
  30. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  31. package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
  32. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  33. package/dist/admin/admin/src/components/MainNav/NavLink.js +3 -3
  34. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  35. package/dist/admin/admin/src/components/MainNav/NavUser.js +8 -8
  36. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  37. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +114 -0
  38. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -0
  39. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +112 -0
  40. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -0
  41. package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
  42. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  43. package/dist/admin/admin/src/components/SubNav.js +269 -0
  44. package/dist/admin/admin/src/components/SubNav.js.map +1 -0
  45. package/dist/admin/admin/src/components/SubNav.mjs +267 -0
  46. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -0
  47. package/dist/admin/admin/src/components/Table.js +2 -2
  48. package/dist/admin/admin/src/components/Table.js.map +1 -1
  49. package/dist/admin/admin/src/components/Theme.js +2 -2
  50. package/dist/admin/admin/src/components/Theme.js.map +1 -1
  51. package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
  52. package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
  53. package/dist/admin/admin/src/components/UpsellBanner.js +113 -0
  54. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -0
  55. package/dist/admin/admin/src/components/UpsellBanner.mjs +111 -0
  56. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -0
  57. package/dist/admin/admin/src/features/Auth.js +8 -2
  58. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  59. package/dist/admin/admin/src/features/Auth.mjs +8 -2
  60. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  61. package/dist/admin/admin/src/hooks/useQueryParams.js +7 -1
  62. package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
  63. package/dist/admin/admin/src/hooks/useQueryParams.mjs +8 -2
  64. package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
  65. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +2 -0
  66. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  67. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +2 -0
  68. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  69. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
  70. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  71. package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -2
  72. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  73. package/dist/admin/admin/src/pages/Home/HomePage.js +4 -0
  74. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  75. package/dist/admin/admin/src/pages/Home/HomePage.mjs +4 -0
  76. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  77. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +183 -0
  78. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -0
  79. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +181 -0
  80. package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -0
  81. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +128 -0
  82. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -0
  83. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +126 -0
  84. package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -0
  85. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js +3 -3
  86. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
  87. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js +2 -2
  88. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js +2 -2
  90. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +31 -30
  92. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +33 -32
  94. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
  96. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
  98. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +4 -4
  100. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +2 -2
  102. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +2 -2
  104. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
  106. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -10
  108. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js +3 -3
  110. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -5
  112. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js +2 -2
  114. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
  115. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
  116. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  117. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
  118. package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
  119. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
  120. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
  121. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -2
  122. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
  123. package/dist/admin/admin/src/render.js +3 -1
  124. package/dist/admin/admin/src/render.js.map +1 -1
  125. package/dist/admin/admin/src/render.mjs +3 -1
  126. package/dist/admin/admin/src/render.mjs.map +1 -1
  127. package/dist/admin/admin/src/services/admin.js +13 -2
  128. package/dist/admin/admin/src/services/admin.js.map +1 -1
  129. package/dist/admin/admin/src/services/admin.mjs +13 -3
  130. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  131. package/dist/admin/admin/src/translations/ar.json.js +1 -0
  132. package/dist/admin/admin/src/translations/ar.json.js.map +1 -1
  133. package/dist/admin/admin/src/translations/ar.json.mjs +1 -0
  134. package/dist/admin/admin/src/translations/ar.json.mjs.map +1 -1
  135. package/dist/admin/admin/src/translations/ca.json.js +1 -0
  136. package/dist/admin/admin/src/translations/ca.json.js.map +1 -1
  137. package/dist/admin/admin/src/translations/ca.json.mjs +1 -0
  138. package/dist/admin/admin/src/translations/ca.json.mjs.map +1 -1
  139. package/dist/admin/admin/src/translations/de.json.js +1 -0
  140. package/dist/admin/admin/src/translations/de.json.js.map +1 -1
  141. package/dist/admin/admin/src/translations/de.json.mjs +1 -0
  142. package/dist/admin/admin/src/translations/de.json.mjs.map +1 -1
  143. package/dist/admin/admin/src/translations/dk.json.js +1 -0
  144. package/dist/admin/admin/src/translations/dk.json.js.map +1 -1
  145. package/dist/admin/admin/src/translations/dk.json.mjs +1 -0
  146. package/dist/admin/admin/src/translations/dk.json.mjs.map +1 -1
  147. package/dist/admin/admin/src/translations/en.json.js +19 -0
  148. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  149. package/dist/admin/admin/src/translations/en.json.mjs +19 -0
  150. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  151. package/dist/admin/admin/src/translations/es.json.js +1 -0
  152. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  153. package/dist/admin/admin/src/translations/es.json.mjs +1 -0
  154. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  155. package/dist/admin/admin/src/translations/eu.json.js +1 -0
  156. package/dist/admin/admin/src/translations/eu.json.js.map +1 -1
  157. package/dist/admin/admin/src/translations/eu.json.mjs +1 -0
  158. package/dist/admin/admin/src/translations/eu.json.mjs.map +1 -1
  159. package/dist/admin/admin/src/translations/fr.json.js +1 -0
  160. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  161. package/dist/admin/admin/src/translations/fr.json.mjs +1 -0
  162. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  163. package/dist/admin/admin/src/translations/gu.json.js +1 -0
  164. package/dist/admin/admin/src/translations/gu.json.js.map +1 -1
  165. package/dist/admin/admin/src/translations/gu.json.mjs +1 -0
  166. package/dist/admin/admin/src/translations/gu.json.mjs.map +1 -1
  167. package/dist/admin/admin/src/translations/hi.json.js +1 -0
  168. package/dist/admin/admin/src/translations/hi.json.js.map +1 -1
  169. package/dist/admin/admin/src/translations/hi.json.mjs +1 -0
  170. package/dist/admin/admin/src/translations/hi.json.mjs.map +1 -1
  171. package/dist/admin/admin/src/translations/hu.json.js +1 -0
  172. package/dist/admin/admin/src/translations/hu.json.js.map +1 -1
  173. package/dist/admin/admin/src/translations/hu.json.mjs +1 -0
  174. package/dist/admin/admin/src/translations/hu.json.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/ja.json.js +1 -0
  176. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/ja.json.mjs +1 -0
  178. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/ko.json.js +1 -0
  180. package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
  181. package/dist/admin/admin/src/translations/ko.json.mjs +1 -0
  182. package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
  183. package/dist/admin/admin/src/translations/ml.json.js +1 -0
  184. package/dist/admin/admin/src/translations/ml.json.js.map +1 -1
  185. package/dist/admin/admin/src/translations/ml.json.mjs +1 -0
  186. package/dist/admin/admin/src/translations/ml.json.mjs.map +1 -1
  187. package/dist/admin/admin/src/translations/nl.json.js +1 -0
  188. package/dist/admin/admin/src/translations/nl.json.js.map +1 -1
  189. package/dist/admin/admin/src/translations/nl.json.mjs +1 -0
  190. package/dist/admin/admin/src/translations/nl.json.mjs.map +1 -1
  191. package/dist/admin/admin/src/translations/pl.json.js +1 -0
  192. package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
  193. package/dist/admin/admin/src/translations/pl.json.mjs +1 -0
  194. package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
  195. package/dist/admin/admin/src/translations/pt-BR.json.js +1 -0
  196. package/dist/admin/admin/src/translations/pt-BR.json.js.map +1 -1
  197. package/dist/admin/admin/src/translations/pt-BR.json.mjs +1 -0
  198. package/dist/admin/admin/src/translations/pt-BR.json.mjs.map +1 -1
  199. package/dist/admin/admin/src/translations/ru.json.js +1 -0
  200. package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
  201. package/dist/admin/admin/src/translations/ru.json.mjs +1 -0
  202. package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
  203. package/dist/admin/admin/src/translations/sa.json.js +1 -0
  204. package/dist/admin/admin/src/translations/sa.json.js.map +1 -1
  205. package/dist/admin/admin/src/translations/sa.json.mjs +1 -0
  206. package/dist/admin/admin/src/translations/sa.json.mjs.map +1 -1
  207. package/dist/admin/admin/src/translations/sk.json.js +1 -0
  208. package/dist/admin/admin/src/translations/sk.json.js.map +1 -1
  209. package/dist/admin/admin/src/translations/sk.json.mjs +1 -0
  210. package/dist/admin/admin/src/translations/sk.json.mjs.map +1 -1
  211. package/dist/admin/admin/src/translations/sv.json.js +1 -0
  212. package/dist/admin/admin/src/translations/sv.json.js.map +1 -1
  213. package/dist/admin/admin/src/translations/sv.json.mjs +1 -0
  214. package/dist/admin/admin/src/translations/sv.json.mjs.map +1 -1
  215. package/dist/admin/admin/src/translations/tr.json.js +1 -0
  216. package/dist/admin/admin/src/translations/tr.json.js.map +1 -1
  217. package/dist/admin/admin/src/translations/tr.json.mjs +1 -0
  218. package/dist/admin/admin/src/translations/tr.json.mjs.map +1 -1
  219. package/dist/admin/admin/src/translations/uk.json.js +1 -0
  220. package/dist/admin/admin/src/translations/uk.json.js.map +1 -1
  221. package/dist/admin/admin/src/translations/uk.json.mjs +1 -0
  222. package/dist/admin/admin/src/translations/uk.json.mjs.map +1 -1
  223. package/dist/admin/admin/src/translations/zh-Hans.json.js +1 -0
  224. package/dist/admin/admin/src/translations/zh-Hans.json.js.map +1 -1
  225. package/dist/admin/admin/src/translations/zh-Hans.json.mjs +1 -0
  226. package/dist/admin/admin/src/translations/zh-Hans.json.mjs.map +1 -1
  227. package/dist/admin/admin/src/translations/zh.json.js +1 -0
  228. package/dist/admin/admin/src/translations/zh.json.js.map +1 -1
  229. package/dist/admin/admin/src/translations/zh.json.mjs +1 -0
  230. package/dist/admin/admin/src/translations/zh.json.mjs.map +1 -1
  231. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +2 -1
  232. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
  233. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs +2 -1
  234. package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs.map +1 -1
  235. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
  236. package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
  237. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
  238. package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
  239. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
  240. package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
  241. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -2
  242. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +7 -0
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +7 -0
  246. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  247. package/dist/admin/index.js +4 -0
  248. package/dist/admin/index.js.map +1 -1
  249. package/dist/admin/index.mjs +2 -0
  250. package/dist/admin/index.mjs.map +1 -1
  251. package/dist/admin/src/components/GradientBadge.d.ts +4 -0
  252. package/dist/admin/src/components/MainNav/TrialCountdown.d.ts +2 -0
  253. package/dist/admin/src/components/SubNav.d.ts +33 -0
  254. package/dist/admin/src/components/UpsellBanner.d.ts +2 -0
  255. package/dist/admin/src/index.d.ts +2 -0
  256. package/dist/admin/src/pages/Home/components/FreeTrialEndedModal.d.ts +1 -0
  257. package/dist/admin/src/pages/Home/components/FreeTrialWelcomeModal.d.ts +1 -0
  258. package/dist/admin/src/services/admin.d.ts +8 -6
  259. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +2 -0
  260. package/dist/ee/server/src/controllers/admin.d.ts +3 -0
  261. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  262. package/dist/ee/server/src/controllers/index.d.ts +3 -0
  263. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  264. package/dist/ee/server/src/index.d.ts +6 -0
  265. package/dist/ee/server/src/index.d.ts.map +1 -1
  266. package/dist/server/ee/server/src/controllers/admin.js +2 -0
  267. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  268. package/dist/server/ee/server/src/controllers/admin.mjs +2 -0
  269. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  270. package/dist/server/server/src/controllers/admin.js +6 -0
  271. package/dist/server/server/src/controllers/admin.js.map +1 -1
  272. package/dist/server/server/src/controllers/admin.mjs +6 -0
  273. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  274. package/dist/server/server/src/routes/admin.js +10 -0
  275. package/dist/server/server/src/routes/admin.js.map +1 -1
  276. package/dist/server/server/src/routes/admin.mjs +10 -0
  277. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  278. package/dist/server/server/src/services/content-type.js +10 -15
  279. package/dist/server/server/src/services/content-type.js.map +1 -1
  280. package/dist/server/server/src/services/content-type.mjs +11 -16
  281. package/dist/server/server/src/services/content-type.mjs.map +1 -1
  282. package/dist/server/src/controllers/admin.d.ts +3 -0
  283. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  284. package/dist/server/src/controllers/index.d.ts +3 -0
  285. package/dist/server/src/controllers/index.d.ts.map +1 -1
  286. package/dist/server/src/index.d.ts +3 -0
  287. package/dist/server/src/index.d.ts.map +1 -1
  288. package/dist/server/src/routes/admin.d.ts.map +1 -1
  289. package/dist/server/src/services/content-type.d.ts +1 -1
  290. package/dist/server/src/services/content-type.d.ts.map +1 -1
  291. package/dist/server/src/validation/project-settings.d.ts +4 -4
  292. package/dist/shared/contracts/admin.d.ts +1 -0
  293. package/dist/shared/contracts/admin.d.ts.map +1 -1
  294. package/package.json +12 -12
@@ -0,0 +1,183 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var dateFns = require('date-fns');
8
+ var reactIntl = require('react-intl');
9
+ var styled = require('styled-components');
10
+ var useLicenseLimits = require('../../../../../ee/admin/src/hooks/useLicenseLimits.js');
11
+ var usePersistentState = require('../../../hooks/usePersistentState.js');
12
+
13
+ const StyledModalContent = styled(designSystem.Modal.Content)`
14
+ max-width: 51.6rem;
15
+ `;
16
+ const StyledModalBody = styled(designSystem.Modal.Body)`
17
+ padding: 0;
18
+ position: relative;
19
+
20
+ > div {
21
+ padding: 0;
22
+ }
23
+ `;
24
+ const StyledButton = styled(designSystem.Button)`
25
+ border: 0;
26
+ border-radius: 50%;
27
+ `;
28
+ const FreeTrialEndedModal = ()=>{
29
+ const { formatMessage } = reactIntl.useIntl();
30
+ const [open, setOpen] = React.useState(true);
31
+ const [previouslyOpen, setPreviouslyOpen] = usePersistentState.usePersistentState('STRAPI_FREE_TRIAL_ENDED_MODAL', false);
32
+ const [cachedTrialEndsAt] = usePersistentState.usePersistentState('STRAPI_FREE_TRIAL_ENDS_AT', undefined);
33
+ const { license } = useLicenseLimits.useLicenseLimits();
34
+ const sevenDaysAgo = dateFns.subDays(new Date(), 7);
35
+ // 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
36
+ // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)
37
+ const isTrialEndedRecently = Boolean(!license?.isTrial && !window.strapi.isEE && cachedTrialEndsAt && dateFns.isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo));
38
+ const handleClose = ()=>{
39
+ setPreviouslyOpen(true);
40
+ setOpen(false);
41
+ };
42
+ const handleOnOpenChange = (isOpen)=>{
43
+ if (!isOpen) {
44
+ setPreviouslyOpen(true);
45
+ }
46
+ setOpen(isOpen);
47
+ };
48
+ if (!previouslyOpen && isTrialEndedRecently) {
49
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
50
+ open: open,
51
+ onOpenChange: handleOnOpenChange,
52
+ children: /*#__PURE__*/ jsxRuntime.jsx(StyledModalContent, {
53
+ "aria-labelledby": "title",
54
+ children: /*#__PURE__*/ jsxRuntime.jsxs(StyledModalBody, {
55
+ children: [
56
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
57
+ position: "absolute",
58
+ top: 0,
59
+ right: 0,
60
+ padding: 2,
61
+ children: /*#__PURE__*/ jsxRuntime.jsx(StyledButton, {
62
+ "aria-label": formatMessage({
63
+ id: 'app.utils.close-label',
64
+ defaultMessage: 'Close'
65
+ }),
66
+ variant: "ghost",
67
+ width: "2.4rem",
68
+ height: "2.4rem",
69
+ onClick: handleClose,
70
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {})
71
+ })
72
+ }),
73
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
74
+ direction: "column",
75
+ alignItems: "start",
76
+ justifyContent: "stretch",
77
+ padding: 8,
78
+ gap: 4,
79
+ children: [
80
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
81
+ variant: "alpha",
82
+ fontWeight: "bold",
83
+ fontSize: 4,
84
+ id: "title",
85
+ children: formatMessage({
86
+ id: 'app.components.FreeTrialEndedModal.title',
87
+ defaultMessage: 'Your trial has ended'
88
+ })
89
+ }),
90
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
91
+ children: formatMessage({
92
+ id: 'app.components.FreeTrialEndedModal.description',
93
+ defaultMessage: 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.'
94
+ })
95
+ }),
96
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
97
+ background: "primary200",
98
+ padding: 4,
99
+ hasRadius: true,
100
+ children: [
101
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
102
+ fontWeight: "bold",
103
+ children: formatMessage({
104
+ id: 'app.components.FreeTrialEndedModal.notice.title',
105
+ defaultMessage: 'Important to know:'
106
+ })
107
+ }),
108
+ /*#__PURE__*/ jsxRuntime.jsxs("ul", {
109
+ style: {
110
+ listStyleType: 'disc',
111
+ marginLeft: '1.5rem'
112
+ },
113
+ children: [
114
+ /*#__PURE__*/ jsxRuntime.jsx("li", {
115
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
116
+ children: formatMessage({
117
+ id: 'app.components.FreeTrialEndedModal.notice.item1',
118
+ defaultMessage: 'Downgrading will remove access to the above features.'
119
+ })
120
+ })
121
+ }),
122
+ /*#__PURE__*/ jsxRuntime.jsx("li", {
123
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
124
+ children: formatMessage({
125
+ id: 'app.components.FreeTrialEndedModal.notice.item2',
126
+ defaultMessage: 'Document version history will be deleted.'
127
+ })
128
+ })
129
+ }),
130
+ /*#__PURE__*/ jsxRuntime.jsx("li", {
131
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
132
+ children: formatMessage({
133
+ id: 'app.components.FreeTrialEndedModal.notice.item3',
134
+ defaultMessage: 'All releases will be erased.'
135
+ })
136
+ })
137
+ }),
138
+ /*#__PURE__*/ jsxRuntime.jsx("li", {
139
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
140
+ children: formatMessage({
141
+ id: 'app.components.FreeTrialEndedModal.notice.item4',
142
+ defaultMessage: 'If you downgrade ensure to set a root admin password to keep access to the admin panel.'
143
+ })
144
+ })
145
+ })
146
+ ]
147
+ })
148
+ ]
149
+ }),
150
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
151
+ marginTop: 4,
152
+ gap: 2,
153
+ children: [
154
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
155
+ href: "https://strapi.chargebeeportal.com/",
156
+ target: "_blank",
157
+ children: formatMessage({
158
+ id: 'app.components.FreeTrialEndedModal.button.upgrade',
159
+ defaultMessage: 'Stay on the Growth plan'
160
+ })
161
+ }),
162
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
163
+ variant: "tertiary",
164
+ onClick: handleClose,
165
+ children: formatMessage({
166
+ id: 'app.components.FreeTrialEndedModal.button.downgrade',
167
+ defaultMessage: 'Downgrade to Community'
168
+ })
169
+ })
170
+ ]
171
+ })
172
+ ]
173
+ })
174
+ ]
175
+ })
176
+ })
177
+ });
178
+ }
179
+ return null;
180
+ };
181
+
182
+ exports.FreeTrialEndedModal = FreeTrialEndedModal;
183
+ //# sourceMappingURL=FreeTrialEndedModal.js.map
@@ -0,0 +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 { usePersistentState } 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] = usePersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = usePersistentState<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://strapi.chargebeeportal.com/\" 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","usePersistentState","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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"}
@@ -0,0 +1,181 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useState } from 'react';
3
+ import { Modal, Button, Box, Flex, Typography, LinkButton } from '@strapi/design-system';
4
+ import { Cross } from '@strapi/icons';
5
+ import { subDays, isAfter } from 'date-fns';
6
+ import { useIntl } from 'react-intl';
7
+ import styled from 'styled-components';
8
+ import { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits.mjs';
9
+ import { usePersistentState } from '../../../hooks/usePersistentState.mjs';
10
+
11
+ const StyledModalContent = styled(Modal.Content)`
12
+ max-width: 51.6rem;
13
+ `;
14
+ const StyledModalBody = styled(Modal.Body)`
15
+ padding: 0;
16
+ position: relative;
17
+
18
+ > div {
19
+ padding: 0;
20
+ }
21
+ `;
22
+ const StyledButton = styled(Button)`
23
+ border: 0;
24
+ border-radius: 50%;
25
+ `;
26
+ const FreeTrialEndedModal = ()=>{
27
+ const { formatMessage } = useIntl();
28
+ const [open, setOpen] = useState(true);
29
+ const [previouslyOpen, setPreviouslyOpen] = usePersistentState('STRAPI_FREE_TRIAL_ENDED_MODAL', false);
30
+ const [cachedTrialEndsAt] = usePersistentState('STRAPI_FREE_TRIAL_ENDS_AT', undefined);
31
+ const { license } = useLicenseLimits();
32
+ const sevenDaysAgo = subDays(new Date(), 7);
33
+ // 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
34
+ // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)
35
+ const isTrialEndedRecently = Boolean(!license?.isTrial && !window.strapi.isEE && cachedTrialEndsAt && isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo));
36
+ const handleClose = ()=>{
37
+ setPreviouslyOpen(true);
38
+ setOpen(false);
39
+ };
40
+ const handleOnOpenChange = (isOpen)=>{
41
+ if (!isOpen) {
42
+ setPreviouslyOpen(true);
43
+ }
44
+ setOpen(isOpen);
45
+ };
46
+ if (!previouslyOpen && isTrialEndedRecently) {
47
+ return /*#__PURE__*/ jsx(Modal.Root, {
48
+ open: open,
49
+ onOpenChange: handleOnOpenChange,
50
+ children: /*#__PURE__*/ jsx(StyledModalContent, {
51
+ "aria-labelledby": "title",
52
+ children: /*#__PURE__*/ jsxs(StyledModalBody, {
53
+ children: [
54
+ /*#__PURE__*/ jsx(Box, {
55
+ position: "absolute",
56
+ top: 0,
57
+ right: 0,
58
+ padding: 2,
59
+ children: /*#__PURE__*/ jsx(StyledButton, {
60
+ "aria-label": formatMessage({
61
+ id: 'app.utils.close-label',
62
+ defaultMessage: 'Close'
63
+ }),
64
+ variant: "ghost",
65
+ width: "2.4rem",
66
+ height: "2.4rem",
67
+ onClick: handleClose,
68
+ children: /*#__PURE__*/ jsx(Cross, {})
69
+ })
70
+ }),
71
+ /*#__PURE__*/ jsxs(Flex, {
72
+ direction: "column",
73
+ alignItems: "start",
74
+ justifyContent: "stretch",
75
+ padding: 8,
76
+ gap: 4,
77
+ children: [
78
+ /*#__PURE__*/ jsx(Typography, {
79
+ variant: "alpha",
80
+ fontWeight: "bold",
81
+ fontSize: 4,
82
+ id: "title",
83
+ children: formatMessage({
84
+ id: 'app.components.FreeTrialEndedModal.title',
85
+ defaultMessage: 'Your trial has ended'
86
+ })
87
+ }),
88
+ /*#__PURE__*/ jsx(Typography, {
89
+ children: formatMessage({
90
+ id: 'app.components.FreeTrialEndedModal.description',
91
+ defaultMessage: 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.'
92
+ })
93
+ }),
94
+ /*#__PURE__*/ jsxs(Box, {
95
+ background: "primary200",
96
+ padding: 4,
97
+ hasRadius: true,
98
+ children: [
99
+ /*#__PURE__*/ jsx(Typography, {
100
+ fontWeight: "bold",
101
+ children: formatMessage({
102
+ id: 'app.components.FreeTrialEndedModal.notice.title',
103
+ defaultMessage: 'Important to know:'
104
+ })
105
+ }),
106
+ /*#__PURE__*/ jsxs("ul", {
107
+ style: {
108
+ listStyleType: 'disc',
109
+ marginLeft: '1.5rem'
110
+ },
111
+ children: [
112
+ /*#__PURE__*/ jsx("li", {
113
+ children: /*#__PURE__*/ jsx(Typography, {
114
+ children: formatMessage({
115
+ id: 'app.components.FreeTrialEndedModal.notice.item1',
116
+ defaultMessage: 'Downgrading will remove access to the above features.'
117
+ })
118
+ })
119
+ }),
120
+ /*#__PURE__*/ jsx("li", {
121
+ children: /*#__PURE__*/ jsx(Typography, {
122
+ children: formatMessage({
123
+ id: 'app.components.FreeTrialEndedModal.notice.item2',
124
+ defaultMessage: 'Document version history will be deleted.'
125
+ })
126
+ })
127
+ }),
128
+ /*#__PURE__*/ jsx("li", {
129
+ children: /*#__PURE__*/ jsx(Typography, {
130
+ children: formatMessage({
131
+ id: 'app.components.FreeTrialEndedModal.notice.item3',
132
+ defaultMessage: 'All releases will be erased.'
133
+ })
134
+ })
135
+ }),
136
+ /*#__PURE__*/ jsx("li", {
137
+ children: /*#__PURE__*/ jsx(Typography, {
138
+ children: formatMessage({
139
+ id: 'app.components.FreeTrialEndedModal.notice.item4',
140
+ defaultMessage: 'If you downgrade ensure to set a root admin password to keep access to the admin panel.'
141
+ })
142
+ })
143
+ })
144
+ ]
145
+ })
146
+ ]
147
+ }),
148
+ /*#__PURE__*/ jsxs(Flex, {
149
+ marginTop: 4,
150
+ gap: 2,
151
+ children: [
152
+ /*#__PURE__*/ jsx(LinkButton, {
153
+ href: "https://strapi.chargebeeportal.com/",
154
+ target: "_blank",
155
+ children: formatMessage({
156
+ id: 'app.components.FreeTrialEndedModal.button.upgrade',
157
+ defaultMessage: 'Stay on the Growth plan'
158
+ })
159
+ }),
160
+ /*#__PURE__*/ jsx(Button, {
161
+ variant: "tertiary",
162
+ onClick: handleClose,
163
+ children: formatMessage({
164
+ id: 'app.components.FreeTrialEndedModal.button.downgrade',
165
+ defaultMessage: 'Downgrade to Community'
166
+ })
167
+ })
168
+ ]
169
+ })
170
+ ]
171
+ })
172
+ ]
173
+ })
174
+ })
175
+ });
176
+ }
177
+ return null;
178
+ };
179
+
180
+ export { FreeTrialEndedModal };
181
+ //# sourceMappingURL=FreeTrialEndedModal.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FreeTrialEndedModal.mjs","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 { usePersistentState } 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] = usePersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = usePersistentState<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://strapi.chargebeeportal.com/\" 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","usePersistentState","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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"}
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var reactIntl = require('react-intl');
8
+ var styled = require('styled-components');
9
+ var useLicenseLimits = require('../../../../../ee/admin/src/hooks/useLicenseLimits.js');
10
+ var freeTrial = require('../../../assets/images/free-trial.png.js');
11
+ var usePersistentState = require('../../../hooks/usePersistentState.js');
12
+
13
+ const StyledModalContent = styled(designSystem.Modal.Content)`
14
+ max-width: 51.6rem;
15
+ `;
16
+ const StyledModalBody = styled(designSystem.Modal.Body)`
17
+ padding: 0;
18
+ position: relative;
19
+
20
+ > div {
21
+ padding: 0;
22
+ }
23
+ `;
24
+ const StyledButton = styled(designSystem.Button)`
25
+ border: 0;
26
+ border-radius: 50%;
27
+
28
+ > span {
29
+ line-height: 0;
30
+ }
31
+ `;
32
+ const FreeTrialWelcomeModal = ()=>{
33
+ const { formatMessage } = reactIntl.useIntl();
34
+ const [open, setOpen] = React.useState(true);
35
+ const [previouslyOpen, setPreviouslyOpen] = usePersistentState.usePersistentState('STRAPI_FREE_TRIAL_WELCOME_MODAL', false);
36
+ const { license } = useLicenseLimits.useLicenseLimits();
37
+ const handleClose = ()=>{
38
+ setPreviouslyOpen(true);
39
+ setOpen(false);
40
+ };
41
+ const handleOnOpenChange = (isOpen)=>{
42
+ if (!isOpen) {
43
+ setPreviouslyOpen(true);
44
+ }
45
+ setOpen(isOpen);
46
+ };
47
+ if (previouslyOpen || !license?.isTrial) {
48
+ return null;
49
+ }
50
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Modal.Root, {
51
+ open: open,
52
+ onOpenChange: handleOnOpenChange,
53
+ children: /*#__PURE__*/ jsxRuntime.jsx(StyledModalContent, {
54
+ "aria-labelledby": "title",
55
+ children: /*#__PURE__*/ jsxRuntime.jsxs(StyledModalBody, {
56
+ children: [
57
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
58
+ position: "absolute",
59
+ top: 0,
60
+ right: 0,
61
+ padding: 2,
62
+ children: /*#__PURE__*/ jsxRuntime.jsx(StyledButton, {
63
+ "aria-label": formatMessage({
64
+ id: 'app.utils.close-label',
65
+ defaultMessage: 'Close'
66
+ }),
67
+ variant: "tertiary",
68
+ width: "2.4rem",
69
+ height: "2.4rem",
70
+ onClick: handleClose,
71
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {})
72
+ })
73
+ }),
74
+ /*#__PURE__*/ jsxRuntime.jsx("img", {
75
+ src: freeTrial,
76
+ alt: "free-trial",
77
+ width: "100%",
78
+ height: "100%"
79
+ }),
80
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
81
+ direction: "column",
82
+ alignItems: "start",
83
+ justifyContent: "stretch",
84
+ padding: 8,
85
+ gap: 4,
86
+ children: [
87
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
88
+ variant: "alpha",
89
+ fontWeight: "bold",
90
+ fontSize: 4,
91
+ id: "title",
92
+ children: formatMessage({
93
+ id: 'app.components.FreeTrialWelcomeModal.title',
94
+ defaultMessage: "We're glad to have you on board"
95
+ })
96
+ }),
97
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
98
+ children: formatMessage({
99
+ id: 'app.components.FreeTrialWelcomeModal.description1',
100
+ defaultMessage: '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.'
101
+ })
102
+ }),
103
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
104
+ children: formatMessage({
105
+ id: 'app.components.FreeTrialWelcomeModal.description2',
106
+ defaultMessage: 'Use this time to build, customize, and test your content workflows with complete flexibility!'
107
+ })
108
+ }),
109
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
110
+ marginTop: 4,
111
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
112
+ onClick: handleClose,
113
+ children: formatMessage({
114
+ id: 'app.components.FreeTrialWelcomeModal.button',
115
+ defaultMessage: 'Start exploring'
116
+ })
117
+ })
118
+ })
119
+ ]
120
+ })
121
+ ]
122
+ })
123
+ })
124
+ });
125
+ };
126
+
127
+ exports.FreeTrialWelcomeModal = FreeTrialWelcomeModal;
128
+ //# sourceMappingURL=FreeTrialWelcomeModal.js.map
@@ -0,0 +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 { usePersistentState } 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] = usePersistentState(\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","usePersistentState","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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"}