@strapi/admin 5.25.0 → 5.27.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 (336) hide show
  1. package/dist/admin/admin/src/App.js +6 -2
  2. package/dist/admin/admin/src/App.js.map +1 -1
  3. package/dist/admin/admin/src/App.mjs +7 -3
  4. package/dist/admin/admin/src/App.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/ErrorElement.js +10 -3
  6. package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
  7. package/dist/admin/admin/src/components/ErrorElement.mjs +10 -3
  8. package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/GuidedTour/Context.js +26 -1
  10. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  11. package/dist/admin/admin/src/components/GuidedTour/Context.mjs +26 -1
  12. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js +15 -0
  14. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -0
  15. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs +13 -0
  16. package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -0
  17. package/dist/admin/admin/src/components/GuidedTour/Overview.js +2 -1
  18. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  19. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +2 -1
  20. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +162 -25
  22. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
  23. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +164 -27
  24. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +28 -9
  26. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
  27. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +30 -11
  28. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
  30. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
  32. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +2 -1
  34. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
  35. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +2 -1
  36. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +3 -2
  38. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  39. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +3 -2
  40. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/Layouts/ContentLayout.js +3 -2
  42. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  43. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +3 -2
  44. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +65 -32
  46. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  47. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +66 -33
  48. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  49. package/dist/admin/admin/src/components/Layouts/Layout.js +29 -6
  50. package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
  51. package/dist/admin/admin/src/components/Layouts/Layout.mjs +30 -7
  52. package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
  53. package/dist/admin/admin/src/components/LeftMenu.js +147 -92
  54. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  55. package/dist/admin/admin/src/components/LeftMenu.mjs +131 -95
  56. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  57. package/dist/admin/admin/src/components/MainNav/MainNav.js +20 -6
  58. package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
  59. package/dist/admin/admin/src/components/MainNav/MainNav.mjs +20 -6
  60. package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
  61. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +157 -0
  62. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -0
  63. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +154 -0
  64. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -0
  65. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +65 -0
  66. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -0
  67. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +63 -0
  68. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -0
  69. package/dist/admin/admin/src/components/MainNav/NavLink.js +2 -1
  70. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  71. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -1
  72. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  73. package/dist/admin/admin/src/components/MainNav/NavUser.js +39 -22
  74. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  75. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +39 -22
  76. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  77. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +8 -1
  78. package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
  79. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +9 -2
  80. package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
  81. package/dist/admin/admin/src/components/NpsSurvey.js +161 -120
  82. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  83. package/dist/admin/admin/src/components/NpsSurvey.mjs +162 -121
  84. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  85. package/dist/admin/admin/src/components/PageHelpers.js +1 -1
  86. package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
  87. package/dist/admin/admin/src/components/PageHelpers.mjs +1 -1
  88. package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
  89. package/dist/admin/admin/src/components/Providers.js +2 -4
  90. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  91. package/dist/admin/admin/src/components/Providers.mjs +2 -4
  92. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  93. package/dist/admin/admin/src/components/SubNav.js +98 -33
  94. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  95. package/dist/admin/admin/src/components/SubNav.mjs +99 -34
  96. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  97. package/dist/admin/admin/src/components/UpsellBanner.js +3 -2
  98. package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
  99. package/dist/admin/admin/src/components/UpsellBanner.mjs +3 -2
  100. package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
  101. package/dist/admin/admin/src/constants/theme.js +12 -0
  102. package/dist/admin/admin/src/constants/theme.js.map +1 -0
  103. package/dist/admin/admin/src/constants/theme.mjs +9 -0
  104. package/dist/admin/admin/src/constants/theme.mjs.map +1 -0
  105. package/dist/admin/admin/src/features/Notifications.js +14 -7
  106. package/dist/admin/admin/src/features/Notifications.js.map +1 -1
  107. package/dist/admin/admin/src/features/Notifications.mjs +15 -8
  108. package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
  109. package/dist/admin/admin/src/features/Tracking.js +7 -2
  110. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  111. package/dist/admin/admin/src/features/Tracking.mjs +7 -2
  112. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  113. package/dist/admin/admin/src/hooks/useAIAvailability.js +13 -0
  114. package/dist/admin/admin/src/hooks/useAIAvailability.js.map +1 -0
  115. package/dist/admin/admin/src/hooks/useAIAvailability.mjs +11 -0
  116. package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +1 -0
  117. package/dist/admin/admin/src/hooks/useDeviceType.js +43 -0
  118. package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -0
  119. package/dist/admin/admin/src/hooks/useDeviceType.mjs +22 -0
  120. package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -0
  121. package/dist/admin/admin/src/hooks/useMediaQuery.js +70 -0
  122. package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -0
  123. package/dist/admin/admin/src/hooks/useMediaQuery.mjs +46 -0
  124. package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -0
  125. package/dist/admin/admin/src/hooks/useMenu.js +19 -0
  126. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  127. package/dist/admin/admin/src/hooks/useMenu.mjs +19 -0
  128. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  129. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -2
  130. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  131. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -2
  132. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  133. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +11 -7
  134. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
  135. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +11 -7
  136. package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
  137. package/dist/admin/admin/src/pages/Auth/components/Login.js +3 -0
  138. package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
  139. package/dist/admin/admin/src/pages/Auth/components/Login.mjs +3 -0
  140. package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
  141. package/dist/admin/admin/src/pages/Home/HomePage.js +56 -54
  142. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  143. package/dist/admin/admin/src/pages/Home/HomePage.mjs +56 -54
  144. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  145. package/dist/admin/admin/src/pages/ProfilePage.js +54 -51
  146. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  147. package/dist/admin/admin/src/pages/ProfilePage.mjs +55 -52
  148. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  149. package/dist/admin/admin/src/pages/Settings/Layout.js +42 -6
  150. package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
  151. package/dist/admin/admin/src/pages/Settings/Layout.mjs +43 -7
  152. package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
  153. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +44 -32
  154. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  155. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +45 -33
  156. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  157. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +13 -2
  158. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  159. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +14 -3
  160. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  161. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +1 -1
  162. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
  163. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs +2 -2
  164. package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
  165. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -3
  166. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
  167. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +5 -4
  168. package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
  169. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -3
  170. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
  171. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +5 -4
  172. package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
  173. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -3
  174. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
  175. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +5 -4
  176. package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
  177. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +36 -32
  178. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  179. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +36 -32
  180. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  181. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -1
  182. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  183. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
  184. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  185. package/dist/admin/admin/src/render.js +6 -1
  186. package/dist/admin/admin/src/render.js.map +1 -1
  187. package/dist/admin/admin/src/render.mjs +6 -1
  188. package/dist/admin/admin/src/render.mjs.map +1 -1
  189. package/dist/admin/admin/src/services/api.js +2 -1
  190. package/dist/admin/admin/src/services/api.js.map +1 -1
  191. package/dist/admin/admin/src/services/api.mjs +2 -1
  192. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  193. package/dist/admin/admin/src/services/auth.js +13 -2
  194. package/dist/admin/admin/src/services/auth.js.map +1 -1
  195. package/dist/admin/admin/src/services/auth.mjs +12 -3
  196. package/dist/admin/admin/src/services/auth.mjs.map +1 -1
  197. package/dist/admin/admin/src/translations/en.json.js +3 -0
  198. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  199. package/dist/admin/admin/src/translations/en.json.mjs +3 -0
  200. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  201. package/dist/admin/ee/admin/src/components/GlobalNotifications.js +11 -0
  202. package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -0
  203. package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs +9 -0
  204. package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -0
  205. package/dist/admin/ee/admin/src/hooks/useAIAvailability.js +11 -0
  206. package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -0
  207. package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs +9 -0
  208. package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -0
  209. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js +82 -0
  210. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -0
  211. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs +80 -0
  212. package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -0
  213. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +102 -0
  214. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -0
  215. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +100 -0
  216. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -0
  217. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -1
  218. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  219. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -1
  220. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  221. package/dist/admin/ee/admin/src/services/ai.js +33 -0
  222. package/dist/admin/ee/admin/src/services/ai.js.map +1 -0
  223. package/dist/admin/ee/admin/src/services/ai.mjs +29 -0
  224. package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -0
  225. package/dist/admin/ee.js +4 -0
  226. package/dist/admin/ee.js.map +1 -1
  227. package/dist/admin/ee.mjs +2 -0
  228. package/dist/admin/ee.mjs.map +1 -1
  229. package/dist/admin/index.js +13 -0
  230. package/dist/admin/index.js.map +1 -1
  231. package/dist/admin/index.mjs +5 -0
  232. package/dist/admin/index.mjs.map +1 -1
  233. package/dist/admin/src/components/GuidedTour/Context.d.ts +11 -0
  234. package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +6 -0
  235. package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +7 -16
  236. package/dist/admin/src/components/GuidedTour/Tours.d.ts +1 -22
  237. package/dist/admin/src/components/LeftMenu.d.ts +2 -2
  238. package/dist/admin/src/components/MainNav/MainNavLinks.d.ts +11 -0
  239. package/dist/admin/src/components/MainNav/NavBurgerMenu.d.ts +9 -0
  240. package/dist/admin/src/components/MainNav/NavUser.d.ts +5 -4
  241. package/dist/admin/src/components/SubNav.d.ts +18 -5
  242. package/dist/admin/src/constants/theme.d.ts +7 -0
  243. package/dist/admin/src/core/store/configure.d.ts +2 -2
  244. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  245. package/dist/admin/src/ee.d.ts +2 -0
  246. package/dist/admin/src/features/Tracking.d.ts +21 -2
  247. package/dist/admin/src/hooks/useAIAvailability.d.ts +5 -0
  248. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  249. package/dist/admin/src/hooks/useDeviceType.d.ts +6 -0
  250. package/dist/admin/src/hooks/useMediaQuery.d.ts +21 -0
  251. package/dist/admin/src/hooks/useMenu.d.ts +9 -1
  252. package/dist/admin/src/index.d.ts +6 -0
  253. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  254. package/dist/admin/src/pages/Settings/components/SettingsNav.d.ts +3 -6
  255. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  256. package/dist/admin/src/selectors.d.ts +2 -2
  257. package/dist/admin/src/services/admin.d.ts +7 -6
  258. package/dist/admin/src/services/api.d.ts +1 -1
  259. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  260. package/dist/admin/src/services/auth.d.ts +21 -12
  261. package/dist/admin/src/services/contentApi.d.ts +1 -1
  262. package/dist/admin/src/services/contentManager.d.ts +1 -1
  263. package/dist/admin/src/services/homepage.d.ts +3 -3
  264. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  265. package/dist/admin/src/services/users.d.ts +8 -8
  266. package/dist/admin/src/services/webhooks.d.ts +2 -2
  267. package/dist/admin/tests/utils.d.ts +1 -1
  268. package/dist/ee/admin/src/components/GlobalNotifications.d.ts +1 -0
  269. package/dist/ee/admin/src/hooks/useAIAvailability.d.ts +1 -0
  270. package/dist/ee/admin/src/hooks/useAIUsageWarning.d.ts +5 -0
  271. package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
  272. package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +1 -0
  273. package/dist/ee/admin/src/services/ai.d.ts +9 -0
  274. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  275. package/dist/ee/server/src/ai/controllers/ai.d.ts +7 -0
  276. package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -0
  277. package/dist/ee/server/src/ai/routes/ai.d.ts +13 -0
  278. package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -0
  279. package/dist/ee/server/src/controllers/admin.d.ts +3 -0
  280. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  281. package/dist/ee/server/src/controllers/index.d.ts +3 -0
  282. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  283. package/dist/ee/server/src/index.d.ts +15 -187
  284. package/dist/ee/server/src/index.d.ts.map +1 -1
  285. package/dist/server/ee/server/src/ai/controllers/ai.js +218 -0
  286. package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -0
  287. package/dist/server/ee/server/src/ai/controllers/ai.mjs +216 -0
  288. package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -0
  289. package/dist/server/ee/server/src/ai/routes/ai.js +32 -0
  290. package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -0
  291. package/dist/server/ee/server/src/ai/routes/ai.mjs +30 -0
  292. package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -0
  293. package/dist/server/ee/server/src/controllers/admin.js +4 -1
  294. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  295. package/dist/server/ee/server/src/controllers/admin.mjs +4 -1
  296. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  297. package/dist/server/ee/server/src/index.js +37 -23
  298. package/dist/server/ee/server/src/index.js.map +1 -1
  299. package/dist/server/ee/server/src/index.mjs +37 -23
  300. package/dist/server/ee/server/src/index.mjs.map +1 -1
  301. package/dist/server/server/src/controllers/admin.js +5 -1
  302. package/dist/server/server/src/controllers/admin.js.map +1 -1
  303. package/dist/server/server/src/controllers/admin.mjs +5 -1
  304. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  305. package/dist/server/server/src/controllers/authenticated-user.js +15 -0
  306. package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
  307. package/dist/server/server/src/controllers/authenticated-user.mjs +15 -0
  308. package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
  309. package/dist/server/server/src/routes/users.js +10 -0
  310. package/dist/server/server/src/routes/users.js.map +1 -1
  311. package/dist/server/server/src/routes/users.mjs +10 -0
  312. package/dist/server/server/src/routes/users.mjs.map +1 -1
  313. package/dist/server/server/src/services/user.js +113 -1
  314. package/dist/server/server/src/services/user.js.map +1 -1
  315. package/dist/server/server/src/services/user.mjs +113 -1
  316. package/dist/server/server/src/services/user.mjs.map +1 -1
  317. package/dist/server/src/controllers/admin.d.ts +2 -0
  318. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  319. package/dist/server/src/controllers/authenticated-user.d.ts +1 -0
  320. package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
  321. package/dist/server/src/controllers/index.d.ts +3 -0
  322. package/dist/server/src/controllers/index.d.ts.map +1 -1
  323. package/dist/server/src/index.d.ts +7 -0
  324. package/dist/server/src/index.d.ts.map +1 -1
  325. package/dist/server/src/routes/users.d.ts.map +1 -1
  326. package/dist/server/src/services/index.d.ts +4 -0
  327. package/dist/server/src/services/index.d.ts.map +1 -1
  328. package/dist/server/src/services/user.d.ts +4 -0
  329. package/dist/server/src/services/user.d.ts.map +1 -1
  330. package/dist/shared/contracts/admin.d.ts +1 -0
  331. package/dist/shared/contracts/admin.d.ts.map +1 -1
  332. package/dist/shared/contracts/ai.d.ts +40 -0
  333. package/dist/shared/contracts/ai.d.ts.map +1 -0
  334. package/dist/shared/contracts/users.d.ts +32 -0
  335. package/dist/shared/contracts/users.d.ts.map +1 -1
  336. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"PageHelpers.mjs","sources":["../../../../../admin/src/components/PageHelpers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100vh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n"],"names":["PageMain","children","restProps","_jsx","Main","Loading","height","aria-busy","Flex","alignItems","justifyContent","Loader","Error","props","formatMessage","useIntl","EmptyStateLayout","icon","WarningCircle","width","content","id","defaultMessage","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","action","Protect","permissions","userPermissions","useAuth","state","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","matchingPermissions","filter","permission","findIndex","perm","subject","shouldCheckConditions","some","Array","isArray","conditions","length","isLoading","error","data","useCheckPermissionsQuery","map","skip","React","useEffect","type","message","permissionsData","canAccess","includes","_Fragment","Title","title","document","Page"],"mappings":";;;;;;;;;;;AA2BA,MAAMA,WAAW,CAAC,EAAEC,QAAQ,EAAE,GAAGC,SAA0B,EAAA,GAAA;AACzD,IAAA,qBAAOC,GAACC,CAAAA,IAAAA,EAAAA;AAAM,QAAA,GAAGF,SAAS;AAAGD,QAAAA,QAAAA,EAAAA;;AAC/B,CAAA;AAYA;;;;AAIC,IACD,MAAMI,OAAU,GAAA,CAAC,EAAEJ,QAAAA,GAAW,kBAAkB,EAAgB,GAAA;AAC9D,IAAA,qBACEE,GAACH,CAAAA,QAAAA,EAAAA;QAASM,MAAO,EAAA,OAAA;QAAQC,WAAW,EAAA,IAAA;AAClC,QAAA,QAAA,gBAAAJ,GAACK,CAAAA,IAAAA,EAAAA;YAAKC,UAAW,EAAA,QAAA;YAASH,MAAO,EAAA,MAAA;YAAOI,cAAe,EAAA,QAAA;AACrD,YAAA,QAAA,gBAAAP,GAACQ,CAAAA,MAAAA,EAAAA;AAAQV,gBAAAA,QAAAA,EAAAA;;;;AAIjB,CAAA;AAOA;;;;;;;IAUA,MAAMW,QAAQ,CAACC,KAAAA,GAAAA;IACb,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEZ,GAACH,CAAAA,QAAAA,EAAAA;QAASM,MAAO,EAAA,MAAA;AACf,QAAA,QAAA,gBAAAH,GAACK,CAAAA,IAAAA,EAAAA;YAAKC,UAAW,EAAA,QAAA;YAASH,MAAO,EAAA,MAAA;YAAOI,cAAe,EAAA,QAAA;AACrD,YAAA,QAAA,gBAAAP,GAACa,CAAAA,gBAAAA,EAAAA;AACCC,gBAAAA,IAAAA,gBAAMd,GAACe,CAAAA,aAAAA,EAAAA;oBAAcC,KAAM,EAAA;;AAC3BC,gBAAAA,OAAAA,EAASN,aAAc,CAAA;oBACrBO,EAAI,EAAA,iBAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACC,gBAAA,GAAGT;;;;AAKd,CAAA;AAOA;;;;;;IAOA,MAAMU,gBAAgB,CAACV,KAAAA,GAAAA;IACrB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEZ,GAACH,CAAAA,QAAAA,EAAAA;QAASM,MAAO,EAAA,MAAA;AACf,QAAA,QAAA,gBAAAH,GAACK,CAAAA,IAAAA,EAAAA;YAAKC,UAAW,EAAA,QAAA;YAASH,MAAO,EAAA,MAAA;YAAOI,cAAe,EAAA,QAAA;AACrD,YAAA,QAAA,gBAAAP,GAACqB,CAAAA,GAAAA,EAAAA;gBAAIC,QAAS,EAAA,KAAA;AACZ,gBAAA,QAAA,gBAAAtB,GAACa,CAAAA,gBAAAA,EAAAA;AACCC,oBAAAA,IAAAA,gBAAMd,GAACuB,CAAAA,gBAAAA,EAAAA;wBAAiBP,KAAM,EAAA;;AAC9BC,oBAAAA,OAAAA,EAASN,aAAc,CAAA;wBACrBO,EAAI,EAAA,qDAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA,CAAA;AACC,oBAAA,GAAGT;;;;;AAMhB,CAAA;AAOA;;;;;;IAOA,MAAMc,SAAS,CAACd,KAAAA,GAAAA;IACd,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEZ,GAACH,CAAAA,QAAAA,EAAAA;QAASM,MAAO,EAAA,MAAA;QAAOsB,UAAW,EAAA,YAAA;AACjC,QAAA,QAAA,gBAAAzB,GAACK,CAAAA,IAAAA,EAAAA;YAAKC,UAAW,EAAA,QAAA;YAASH,MAAO,EAAA,MAAA;YAAOa,KAAM,EAAA,MAAA;YAAOT,cAAe,EAAA,QAAA;AAClE,YAAA,QAAA,gBAAAP,GAACqB,CAAAA,GAAAA,EAAAA;gBAAIC,QAAS,EAAA,KAAA;AACZ,gBAAA,QAAA,gBAAAtB,GAACa,CAAAA,gBAAAA,EAAAA;AACCC,oBAAAA,IAAAA,gBAAMd,GAAC0B,CAAAA,cAAAA,EAAAA;wBAAeV,KAAM,EAAA;;AAC5BW,oBAAAA,MAAAA,EAAQjB,MAAMiB,MAAM;AACpBV,oBAAAA,OAAAA,EAASN,aAAc,CAAA;wBACrBO,EAAI,EAAA,kDAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA,CAAA;AACC,oBAAA,GAAGT;;;;;AAMhB,CAAA;AAkBA;;;;;;IAOA,MAAMkB,UAAU,CAAC,EAAEC,cAAc,EAAE,EAAE/B,QAAQ,EAAgB,GAAA;AAC3D,IAAA,MAAMgC,kBAAkBC,OAAQ,CAAA,SAAA,EAAW,CAACC,KAAAA,GAAUA,MAAMH,WAAW,CAAA;IACvE,MAAM,EAAEI,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;IAEpD,MAAMC,mBAAAA,GAAsBR,gBAAgBS,MAAM,CAChD,CAACC,UACCX,GAAAA,WAAAA,CAAYY,SAAS,CACnB,CAACC,IAAAA,GAASA,KAAKf,MAAM,KAAKa,WAAWb,MAAM,IAAIe,KAAKC,OAAO,KAAKH,UAAWG,CAAAA,OAAO,CAC/E,IAAA,CAAA,CAAA;AAGT,IAAA,MAAMC,wBAAwBN,mBAAoBO,CAAAA,IAAI,CACpD,CAACH,OAASI,KAAMC,CAAAA,OAAO,CAACL,IAAAA,CAAKM,UAAU,CAAKN,IAAAA,IAAAA,CAAKM,UAAU,CAACC,MAAM,GAAG,CAAA,CAAA;IAGvE,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGC,wBACjC,CAAA;AACExB,QAAAA,WAAAA,EAAaS,mBAAoBgB,CAAAA,GAAG,CAAC,CAACZ,QAAU;AAC9Cf,gBAAAA,MAAAA,EAAQe,KAAKf,MAAM;AACnBgB,gBAAAA,OAAAA,EAASD,KAAKC;aAChB,CAAA;KAEF,EAAA;AACEY,QAAAA,IAAAA,EAAM,CAACX;AACT,KAAA,CAAA;AAGFY,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIN,KAAO,EAAA;YACTlB,kBAAmB,CAAA;gBACjByB,IAAM,EAAA,QAAA;AACNC,gBAAAA,OAAAA,EAASvB,cAAee,CAAAA,KAAAA;AAC1B,aAAA,CAAA;AACF;KACC,EAAA;AAACA,QAAAA,KAAAA;AAAOf,QAAAA,cAAAA;AAAgBH,QAAAA;AAAmB,KAAA,CAAA;AAE9C,IAAA,IAAIiB,SAAW,EAAA;AACb,QAAA,qBAAOlD,GAACE,CAAAA,OAAAA,EAAAA,EAAAA,CAAAA;AACV;AAEA,IAAA,IAAIiD,KAAO,EAAA;AACT,QAAA,qBAAOnD,GAACS,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;AACV;AAEA,IAAA,MAAM,EAAE2C,IAAMQ,EAAAA,eAAe,EAAE,GAAGR,QAAQ,EAAC;IAE3C,MAAMS,SAAAA,GACJjB,qBAAyBgB,IAAAA,eAAAA,GACrB,CAACA,eAAAA,CAAgBE,QAAQ,CAAC,KAAA,CAAA,GAC1BxB,mBAAoBW,CAAAA,MAAM,GAAG,CAAA;AAEnC,IAAA,IAAI,CAACY,SAAW,EAAA;AACd,QAAA,qBAAO7D,GAACoB,CAAAA,aAAAA,EAAAA,EAAAA,CAAAA;AACV;IAEA,qBACEpB,GAAA,CAAA+D,QAAA,EAAA;kBACG,OAAOjE,QAAAA,KAAa,aAAaA,QAAS,CAAA;YAAE+B,WAAaS,EAAAA;SAAyBxC,CAAAA,GAAAA;;AAGzF,CAAA;AASA;;;;AAIC,IACD,MAAMkE,KAAQ,GAAA,CAAC,EAAElE,QAAAA,EAAUmE,KAAK,EAAc,GAAA;AAC5CT,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACdS,QAAAA,QAAAA,CAASD,KAAK,GAAG,CAAC,EAAEA,KAAAA,CAAM,SAAS,CAAC;KACnC,EAAA;AAACA,QAAAA;AAAM,KAAA,CAAA;IAEV,OAAO,IAAA;AACT,CAAA;AAEA,MAAME,IAAO,GAAA;AACX1D,IAAAA,KAAAA;AACAP,IAAAA,OAAAA;AACAkB,IAAAA,aAAAA;AACAQ,IAAAA,OAAAA;AACAJ,IAAAA,MAAAA;IACAvB,IAAMJ,EAAAA,QAAAA;AACNmE,IAAAA;AACF;;;;"}
