@strapi/content-manager 5.0.0-beta.6 → 5.0.0-beta.8

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 (175) hide show
  1. package/dist/_chunks/{CardDragPreview-DSVYodBX.js → CardDragPreview-C0QyJgRA.js} +10 -14
  2. package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -0
  3. package/dist/_chunks/{CardDragPreview-ikSG4M46.mjs → CardDragPreview-DOxamsuj.mjs} +7 -9
  4. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -0
  5. package/dist/_chunks/{ComponentConfigurationPage--2aLCv-G.mjs → ComponentConfigurationPage-CuWgXugY.mjs} +3 -3
  6. package/dist/_chunks/{ComponentConfigurationPage--2aLCv-G.mjs.map → ComponentConfigurationPage-CuWgXugY.mjs.map} +1 -1
  7. package/dist/_chunks/{ComponentConfigurationPage-43KmCNQE.js → ComponentConfigurationPage-by0e_kNd.js} +3 -3
  8. package/dist/_chunks/{ComponentConfigurationPage-43KmCNQE.js.map → ComponentConfigurationPage-by0e_kNd.js.map} +1 -1
  9. package/dist/_chunks/{ComponentIcon-BBQsYCVn.js → ComponentIcon-BXdiCGQp.js} +8 -2
  10. package/dist/_chunks/ComponentIcon-BXdiCGQp.js.map +1 -0
  11. package/dist/_chunks/{ComponentIcon-BOFnK76n.mjs → ComponentIcon-u4bIXTFY.mjs} +9 -3
  12. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -0
  13. package/dist/_chunks/{EditConfigurationPage-BfFzJ4Br.js → EditConfigurationPage-CqBeCPGH.js} +3 -3
  14. package/dist/_chunks/{EditConfigurationPage-BfFzJ4Br.js.map → EditConfigurationPage-CqBeCPGH.js.map} +1 -1
  15. package/dist/_chunks/{EditConfigurationPage-CUcGHHvQ.mjs → EditConfigurationPage-DbI4KMyz.mjs} +3 -3
  16. package/dist/_chunks/{EditConfigurationPage-CUcGHHvQ.mjs.map → EditConfigurationPage-DbI4KMyz.mjs.map} +1 -1
  17. package/dist/_chunks/{EditViewPage-CzOT5Kpj.js → EditViewPage-ChgloMyO.js} +7 -9
  18. package/dist/_chunks/EditViewPage-ChgloMyO.js.map +1 -0
  19. package/dist/_chunks/{EditViewPage-Bm8lgcm6.mjs → EditViewPage-dFPBya9U.mjs} +6 -6
  20. package/dist/_chunks/EditViewPage-dFPBya9U.mjs.map +1 -0
  21. package/dist/_chunks/{Field-Dlh0uGnL.mjs → Field-C1nUKcdS.mjs} +500 -608
  22. package/dist/_chunks/Field-C1nUKcdS.mjs.map +1 -0
  23. package/dist/_chunks/{Field-Caef4JjM.js → Field-dLk-vgLL.js} +552 -661
  24. package/dist/_chunks/Field-dLk-vgLL.js.map +1 -0
  25. package/dist/_chunks/{Form-BzuAjtRq.js → Form-CbXtmHC_.js} +21 -19
  26. package/dist/_chunks/Form-CbXtmHC_.js.map +1 -0
  27. package/dist/_chunks/{Form-EnaQL_6L.mjs → Form-DOlpi7Js.mjs} +21 -18
  28. package/dist/_chunks/Form-DOlpi7Js.mjs.map +1 -0
  29. package/dist/_chunks/{History-D6sbCJvo.mjs → History-BFNUAiGc.mjs} +32 -43
  30. package/dist/_chunks/History-BFNUAiGc.mjs.map +1 -0
  31. package/dist/_chunks/{History-C17LiyRg.js → History-BjDfohBr.js} +32 -44
  32. package/dist/_chunks/History-BjDfohBr.js.map +1 -0
  33. package/dist/_chunks/{ListConfigurationPage-Ce4qs7qE.mjs → ListConfigurationPage-DDi0KqFm.mjs} +14 -14
  34. package/dist/_chunks/ListConfigurationPage-DDi0KqFm.mjs.map +1 -0
  35. package/dist/_chunks/{ListConfigurationPage-Dks5SX6f.js → ListConfigurationPage-IQBgWTaa.js} +17 -19
  36. package/dist/_chunks/ListConfigurationPage-IQBgWTaa.js.map +1 -0
  37. package/dist/_chunks/{ListViewPage-Be7S5aKL.mjs → ListViewPage-BPjljUsH.mjs} +25 -45
  38. package/dist/_chunks/ListViewPage-BPjljUsH.mjs.map +1 -0
  39. package/dist/_chunks/{ListViewPage-BwrZrPsh.js → ListViewPage-CZYGqlvF.js} +31 -51
  40. package/dist/_chunks/ListViewPage-CZYGqlvF.js.map +1 -0
  41. package/dist/_chunks/{NoContentTypePage-Cu5r1-JT.js → NoContentTypePage-BOAI6VZ1.js} +5 -5
  42. package/dist/_chunks/NoContentTypePage-BOAI6VZ1.js.map +1 -0
  43. package/dist/_chunks/{NoContentTypePage-CIPmYQMm.mjs → NoContentTypePage-DaWw67K-.mjs} +7 -7
  44. package/dist/_chunks/NoContentTypePage-DaWw67K-.mjs.map +1 -0
  45. package/dist/_chunks/{NoPermissionsPage-DhJ7LYrr.mjs → NoPermissionsPage-CZrJH00p.mjs} +5 -6
  46. package/dist/_chunks/NoPermissionsPage-CZrJH00p.mjs.map +1 -0
  47. package/dist/_chunks/{NoPermissionsPage-C-j6TEUF.js → NoPermissionsPage-cYEtLc_e.js} +4 -5
  48. package/dist/_chunks/NoPermissionsPage-cYEtLc_e.js.map +1 -0
  49. package/dist/_chunks/{Relations-CY7AtkDA.mjs → Relations-DTowyge2.mjs} +66 -56
  50. package/dist/_chunks/Relations-DTowyge2.mjs.map +1 -0
  51. package/dist/_chunks/{Relations-Czs-uZ-s.js → Relations-DU6B7irU.js} +70 -61
  52. package/dist/_chunks/Relations-DU6B7irU.js.map +1 -0
  53. package/dist/_chunks/{en-C-V1_90f.js → en-DTULi5-d.js} +3 -1
  54. package/dist/_chunks/{en-C-V1_90f.js.map → en-DTULi5-d.js.map} +1 -1
  55. package/dist/_chunks/{en-MBPul9Su.mjs → en-GCOTL6jR.mjs} +3 -1
  56. package/dist/_chunks/{en-MBPul9Su.mjs.map → en-GCOTL6jR.mjs.map} +1 -1
  57. package/dist/_chunks/{index-DNVx8ssZ.mjs → index-BaGHmIir.mjs} +507 -202
  58. package/dist/_chunks/index-BaGHmIir.mjs.map +1 -0
  59. package/dist/_chunks/{index-X_2tafck.js → index-CCJeB7Rw.js} +502 -198
  60. package/dist/_chunks/index-CCJeB7Rw.js.map +1 -0
  61. package/dist/_chunks/{layout-Dnh0PNp9.mjs → layout-BinjszSQ.mjs} +13 -13
  62. package/dist/_chunks/layout-BinjszSQ.mjs.map +1 -0
  63. package/dist/_chunks/{layout-dBc7wN7L.js → layout-ni_L9kT1.js} +14 -16
  64. package/dist/_chunks/layout-ni_L9kT1.js.map +1 -0
  65. package/dist/_chunks/{relations-4pHtBrHJ.js → relations-CeJAJc5I.js} +2 -2
  66. package/dist/_chunks/{relations-4pHtBrHJ.js.map → relations-CeJAJc5I.js.map} +1 -1
  67. package/dist/_chunks/{relations-Dx7tMKJN.mjs → relations-c91ji5eR.mjs} +2 -2
  68. package/dist/_chunks/{relations-Dx7tMKJN.mjs.map → relations-c91ji5eR.mjs.map} +1 -1
  69. package/dist/_chunks/useDragAndDrop-DdHgKsqq.mjs.map +1 -1
  70. package/dist/_chunks/useDragAndDrop-J0TUUbR6.js.map +1 -1
  71. package/dist/_chunks/usePrev-B9w_-eYc.js +15 -0
  72. package/dist/_chunks/usePrev-B9w_-eYc.js.map +1 -0
  73. package/dist/_chunks/usePrev-DH6iah0A.mjs +16 -0
  74. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +1 -0
  75. package/dist/admin/index.js +2 -1
  76. package/dist/admin/index.js.map +1 -1
  77. package/dist/admin/index.mjs +5 -4
  78. package/dist/admin/src/components/ComponentIcon.d.ts +6 -3
  79. package/dist/admin/src/content-manager.d.ts +3 -3
  80. package/dist/admin/src/exports.d.ts +1 -0
  81. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  82. package/dist/admin/src/hooks/useDocument.d.ts +5 -8
  83. package/dist/admin/src/hooks/useDocumentActions.d.ts +24 -3
  84. package/dist/admin/src/hooks/useDocumentLayout.d.ts +2 -2
  85. package/dist/admin/src/hooks/useDragAndDrop.d.ts +4 -4
  86. package/dist/admin/src/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  87. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +3 -1
  88. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +3 -3
  89. package/dist/admin/src/pages/EditView/components/FormInputs/Component/Input.d.ts +2 -2
  90. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +3 -5
  91. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  92. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +10 -18
  93. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +2 -2
  94. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +3 -49
  95. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +2 -2
  96. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +67 -52
  97. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -10
  98. package/dist/admin/src/services/api.d.ts +2 -3
  99. package/dist/admin/src/services/components.d.ts +2 -2
  100. package/dist/admin/src/services/contentTypes.d.ts +5 -5
  101. package/dist/admin/src/services/documents.d.ts +29 -17
  102. package/dist/admin/src/services/init.d.ts +2 -2
  103. package/dist/admin/src/services/relations.d.ts +3 -3
  104. package/dist/admin/src/services/uid.d.ts +3 -3
  105. package/dist/admin/src/utils/api.d.ts +4 -18
  106. package/dist/admin/src/utils/validation.d.ts +1 -6
  107. package/dist/server/index.js +529 -407
  108. package/dist/server/index.js.map +1 -1
  109. package/dist/server/index.mjs +537 -415
  110. package/dist/server/index.mjs.map +1 -1
  111. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  112. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  113. package/dist/server/src/controllers/utils/metadata.d.ts +8 -0
  114. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -0
  115. package/dist/server/src/controllers/validation/dimensions.d.ts +9 -0
  116. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -0
  117. package/dist/server/src/controllers/validation/index.d.ts +1 -1
  118. package/dist/server/src/history/services/history.d.ts +2 -4
  119. package/dist/server/src/history/services/history.d.ts.map +1 -1
  120. package/dist/server/src/history/services/index.d.ts +6 -2
  121. package/dist/server/src/history/services/index.d.ts.map +1 -1
  122. package/dist/server/src/history/services/lifecycles.d.ts +9 -0
  123. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -0
  124. package/dist/server/src/history/services/utils.d.ts +41 -9
  125. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  126. package/dist/server/src/history/utils.d.ts +6 -2
  127. package/dist/server/src/history/utils.d.ts.map +1 -1
  128. package/dist/server/src/index.d.ts +18 -39
  129. package/dist/server/src/index.d.ts.map +1 -1
  130. package/dist/server/src/services/document-manager.d.ts +13 -12
  131. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  132. package/dist/server/src/services/document-metadata.d.ts +8 -29
  133. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  134. package/dist/server/src/services/index.d.ts +18 -39
  135. package/dist/server/src/services/index.d.ts.map +1 -1
  136. package/dist/server/src/services/utils/populate.d.ts +8 -1
  137. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  138. package/dist/shared/contracts/collection-types.d.ts +14 -6
  139. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  140. package/dist/shared/contracts/relations.d.ts +2 -2
  141. package/dist/shared/contracts/relations.d.ts.map +1 -1
  142. package/package.json +13 -14
  143. package/dist/_chunks/CardDragPreview-DSVYodBX.js.map +0 -1
  144. package/dist/_chunks/CardDragPreview-ikSG4M46.mjs.map +0 -1
  145. package/dist/_chunks/ComponentIcon-BBQsYCVn.js.map +0 -1
  146. package/dist/_chunks/ComponentIcon-BOFnK76n.mjs.map +0 -1
  147. package/dist/_chunks/EditViewPage-Bm8lgcm6.mjs.map +0 -1
  148. package/dist/_chunks/EditViewPage-CzOT5Kpj.js.map +0 -1
  149. package/dist/_chunks/Field-Caef4JjM.js.map +0 -1
  150. package/dist/_chunks/Field-Dlh0uGnL.mjs.map +0 -1
  151. package/dist/_chunks/Form-BzuAjtRq.js.map +0 -1
  152. package/dist/_chunks/Form-EnaQL_6L.mjs.map +0 -1
  153. package/dist/_chunks/History-C17LiyRg.js.map +0 -1
  154. package/dist/_chunks/History-D6sbCJvo.mjs.map +0 -1
  155. package/dist/_chunks/ListConfigurationPage-Ce4qs7qE.mjs.map +0 -1
  156. package/dist/_chunks/ListConfigurationPage-Dks5SX6f.js.map +0 -1
  157. package/dist/_chunks/ListViewPage-Be7S5aKL.mjs.map +0 -1
  158. package/dist/_chunks/ListViewPage-BwrZrPsh.js.map +0 -1
  159. package/dist/_chunks/NoContentTypePage-CIPmYQMm.mjs.map +0 -1
  160. package/dist/_chunks/NoContentTypePage-Cu5r1-JT.js.map +0 -1
  161. package/dist/_chunks/NoPermissionsPage-C-j6TEUF.js.map +0 -1
  162. package/dist/_chunks/NoPermissionsPage-DhJ7LYrr.mjs.map +0 -1
  163. package/dist/_chunks/Relations-CY7AtkDA.mjs.map +0 -1
  164. package/dist/_chunks/Relations-Czs-uZ-s.js.map +0 -1
  165. package/dist/_chunks/index-DNVx8ssZ.mjs.map +0 -1
  166. package/dist/_chunks/index-X_2tafck.js.map +0 -1
  167. package/dist/_chunks/layout-Dnh0PNp9.mjs.map +0 -1
  168. package/dist/_chunks/layout-dBc7wN7L.js.map +0 -1
  169. package/dist/_chunks/urls-CbOsUOoW.mjs +0 -7
  170. package/dist/_chunks/urls-CbOsUOoW.mjs.map +0 -1
  171. package/dist/_chunks/urls-DzZya_gm.js +0 -6
  172. package/dist/_chunks/urls-DzZya_gm.js.map +0 -1
  173. package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +0 -31
  174. package/dist/server/src/controllers/utils/dimensions.d.ts +0 -5
  175. package/dist/server/src/controllers/utils/dimensions.d.ts.map +0 -1
