@strapi/admin 5.33.3 → 5.34.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 (337) hide show
  1. package/dist/admin/admin/src/components/GradientBadge.js +18 -2
  2. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
  3. package/dist/admin/admin/src/components/GradientBadge.mjs +19 -3
  4. package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +8 -1
  6. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  7. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +8 -1
  8. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/Layouts/ContentLayout.js +4 -0
  10. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  11. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +4 -0
  12. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +80 -49
  14. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  15. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +81 -50
  16. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  17. package/dist/admin/admin/src/components/LeftMenu.js +3 -1
  18. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  19. package/dist/admin/admin/src/components/LeftMenu.mjs +3 -1
  20. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +32 -30
  22. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  23. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +32 -30
  24. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/MainNav/NavBrand.js +38 -31
  26. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  27. package/dist/admin/admin/src/components/MainNav/NavBrand.mjs +38 -31
  28. package/dist/admin/admin/src/components/MainNav/NavBrand.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +14 -3
  30. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
  31. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +15 -4
  32. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/MainNav/NavLink.js +51 -4
  34. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  35. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +52 -5
  36. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  37. package/dist/admin/admin/src/components/NpsSurvey.js +1 -2
  38. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  39. package/dist/admin/admin/src/components/NpsSurvey.mjs +1 -2
  40. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/SubNav.js +44 -18
  42. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  43. package/dist/admin/admin/src/components/SubNav.mjs +45 -19
  44. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  45. package/dist/admin/admin/src/constants/theme.js +3 -1
  46. package/dist/admin/admin/src/constants/theme.js.map +1 -1
  47. package/dist/admin/admin/src/constants/theme.mjs +3 -2
  48. package/dist/admin/admin/src/constants/theme.mjs.map +1 -1
  49. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  50. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  51. package/dist/admin/admin/src/features/Tracking.js +1 -2
  52. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  53. package/dist/admin/admin/src/features/Tracking.mjs +1 -2
  54. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  55. package/dist/admin/admin/src/hooks/useMenu.js +2 -1
  56. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  57. package/dist/admin/admin/src/hooks/useMenu.mjs +2 -1
  58. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -1
  60. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  61. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +2 -1
  62. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  63. package/dist/admin/admin/src/pages/Home/HomePage.js +1 -0
  64. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -0
  66. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/ProfilePage.js +1 -0
  68. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  69. package/dist/admin/admin/src/pages/ProfilePage.mjs +1 -0
  70. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +7 -2
  72. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +7 -2
  74. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +44 -26
  76. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +45 -27
  78. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +1 -0
  80. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +1 -0
  82. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -0
  84. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -0
  86. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +3 -0
  88. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +3 -0
  90. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -11
  92. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +10 -12
  94. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +1 -0
  96. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs +1 -0
  98. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +1 -0
  100. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +1 -0
  102. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +1 -0
  104. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +1 -0
  106. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +1 -0
  108. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs +1 -0
  110. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -0
  112. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  115. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +3 -0
  116. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  117. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +3 -0
  118. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  119. package/dist/admin/admin/src/render.js +0 -1
  120. package/dist/admin/admin/src/render.js.map +1 -1
  121. package/dist/admin/admin/src/render.mjs +0 -1
  122. package/dist/admin/admin/src/render.mjs.map +1 -1
  123. package/dist/admin/admin/src/router.js +0 -9
  124. package/dist/admin/admin/src/router.js.map +1 -1
  125. package/dist/admin/admin/src/router.mjs +0 -9
  126. package/dist/admin/admin/src/router.mjs.map +1 -1
  127. package/dist/admin/admin/src/translations/ar.json.js +0 -42
  128. package/dist/admin/admin/src/translations/ar.json.js.map +1 -1
  129. package/dist/admin/admin/src/translations/ar.json.mjs +0 -42
  130. package/dist/admin/admin/src/translations/ar.json.mjs.map +1 -1
  131. package/dist/admin/admin/src/translations/ca.json.js +0 -21
  132. package/dist/admin/admin/src/translations/ca.json.js.map +1 -1
  133. package/dist/admin/admin/src/translations/ca.json.mjs +0 -21
  134. package/dist/admin/admin/src/translations/ca.json.mjs.map +1 -1
  135. package/dist/admin/admin/src/translations/de.json.js +422 -66
  136. package/dist/admin/admin/src/translations/de.json.js.map +1 -1
  137. package/dist/admin/admin/src/translations/de.json.mjs +419 -67
  138. package/dist/admin/admin/src/translations/de.json.mjs.map +1 -1
  139. package/dist/admin/admin/src/translations/dk.json.js +0 -6
  140. package/dist/admin/admin/src/translations/dk.json.js.map +1 -1
  141. package/dist/admin/admin/src/translations/dk.json.mjs +0 -6
  142. package/dist/admin/admin/src/translations/dk.json.mjs.map +1 -1
  143. package/dist/admin/admin/src/translations/en.json.js +0 -44
  144. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  145. package/dist/admin/admin/src/translations/en.json.mjs +0 -44
  146. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  147. package/dist/admin/admin/src/translations/es.json.js +0 -25
  148. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  149. package/dist/admin/admin/src/translations/es.json.mjs +0 -25
  150. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  151. package/dist/admin/admin/src/translations/eu.json.js +0 -43
  152. package/dist/admin/admin/src/translations/eu.json.js.map +1 -1
  153. package/dist/admin/admin/src/translations/eu.json.mjs +0 -43
  154. package/dist/admin/admin/src/translations/eu.json.mjs.map +1 -1
  155. package/dist/admin/admin/src/translations/fr.json.js +0 -6
  156. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  157. package/dist/admin/admin/src/translations/fr.json.mjs +0 -6
  158. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  159. package/dist/admin/admin/src/translations/gu.json.js +0 -21
  160. package/dist/admin/admin/src/translations/gu.json.js.map +1 -1
  161. package/dist/admin/admin/src/translations/gu.json.mjs +0 -21
  162. package/dist/admin/admin/src/translations/gu.json.mjs.map +1 -1
  163. package/dist/admin/admin/src/translations/hi.json.js +0 -21
  164. package/dist/admin/admin/src/translations/hi.json.js.map +1 -1
  165. package/dist/admin/admin/src/translations/hi.json.mjs +0 -21
  166. package/dist/admin/admin/src/translations/hi.json.mjs.map +1 -1
  167. package/dist/admin/admin/src/translations/hu.json.js +0 -43
  168. package/dist/admin/admin/src/translations/hu.json.js.map +1 -1
  169. package/dist/admin/admin/src/translations/hu.json.mjs +0 -43
  170. package/dist/admin/admin/src/translations/hu.json.mjs.map +1 -1
  171. package/dist/admin/admin/src/translations/it.json.js +613 -3
  172. package/dist/admin/admin/src/translations/it.json.js.map +1 -1
  173. package/dist/admin/admin/src/translations/it.json.mjs +605 -4
  174. package/dist/admin/admin/src/translations/it.json.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/ja.json.js +0 -6
  176. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/ja.json.mjs +0 -6
  178. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/ko.json.js +0 -6
  180. package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
  181. package/dist/admin/admin/src/translations/ko.json.mjs +0 -6
  182. package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
  183. package/dist/admin/admin/src/translations/ml.json.js +0 -21
  184. package/dist/admin/admin/src/translations/ml.json.js.map +1 -1
  185. package/dist/admin/admin/src/translations/ml.json.mjs +0 -21
  186. package/dist/admin/admin/src/translations/ml.json.mjs.map +1 -1
  187. package/dist/admin/admin/src/translations/nl.json.js +0 -39
  188. package/dist/admin/admin/src/translations/nl.json.js.map +1 -1
  189. package/dist/admin/admin/src/translations/nl.json.mjs +0 -39
  190. package/dist/admin/admin/src/translations/nl.json.mjs.map +1 -1
  191. package/dist/admin/admin/src/translations/pl.json.js +0 -21
  192. package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
  193. package/dist/admin/admin/src/translations/pl.json.mjs +0 -21
  194. package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
  195. package/dist/admin/admin/src/translations/pt-BR.json.js +0 -25
  196. package/dist/admin/admin/src/translations/pt-BR.json.js.map +1 -1
  197. package/dist/admin/admin/src/translations/pt-BR.json.mjs +0 -25
  198. package/dist/admin/admin/src/translations/pt-BR.json.mjs.map +1 -1
  199. package/dist/admin/admin/src/translations/ru.json.js +0 -44
  200. package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
  201. package/dist/admin/admin/src/translations/ru.json.mjs +0 -44
  202. package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
  203. package/dist/admin/admin/src/translations/sa.json.js +0 -21
  204. package/dist/admin/admin/src/translations/sa.json.js.map +1 -1
  205. package/dist/admin/admin/src/translations/sa.json.mjs +0 -21
  206. package/dist/admin/admin/src/translations/sa.json.mjs.map +1 -1
  207. package/dist/admin/admin/src/translations/sv.json.js +0 -39
  208. package/dist/admin/admin/src/translations/sv.json.js.map +1 -1
  209. package/dist/admin/admin/src/translations/sv.json.mjs +0 -39
  210. package/dist/admin/admin/src/translations/sv.json.mjs.map +1 -1
  211. package/dist/admin/admin/src/translations/tr.json.js +0 -39
  212. package/dist/admin/admin/src/translations/tr.json.js.map +1 -1
  213. package/dist/admin/admin/src/translations/tr.json.mjs +0 -39
  214. package/dist/admin/admin/src/translations/tr.json.mjs.map +1 -1
  215. package/dist/admin/admin/src/translations/uk.json.js +0 -44
  216. package/dist/admin/admin/src/translations/uk.json.js.map +1 -1
  217. package/dist/admin/admin/src/translations/uk.json.mjs +0 -44
  218. package/dist/admin/admin/src/translations/uk.json.mjs.map +1 -1
  219. package/dist/admin/admin/src/translations/vi.json.js +0 -44
  220. package/dist/admin/admin/src/translations/vi.json.js.map +1 -1
  221. package/dist/admin/admin/src/translations/vi.json.mjs +0 -44
  222. package/dist/admin/admin/src/translations/vi.json.mjs.map +1 -1
  223. package/dist/admin/admin/src/translations/zh-Hans.json.js +0 -44
  224. package/dist/admin/admin/src/translations/zh-Hans.json.js.map +1 -1
  225. package/dist/admin/admin/src/translations/zh-Hans.json.mjs +0 -44
  226. package/dist/admin/admin/src/translations/zh-Hans.json.mjs.map +1 -1
  227. package/dist/admin/admin/src/translations/zh.json.js +0 -39
  228. package/dist/admin/admin/src/translations/zh.json.js.map +1 -1
  229. package/dist/admin/admin/src/translations/zh.json.mjs +0 -39
  230. package/dist/admin/admin/src/translations/zh.json.mjs.map +1 -1
  231. package/dist/admin/admin/tests/mockData.js +0 -1413
  232. package/dist/admin/admin/tests/mockData.js.map +1 -1
  233. package/dist/admin/admin/tests/mockData.mjs +0 -1413
  234. package/dist/admin/admin/tests/mockData.mjs.map +1 -1
  235. package/dist/admin/admin/tests/server.js +0 -99
  236. package/dist/admin/admin/tests/server.js.map +1 -1
  237. package/dist/admin/admin/tests/server.mjs +0 -80
  238. package/dist/admin/admin/tests/server.mjs.map +1 -1
  239. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -0
  240. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  241. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -0
  242. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  243. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +2 -0
  244. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  245. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs +2 -0
  246. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs.map +1 -1
  247. package/dist/admin/src/components/MainNav/NavLink.d.ts +2 -1
  248. package/dist/admin/src/constants/theme.d.ts +3 -2
  249. package/dist/admin/src/core/apis/router.d.ts +1 -0
  250. package/dist/admin/src/features/Tracking.d.ts +1 -2
  251. package/dist/admin/src/hooks/useMenu.d.ts +1 -0
  252. package/dist/admin/src/services/admin.d.ts +0 -1
  253. package/dist/admin/tests/mockData.d.ts +0 -972
  254. package/dist/ee/server/src/controllers/admin.d.ts +0 -1
  255. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  256. package/dist/ee/server/src/controllers/index.d.ts +0 -1
  257. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  258. package/dist/ee/server/src/index.d.ts +0 -1
  259. package/dist/ee/server/src/index.d.ts.map +1 -1
  260. package/dist/server/ee/server/src/controllers/admin.js +0 -1
  261. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  262. package/dist/server/ee/server/src/controllers/admin.mjs +0 -1
  263. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  264. package/dist/server/server/src/controllers/admin.js +0 -2
  265. package/dist/server/server/src/controllers/admin.js.map +1 -1
  266. package/dist/server/server/src/controllers/admin.mjs +0 -2
  267. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  268. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js +53 -0
  269. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -0
  270. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs +51 -0
  271. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -0
  272. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +7 -8
  273. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  274. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +10 -11
  275. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  276. package/dist/server/server/src/services/permission/permissions-manager/validate.js +7 -8
  277. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  278. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +10 -11
  279. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  280. package/dist/server/src/controllers/admin.d.ts +0 -1
  281. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  282. package/dist/server/src/controllers/index.d.ts +0 -1
  283. package/dist/server/src/controllers/index.d.ts.map +1 -1
  284. package/dist/server/src/index.d.ts +0 -1
  285. package/dist/server/src/index.d.ts.map +1 -1
  286. package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts +21 -0
  287. package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -0
  288. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
  289. package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
  290. package/dist/shared/contracts/admin.d.ts +0 -1
  291. package/dist/shared/contracts/admin.d.ts.map +1 -1
  292. package/package.json +9 -9
  293. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +0 -339
  294. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +0 -1
  295. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +0 -317
  296. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +0 -1
  297. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js +0 -329
  298. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +0 -1
  299. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs +0 -308
  300. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +0 -1
  301. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js +0 -121
  302. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +0 -1
  303. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs +0 -119
  304. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +0 -1
  305. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js +0 -93
  306. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js.map +0 -1
  307. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.mjs +0 -91
  308. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.mjs.map +0 -1
  309. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.js +0 -81
  310. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.js.map +0 -1
  311. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.mjs +0 -79
  312. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.mjs.map +0 -1
  313. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js +0 -38
  314. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +0 -1
  315. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs +0 -36
  316. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +0 -1
  317. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js +0 -85
  318. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js.map +0 -1
  319. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.mjs +0 -83
  320. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.mjs.map +0 -1
  321. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js +0 -134
  322. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +0 -1
  323. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs +0 -113
  324. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +0 -1
  325. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.js +0 -44
  326. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.js.map +0 -1
  327. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.mjs +0 -23
  328. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.mjs.map +0 -1
  329. package/dist/admin/src/pages/Marketplace/MarketplacePage.d.ts +0 -19
  330. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +0 -13
  331. package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +0 -13
  332. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +0 -13
  333. package/dist/admin/src/pages/Marketplace/components/OfflineLayout.d.ts +0 -2
  334. package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +0 -8
  335. package/dist/admin/src/pages/Marketplace/components/SortSelect.d.ts +0 -51
  336. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +0 -93
  337. package/dist/admin/src/pages/Marketplace/hooks/useNavigatorOnline.d.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderLayout.mjs","sources":["../../../../../../admin/src/components/Layouts/HeaderLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography, TypographyProps, useCallbackRef } from '@strapi/design-system';\n\nimport { HEIGHT_TOP_NAVIGATION, RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\nimport { useDeviceType } from '../../hooks/useDeviceType';\nimport { useElementOnScreen } from '../../hooks/useElementOnScreen';\n\n/* -------------------------------------------------------------------------------------------------\n * BaseHeaderLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseHeaderLayoutProps extends Omit<TypographyProps<'div'>, 'tag'> {\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n sticky?: boolean;\n width?: number;\n}\n\nconst BaseHeaderLayout = React.forwardRef<HTMLDivElement, BaseHeaderLayoutProps>(\n (\n { navigationAction, primaryAction, secondaryAction, subtitle, title, sticky, width, ...props },\n ref\n ) => {\n const isSubtitleString = typeof subtitle === 'string';\n\n if (sticky) {\n return (\n <Box\n display=\"flex\"\n paddingLeft={6}\n paddingRight={6}\n paddingTop={2}\n paddingBottom={2}\n position=\"fixed\"\n top={0}\n background=\"neutral0\"\n shadow=\"tableShadow\"\n width={`${width}px`}\n zIndex={2}\n minHeight={HEIGHT_TOP_NAVIGATION}\n data-strapi-header-sticky\n >\n <Flex alignItems=\"center\" justifyContent=\"space-between\" wrap=\"wrap\" width=\"100%\">\n <Flex>\n {navigationAction && <Box paddingRight={3}>{navigationAction}</Box>}\n <Box>\n <Typography variant=\"beta\" tag=\"h1\" {...props}>\n {title}\n </Typography>\n {isSubtitleString ? (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n </Box>\n {secondaryAction ? <Box paddingLeft={4}>{secondaryAction}</Box> : null}\n </Flex>\n <Flex>{primaryAction ? <Box paddingLeft={2}>{primaryAction}</Box> : undefined}</Flex>\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box\n ref={ref}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingBottom={{\n initial: 4,\n large: 8,\n }}\n paddingTop={{\n initial: 4,\n large: navigationAction ? 6 : 8,\n }}\n background=\"neutral100\"\n data-strapi-header\n >\n <Flex direction=\"column\" alignItems=\"initial\" gap={2}>\n {navigationAction}\n <Flex justifyContent=\"space-between\" wrap=\"wrap\" gap={4}>\n <Flex minWidth={0}>\n <Typography\n tag=\"h1\"\n variant=\"alpha\"\n {...props}\n style={{\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n }}\n >\n {title}\n </Typography>\n {secondaryAction ? <Box paddingLeft={4}>{secondaryAction}</Box> : null}\n </Flex>\n {primaryAction}\n </Flex>\n </Flex>\n {isSubtitleString ? (\n <Typography\n variant=\"epsilon\"\n textColor=\"neutral600\"\n tag=\"p\"\n paddingTop={{ initial: 4, large: 0 }}\n >\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n </Box>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderLayoutProps extends BaseHeaderLayoutProps {}\n\nconst HeaderLayout = (props: HeaderLayoutProps) => {\n const baseHeaderLayoutRef = React.useRef<HTMLDivElement>(null);\n const [headerSize, setHeaderSize] = React.useState<DOMRect | null>(null);\n const [isVisible, setIsVisible] = React.useState(true);\n const deviceType = useDeviceType();\n\n const containerRef = useElementOnScreen<HTMLDivElement>(setIsVisible, {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n });\n\n useResizeObserver([containerRef, baseHeaderLayoutRef], () => {\n const headerContainer = baseHeaderLayoutRef.current ?? containerRef.current;\n\n if (headerContainer) {\n const newSize = headerContainer.getBoundingClientRect();\n\n setHeaderSize((prevSize) => {\n // Only update if size actually changed\n if (!prevSize || prevSize.height !== newSize.height || prevSize.width !== newSize.width) {\n return newSize;\n }\n return prevSize;\n });\n }\n });\n\n React.useEffect(() => {\n if (baseHeaderLayoutRef.current || containerRef.current) {\n const headerContainer = baseHeaderLayoutRef.current ?? containerRef.current;\n setHeaderSize(headerContainer?.getBoundingClientRect() ?? null);\n }\n }, [containerRef]);\n\n if (deviceType === 'mobile') {\n return <BaseHeaderLayout {...props} />;\n }\n\n return (\n <div ref={containerRef}>\n <div style={{ height: headerSize?.height }}>\n {isVisible && <BaseHeaderLayout ref={baseHeaderLayoutRef} {...props} />}\n </div>\n\n {!isVisible && <BaseHeaderLayout {...props} sticky width={headerSize?.width} />}\n </div>\n );\n};\n\nHeaderLayout.displayName = 'HeaderLayout';\n\n/**\n * useResizeObserver: hook that observes the size of an element and calls a callback when it changes.\n */\nconst useResizeObserver = (\n sources: React.RefObject<HTMLElement> | React.RefObject<HTMLElement>[],\n onResize: ResizeObserverCallback\n) => {\n const handleResize = useCallbackRef(onResize);\n\n React.useLayoutEffect(() => {\n const resizeObs = new ResizeObserver(handleResize);\n\n if (Array.isArray(sources)) {\n sources.forEach((source) => {\n if (source.current) {\n resizeObs.observe(source.current);\n }\n });\n } else if (sources.current) {\n resizeObs.observe(sources.current);\n }\n\n return () => {\n resizeObs.disconnect();\n };\n }, [sources, handleResize]);\n};\n\nexport type { HeaderLayoutProps, BaseHeaderLayoutProps };\nexport { HeaderLayout, BaseHeaderLayout };\n"],"names":["BaseHeaderLayout","React","forwardRef","navigationAction","primaryAction","secondaryAction","subtitle","title","sticky","width","props","ref","isSubtitleString","_jsx","Box","display","paddingLeft","paddingRight","paddingTop","paddingBottom","position","top","background","shadow","zIndex","minHeight","HEIGHT_TOP_NAVIGATION","data-strapi-header-sticky","_jsxs","Flex","alignItems","justifyContent","wrap","Typography","variant","tag","textColor","undefined","RESPONSIVE_DEFAULT_SPACING","initial","large","data-strapi-header","direction","gap","minWidth","style","wordBreak","overflowWrap","maxWidth","HeaderLayout","baseHeaderLayoutRef","useRef","headerSize","setHeaderSize","useState","isVisible","setIsVisible","deviceType","useDeviceType","containerRef","useElementOnScreen","root","rootMargin","threshold","useResizeObserver","headerContainer","current","newSize","getBoundingClientRect","prevSize","height","useEffect","div","displayName","sources","onResize","handleResize","useCallbackRef","useLayoutEffect","resizeObs","ResizeObserver","Array","isArray","forEach","source","observe","disconnect"],"mappings":"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"}
1
+ {"version":3,"file":"HeaderLayout.mjs","sources":["../../../../../../admin/src/components/Layouts/HeaderLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography, TypographyProps, useCallbackRef } from '@strapi/design-system';\n\nimport { HEIGHT_TOP_NAVIGATION, RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\nimport { useDeviceType } from '../../hooks/useDeviceType';\nimport { useElementOnScreen } from '../../hooks/useElementOnScreen';\nimport { useIsMobile } from '../../hooks/useMediaQuery';\n\n/* -------------------------------------------------------------------------------------------------\n * BaseHeaderLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseHeaderLayoutProps extends Omit<TypographyProps<'div'>, 'tag'> {\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n sticky?: boolean;\n width?: number;\n}\n\nconst BaseHeaderLayout = React.forwardRef<HTMLDivElement, BaseHeaderLayoutProps>(\n (\n { navigationAction, primaryAction, secondaryAction, subtitle, title, sticky, width, ...props },\n ref\n ) => {\n const isMobile = useIsMobile();\n const isSubtitleString = typeof subtitle === 'string';\n\n if (sticky) {\n return (\n <Box\n display=\"flex\"\n paddingLeft={6}\n paddingRight={6}\n paddingTop={2}\n paddingBottom={2}\n position=\"fixed\"\n top={0}\n background=\"neutral0\"\n shadow=\"tableShadow\"\n width={`${width}px`}\n zIndex={2}\n minHeight={HEIGHT_TOP_NAVIGATION}\n data-strapi-header-sticky\n >\n <Flex alignItems=\"center\" justifyContent=\"space-between\" wrap=\"wrap\" width=\"100%\">\n <Flex>\n {navigationAction && <Box paddingRight={3}>{navigationAction}</Box>}\n <Box>\n <Typography variant=\"beta\" tag=\"h1\" {...props}>\n {title}\n </Typography>\n {isSubtitleString ? (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n </Box>\n {secondaryAction ? <Box paddingLeft={4}>{secondaryAction}</Box> : null}\n </Flex>\n <Flex>{primaryAction ? <Box paddingLeft={2}>{primaryAction}</Box> : undefined}</Flex>\n </Flex>\n </Box>\n );\n }\n\n return (\n <Box\n ref={ref}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n paddingBottom={{\n initial: 4,\n large: 8,\n }}\n paddingTop={{\n initial: 4,\n large: navigationAction ? 6 : 8,\n }}\n background=\"neutral100\"\n data-strapi-header\n >\n <Flex direction=\"column\" alignItems=\"initial\" gap={3}>\n {navigationAction}\n {!isMobile ? (\n <>\n <Flex justifyContent=\"space-between\" wrap=\"wrap\" gap={4}>\n <Flex minWidth={0}>\n <Typography\n tag=\"h1\"\n variant=\"alpha\"\n {...props}\n style={{\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n }}\n >\n {title}\n </Typography>\n {secondaryAction && <Box paddingLeft={4}>{secondaryAction}</Box>}\n </Flex>\n <Box paddingLeft={4} marginLeft=\"auto\">\n {primaryAction}\n </Box>\n </Flex>\n {isSubtitleString ? (\n <Typography variant=\"epsilon\" textColor=\"neutral600\" tag=\"p\">\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n </>\n ) : (\n <>\n <Typography\n tag=\"h1\"\n variant=\"alpha\"\n {...props}\n style={{\n wordBreak: 'break-word',\n overflowWrap: 'break-word',\n maxWidth: '100%',\n }}\n >\n {title}\n </Typography>\n {isSubtitleString ? (\n <Typography variant=\"epsilon\" textColor=\"neutral600\" tag=\"p\">\n {subtitle}\n </Typography>\n ) : (\n subtitle\n )}\n {(primaryAction || secondaryAction) && (\n <Flex gap={3}>\n {secondaryAction}\n {primaryAction}\n </Flex>\n )}\n </>\n )}\n </Flex>\n </Box>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderLayout\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderLayoutProps extends BaseHeaderLayoutProps {}\n\nconst HeaderLayout = (props: HeaderLayoutProps) => {\n const baseHeaderLayoutRef = React.useRef<HTMLDivElement>(null);\n const [headerSize, setHeaderSize] = React.useState<DOMRect | null>(null);\n const [isVisible, setIsVisible] = React.useState(true);\n const deviceType = useDeviceType();\n\n const containerRef = useElementOnScreen<HTMLDivElement>(setIsVisible, {\n root: null,\n rootMargin: '0px',\n threshold: 0,\n });\n\n useResizeObserver([containerRef, baseHeaderLayoutRef], () => {\n const headerContainer = baseHeaderLayoutRef.current ?? containerRef.current;\n\n if (headerContainer) {\n const newSize = headerContainer.getBoundingClientRect();\n\n setHeaderSize((prevSize) => {\n // Only update if size actually changed\n if (!prevSize || prevSize.height !== newSize.height || prevSize.width !== newSize.width) {\n return newSize;\n }\n return prevSize;\n });\n }\n });\n\n React.useEffect(() => {\n if (baseHeaderLayoutRef.current || containerRef.current) {\n const headerContainer = baseHeaderLayoutRef.current ?? containerRef.current;\n setHeaderSize(headerContainer?.getBoundingClientRect() ?? null);\n }\n }, [containerRef]);\n\n if (deviceType === 'mobile') {\n return <BaseHeaderLayout {...props} />;\n }\n\n return (\n <div ref={containerRef}>\n <div style={{ height: headerSize?.height }}>\n {isVisible && <BaseHeaderLayout ref={baseHeaderLayoutRef} {...props} />}\n </div>\n\n {!isVisible && <BaseHeaderLayout {...props} sticky width={headerSize?.width} />}\n </div>\n );\n};\n\nHeaderLayout.displayName = 'HeaderLayout';\n\n/**\n * useResizeObserver: hook that observes the size of an element and calls a callback when it changes.\n */\nconst useResizeObserver = (\n sources: React.RefObject<HTMLElement> | React.RefObject<HTMLElement>[],\n onResize: ResizeObserverCallback\n) => {\n const handleResize = useCallbackRef(onResize);\n\n React.useLayoutEffect(() => {\n const resizeObs = new ResizeObserver(handleResize);\n\n if (Array.isArray(sources)) {\n sources.forEach((source) => {\n if (source.current) {\n resizeObs.observe(source.current);\n }\n });\n } else if (sources.current) {\n resizeObs.observe(sources.current);\n }\n\n return () => {\n resizeObs.disconnect();\n };\n }, [sources, handleResize]);\n};\n\nexport type { HeaderLayoutProps, BaseHeaderLayoutProps };\nexport { HeaderLayout, BaseHeaderLayout };\n"],"names":["BaseHeaderLayout","React","forwardRef","navigationAction","primaryAction","secondaryAction","subtitle","title","sticky","width","props","ref","isMobile","useIsMobile","isSubtitleString","_jsx","Box","display","paddingLeft","paddingRight","paddingTop","paddingBottom","position","top","background","shadow","zIndex","minHeight","HEIGHT_TOP_NAVIGATION","data-strapi-header-sticky","_jsxs","Flex","alignItems","justifyContent","wrap","Typography","variant","tag","textColor","undefined","RESPONSIVE_DEFAULT_SPACING","initial","large","data-strapi-header","direction","gap","_Fragment","minWidth","style","wordBreak","overflowWrap","maxWidth","marginLeft","HeaderLayout","baseHeaderLayoutRef","useRef","headerSize","setHeaderSize","useState","isVisible","setIsVisible","deviceType","useDeviceType","containerRef","useElementOnScreen","root","rootMargin","threshold","useResizeObserver","headerContainer","current","newSize","getBoundingClientRect","prevSize","height","useEffect","div","displayName","sources","onResize","handleResize","useCallbackRef","useLayoutEffect","resizeObs","ResizeObserver","Array","isArray","forEach","source","observe","disconnect"],"mappings":"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"}
@@ -8,6 +8,7 @@ var reactIntl = require('react-intl');
8
8
  var reactRouterDom = require('react-router-dom');
9
9
  var styled = require('styled-components');
10
10
  var Tracking = require('../features/Tracking.js');
11
+ var useMediaQuery = require('../hooks/useMediaQuery.js');
11
12
  var MainNav = require('./MainNav/MainNav.js');
12
13
  var MainNavLinks = require('./MainNav/MainNavLinks.js');
13
14
  var NavBrand = require('./MainNav/NavBrand.js');
@@ -76,6 +77,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
76
77
  const formatter = designSystem.useCollator(locale, {
77
78
  sensitivity: 'base'
78
79
  });
80
+ const isDesktop = useMediaQuery.useIsDesktop();
79
81
  const handleClickOnLink = (destination)=>{
80
82
  trackUsage('willNavigate', {
81
83
  from: pathname,
@@ -126,7 +128,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
126
128
  /*#__PURE__*/ jsxRuntime.jsxs(MainNav.MainNav, {
127
129
  children: [
128
130
  /*#__PURE__*/ jsxRuntime.jsx(NavBrand.NavBrand, {}),
129
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
131
+ isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
130
132
  /*#__PURE__*/ jsxRuntime.jsxs(MenuDetails, {
131
133
  children: [
132
134
  /*#__PURE__*/ jsxRuntime.jsx(NavListWrapper, {
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const isDesktop = useIsDesktop();\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n {isDesktop && <Divider />}\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","isDesktop","useIsDesktop","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
@@ -6,6 +6,7 @@ import { useIntl } from 'react-intl';
6
6
  import { useLocation } from 'react-router-dom';
7
7
  import { styled } from 'styled-components';
8
8
  import { useTracking } from '../features/Tracking.mjs';
9
+ import { useIsDesktop } from '../hooks/useMediaQuery.mjs';
9
10
  import { MainNav } from './MainNav/MainNav.mjs';
10
11
  import { MainNavIcons } from './MainNav/MainNavLinks.mjs';
11
12
  import { NavBrand } from './MainNav/NavBrand.mjs';
@@ -55,6 +56,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
55
56
  const formatter = useCollator(locale, {
56
57
  sensitivity: 'base'
57
58
  });
59
+ const isDesktop = useIsDesktop();
58
60
  const handleClickOnLink = (destination)=>{
59
61
  trackUsage('willNavigate', {
60
62
  from: pathname,
@@ -105,7 +107,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
105
107
  /*#__PURE__*/ jsxs(MainNav, {
106
108
  children: [
107
109
  /*#__PURE__*/ jsx(NavBrand, {}),
108
- /*#__PURE__*/ jsx(Divider, {}),
110
+ isDesktop && /*#__PURE__*/ jsx(Divider, {}),
109
111
  /*#__PURE__*/ jsxs(MenuDetails, {
110
112
  children: [
111
113
  /*#__PURE__*/ jsx(NavListWrapper, {
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.mjs","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.mjs","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const isDesktop = useIsDesktop();\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n {isDesktop && <Divider />}\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","isDesktop","useIsDesktop","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
@@ -57,8 +57,9 @@ const MainNavIcons = ({ listLinks, mobileLinks, handleClickOnLink })=>{
57
57
  const badgeContentNumeric = link.notificationsCount && link.notificationsCount > 0 ? link.notificationsCount.toString() : undefined;
58
58
  const labelValue = formatMessage(link.intlLabel);
59
59
  const linkMobile = mobileLinks.find((mobileLink)=>mobileLink.to === link.to);
60
- const LinkElement = ()=>/*#__PURE__*/ jsxRuntime.jsxs(NavLink.NavLink.Link, {
60
+ const LinkElement = ()=>/*#__PURE__*/ jsxRuntime.jsxs(NavLink.NavLink.NavButton, {
61
61
  to: link.to,
62
+ target: link.target,
62
63
  onClick: ()=>handleClickOnLink(link.to),
63
64
  "aria-label": labelValue,
64
65
  children: [
@@ -114,40 +115,41 @@ const MainNavBurgerMenuLinks = ({ listLinks, handleClickOnLink })=>{
114
115
  const labelValue = formatMessage(link.intlLabel);
115
116
  const navigationTarget = link.navigationLink || link.to;
116
117
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
117
- paddingTop: 3,
118
118
  alignItems: "center",
119
119
  tag: "li",
120
- children: /*#__PURE__*/ jsxRuntime.jsxs(NavLink.NavLink.Link, {
120
+ children: /*#__PURE__*/ jsxRuntime.jsx(NavLink.NavLink.Link, {
121
121
  to: navigationTarget,
122
122
  onClick: ()=>handleClickOnLink(navigationTarget),
123
123
  "aria-label": labelValue,
124
- children: [
125
- /*#__PURE__*/ jsxRuntime.jsx(IconContainer, {
126
- marginRight: "0.6rem",
127
- children: /*#__PURE__*/ jsxRuntime.jsx(LinkIcon, {
128
- width: "20",
129
- height: "20",
130
- fill: "neutral500"
131
- })
132
- }),
133
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
134
- marginLeft: 3,
135
- children: labelValue
136
- }),
137
- badgeContentLock ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeLock, {
138
- label: "locked",
139
- textColor: "neutral500",
140
- paddingLeft: 0,
141
- paddingRight: 0,
142
- children: badgeContentLock
143
- }) : badgeContentNumeric ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeCounter, {
144
- label: badgeContentNumeric,
145
- backgroundColor: "primary600",
146
- width: "2.3rem",
147
- color: "neutral0",
148
- children: badgeContentNumeric
149
- }) : null
150
- ]
124
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
125
+ alignItems: "center",
126
+ gap: 3,
127
+ children: [
128
+ /*#__PURE__*/ jsxRuntime.jsx(IconContainer, {
129
+ children: /*#__PURE__*/ jsxRuntime.jsx(LinkIcon, {
130
+ width: "20",
131
+ height: "20",
132
+ fill: "neutral500"
133
+ })
134
+ }),
135
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
136
+ children: labelValue
137
+ }),
138
+ badgeContentLock ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeLock, {
139
+ label: "locked",
140
+ textColor: "neutral500",
141
+ paddingLeft: 0,
142
+ paddingRight: 0,
143
+ children: badgeContentLock
144
+ }) : badgeContentNumeric ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeCounter, {
145
+ label: badgeContentNumeric,
146
+ backgroundColor: "primary600",
147
+ width: "2.3rem",
148
+ color: "neutral0",
149
+ children: badgeContentNumeric
150
+ }) : null
151
+ ]
152
+ })
151
153
  })
152
154
  }, navigationTarget);
153
155
  }) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"MainNavLinks.js","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex paddingTop={3} alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <IconContainer marginRight=\"0.6rem\">\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography marginLeft={3}>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","Link","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","paddingTop","alignItems","marginRight","Typography","marginLeft"],"mappings":"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"}
1
+ {"version":3,"file":"MainNavLinks.js","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.NavButton\n to={link.to}\n target={link.target}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.NavButton>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <Flex alignItems=\"center\" gap={3}>\n <IconContainer>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </Flex>\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","NavButton","target","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","alignItems","Link","gap","Typography"],"mappings":"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"}
@@ -55,8 +55,9 @@ const MainNavIcons = ({ listLinks, mobileLinks, handleClickOnLink })=>{
55
55
  const badgeContentNumeric = link.notificationsCount && link.notificationsCount > 0 ? link.notificationsCount.toString() : undefined;
56
56
  const labelValue = formatMessage(link.intlLabel);
57
57
  const linkMobile = mobileLinks.find((mobileLink)=>mobileLink.to === link.to);
58
- const LinkElement = ()=>/*#__PURE__*/ jsxs(NavLink.Link, {
58
+ const LinkElement = ()=>/*#__PURE__*/ jsxs(NavLink.NavButton, {
59
59
  to: link.to,
60
+ target: link.target,
60
61
  onClick: ()=>handleClickOnLink(link.to),
61
62
  "aria-label": labelValue,
62
63
  children: [
@@ -112,40 +113,41 @@ const MainNavBurgerMenuLinks = ({ listLinks, handleClickOnLink })=>{
112
113
  const labelValue = formatMessage(link.intlLabel);
113
114
  const navigationTarget = link.navigationLink || link.to;
114
115
  return /*#__PURE__*/ jsx(Flex, {
115
- paddingTop: 3,
116
116
  alignItems: "center",
117
117
  tag: "li",
118
- children: /*#__PURE__*/ jsxs(NavLink.Link, {
118
+ children: /*#__PURE__*/ jsx(NavLink.Link, {
119
119
  to: navigationTarget,
120
120
  onClick: ()=>handleClickOnLink(navigationTarget),
121
121
  "aria-label": labelValue,
122
- children: [
123
- /*#__PURE__*/ jsx(IconContainer, {
124
- marginRight: "0.6rem",
125
- children: /*#__PURE__*/ jsx(LinkIcon, {
126
- width: "20",
127
- height: "20",
128
- fill: "neutral500"
129
- })
130
- }),
131
- /*#__PURE__*/ jsx(Typography, {
132
- marginLeft: 3,
133
- children: labelValue
134
- }),
135
- badgeContentLock ? /*#__PURE__*/ jsx(NavLinkBadgeLock, {
136
- label: "locked",
137
- textColor: "neutral500",
138
- paddingLeft: 0,
139
- paddingRight: 0,
140
- children: badgeContentLock
141
- }) : badgeContentNumeric ? /*#__PURE__*/ jsx(NavLinkBadgeCounter, {
142
- label: badgeContentNumeric,
143
- backgroundColor: "primary600",
144
- width: "2.3rem",
145
- color: "neutral0",
146
- children: badgeContentNumeric
147
- }) : null
148
- ]
122
+ children: /*#__PURE__*/ jsxs(Flex, {
123
+ alignItems: "center",
124
+ gap: 3,
125
+ children: [
126
+ /*#__PURE__*/ jsx(IconContainer, {
127
+ children: /*#__PURE__*/ jsx(LinkIcon, {
128
+ width: "20",
129
+ height: "20",
130
+ fill: "neutral500"
131
+ })
132
+ }),
133
+ /*#__PURE__*/ jsx(Typography, {
134
+ children: labelValue
135
+ }),
136
+ badgeContentLock ? /*#__PURE__*/ jsx(NavLinkBadgeLock, {
137
+ label: "locked",
138
+ textColor: "neutral500",
139
+ paddingLeft: 0,
140
+ paddingRight: 0,
141
+ children: badgeContentLock
142
+ }) : badgeContentNumeric ? /*#__PURE__*/ jsx(NavLinkBadgeCounter, {
143
+ label: badgeContentNumeric,
144
+ backgroundColor: "primary600",
145
+ width: "2.3rem",
146
+ color: "neutral0",
147
+ children: badgeContentNumeric
148
+ }) : null
149
+ ]
150
+ })
149
151
  })
150
152
  }, navigationTarget);
151
153
  }) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"MainNavLinks.mjs","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex paddingTop={3} alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <IconContainer marginRight=\"0.6rem\">\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography marginLeft={3}>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","Link","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","paddingTop","alignItems","marginRight","Typography","marginLeft"],"mappings":"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"}
1
+ {"version":3,"file":"MainNavLinks.mjs","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.NavButton\n to={link.to}\n target={link.target}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.NavButton>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <Flex alignItems=\"center\" gap={3}>\n <IconContainer>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </Flex>\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","NavButton","target","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","alignItems","Link","gap","Typography"],"mappings":"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"}