1
+ {"version":3,"file":"PageHelpers.mjs","sources":["../../../../../admin/src/components/PageHelpers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n EmptyStateLayout,\n type EmptyStateLayoutProps,\n Flex,\n Loader,\n Main,\n MainProps,\n} from '@strapi/design-system';\nimport { WarningCircle } from '@strapi/icons';\nimport { EmptyPermissions, EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\n\nimport { useAuth, Permission } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { useAPIErrorHandler } from '../hooks/useAPIErrorHandler';\nimport { useCheckPermissionsQuery } from '../services/auth';\n\n/* -------------------------------------------------------------------------------------------------\n * Main\n * -----------------------------------------------------------------------------------------------*/\ninterface PageMainProps extends MainProps {\n children: React.ReactNode;\n}\n\nconst PageMain = ({ children, ...restProps }: PageMainProps) => {\n return <Main {...restProps}>{children}</Main>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Loading\n * -----------------------------------------------------------------------------------------------*/\ninterface LoadingProps {\n /**\n * @default 'Loading content.'\n */\n children?: React.ReactNode;\n}\n\n/**\n * @public\n * @description A loading component that should be rendered as the page\n * whilst you load the content for the aforementioned page.\n */\nconst Loading = ({ children = 'Loading content.' }: LoadingProps) => {\n return (\n <PageMain height=\"100dvh\" aria-busy={true}>\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Loader>{children}</Loader>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Error\n * -----------------------------------------------------------------------------------------------*/\ninterface ErrorProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * TODO: should we start passing our errors here so they're persisted on the screen?\n * This could follow something similar to how the global app error works...?\n */\n\n/**\n * @public\n * @description An error component that should be rendered as the page\n * when an error occurs.\n */\nconst Error = (props: ErrorProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <EmptyStateLayout\n icon={<WarningCircle width=\"16rem\" />}\n content={formatMessage({\n id: 'anErrorOccurred',\n defaultMessage: 'Whoops! Something went wrong. Please, try again.',\n })}\n {...props}\n />\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoPermissions\n * -----------------------------------------------------------------------------------------------*/\ninterface NoPermissionsProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when the user does not have the permissions to access the content.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoPermissions = (props: NoPermissionsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\">\n <Flex alignItems=\"center\" height=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyPermissions width=\"16rem\" />}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-permissions',\n defaultMessage: \"You don't have the permissions to access that content\",\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NoData\n * -----------------------------------------------------------------------------------------------*/\ninterface NoDataProps extends Partial<EmptyStateLayoutProps> {}\n\n/**\n * @public\n * @description A component that should be rendered as the page\n * when there is no data available to display.\n * This component does not check any permissions, it's up to you to decide\n * when it should be rendered.\n */\nconst NoData = (props: NoDataProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <PageMain height=\"100%\" background=\"neutral100\">\n <Flex alignItems=\"center\" height=\"100%\" width=\"100%\" justifyContent=\"center\">\n <Box minWidth=\"50%\">\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n action={props.action}\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n {...props}\n />\n </Box>\n </Flex>\n </PageMain>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Protect\n * -----------------------------------------------------------------------------------------------*/\nexport interface ProtectProps {\n /**\n * The children to render if the user has the required permissions.\n * If providing a function, it will be called with an object containing\n * the permissions the user has based on the array you passed to the component.\n */\n children: React.ReactNode | ((args: { permissions: Permission[] }) => React.ReactNode);\n /**\n * The permissions the user needs to have to access the content.\n */\n permissions?: Array<Omit<Partial<Permission>, 'action'> & Pick<Permission, 'action'>>;\n}\n\n/**\n * @public\n * @description A wrapper component that should be used to protect a page. It will check the permissions\n * you pass to it and render the children if the user has the required permissions. If a user does not have ALL\n * the required permissions, it will redirect the user to the home page. Whilst these checks happen it will render\n * the loading component and should the check fail it will render the error component with a notification.\n */\nconst Protect = ({ permissions = [], children }: ProtectProps) => {\n const userPermissions = useAuth('Protect', (state) => state.permissions);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const matchingPermissions = userPermissions.filter(\n (permission) =>\n permissions.findIndex(\n (perm) => perm.action === permission.action && perm.subject === permission.subject\n ) >= 0\n );\n\n const shouldCheckConditions = matchingPermissions.some(\n (perm) => Array.isArray(perm.conditions) && perm.conditions.length > 0\n );\n\n const { isLoading, error, data } = useCheckPermissionsQuery(\n {\n permissions: matchingPermissions.map((perm) => ({\n action: perm.action,\n subject: perm.subject,\n })),\n },\n {\n skip: !shouldCheckConditions,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n if (isLoading) {\n return <Loading />;\n }\n\n if (error) {\n return <Error />;\n }\n\n const { data: permissionsData } = data || {};\n\n const canAccess =\n shouldCheckConditions && permissionsData\n ? !permissionsData.includes(false)\n : matchingPermissions.length > 0;\n\n if (!canAccess) {\n return <NoPermissions />;\n }\n\n return (\n <>\n {typeof children === 'function' ? children({ permissions: matchingPermissions }) : children}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Title\n * -----------------------------------------------------------------------------------------------*/\nexport interface TitleProps {\n children: string;\n}\n\n/**\n * @public\n * @description This component takes the children (must be a string) and sets\n * it as the title of the html.\n */\nconst Title = ({ children: title }: TitleProps) => {\n React.useEffect(() => {\n document.title = `${title} | Strapi`;\n }, [title]);\n\n return null;\n};\n\nconst Page = {\n Error,\n Loading,\n NoPermissions,\n Protect,\n NoData,\n Main: PageMain,\n Title,\n};\n\nexport { Page };\nexport type { ErrorProps, LoadingProps, NoPermissionsProps, PageMainProps as MainProps };\n"],"names":["PageMain","children","restProps","_jsx","Main","Loading","height","aria-busy","Flex","alignItems","justifyContent","Loader","Error","props","formatMessage","useIntl","EmptyStateLayout","icon","WarningCircle","width","content","id","defaultMessage","NoPermissions","Box","minWidth","EmptyPermissions","NoData","background","EmptyDocuments","action","Protect","permissions","userPermissions","useAuth","state","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","matchingPermissions","filter","permission","findIndex","perm","subject","shouldCheckConditions","some","Array","isArray","conditions","length","isLoading","error","data","useCheckPermissionsQuery","map","skip","React","useEffect","type","message","permissionsData","canAccess","includes","_Fragment","Title","title","document","Page"],"mappings":"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"}
@@ -10,7 +10,7 @@ var Configuration = require('../features/Configuration.js');
10
10
  var Notifications = require('../features/Notifications.js');