@@ -7,10 +7,8 @@ const reactIntl = require("react-intl");
7
7
  const reactRouterDom = require("react-router-dom");
8
8
  const React = require("react");
9
9
  const designSystem = require("@strapi/design-system");
10
- const styled = require("styled-components");
10
+ const styledComponents = require("styled-components");
11
11
  const yup = require("yup");
12
- const react = require("@reduxjs/toolkit/query/react");
13
- const axios = require("axios");
14
12
  const pipe = require("lodash/fp/pipe");
15
13
  const dateFns = require("date-fns");
16
14
  const toolkit = require("@reduxjs/toolkit");
@@ -34,7 +32,6 @@ function _interopNamespace(e) {
34
32
  return Object.freeze(n);
35
33
  }
36
34
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
37
- const styled__default = /* @__PURE__ */ _interopDefault(styled);
38
35
  const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
39
36
  const pipe__default = /* @__PURE__ */ _interopDefault(pipe);
40
37
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
@@ -179,9 +176,8 @@ const DocumentRBAC = ({ children, permissions }) => {
179
176
  const name = removeNumericalStrings(fieldName.split("."));
180
177
  const componentFieldNames = fieldsUserCanAction.filter((field) => field.split(".").length > 1);
181
178
  if (fieldType === "component") {
182
- const componentOrDynamicZoneFields = componentFieldNames.map((field) => field.split("."));
183
- return componentOrDynamicZoneFields.some((field) => {
184
- return field.includes(fieldName);
179
+ return componentFieldNames.some((field) => {
180
+ return field.includes(name.join("."));
185
181
  });
186
182
  }
187
183
  if (name.length > 1) {
@@ -211,78 +207,8 @@ const extractAndDedupeFields = (permissions = []) => permissions.flatMap((permis
211
207
  (field, index2, arr) => arr.indexOf(field) === index2 && typeof field === "string"
212
208
  );
213
209
  const removeNumericalStrings = (arr) => arr.filter((item) => isNaN(Number(item)));
214
- const buildValidParams = (query) => {
215
- if (!query)
216
- return query;
217
- const { plugins: _, ...validQueryParams } = {
218
- ...query,
219
- ...Object.values(query?.plugins ?? {}).reduce(
220
- (acc, current) => Object.assign(acc, current),
221
- {}
222
- )
223
- };
224
- if ("_q" in validQueryParams) {
225
- validQueryParams._q = encodeURIComponent(validQueryParams._q);
226
- }
227
- return validQueryParams;
228
- };
229
- const axiosBaseQuery = () => async (query, { signal }) => {
230
- try {
231
- const { get, post, del, put } = strapiAdmin.getFetchClient();
232
- if (typeof query === "string") {
233
- const result = await get(query, { signal });
234
- return { data: result.data };
235
- } else {
236
- const { url, method = "GET", data, config } = query;
237
- if (method === "POST") {
238
- const result2 = await post(url, data, { ...config, signal });
239
- return { data: result2.data };
240
- }
241
- if (method === "DELETE") {
242
- const result2 = await del(url, { ...config, signal });
243
- return { data: result2.data };
244
- }
245
- if (method === "PUT") {
246
- const result2 = await put(url, data, { ...config, signal });
247
- return { data: result2.data };
248
- }
249
- const result = await get(url, { ...config, signal });
250
- return { data: result.data };
251
- }
252
- } catch (err) {
253
- if (axios.isAxiosError(err)) {
254
- if (typeof err.response?.data === "object" && err.response?.data !== null && "error" in err.response?.data) {
255
- return { data: void 0, error: err.response?.data.error };
256
- } else {
257
- return {
258
- data: void 0,
259
- error: {
260
- name: "UnknownError",
261
- message: "There was an unknown error response from the API",
262
- details: err.response?.data,
263
- status: err.response?.status
264
- }
265
- };
266
- }
267
- }
268
- const error = err;
269
- return {
270
- data: void 0,
271
- error: {
272
- name: error.name,
273
- message: error.message,
274
- stack: error.stack
275
- }
276
- };
277
- }
278
- };
279
- const isBaseQueryError = (error) => {
280
- return error.name !== void 0;
281
- };
282
- const contentManagerApi = react.createApi({
283
- reducerPath: "contentManagerApi",
284
- baseQuery: axiosBaseQuery(),
285
- tagTypes: [
210
+ const contentManagerApi = strapiAdmin.adminApi.enhanceEndpoints({
211
+ addTagTypes: [
286
212
  "ComponentConfiguration",
287
213
  "ContentTypesConfiguration",
288
214
  "ContentTypeSettings",
@@ -290,8 +216,7 @@ const contentManagerApi = react.createApi({
290
216
  "InitialData",
291
217
  "HistoryVersion",
292
218
  "Relations"
293
- ],
294
- endpoints: () => ({})
219
+ ]
295
220
  });
296
221
  const documentApi = contentManagerApi.injectEndpoints({
297
222
  endpoints: (builder) => ({
@@ -347,12 +272,15 @@ const documentApi = contentManagerApi.injectEndpoints({
347
272
  ]
348
273
  }),
349
274
  deleteManyDocuments: builder.mutation({
350
- query: ({ model, ...body }) => ({
275
+ query: ({ model, params, ...body }) => ({
351
276
  url: `/content-manager/collection-types/${model}/actions/bulkDelete`,
352
277
  method: "POST",
353
- data: body
278
+ data: body,
279
+ config: {
280
+ params
281
+ }
354
282
  }),
355
- invalidatesTags: (_res, _error, { model, documentIds }) => documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` }))
283
+ invalidatesTags: (_res, _error, { model }) => [{ type: "Document", id: `${model}_LIST` }]
356
284
  }),
357
285
  discardDocument: builder.mutation({
358
286
  query: ({ collectionType, model, documentId, params }) => ({
@@ -463,10 +391,13 @@ const documentApi = contentManagerApi.injectEndpoints({
463
391
  }
464
392
  }),
465
393
  publishManyDocuments: builder.mutation({
466
- query: ({ model, ...body }) => ({
394
+ query: ({ model, params, ...body }) => ({
467
395
  url: `/content-manager/collection-types/${model}/actions/bulkPublish`,
468
396
  method: "POST",
469
- data: body
397
+ data: body,
398
+ config: {
399
+ params
400
+ }
470
401
  }),
471
402
  invalidatesTags: (_res, _error, { model, documentIds }) => documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` }))
472
403
  }),
@@ -508,10 +439,13 @@ const documentApi = contentManagerApi.injectEndpoints({
508
439
  }
509
440
  }),
510
441
  unpublishManyDocuments: builder.mutation({
511
- query: ({ model, ...body }) => ({
442
+ query: ({ model, params, ...body }) => ({
512
443
  url: `/content-manager/collection-types/${model}/actions/bulkUnpublish`,
513
444
  method: "POST",
514
- data: body
445
+ data: body,
446
+ config: {
447
+ params
448
+ }
515
449
  }),
516
450
  invalidatesTags: (_res, _error, { model, documentIds }) => documentIds.map((id) => ({ type: "Document", id: `${model}_${id}` }))
517
451
  })
@@ -535,6 +469,24 @@ const {
535
469
  useUnpublishDocumentMutation,
536
470
  useUnpublishManyDocumentsMutation
537
471
  } = documentApi;
472
+ const buildValidParams = (query) => {
473
+ if (!query)
474
+ return query;
475
+ const { plugins: _, ...validQueryParams } = {
476
+ ...query,
477
+ ...Object.values(query?.plugins ?? {}).reduce(
478
+ (acc, current) => Object.assign(acc, current),
479
+ {}
480
+ )
481
+ };
482
+ if ("_q" in validQueryParams) {
483
+ validQueryParams._q = encodeURIComponent(validQueryParams._q);
484
+ }
485
+ return validQueryParams;
486
+ };
487
+ const isBaseQueryError = (error) => {
488
+ return error.name !== void 0;
489
+ };
538
490
  const createYupSchema = (attributes = {}, components = {}) => {
539
491
  const createModelSchema = (attributes2) => yup__namespace.object().shape(
540
492
  Object.entries(attributes2).reduce((acc, [name, attribute]) => {
@@ -574,10 +526,14 @@ const createYupSchema = (attributes = {}, components = {}) => {
574
526
  yup__namespace.array().of(
575
527
  yup__namespace.lazy(
576
528
  (data) => {
577
- const { attributes: attributes3 } = components[data.__component];
578
- return yup__namespace.object().shape({
529
+ const attributes3 = components?.[data?.__component]?.attributes;
530
+ const validation = yup__namespace.object().shape({
579
531
  __component: yup__namespace.string().required().oneOf(Object.keys(components))
580
- }).nullable(false).concat(createModelSchema(attributes3));
532
+ }).nullable(false);
533
+ if (!attributes3) {
534
+ return validation;
535
+ }
536
+ return validation.concat(createModelSchema(attributes3));
581
537
  }
582
538
  )
583
539
  )
@@ -587,11 +543,25 @@ const createYupSchema = (attributes = {}, components = {}) => {
587
543
  return {
588
544
  ...acc,
589
545
  [name]: transformSchema(
590
- yup__namespace.array().of(
591
- yup__namespace.object().shape({
592
- id: yup__namespace.string().required()
593
- })
594
- )
546
+ yup__namespace.lazy((value) => {
547
+ if (!value) {
548
+ return yup__namespace.mixed().nullable(true);
549
+ } else if (Array.isArray(value)) {
550
+ return yup__namespace.array().of(
551
+ yup__namespace.object().shape({
552
+ id: yup__namespace.string().required()
553
+ })
554
+ );
555
+ } else if (typeof value === "object") {
556
+ return yup__namespace.object();
557
+ } else {
558
+ return yup__namespace.mixed().test(
559
+ "type-error",
560
+ "Relation values must be either null, an array of objects with {id} or an object.",
561
+ () => false
562
+ );
563
+ }
564
+ })
595
565
  )
596
566
  };
597
567
  default:
@@ -656,7 +626,12 @@ const addRequiredValidation = (attribute) => (schema) => {
656
626
  defaultMessage: "This field is required."
657
627
  });
658
628
  }
659
- return schema.nullable();
629
+ return schema?.nullable ? schema.nullable() : (
630
+ // In some cases '.nullable' will not be available on the schema.
631
+ // e.g. when the schema has been built using yup.lazy (e.g. for relations).
632
+ // In these cases we should just return the schema as it is.
633
+ schema
634
+ );
660
635
  };
661
636
  const addMinLengthValidation = (attribute) => (schema) => {
662
637
  if ("minLength" in attribute && attribute.minLength && Number.isInteger(attribute.minLength) && "min" in schema) {
@@ -728,24 +703,6 @@ const addRegexValidation = (attribute) => (schema) => {
728
703
  }
729
704
  return schema;
730
705
  };
731
- const extractValuesFromYupError = (errorType, errorParams) => {
732
- if (!errorType || !errorParams) {
733
- return {};
734
- }
735
- return {
736
- [errorType]: errorParams[errorType]
737
- };
738
- };
739
- const getInnerErrors = (error) => (error?.inner || []).reduce((acc, currentError) => {
740
- if (currentError.path) {
741
- acc[currentError.path.split("[").join(".").split("]").join("")] = {
742
- id: currentError.message,
743
- defaultMessage: currentError.message,
744
- values: extractValuesFromYupError(currentError?.type, currentError?.params)
745
- };
746
- }
747
- return acc;
748
- }, {});
749
706
  const initApi = contentManagerApi.injectEndpoints({
750
707
  endpoints: (builder) => ({
751
708
  getInitialData: builder.query({
@@ -759,27 +716,20 @@ const { useGetInitialDataQuery } = initApi;
759
716
  const useContentTypeSchema = (model) => {
760
717
  const { toggleNotification } = strapiAdmin.useNotification();
761
718
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
762
- const { components, contentType, contentTypes, error, isLoading, isFetching } = useGetInitialDataQuery(void 0, {
763
- selectFromResult: (res) => {
764
- const contentType2 = res.data?.contentTypes.find((ct) => ct.uid === model);
765
- const componentsByKey = res.data?.components.reduce(
766
- (acc, component) => {
767
- acc[component.uid] = component;
768
- return acc;
769
- },
770
- {}
771
- );
772
- const components2 = extractContentTypeComponents(contentType2?.attributes, componentsByKey);
773
- return {
774
- isLoading: res.isLoading,
775
- isFetching: res.isFetching,
776
- error: res.error,
777
- components: Object.keys(components2).length === 0 ? void 0 : components2,
778
- contentType: contentType2,
779
- contentTypes: res.data?.contentTypes ?? []
780
- };
781
- }
782
- });
719
+ const { data, error, isLoading, isFetching } = useGetInitialDataQuery(void 0);
720
+ const { components, contentType, contentTypes } = React__namespace.useMemo(() => {
721
+ const contentType2 = data?.contentTypes.find((ct) => ct.uid === model);
722
+ const componentsByKey = data?.components.reduce((acc, component) => {
723
+ acc[component.uid] = component;
724
+ return acc;
725
+ }, {});
726
+ const components2 = extractContentTypeComponents(contentType2?.attributes, componentsByKey);
727
+ return {
728
+ components: Object.keys(components2).length === 0 ? void 0 : components2,
729
+ contentType: contentType2,
730
+ contentTypes: data?.contentTypes ?? []
731
+ };
732
+ }, [model, data]);
783
733
  React__namespace.useEffect(() => {
784
734
  if (error) {
785
735
  toggleNotification({
@@ -862,7 +812,7 @@ const useDocument = (args, opts) => {
862
812
  return null;
863
813
  } catch (error2) {
864
814
  if (error2 instanceof yup.ValidationError) {
865
- return getInnerErrors(error2);
815
+ return strapiAdmin.getYupValidationErrors(error2);
866
816
  }
867
817
  throw error2;
868
818
  }
@@ -958,6 +908,44 @@ const useDocumentActions = () => {
958
908
  },
959
909
  [trackUsage, deleteDocument, toggleNotification, formatMessage, formatAPIError]
960
910
  );
911
+ const [deleteManyDocuments] = useDeleteManyDocumentsMutation();
912
+ const deleteMany = React__namespace.useCallback(
913
+ async ({ model, documentIds, params }) => {
914
+ try {
915
+ trackUsage("willBulkDeleteEntries");
916
+ const res = await deleteManyDocuments({
917
+ model,
918
+ documentIds,
919
+ params
920
+ });
921
+ if ("error" in res) {
922
+ toggleNotification({
923
+ type: "danger",
924
+ message: formatAPIError(res.error)
925
+ });
926
+ return { error: res.error };
927
+ }
928
+ toggleNotification({
929
+ type: "success",
930
+ title: formatMessage({
931
+ id: getTranslation("success.records.delete"),
932
+ defaultMessage: "Successfully deleted."
933
+ }),
934
+ message: ""
935
+ });
936
+ trackUsage("didBulkDeleteEntries");
937
+ return res.data;
938
+ } catch (err) {
939
+ toggleNotification({
940
+ type: "danger",
941
+ message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
942
+ });
943
+ trackUsage("didNotBulkDeleteEntries");
944
+ throw err;
945
+ }
946
+ },
947
+ [trackUsage, deleteManyDocuments, toggleNotification, formatMessage, formatAPIError]
948
+ );
961
949
  const [discardDocument] = useDiscardDocumentMutation();
962
950
  const discard = React__namespace.useCallback(
963
951
  async ({ collectionType, model, documentId }) => {
@@ -1027,6 +1015,43 @@ const useDocumentActions = () => {
1027
1015
  },
1028
1016
  [trackUsage, publishDocument, toggleNotification, formatMessage, formatAPIError]
1029
1017
  );
1018
+ const [publishManyDocuments] = usePublishManyDocumentsMutation();
1019
+ const publishMany = React__namespace.useCallback(
1020
+ async ({ model, documentIds, params }) => {
1021
+ try {
1022
+ const res = await publishManyDocuments({
1023
+ model,
1024
+ documentIds,
1025
+ params
1026
+ });
1027
+ if ("error" in res) {
1028
+ toggleNotification({ type: "danger", message: formatAPIError(res.error) });
1029
+ return { error: res.error };
1030
+ }
1031
+ toggleNotification({
1032
+ type: "success",
1033
+ message: formatMessage({
1034
+ id: getTranslation("success.record.publish"),
1035
+ defaultMessage: "Published document"
1036
+ })
1037
+ });
1038
+ return res.data;
1039
+ } catch (err) {
1040
+ toggleNotification({
1041
+ type: "danger",
1042
+ message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
1043
+ });
1044
+ throw err;
1045
+ }
1046
+ },
1047
+ [
1048
+ // trackUsage,
1049
+ publishManyDocuments,
1050
+ toggleNotification,
1051
+ formatMessage,
1052
+ formatAPIError
1053
+ ]
1054
+ );
1030
1055
  const [updateDocument] = useUpdateDocumentMutation();
1031
1056
  const update = React__namespace.useCallback(
1032
1057
  async ({ collectionType, model, documentId, params }, data, trackerProperty) => {
@@ -1101,6 +1126,41 @@ const useDocumentActions = () => {
1101
1126
  },
1102
1127
  [trackUsage, unpublishDocument, toggleNotification, formatMessage, formatAPIError]
1103
1128
  );
1129
+ const [unpublishManyDocuments] = useUnpublishManyDocumentsMutation();
1130
+ const unpublishMany = React__namespace.useCallback(
1131
+ async ({ model, documentIds, params }) => {
1132
+ try {
1133
+ trackUsage("willBulkUnpublishEntries");
1134
+ const res = await unpublishManyDocuments({
1135
+ model,
1136
+ documentIds,
1137
+ params
1138
+ });
1139
+ if ("error" in res) {
1140
+ toggleNotification({ type: "danger", message: formatAPIError(res.error) });
1141
+ return { error: res.error };
1142
+ }
1143
+ trackUsage("didBulkUnpublishEntries");
1144
+ toggleNotification({
1145
+ type: "success",
1146
+ title: formatMessage({
1147
+ id: getTranslation("success.records.unpublish"),
1148
+ defaultMessage: "Successfully unpublished."
1149
+ }),
1150
+ message: ""
1151
+ });
1152
+ return res.data;
1153
+ } catch (err) {
1154
+ toggleNotification({
1155
+ type: "danger",
1156
+ message: formatMessage(DEFAULT_UNEXPECTED_ERROR_MSG)
1157
+ });
1158
+ trackUsage("didNotBulkUnpublishEntries");
1159
+ throw err;
1160
+ }
1161
+ },
1162
+ [trackUsage, unpublishManyDocuments, toggleNotification, formatMessage, formatAPIError]
1163
+ );
1104
1164
  const [createDocument] = useCreateDocumentMutation();
1105
1165
  const create = React__namespace.useCallback(
1106
1166
  async ({ model, params }, data, trackerProperty) => {
@@ -1214,15 +1274,18 @@ const useDocumentActions = () => {
1214
1274
  clone,
1215
1275
  create,
1216
1276
  delete: _delete,
1277
+ deleteMany,
1217
1278
  discard,
1218
1279
  getDocument,
1219
1280
  publish,
1281
+ publishMany,
1220
1282
  unpublish,
1283
+ unpublishMany,
1221
1284
  update
1222
1285
  };
1223
1286
  };
1224
1287
  const ProtectedHistoryPage = React.lazy(
1225
- () => Promise.resolve().then(() => require("./History-C17LiyRg.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
1288
+ () => Promise.resolve().then(() => require("./History-BjDfohBr.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
1226
1289
  );
1227
1290
  const routes$1 = [
1228
1291
  {
@@ -1235,31 +1298,31 @@ const routes$1 = [
1235
1298
  }
1236
1299
  ];
1237
1300
  const ProtectedEditViewPage = React.lazy(
1238
- () => Promise.resolve().then(() => require("./EditViewPage-CzOT5Kpj.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
1301
+ () => Promise.resolve().then(() => require("./EditViewPage-ChgloMyO.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
1239
1302
  );
1240
1303
  const ProtectedListViewPage = React.lazy(
1241
- () => Promise.resolve().then(() => require("./ListViewPage-BwrZrPsh.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
1304
+ () => Promise.resolve().then(() => require("./ListViewPage-CZYGqlvF.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
1242
1305
  );
1243
1306
  const ProtectedListConfiguration = React.lazy(
1244
- () => Promise.resolve().then(() => require("./ListConfigurationPage-Dks5SX6f.js")).then((mod) => ({
1307
+ () => Promise.resolve().then(() => require("./ListConfigurationPage-IQBgWTaa.js")).then((mod) => ({
1245
1308
  default: mod.ProtectedListConfiguration
1246
1309
  }))
1247
1310
  );
1248
1311
  const ProtectedEditConfigurationPage = React.lazy(
1249
- () => Promise.resolve().then(() => require("./EditConfigurationPage-BfFzJ4Br.js")).then((mod) => ({
1312
+ () => Promise.resolve().then(() => require("./EditConfigurationPage-CqBeCPGH.js")).then((mod) => ({
1250
1313
  default: mod.ProtectedEditConfigurationPage
1251
1314
  }))
1252
1315
  );
1253
1316
  const ProtectedComponentConfigurationPage = React.lazy(
1254
- () => Promise.resolve().then(() => require("./ComponentConfigurationPage-43KmCNQE.js")).then((mod) => ({
1317
+ () => Promise.resolve().then(() => require("./ComponentConfigurationPage-by0e_kNd.js")).then((mod) => ({
1255
1318
  default: mod.ProtectedComponentConfigurationPage
1256
1319
  }))
1257
1320
  );
1258
1321
  const NoPermissions = React.lazy(
1259
- () => Promise.resolve().then(() => require("./NoPermissionsPage-C-j6TEUF.js")).then((mod) => ({ default: mod.NoPermissions }))
1322
+ () => Promise.resolve().then(() => require("./NoPermissionsPage-cYEtLc_e.js")).then((mod) => ({ default: mod.NoPermissions }))
1260
1323
  );
1261
1324
  const NoContentType = React.lazy(
1262
- () => Promise.resolve().then(() => require("./NoContentTypePage-Cu5r1-JT.js")).then((mod) => ({ default: mod.NoContentType }))
1325
+ () => Promise.resolve().then(() => require("./NoContentTypePage-BOAI6VZ1.js")).then((mod) => ({ default: mod.NoContentType }))
1263
1326
  );
1264
1327
  const CollectionTypePages = () => {
1265
1328
  const { collectionType } = reactRouterDom.useParams();
@@ -1449,7 +1512,7 @@ const DocumentActionsMenu = ({
1449
1512
  variant,
1450
1513
  children: [
1451
1514
  /* @__PURE__ */ jsxRuntime.jsx(Icons.More, { "aria-hidden": true, focusable: false }),
1452
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { as: "span", children: label || formatMessage({
1515
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { tag: "span", children: label || formatMessage({
1453
1516
  id: "content-manager.containers.edit.panels.default.more-actions",
1454
1517
  defaultMessage: "More document actions"
1455
1518
  }) })
@@ -1465,7 +1528,7 @@ const DocumentActionsMenu = ({
1465
1528
  onSelect: handleClick(action),
1466
1529
  display: "block",
1467
1530
  children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: [
1468
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { color: convertActionVariantToColor(action.variant), gap: 2, as: "span", children: [
1531
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { color: convertActionVariantToColor(action.variant), gap: 2, tag: "span", children: [
1469
1532
  action.icon,
1470
1533
  action.label
1471
1534
  ] }),
@@ -1571,7 +1634,7 @@ const DocumentActionModal = ({
1571
1634
  title,
1572
1635
  onClose,
1573
1636
  footer: Footer,
1574
- content,
1637
+ content: Content,
1575
1638
  onModalClose
1576
1639
  }) => {
1577
1640
  const id = React__namespace.useId();
@@ -1585,8 +1648,8 @@ const DocumentActionModal = ({
1585
1648
  onModalClose();
1586
1649
  };
1587
1650
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ModalLayout, { borderRadius: "4px", overflow: "hidden", onClose: handleClose, labelledBy: id, children: [
1588
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", as: "h2", id, children: title }) }),
1589
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: content }),
1651
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", tag: "h2", id, children: title }) }),
1652
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalBody, { children: typeof Content === "function" ? /* @__PURE__ */ jsxRuntime.jsx(Content, { onClose: handleClose }) : Content }),
1590
1653
  /* @__PURE__ */ jsxRuntime.jsx(
1591
1654
  designSystem.Box,
1592
1655
  {
@@ -1803,7 +1866,7 @@ const UNPUBLISH_DRAFT_OPTIONS = {
1803
1866
  KEEP: "keep",
1804
1867
  DISCARD: "discard"
1805
1868
  };
1806
- const UnpublishAction = ({
1869
+ const UnpublishAction$1 = ({
1807
1870
  activeTab,
1808
1871
  documentId,
1809
1872
  model,
@@ -1866,7 +1929,7 @@ const UnpublishAction = ({
1866
1929
  content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-start", direction: "column", gap: 6, children: [
1867
1930
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", direction: "column", gap: 2, children: [
1868
1931
  /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, { width: "24px", height: "24px", fill: "danger600" }),
1869
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "p", variant: "omega", textAlign: "center", children: formatMessage({
1932
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", variant: "omega", textAlign: "center", children: formatMessage({
1870
1933
  id: "content-manager.actions.unpublish.dialog.body",
1871
1934
  defaultMessage: "Are you sure?"
1872
1935
  }) })
@@ -1877,10 +1940,11 @@ const UnpublishAction = ({
1877
1940
  onChange: handleChange,
1878
1941
  direction: "column",
1879
1942
  alignItems: "flex-start",
1880
- as: "fieldset",
1943
+ tag: "fieldset",
1944
+ borderWidth: 0,
1881
1945
  gap: 3,
1882
1946
  children: [
1883
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { as: "legend" }),
1947
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { tag: "legend" }),
1884
1948
  /* @__PURE__ */ jsxRuntime.jsx(
1885
1949
  designSystem.Radio,
1886
1950
  {
@@ -1937,7 +2001,7 @@ const UnpublishAction = ({
1937
2001
  position: ["panel", "table-row"]
1938
2002
  };
1939
2003
  };
1940
- UnpublishAction.type = "unpublish";
2004
+ UnpublishAction$1.type = "unpublish";
1941
2005
  const DiscardAction = ({
1942
2006
  activeTab,
1943
2007
  documentId,
@@ -1971,7 +2035,7 @@ const DiscardAction = ({
1971
2035
  }),
1972
2036
  content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
1973
2037
  /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, { width: "24px", height: "24px", fill: "danger600" }),
1974
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "p", variant: "omega", textAlign: "center", children: formatMessage({
2038
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", variant: "omega", textAlign: "center", children: formatMessage({
1975
2039
  id: "content-manager.actions.discard.dialog.body",
1976
2040
  defaultMessage: "Are you sure?"
1977
2041
  }) })
@@ -1988,12 +2052,12 @@ const DiscardAction = ({
1988
2052
  };
1989
2053
  };
1990
2054
  DiscardAction.type = "discard";
1991
- const StyledCrossCircle = styled__default.default(Icons.CrossCircle)`
2055
+ const StyledCrossCircle = styledComponents.styled(Icons.CrossCircle)`
1992
2056
  path {
1993
2057
  fill: currentColor;
1994
2058
  }
1995
2059
  `;
1996
- const DEFAULT_ACTIONS = [PublishAction, UpdateAction, UnpublishAction, DiscardAction];
2060
+ const DEFAULT_ACTIONS = [PublishAction, UpdateAction, UnpublishAction$1, DiscardAction];
1997
2061
  const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
1998
2062
  const RelativeTime = React__namespace.forwardRef(
1999
2063
  ({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {
@@ -2041,7 +2105,7 @@ const getDisplayName = ({
2041
2105
  const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
2042
2106
  const DocumentStatus = ({ status = "draft", ...restProps }) => {
2043
2107
  const statusVariant = status === "draft" ? "primary" : status === "published" ? "success" : "alternative";
2044
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, showBullet: false, size: "S", variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "span", variant: "omega", fontWeight: "bold", children: capitalise(status) }) });
2108
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, showBullet: false, size: "S", variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: capitalise(status) }) });
2045
2109
  };
2046
2110
  const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
2047
2111
  const { formatMessage } = reactIntl.useIntl();
@@ -2061,7 +2125,7 @@ const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
2061
2125
  gap: "80px",
2062
2126
  alignItems: "flex-start",
2063
2127
  children: [
2064
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", as: "h1", children: title }),
2128
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
2065
2129
  /* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
2066
2130
  ]
2067
2131
  }
@@ -2218,7 +2282,7 @@ const Information = ({ activeTab }) => {
2218
2282
  borderColor: "neutral150",
2219
2283
  direction: "column",
2220
2284
  marginTop: 2,
2221
- as: "dl",
2285
+ tag: "dl",
2222
2286
  padding: 5,
2223
2287
  gap: 3,
2224
2288
  alignItems: "flex-start",
@@ -2226,8 +2290,8 @@ const Information = ({ activeTab }) => {
2226
2290
  marginRight: "-0.4rem",
2227
2291
  width: "calc(100% + 8px)",
2228
2292
  children: information.map((info) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 1, direction: "column", alignItems: "flex-start", children: [
2229
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "dt", variant: "pi", fontWeight: "bold", children: info.label }),
2230
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "dd", variant: "pi", textColor: "neutral600", children: info.value })
2293
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "dt", variant: "pi", fontWeight: "bold", children: info.label }),
2294
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "dd", variant: "pi", textColor: "neutral600", children: info.value })
2231
2295
  ] }, info.label))
2232
2296
  }
2233
2297
  );
@@ -2260,7 +2324,7 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
2260
2324
  id: "app.links.configure-view",
2261
2325
  defaultMessage: "Configure the view"
2262
2326
  }),
2263
- icon: /* @__PURE__ */ jsxRuntime.jsx(StyledCog, {}),
2327
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ListPlus, {}),
2264
2328
  onClick: () => {
2265
2329
  navigate(`../${collectionType}/${model}/configurations/edit`);
2266
2330
  },
@@ -2268,11 +2332,6 @@ const ConfigureTheViewAction = ({ collectionType, model }) => {
2268
2332
  };
2269
2333
  };
2270
2334
  ConfigureTheViewAction.type = "configure-the-view";
2271
- const StyledCog = styled__default.default(Icons.Cog)`
2272
- path {
2273
- fill: currentColor;
2274
- }
2275
- `;
2276
2335
  const EditTheModelAction = ({ model }) => {
2277
2336
  const navigate = reactRouterDom.useNavigate();
2278
2337
  const { formatMessage } = reactIntl.useIntl();
@@ -2281,7 +2340,7 @@ const EditTheModelAction = ({ model }) => {
2281
2340
  id: "content-manager.link-to-ctb",
2282
2341
  defaultMessage: "Edit the model"
2283
2342
  }),
2284
- icon: /* @__PURE__ */ jsxRuntime.jsx(StyledPencil$1, {}),
2343
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.Pencil, {}),
2285
2344
  onClick: () => {
2286
2345
  navigate(`/plugins/content-type-builder/content-types/${model}`);
2287
2346
  },
@@ -2289,12 +2348,7 @@ const EditTheModelAction = ({ model }) => {
2289
2348
  };
2290
2349
  };
2291
2350
  EditTheModelAction.type = "edit-the-model";
2292
- const StyledPencil$1 = styled__default.default(Icons.Pencil)`
2293
- path {
2294
- fill: currentColor;
2295
- }
2296
- `;
2297
- const DeleteAction = ({ documentId, model, collectionType, document }) => {
2351
+ const DeleteAction$1 = ({ documentId, model, collectionType, document }) => {
2298
2352
  const navigate = reactRouterDom.useNavigate();
2299
2353
  const { formatMessage } = reactIntl.useIntl();
2300
2354
  const listViewPathMatch = reactRouterDom.useMatch(LIST_PATH);
@@ -2308,7 +2362,7 @@ const DeleteAction = ({ documentId, model, collectionType, document }) => {
2308
2362
  id: "content-manager.actions.delete.label",
2309
2363
  defaultMessage: "Delete document"
2310
2364
  }),
2311
- icon: /* @__PURE__ */ jsxRuntime.jsx(StyledTrash, {}),
2365
+ icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.Trash, {}),
2312
2366
  dialog: {
2313
2367
  type: "dialog",
2314
2368
  title: formatMessage({
@@ -2317,7 +2371,7 @@ const DeleteAction = ({ documentId, model, collectionType, document }) => {
2317
2371
  }),
2318
2372
  content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
2319
2373
  /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, { width: "24px", height: "24px", fill: "danger600" }),
2320
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "p", variant: "omega", textAlign: "center", children: formatMessage({
2374
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", variant: "omega", textAlign: "center", children: formatMessage({
2321
2375
  id: "content-manager.actions.delete.dialog.body",
2322
2376
  defaultMessage: "Are you sure?"
2323
2377
  }) })
@@ -2362,13 +2416,8 @@ const DeleteAction = ({ documentId, model, collectionType, document }) => {
2362
2416
  position: ["header", "table-row"]
2363
2417
  };
2364
2418
  };
2365
- DeleteAction.type = "delete";
2366
- const StyledTrash = styled__default.default(Icons.Trash)`
2367
- path {
2368
- fill: currentColor;
2369
- }
2370
- `;
2371
- const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction];
2419
+ DeleteAction$1.type = "delete";
2420
+ const DEFAULT_HEADER_ACTIONS = [EditTheModelAction, ConfigureTheViewAction, DeleteAction$1];
2372
2421
  const Panels = () => {
2373
2422
  const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
2374
2423
  const [
@@ -2442,7 +2491,7 @@ const Panel = React__namespace.forwardRef(({ children, title }, ref) => {
2442
2491
  designSystem.Flex,
2443
2492
  {
2444
2493
  ref,
2445
- as: "aside",
2494
+ tag: "aside",
2446
2495
  "aria-labelledby": "additional-information",
2447
2496
  background: "neutral0",
2448
2497
  borderColor: "neutral150",
@@ -2457,13 +2506,268 @@ const Panel = React__namespace.forwardRef(({ children, title }, ref) => {
2457
2506
  justifyContent: "stretch",
2458
2507
  alignItems: "flex-start",
2459
2508
  children: [
2460
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "h2", variant: "sigma", textTransform: "uppercase", children: title }),
2509
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "h2", variant: "sigma", textTransform: "uppercase", children: title }),
2461
2510
  children
2462
2511
  ]
2463
2512
  }
2464
2513
  );
2465
2514
  });
2466
- const DEFAULT_BULK_ACTIONS = [];
2515
+ const BulkActionsRenderer = () => {
2516
+ const plugins = strapiAdmin.useStrapiApp("BulkActionsRenderer", (state) => state.plugins);
2517
+ const { model, collectionType } = useDoc();
2518
+ const { selectedRows } = strapiAdmin.useTable("BulkActionsRenderer", (state) => state);
2519
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { gap: 2, children: /* @__PURE__ */ jsxRuntime.jsx(
2520
+ strapiAdmin.DescriptionComponentRenderer,
2521
+ {
2522
+ props: {
2523
+ model,
2524
+ collectionType,
2525
+ documents: selectedRows
2526
+ },
2527
+ descriptions: plugins["content-manager"].apis.getBulkActions(),
2528
+ children: (actions2) => actions2.map((action) => /* @__PURE__ */ jsxRuntime.jsx(BulkActionAction, { ...action }, action.id))
2529
+ }
2530
+ ) });
2531
+ };
2532
+ const BulkActionAction = (action) => {
2533
+ const [dialogId, setDialogId] = React__namespace.useState(null);
2534
+ const { toggleNotification } = strapiAdmin.useNotification();
2535
+ const handleClick = (action2) => (e) => {
2536
+ const { onClick, dialog, id } = action2;
2537
+ if (onClick) {
2538
+ onClick(e);
2539
+ }
2540
+ if (dialog) {
2541
+ switch (dialog.type) {
2542
+ case "notification":
2543
+ toggleNotification({
2544
+ title: dialog.title,
2545
+ message: dialog.content,
2546
+ type: dialog.status,
2547
+ timeout: dialog.timeout,
2548
+ onClose: dialog.onClose
2549
+ });
2550
+ break;
2551
+ case "dialog":
2552
+ case "modal": {
2553
+ e.preventDefault();
2554
+ setDialogId(id);
2555
+ }
2556
+ }
2557
+ }
2558
+ };
2559
+ const handleClose = () => {
2560
+ setDialogId(null);
2561
+ if (action.dialog?.type === "modal" && action.dialog?.onClose) {
2562
+ action.dialog.onClose();
2563
+ }
2564
+ };
2565
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2566
+ /* @__PURE__ */ jsxRuntime.jsx(
2567
+ designSystem.Button,
2568
+ {
2569
+ disabled: action.disabled,
2570
+ startIcon: action.icon,
2571
+ variant: action.variant,
2572
+ onClick: handleClick(action),
2573
+ children: action.label
2574
+ }
2575
+ ),
2576
+ action.dialog?.type === "dialog" ? /* @__PURE__ */ jsxRuntime.jsx(
2577
+ BulkActionConfirmDialog,
2578
+ {
2579
+ ...action.dialog,
2580
+ variant: action.variant,
2581
+ isOpen: dialogId === action.id,
2582
+ onClose: handleClose
2583
+ }
2584
+ ) : null,
2585
+ action.dialog?.type === "modal" ? /* @__PURE__ */ jsxRuntime.jsx(
2586
+ BulkActionModal,
2587
+ {
2588
+ ...action.dialog,
2589
+ onModalClose: handleClose,
2590
+ isOpen: dialogId === action.id
2591
+ }
2592
+ ) : null
2593
+ ] });
2594
+ };
2595
+ const BulkActionConfirmDialog = ({
2596
+ onClose,
2597
+ onCancel,
2598
+ onConfirm,
2599
+ title,
2600
+ content,
2601
+ confirmButton,
2602
+ isOpen,
2603
+ variant = "secondary"
2604
+ }) => {
2605
+ const { formatMessage } = reactIntl.useIntl();
2606
+ const handleClose = async () => {
2607
+ if (onCancel) {
2608
+ await onCancel();
2609
+ }
2610
+ onClose();
2611
+ };
2612
+ const handleConfirm = async () => {
2613
+ if (onConfirm) {
2614
+ await onConfirm();
2615
+ }
2616
+ onClose();
2617
+ };
2618
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog, { isOpen, title, onClose: handleClose, children: [
2619
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.DialogBody, { icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.WarningCircle, {}), children: content }),
2620
+ /* @__PURE__ */ jsxRuntime.jsx(
2621
+ designSystem.DialogFooter,
2622
+ {
2623
+ startAction: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: handleClose, variant: "tertiary", children: formatMessage({
2624
+ id: "app.components.Button.cancel",
2625
+ defaultMessage: "Cancel"
2626
+ }) }),
2627
+ endAction: /* @__PURE__ */ jsxRuntime.jsx(
2628
+ designSystem.Button,
2629
+ {
2630
+ onClick: handleConfirm,
2631
+ variant: variant === "danger-light" ? variant : "secondary",
2632
+ startIcon: variant === "danger-light" ? /* @__PURE__ */ jsxRuntime.jsx(Icons.Trash, {}) : /* @__PURE__ */ jsxRuntime.jsx(Icons.Check, {}),
2633
+ children: confirmButton ? confirmButton : formatMessage({
2634
+ id: "app.components.Button.confirm",
2635
+ defaultMessage: "Confirm"
2636
+ })
2637
+ }
2638
+ )
2639
+ }
2640
+ )
2641
+ ] });
2642
+ };
2643
+ const BulkActionModal = ({
2644
+ isOpen,
2645
+ title,
2646
+ onClose,
2647
+ content: Content,
2648
+ onModalClose
2649
+ }) => {
2650
+ const id = React__namespace.useId();
2651
+ if (!isOpen) {
2652
+ return null;
2653
+ }
2654
+ const handleClose = () => {
2655
+ if (onClose) {
2656
+ onClose();
2657
+ }
2658
+ onModalClose();
2659
+ };
2660
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.ModalLayout, { borderRadius: "4px", overflow: "hidden", onClose: handleClose, labelledBy: id, children: [
2661
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "bold", textColor: "neutral800", tag: "h2", id, children: title }) }),
2662
+ /* @__PURE__ */ jsxRuntime.jsx(Content, { onClose: handleClose })
2663
+ ] });
2664
+ };
2665
+ const DeleteAction = ({ documents, model }) => {
2666
+ const { formatMessage } = reactIntl.useIntl();
2667
+ const { schema: contentType } = useDoc();
2668
+ const selectRow = strapiAdmin.useTable("DeleteAction", (state) => state.selectRow);
2669
+ const hasI18nEnabled = Boolean(contentType?.pluginOptions?.i18n);
2670
+ const [{ query }] = strapiAdmin.useQueryParams();
2671
+ const params = React__namespace.useMemo(() => buildValidParams(query), [query]);
2672
+ const hasDeletePermission = useDocumentRBAC("deleteAction", (state) => state.canDelete);
2673
+ const { deleteMany: bulkDeleteAction } = useDocumentActions();
2674
+ const documentIds = documents.map(({ documentId }) => documentId);
2675
+ const handleConfirmBulkDelete = async () => {
2676
+ const res = await bulkDeleteAction({
2677
+ documentIds,
2678
+ model,
2679
+ params
2680
+ });
2681
+ if (!("error" in res)) {
2682
+ selectRow([]);
2683
+ }
2684
+ };
2685
+ if (!hasDeletePermission)
2686
+ return null;
2687
+ return {
2688
+ variant: "danger-light",
2689
+ label: formatMessage({ id: "global.delete", defaultMessage: "Delete" }),
2690
+ dialog: {
2691
+ type: "dialog",
2692
+ title: formatMessage({
2693
+ id: "app.components.ConfirmDialog.title",
2694
+ defaultMessage: "Confirmation"
2695
+ }),
2696
+ content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
2697
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { id: "confirm-description", textAlign: "center", children: formatMessage({
2698
+ id: "popUpWarning.bodyMessage.contentType.delete.all",
2699
+ defaultMessage: "Are you sure you want to delete these entries?"
2700
+ }) }),
2701
+ hasI18nEnabled && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { textAlign: "center", padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "danger500", children: formatMessage(
2702
+ {
2703
+ id: getTranslation("Settings.list.actions.deleteAdditionalInfos"),
2704
+ defaultMessage: "This will delete the active locale versions <em>(from Internationalization)</em>"
2705
+ },
2706
+ {
2707
+ em: Emphasis
2708
+ }
2709
+ ) }) })
2710
+ ] }),
2711
+ onConfirm: handleConfirmBulkDelete
2712
+ }
2713
+ };
2714
+ };
2715
+ DeleteAction.type = "delete";
2716
+ const UnpublishAction = ({ documents, model }) => {
2717
+ const { formatMessage } = reactIntl.useIntl();
2718
+ const { schema } = useDoc();
2719
+ const selectRow = strapiAdmin.useTable("UnpublishAction", (state) => state.selectRow);
2720
+ const hasPublishPermission = useDocumentRBAC("unpublishAction", (state) => state.canPublish);
2721
+ const hasI18nEnabled = Boolean(schema?.pluginOptions?.i18n);
2722
+ const hasDraftAndPublishEnabled = Boolean(schema?.options?.draftAndPublish);
2723
+ const { unpublishMany: bulkUnpublishAction } = useDocumentActions();
2724
+ const documentIds = documents.map(({ documentId }) => documentId);
2725
+ const [{ query }] = strapiAdmin.useQueryParams();
2726
+ const params = React__namespace.useMemo(() => buildValidParams(query), [query]);
2727
+ const handleConfirmBulkUnpublish = async () => {
2728
+ const data = await bulkUnpublishAction({ documentIds, model, params });
2729
+ if (!("error" in data)) {
2730
+ selectRow([]);
2731
+ }
2732
+ };
2733
+ const showUnpublishButton = hasDraftAndPublishEnabled && hasPublishPermission && documents.some((entry) => entry.status === "published");
2734
+ if (!showUnpublishButton)
2735
+ return null;
2736
+ return {
2737
+ variant: "tertiary",
2738
+ label: formatMessage({ id: "app.utils.unpublish", defaultMessage: "Unpublish" }),
2739
+ dialog: {
2740
+ type: "dialog",
2741
+ title: formatMessage({
2742
+ id: "app.components.ConfirmDialog.title",
2743
+ defaultMessage: "Confirmation"
2744
+ }),
2745
+ content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
2746
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { id: "confirm-description", textAlign: "center", children: formatMessage({
2747
+ id: "popUpWarning.bodyMessage.contentType.unpublish.all",
2748
+ defaultMessage: "Are you sure you want to unpublish these entries?"
2749
+ }) }),
2750
+ hasI18nEnabled && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { textAlign: "center", padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "danger500", children: formatMessage(
2751
+ {
2752
+ id: getTranslation("Settings.list.actions.unpublishAdditionalInfos"),
2753
+ defaultMessage: "This will unpublish the active locale versions <em>(from Internationalization)</em>"
2754
+ },
2755
+ {
2756
+ em: Emphasis
2757
+ }
2758
+ ) }) })
2759
+ ] }),
2760
+ confirmButton: formatMessage({
2761
+ id: "app.utils.unpublish",
2762
+ defaultMessage: "Unpublish"
2763
+ }),
2764
+ onConfirm: handleConfirmBulkUnpublish
2765
+ }
2766
+ };
2767
+ };
2768
+ UnpublishAction.type = "unpublish";
2769
+ const Emphasis = (chunks) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontWeight: "semiBold", textColor: "danger500", children: chunks });
2770
+ const DEFAULT_BULK_ACTIONS = [UnpublishAction, DeleteAction];
2467
2771
  const AutoCloneFailureModalBody = ({ prohibitedFields }) => {
2468
2772
  const { formatMessage } = reactIntl.useIntl();
2469
2773
  const getDefaultErrorMessage = (reason) => {
@@ -2495,7 +2799,7 @@ const AutoCloneFailureModalBody = ({ prohibitedFields }) => {
2495
2799
  hasRadius: true,
2496
2800
  padding: 6,
2497
2801
  children: [
2498
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "row", as: "ol", children: fieldPath.map((pathSegment, index2) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { fontWeight: "semiBold", as: "li", children: [
2802
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "row", tag: "ol", children: fieldPath.map((pathSegment, index2) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { fontWeight: "semiBold", tag: "li", children: [
2499
2803
  pathSegment,
2500
2804
  index2 !== fieldPath.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(
2501
2805
  Icons.ChevronRight,
@@ -2507,7 +2811,7 @@ const AutoCloneFailureModalBody = ({ prohibitedFields }) => {
2507
2811
  }
2508
2812
  )
2509
2813
  ] }, index2)) }),
2510
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "p", textColor: "neutral600", children: formatMessage({
2814
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "p", textColor: "neutral600", children: formatMessage({
2511
2815
  id: getTranslation(`containers.list.autoCloneModal.error.${reason}`),
2512
2816
  defaultMessage: getDefaultErrorMessage(reason)
2513
2817
  }) })
@@ -2591,7 +2895,7 @@ const EditAction = ({ documentId }) => {
2591
2895
  };
2592
2896
  };
2593
2897
  EditAction.type = "edit";
2594
- const StyledPencil = styled__default.default(Icons.Pencil)`
2898
+ const StyledPencil = styledComponents.styled(Icons.Pencil)`
2595
2899
  path {
2596
2900
  fill: currentColor;
2597
2901
  }
@@ -2651,7 +2955,7 @@ const CloneAction = ({ model, documentId }) => {
2651
2955
  /* @__PURE__ */ jsxRuntime.jsx(
2652
2956
  designSystem.LinkButton,
2653
2957
  {
2654
- as: reactRouterDom.NavLink,
2958
+ tag: reactRouterDom.NavLink,
2655
2959
  to: {
2656
2960
  pathname: `clone/${documentId}`
2657
2961
  },
@@ -2667,7 +2971,7 @@ const CloneAction = ({ model, documentId }) => {
2667
2971
  };
2668
2972
  };
2669
2973
  CloneAction.type = "clone";
2670
- const StyledDuplicate = styled__default.default(Icons.Duplicate)`
2974
+ const StyledDuplicate = styledComponents.styled(Icons.Duplicate)`
2671
2975
  path {
2672
2976
  fill: currentColor;
2673
2977
  }
@@ -3116,10 +3420,8 @@ const index = {
3116
3420
  register(app) {
3117
3421
  const cm = new ContentManagerPlugin();
3118
3422
  app.addReducers({
3119
- [contentManagerApi.reducerPath]: contentManagerApi.reducer,
3120
3423
  [PLUGIN_ID]: reducer
3121
3424
  });
3122
- app.addMiddlewares([() => contentManagerApi.middleware]);
3123
3425
  app.addMenuLink({
3124
3426
  to: PLUGIN_ID,
3125
3427
  icon: Icons.Feather,
@@ -3128,14 +3430,15 @@ const index = {
3128
3430
  defaultMessage: "Content Manager"
3129
3431
  },
3130
3432
  permissions: [],
3131
- Component: () => Promise.resolve().then(() => require("./layout-dBc7wN7L.js")).then((mod) => ({ default: mod.Layout }))
3433
+ Component: () => Promise.resolve().then(() => require("./layout-ni_L9kT1.js")).then((mod) => ({ default: mod.Layout })),
3434
+ position: 1
3132
3435
  });
3133
3436
  app.registerPlugin(cm.config);
3134
3437
  },
3135
3438
  async registerTrads({ locales }) {
3136
3439
  const importedTrads = await Promise.all(
3137
3440
  locales.map((locale) => {
3138
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-C-V1_90f.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-EUonQTon.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B7kGGg3E.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-CcFe8diO.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
3441
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-DTULi5-d.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-EUonQTon.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B7kGGg3E.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-CcFe8diO.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
3139
3442
  return {
3140
3443
  data: prefixPluginTranslations(data, PLUGIN_ID),
3141
3444
  locale
@@ -3152,6 +3455,7 @@ const index = {
3152
3455
  }
3153
3456
  };
3154
3457
  exports.ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD = ATTRIBUTE_TYPES_THAT_CANNOT_BE_MAIN_FIELD;
3458
+ exports.BulkActionsRenderer = BulkActionsRenderer;
3155
3459
  exports.COLLECTION_TYPES = COLLECTION_TYPES;
3156
3460
  exports.CREATOR_FIELDS = CREATOR_FIELDS;
3157
3461
  exports.DEFAULT_SETTINGS = DEFAULT_SETTINGS;
@@ -3192,4 +3496,4 @@ exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
3192
3496
  exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
3193
3497
  exports.useGetInitialDataQuery = useGetInitialDataQuery;
3194
3498
  exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
3195
- //# sourceMappingURL=index-X_2tafck.js.map
3499
+ //# sourceMappingURL=index-CCJeB7Rw.js.map