11
11
  var StrapiApp = require('../features/StrapiApp.js');
12
12
  var Tracking = require('../features/Tracking.js');
13
- var Context = require('./GuidedTour/Context.js');
13
+ var GuidedTourProvider = require('./GuidedTour/GuidedTourProvider.js');
14
14
  var LanguageProvider = require('./LanguageProvider.js');
15
15
  var Theme = require('./Theme.js');
16
16
 
@@ -22,7 +22,6 @@ const queryClient = new reactQuery.QueryClient({
22
22
  }
23
23
  });
24
24
  const Providers = ({ children, strapi, store })=>{
25
- const isGuidedTourEnabled = process.env.NODE_ENV !== 'test';
26
25
  return /*#__PURE__*/ jsxRuntime.jsx(StrapiApp.StrapiAppProvider, {
27
26
  components: strapi.library.components,
28
27
  customFields: strapi.customFields,
@@ -49,8 +48,7 @@ const Providers = ({ children, strapi, store })=>{
49
48
  themes: strapi.configurations.themes,
50
49
  children: /*#__PURE__*/ jsxRuntime.jsx(Notifications.NotificationsProvider, {
51
50
  children: /*#__PURE__*/ jsxRuntime.jsx(Tracking.TrackingProvider, {
52
- children: /*#__PURE__*/ jsxRuntime.jsx(Context.GuidedTourContext, {
53
- enabled: isGuidedTourEnabled,
51
+ children: /*#__PURE__*/ jsxRuntime.jsx(GuidedTourProvider.GuidedTourProvider, {
54
52
  children: /*#__PURE__*/ jsxRuntime.jsx(Configuration.ConfigurationProvider, {
55
53
  defaultAuthLogo: strapi.configurations.authLogo,
56
54
  defaultMenuLogo: strapi.configurations.menuLogo,
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourContext } from './GuidedTour/Context';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n const isGuidedTourEnabled = process.env.NODE_ENV !== 'test';\n\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourContext enabled={isGuidedTourEnabled}>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourContext>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","isGuidedTourEnabled","process","env","NODE_ENV","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourContext","enabled","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,MAAMC,mBAAsBC,GAAAA,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,MAAA;AAErD,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYR,EAAAA,MAAAA,CAAOS,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcV,OAAOU,YAAY;AACjCC,QAAAA,OAAAA,EAASX,OAAOW,OAAO;QACvBC,MAAQZ,EAAAA,MAAAA,CAAOS,OAAO,CAACG,MAAM;QAC7BC,IAAMb,EAAAA,MAAAA,CAAOc,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4Bf,OAAOe,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWhB,OAAOgB,SAAS;AAC3BC,QAAAA,OAAAA,EAASjB,OAAOiB,OAAO;AACvBC,QAAAA,IAAAA,EAAMlB,OAAOkB,IAAI;AACjBC,QAAAA,eAAAA,EAAiBnB,OAAOmB,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBtB,OAAOoB,gBAAgB,CAACC,MAAMC,YAAcrB,EAAAA,KAAAA,CAAAA;AACtFsB,QAAAA,aAAAA,EAAevB,OAAOuB,aAAa;QACnCC,QAAUxB,EAAAA,MAAAA,CAAOc,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASxB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAK,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQlC,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAa,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU/B,EAAAA,MAAAA,CAAOgC,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQnC,EAAAA,MAAAA,CAAOgC,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,yBAAAA,EAAAA;4CAAkBC,OAASrC,EAAAA,mBAAAA;AAC1B,4CAAA,QAAA,gBAAAI,cAACkC,CAAAA,mCAAAA,EAAAA;gDACCC,eAAiBzC,EAAAA,MAAAA,CAAOgC,cAAc,CAACU,QAAQ;gDAC/CC,eAAiB3C,EAAAA,MAAAA,CAAOgC,cAAc,CAACY,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyB7C,MAAOgC,CAAAA,cAAc,CAACc,aAAa,CAACC,QAAQ;AAEpEhD,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/GuidedTourProvider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,qCAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,mCAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
@@ -8,7 +8,7 @@ import { ConfigurationProvider } from '../features/Configuration.mjs';
8
8
  import { NotificationsProvider } from '../features/Notifications.mjs';
9
9
  import { StrapiAppProvider } from '../features/StrapiApp.mjs';
10
10
  import { TrackingProvider } from '../features/Tracking.mjs';
11
- import { GuidedTourContext } from './GuidedTour/Context.mjs';
11
+ import { GuidedTourProvider } from './GuidedTour/GuidedTourProvider.mjs';
12
12
  import { LanguageProvider } from './LanguageProvider.mjs';
13
13
  import { Theme } from './Theme.mjs';
14
14
 
@@ -20,7 +20,6 @@ const queryClient = new QueryClient({
20
20
  }
21
21
  });
22
22
  const Providers = ({ children, strapi, store })=>{
23
- const isGuidedTourEnabled = process.env.NODE_ENV !== 'test';
24
23
  return /*#__PURE__*/ jsx(StrapiAppProvider, {
25
24
  components: strapi.library.components,
26
25
  customFields: strapi.customFields,
@@ -47,8 +46,7 @@ const Providers = ({ children, strapi, store })=>{
47
46
  themes: strapi.configurations.themes,
48
47
  children: /*#__PURE__*/ jsx(NotificationsProvider, {
49
48
  children: /*#__PURE__*/ jsx(TrackingProvider, {
50
- children: /*#__PURE__*/ jsx(GuidedTourContext, {
51
- enabled: isGuidedTourEnabled,
49
+ children: /*#__PURE__*/ jsx(GuidedTourProvider, {
52
50
  children: /*#__PURE__*/ jsx(ConfigurationProvider, {
53
51
  defaultAuthLogo: strapi.configurations.authLogo,
54
52
  defaultMenuLogo: strapi.configurations.menuLogo,
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourContext } from './GuidedTour/Context';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n const isGuidedTourEnabled = process.env.NODE_ENV !== 'test';\n\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourContext enabled={isGuidedTourEnabled}>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourContext>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","isGuidedTourEnabled","process","env","NODE_ENV","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourContext","enabled","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,MAAMC,mBAAsBC,GAAAA,OAAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,MAAA;AAErD,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYR,EAAAA,MAAAA,CAAOS,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcV,OAAOU,YAAY;AACjCC,QAAAA,OAAAA,EAASX,OAAOW,OAAO;QACvBC,MAAQZ,EAAAA,MAAAA,CAAOS,OAAO,CAACG,MAAM;QAC7BC,IAAMb,EAAAA,MAAAA,CAAOc,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4Bf,OAAOe,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWhB,OAAOgB,SAAS;AAC3BC,QAAAA,OAAAA,EAASjB,OAAOiB,OAAO;AACvBC,QAAAA,IAAAA,EAAMlB,OAAOkB,IAAI;AACjBC,QAAAA,eAAAA,EAAiBnB,OAAOmB,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBtB,OAAOoB,gBAAgB,CAACC,MAAMC,YAAcrB,EAAAA,KAAAA,CAAAA;AACtFsB,QAAAA,aAAAA,EAAevB,OAAOuB,aAAa;QACnCC,QAAUxB,EAAAA,MAAAA,CAAOc,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASxB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAK,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQlC,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAa,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU/B,EAAAA,MAAAA,CAAOgC,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQnC,EAAAA,MAAAA,CAAOgC,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,iBAAAA,EAAAA;4CAAkBC,OAASrC,EAAAA,mBAAAA;AAC1B,4CAAA,QAAA,gBAAAI,GAACkC,CAAAA,qBAAAA,EAAAA;gDACCC,eAAiBzC,EAAAA,MAAAA,CAAOgC,cAAc,CAACU,QAAQ;gDAC/CC,eAAiB3C,EAAAA,MAAAA,CAAOgC,cAAc,CAACY,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyB7C,MAAOgC,CAAAA,cAAc,CAACc,aAAa,CAACC,QAAQ;AAEpEhD,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/GuidedTourProvider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,qBAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
@@ -6,19 +6,36 @@ var designSystem = require('@strapi/design-system');
6
6
  var icons = require('@strapi/icons');
7
7
  var reactRouterDom = require('react-router-dom');
8
8
  var styled = require('styled-components');
9
+ var theme = require('../constants/theme.js');
9
10
  var Tours = require('./GuidedTour/Tours.js');
10
11
 
11
- const Main = styled.styled(designSystem.SubNav)`
12
+ const MainSubNav = styled.styled(designSystem.SubNav)`
13
+ width: 100%;
14
+ height: calc(100dvh - ${theme.HEIGHT_TOP_NAVIGATION} - 1px);
15
+ overflow: hidden;
12
16
  background-color: ${({ theme })=>theme.colors.neutral0};
13
- border-right: 1px solid ${({ theme })=>theme.colors.neutral150};
14
-
15
- scrollbar-width: none;
16
- -ms-overflow-style: none;
17
+ display: flex;
18
+ flex-direction: column;
19
+ border-right: 0;
20
+ box-shadow: none;
21
+ position: fixed;
22
+ top: calc(${theme.HEIGHT_TOP_NAVIGATION} + 1px);
23
+ left: 0;
24
+ z-index: 2;
17
25
 
18
- &::-webkit-scrollbar {
19
- display: none;
26
+ ${({ theme })=>theme.breakpoints.medium} {
27
+ position: sticky;
28
+ top: 0;
29
+ border-right: 1px solid ${({ theme })=>theme.colors.neutral150};
30
+ }
31
+ ${({ theme })=>theme.breakpoints.large} {
32
+ height: 100dvh;
20
33
  }
21
34
  `;
35
+ const Main = ({ children, ...props })=>/*#__PURE__*/ jsxRuntime.jsx(MainSubNav, {
36
+ ...props,
37
+ children: children
38
+ });
22
39
  const StyledLink = styled.styled(reactRouterDom.NavLink)`
23
40
  display: flex;
24
41
  align-items: center;
@@ -59,9 +76,10 @@ const StyledLink = styled.styled(reactRouterDom.NavLink)`
59
76
  }
60
77
  `;
61
78
  const Link = (props)=>{
62
- const { label, endAction, ...rest } = props;
79
+ const { label, endAction, handleClick, ...rest } = props;
63
80
  return /*#__PURE__*/ jsxRuntime.jsx(StyledLink, {
64
81
  ...rest,
82
+ onClick: handleClick,
65
83
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
66
84
  width: '100%',
67
85
  paddingLeft: 3,
@@ -92,14 +110,21 @@ const Link = (props)=>{
92
110
  })
93
111
  });
94
112
  };
95
- const StyledHeader = styled.styled(designSystem.Box)`
96
- height: 56px;
97
- display: flex;
98
- align-items: center;
99
- padding-left: ${({ theme })=>theme.spaces[5]};
113
+ const StyledHeader = styled.styled(designSystem.Flex)`
114
+ flex: 0 0 ${theme.HEIGHT_TOP_NAVIGATION};
115
+ height: ${theme.HEIGHT_TOP_NAVIGATION};
100
116
  `;
101
117
  const Header = ({ label })=>{
102
118
  return /*#__PURE__*/ jsxRuntime.jsx(StyledHeader, {
119
+ justifyContent: "space-between",
120
+ paddingLeft: {
121
+ initial: 4,
122
+ large: 5
123
+ },
124
+ paddingRight: {
125
+ initial: 4,
126
+ large: 5
127
+ },
103
128
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
104
129
  variant: "beta",
105
130
  tag: "h2",
@@ -109,6 +134,7 @@ const Header = ({ label })=>{
109
134
  };
110
135
  const Sections = ({ children, ...props })=>{
111
136
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
137
+ paddingTop: 4,
112
138
  paddingBottom: 4,
113
139
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
114
140
  tag: "ol",
@@ -148,7 +174,7 @@ const Sections = ({ children, ...props })=>{
148
174
  return children;
149
175
  }
150
176
  };
151
- const Section = ({ label, children, link, sectionId })=>{
177
+ const Section = ({ label, children, link, sectionId, badgeLabel })=>{
152
178
  const listId = React.useId();
153
179
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
154
180
  direction: "column",
@@ -156,14 +182,22 @@ const Section = ({ label, children, link, sectionId })=>{
156
182
  gap: 2,
157
183
  children: [
158
184
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
159
- paddingLeft: 5,
160
- paddingRight: 5,
185
+ paddingLeft: {
186
+ initial: 4,
187
+ large: 5
188
+ },
189
+ paddingRight: {
190
+ initial: 4,
191
+ large: 5
192
+ },
161
193
  children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
162
194
  position: "relative",
163
195
  justifyContent: "space-between",
196
+ gap: 2,
164
197
  children: [
165
198
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
166
199
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
200
+ paddingRight: 1,
167
201
  children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
168
202
  variant: "sigma",
169
203
  textColor: "neutral600",
@@ -171,16 +205,26 @@ const Section = ({ label, children, link, sectionId })=>{
171
205
  })
172
206
  })
173
207
  }),
174
- link && /*#__PURE__*/ jsxRuntime.jsx(GuidedTourTooltip, {
175
- sectionId: sectionId,
176
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
177
- label: link.label,
178
- variant: "ghost",
179
- withTooltip: true,
180
- onClick: link.onClik,
181
- size: "XS",
182
- children: /*#__PURE__*/ jsxRuntime.jsx(icons.Plus, {})
183
- })
208
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
209
+ gap: 1,
210
+ children: [
211
+ badgeLabel && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Badge, {
212
+ backgroundColor: "neutral150",
213
+ textColor: "neutral600",
214
+ children: badgeLabel
215
+ }),
216
+ link && /*#__PURE__*/ jsxRuntime.jsx(GuidedTourTooltip, {
217
+ sectionId: sectionId,
218
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
219
+ label: link.label,
220
+ variant: "ghost",
221
+ withTooltip: true,
222
+ onClick: link.onClick,
223
+ size: "XS",
224
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.Plus, {})
225
+ })
226
+ })
227
+ ]
184
228
  })
185
229
  ]
186
230
  })
@@ -191,8 +235,14 @@ const Section = ({ label, children, link, sectionId })=>{
191
235
  direction: "column",
192
236
  gap: "2px",
193
237
  alignItems: 'stretch',
194
- marginLeft: 2,
195
- marginRight: 2,
238
+ marginLeft: {
239
+ initial: 1,
240
+ large: 2
241
+ },
242
+ marginRight: {
243
+ initial: 1,
244
+ large: 2
245
+ },
196
246
  children: children.map((child, index)=>{
197
247
  return /*#__PURE__*/ jsxRuntime.jsx("li", {
198
248
  children: child
@@ -210,11 +260,7 @@ const SubSectionHeader = styled.styled.button`
210
260
  background: transparent;
211
261
  display: flex;
212
262
  align-items: center;
213
-
214
- height: 32px;
215
-
216
263
  border-radius: ${({ theme })=>theme.borderRadius};
217
-
218
264
  padding-left: ${({ theme })=>theme.spaces[3]};
219
265
  padding-right: ${({ theme })=>theme.spaces[3]};
220
266
  padding-top: ${({ theme })=>theme.spaces[2]};
@@ -284,13 +330,32 @@ const SubSection = ({ label, children })=>{
284
330
  ]
285
331
  });
286
332
  };
333
+ const PageWrapper = styled.styled(designSystem.Box)`
334
+ ${MainSubNav} {
335
+ background-color: transparent;
336
+ border-right: none;
337
+ }
338
+
339
+ ${({ theme })=>theme.breakpoints.medium} {
340
+ ${MainSubNav} {
341
+ top: 0;
342
+ }
343
+ }
344
+ `;
345
+ const Content = ({ children })=>{
346
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.ScrollArea, {
347
+ children: children
348
+ });
349
+ };
287
350
  const SubNav = {
288
351
  Main,
352
+ Content,
289
353
  Header,
290
354
  Link,
291
355
  Sections,
292
356
  Section,
293
- SubSection
357
+ SubSection,
358
+ PageWrapper
294
359
  };
295
360
 
296
361
  exports.SubNav = SubNav;
@@ -1 +1 @@
1
- {"version":3,"file":"SubNav.js","sources":["../../../../../admin/src/components/SubNav.tsx"],"sourcesContent":["import { useId, useState } from 'react';\n\nimport { Box, SubNav as DSSubNav, Flex, Typography, IconButton } from '@strapi/design-system';\nimport { ChevronDown, Plus } from '@strapi/icons';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { tours } from './GuidedTour/Tours';\n\nconst Main = styled(DSSubNav)`\n background-color: ${({ theme }) => theme.colors.neutral0};\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\nconst StyledLink = styled(NavLink)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.neutral800};\n\n &.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary700};\n font-weight: 500;\n `;\n }}\n }\n\n &:hover.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n `;\n }}\n }\n\n &:hover > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.neutral100};\n `;\n }}\n }\n\n &:focus-visible {\n outline-offset: -2px;\n }\n`;\n\nconst Link = (\n props: Omit<React.ComponentProps<typeof StyledLink>, 'label'> & {\n label: React.ReactNode;\n endAction?: React.ReactNode;\n }\n) => {\n const { label, endAction, ...rest } = props;\n return (\n <StyledLink {...rest}>\n <Box width={'100%'} paddingLeft={3} paddingRight={3} borderRadius={1}>\n <Flex justifyContent=\"space-between\" width=\"100%\" gap={1}>\n <Typography\n tag=\"div\"\n lineHeight=\"32px\"\n width=\"100%\"\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n {label}\n </Typography>\n <Flex gap={2}>{endAction}</Flex>\n </Flex>\n </Box>\n </StyledLink>\n );\n};\n\nconst StyledHeader = styled(Box)`\n height: 56px;\n display: flex;\n align-items: center;\n padding-left: ${({ theme }) => theme.spaces[5]};\n`;\n\nconst Header = ({ label }: { label: string }) => {\n return (\n <StyledHeader>\n <Typography variant=\"beta\" tag=\"h2\">\n {label}\n </Typography>\n </StyledHeader>\n );\n};\n\nconst Sections = ({ children, ...props }: { children: React.ReactNode[]; [key: string]: any }) => {\n return (\n <Box paddingBottom={4}>\n <Flex tag=\"ol\" gap=\"5\" direction=\"column\" alignItems=\"stretch\" {...props}>\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Box>\n );\n};\n\n/**\n * TODO:\n * This would be better in the content-type-builder package directly but currently\n * the SubNav API does not expose a way to wrap the link, instead it wraps the link and the list\n */\nconst GuidedTourTooltip = ({\n sectionId,\n children,\n}: {\n sectionId?: string;\n children: React.ReactNode;\n}) => {\n switch (sectionId) {\n case 'models':\n return (\n <tours.contentTypeBuilder.CollectionTypes>\n <tours.contentTypeBuilder.YourTurn>{children}</tours.contentTypeBuilder.YourTurn>\n </tours.contentTypeBuilder.CollectionTypes>\n );\n case 'singleTypes':\n return (\n <tours.contentTypeBuilder.SingleTypes>{children}</tours.contentTypeBuilder.SingleTypes>\n );\n case 'components':\n return <tours.contentTypeBuilder.Components>{children}</tours.contentTypeBuilder.Components>;\n default:\n return children;\n }\n};\n\nconst Section = ({\n label,\n children,\n link,\n sectionId,\n}: {\n label: string;\n children: React.ReactNode[];\n link?: { label: string; onClik: () => void };\n sectionId?: string;\n}) => {\n const listId = useId();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Box paddingLeft={5} paddingRight={5}>\n <Flex position=\"relative\" justifyContent=\"space-between\">\n <Flex>\n <Box>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {label}\n </Typography>\n </Box>\n </Flex>\n {link && (\n <GuidedTourTooltip sectionId={sectionId}>\n <IconButton\n label={link.label}\n variant=\"ghost\"\n withTooltip\n onClick={link.onClik}\n size=\"XS\"\n >\n <Plus />\n </IconButton>\n </GuidedTourTooltip>\n )}\n </Flex>\n </Box>\n <Flex\n tag=\"ol\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n marginLeft={2}\n marginRight={2}\n >\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst SubSectionHeader = styled.button`\n cursor: pointer;\n width: 100%;\n border: none;\n padding: 0;\n background: transparent;\n display: flex;\n align-items: center;\n\n height: 32px;\n\n border-radius: ${({ theme }) => theme.borderRadius};\n\n padding-left: ${({ theme }) => theme.spaces[3]};\n padding-right: ${({ theme }) => theme.spaces[3]};\n padding-top: ${({ theme }) => theme.spaces[2]};\n padding-bottom: ${({ theme }) => theme.spaces[2]};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nconst SubSectionLinkWrapper = styled.li`\n ${StyledLink} > div {\n padding-left: 36px;\n }\n`;\n\nconst SubSection = ({ label, children }: { label: string; children: React.ReactNode[] }) => {\n const [isOpen, setOpenLinks] = useState(true);\n const listId = useId();\n\n const handleClick = () => {\n setOpenLinks((prev) => !prev);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <SubSectionHeader onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>\n <ChevronDown\n aria-hidden\n fill=\"neutral500\"\n style={{\n transform: `rotate(${isOpen ? '0deg' : '-90deg'})`,\n transition: 'transform 0.5s',\n }}\n />\n <Box paddingLeft={2}>\n <Typography tag=\"span\" fontWeight=\"semiBold\" textColor=\"neutral800\">\n {label}\n </Typography>\n </Box>\n </SubSectionHeader>\n </Flex>\n {\n <Flex\n tag=\"ul\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n style={{\n maxHeight: isOpen ? '1000px' : 0,\n overflow: 'hidden',\n transition: isOpen\n ? 'max-height 1s ease-in-out'\n : 'max-height 0.5s cubic-bezier(0, 1, 0, 1)',\n }}\n >\n {children.map((child, index) => {\n return <SubSectionLinkWrapper key={index}>{child}</SubSectionLinkWrapper>;\n })}\n </Flex>\n }\n </Box>\n );\n};\n\nexport const SubNav = {\n Main,\n Header,\n Link,\n Sections,\n Section,\n SubSection,\n};\n"],"names":["Main","styled","DSSubNav","theme","colors","neutral0","neutral150","StyledLink","NavLink","neutral800","primary100","primary700","neutral100","Link","props","label","endAction","rest","_jsx","Box","width","paddingLeft","paddingRight","borderRadius","_jsxs","Flex","justifyContent","gap","Typography","tag","lineHeight","overflow","style","textOverflow","whiteSpace","StyledHeader","spaces","Header","variant","Sections","children","paddingBottom","direction","alignItems","map","child","index","li","GuidedTourTooltip","sectionId","tours","contentTypeBuilder","CollectionTypes","YourTurn","SingleTypes","Components","Section","link","listId","useId","position","textColor","IconButton","withTooltip","onClick","onClik","size","Plus","id","marginLeft","marginRight","SubSectionHeader","button","SubSectionLinkWrapper","SubSection","isOpen","setOpenLinks","useState","handleClick","prev","aria-expanded","aria-controls","ChevronDown","aria-hidden","fill","transform","transition","fontWeight","maxHeight","SubNav"],"mappings":"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"}
1
+ {"version":3,"file":"SubNav.js","sources":["../../../../../admin/src/components/SubNav.tsx"],"sourcesContent":["import { useId, useState } from 'react';\n\nimport {\n Box,\n SubNav as DSSubNav,\n Flex,\n Typography,\n IconButton,\n Badge,\n ScrollArea,\n} from '@strapi/design-system';\nimport { ChevronDown, Plus } from '@strapi/icons';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { HEIGHT_TOP_NAVIGATION } from '../constants/theme';\n\nimport { tours } from './GuidedTour/Tours';\n\nconst MainSubNav = styled(DSSubNav)`\n width: 100%;\n height: calc(100dvh - ${HEIGHT_TOP_NAVIGATION} - 1px);\n overflow: hidden;\n background-color: ${({ theme }) => theme.colors.neutral0};\n display: flex;\n flex-direction: column;\n border-right: 0;\n box-shadow: none;\n position: fixed;\n top: calc(${HEIGHT_TOP_NAVIGATION} + 1px);\n left: 0;\n z-index: 2;\n\n ${({ theme }) => theme.breakpoints.medium} {\n position: sticky;\n top: 0;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n ${({ theme }) => theme.breakpoints.large} {\n height: 100dvh;\n }\n`;\n\nconst Main = ({ children, ...props }: { children: React.ReactNode; isFullPage?: boolean }) => (\n <MainSubNav {...props}>{children}</MainSubNav>\n);\n\nconst StyledLink = styled(NavLink)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.neutral800};\n\n &.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary700};\n font-weight: 500;\n `;\n }}\n }\n\n &:hover.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n `;\n }}\n }\n\n &:hover > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.neutral100};\n `;\n }}\n }\n\n &:focus-visible {\n outline-offset: -2px;\n }\n`;\n\nconst Link = (\n props: Omit<React.ComponentProps<typeof StyledLink>, 'label'> & {\n label: React.ReactNode;\n endAction?: React.ReactNode;\n handleClick?: () => void;\n }\n) => {\n const { label, endAction, handleClick, ...rest } = props;\n\n return (\n <StyledLink {...rest} onClick={handleClick}>\n <Box width={'100%'} paddingLeft={3} paddingRight={3} borderRadius={1}>\n <Flex justifyContent=\"space-between\" width=\"100%\" gap={1}>\n <Typography\n tag=\"div\"\n lineHeight=\"32px\"\n width=\"100%\"\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n {label}\n </Typography>\n <Flex gap={2}>{endAction}</Flex>\n </Flex>\n </Box>\n </StyledLink>\n );\n};\n\nconst StyledHeader = styled(Flex)`\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION};\n height: ${HEIGHT_TOP_NAVIGATION};\n`;\n\nconst Header = ({ label }: { label: string }) => {\n return (\n <StyledHeader\n justifyContent=\"space-between\"\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n >\n <Typography variant=\"beta\" tag=\"h2\">\n {label}\n </Typography>\n </StyledHeader>\n );\n};\n\nconst Sections = ({ children, ...props }: { children: React.ReactNode[]; [key: string]: any }) => {\n return (\n <Box paddingTop={4} paddingBottom={4}>\n <Flex tag=\"ol\" gap=\"5\" direction=\"column\" alignItems=\"stretch\" {...props}>\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Box>\n );\n};\n\n/**\n * TODO:\n * This would be better in the content-type-builder package directly but currently\n * the SubNav API does not expose a way to wrap the link, instead it wraps the link and the list\n */\nconst GuidedTourTooltip = ({\n sectionId,\n children,\n}: {\n sectionId?: string;\n children: React.ReactNode;\n}) => {\n switch (sectionId) {\n case 'models':\n return (\n <tours.contentTypeBuilder.CollectionTypes>\n <tours.contentTypeBuilder.YourTurn>{children}</tours.contentTypeBuilder.YourTurn>\n </tours.contentTypeBuilder.CollectionTypes>\n );\n case 'singleTypes':\n return (\n <tours.contentTypeBuilder.SingleTypes>{children}</tours.contentTypeBuilder.SingleTypes>\n );\n case 'components':\n return <tours.contentTypeBuilder.Components>{children}</tours.contentTypeBuilder.Components>;\n default:\n return children;\n }\n};\n\nconst Section = ({\n label,\n children,\n link,\n sectionId,\n badgeLabel,\n}: {\n label: string;\n children: React.ReactNode[];\n link?: { label: string; onClick: () => void };\n sectionId?: string;\n badgeLabel?: string;\n}) => {\n const listId = useId();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Box\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n >\n <Flex position=\"relative\" justifyContent=\"space-between\" gap={2}>\n <Flex>\n <Box paddingRight={1}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {label}\n </Typography>\n </Box>\n </Flex>\n <Flex gap={1}>\n {badgeLabel && (\n <Badge backgroundColor=\"neutral150\" textColor=\"neutral600\">\n {badgeLabel}\n </Badge>\n )}\n {link && (\n <GuidedTourTooltip sectionId={sectionId}>\n <IconButton\n label={link.label}\n variant=\"ghost\"\n withTooltip\n onClick={link.onClick}\n size=\"XS\"\n >\n <Plus />\n </IconButton>\n </GuidedTourTooltip>\n )}\n </Flex>\n </Flex>\n </Box>\n <Flex\n tag=\"ol\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n marginLeft={{\n initial: 1,\n large: 2,\n }}\n marginRight={{\n initial: 1,\n large: 2,\n }}\n >\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst SubSectionHeader = styled.button`\n cursor: pointer;\n width: 100%;\n border: none;\n padding: 0;\n background: transparent;\n display: flex;\n align-items: center;\n border-radius: ${({ theme }) => theme.borderRadius};\n padding-left: ${({ theme }) => theme.spaces[3]};\n padding-right: ${({ theme }) => theme.spaces[3]};\n padding-top: ${({ theme }) => theme.spaces[2]};\n padding-bottom: ${({ theme }) => theme.spaces[2]};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nconst SubSectionLinkWrapper = styled.li`\n ${StyledLink} > div {\n padding-left: 36px;\n }\n`;\n\nconst SubSection = ({ label, children }: { label: string; children: React.ReactNode[] }) => {\n const [isOpen, setOpenLinks] = useState(true);\n const listId = useId();\n\n const handleClick = () => {\n setOpenLinks((prev) => !prev);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <SubSectionHeader onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>\n <ChevronDown\n aria-hidden\n fill=\"neutral500\"\n style={{\n transform: `rotate(${isOpen ? '0deg' : '-90deg'})`,\n transition: 'transform 0.5s',\n }}\n />\n <Box paddingLeft={2}>\n <Typography tag=\"span\" fontWeight=\"semiBold\" textColor=\"neutral800\">\n {label}\n </Typography>\n </Box>\n </SubSectionHeader>\n </Flex>\n {\n <Flex\n tag=\"ul\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n style={{\n maxHeight: isOpen ? '1000px' : 0,\n overflow: 'hidden',\n transition: isOpen\n ? 'max-height 1s ease-in-out'\n : 'max-height 0.5s cubic-bezier(0, 1, 0, 1)',\n }}\n >\n {children.map((child, index) => {\n return <SubSectionLinkWrapper key={index}>{child}</SubSectionLinkWrapper>;\n })}\n </Flex>\n }\n </Box>\n );\n};\n\nconst PageWrapper = styled(Box)`\n ${MainSubNav} {\n background-color: transparent;\n border-right: none;\n }\n\n ${({ theme }) => theme.breakpoints.medium} {\n ${MainSubNav} {\n top: 0;\n }\n }\n`;\n\nconst Content = ({ children }: { children: React.ReactNode }) => {\n return <ScrollArea>{children}</ScrollArea>;\n};\n\nexport const SubNav = {\n Main,\n Content,\n Header,\n Link,\n Sections,\n Section,\n SubSection,\n PageWrapper,\n};\n"],"names":["MainSubNav","styled","DSSubNav","HEIGHT_TOP_NAVIGATION","theme","colors","neutral0","breakpoints","medium","neutral150","large","Main","children","props","_jsx","StyledLink","NavLink","neutral800","primary100","primary700","neutral100","Link","label","endAction","handleClick","rest","onClick","Box","width","paddingLeft","paddingRight","borderRadius","_jsxs","Flex","justifyContent","gap","Typography","tag","lineHeight","overflow","style","textOverflow","whiteSpace","StyledHeader","Header","initial","variant","Sections","paddingTop","paddingBottom","direction","alignItems","map","child","index","li","GuidedTourTooltip","sectionId","tours","contentTypeBuilder","CollectionTypes","YourTurn","SingleTypes","Components","Section","link","badgeLabel","listId","useId","position","textColor","Badge","backgroundColor","IconButton","withTooltip","size","Plus","id","marginLeft","marginRight","SubSectionHeader","button","spaces","SubSectionLinkWrapper","SubSection","isOpen","setOpenLinks","useState","prev","aria-expanded","aria-controls","ChevronDown","aria-hidden","fill","transform","transition","fontWeight","maxHeight","PageWrapper","Content","ScrollArea","SubNav"],"mappings":"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"}