@strapi/content-manager 0.0.0-experimental.f31889311d753b5f7d95198ae84d8fce1d156cd6 → 0.0.0-experimental.f6c00790e260ea5a9b6b86abac5fea02b05d569c

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 (111) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-BWOQWCv2.mjs → ComponentConfigurationPage-CnL10QYC.mjs} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-BWOQWCv2.mjs.map → ComponentConfigurationPage-CnL10QYC.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-BNxtMIfV.js → ComponentConfigurationPage-G4EIirP8.js} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-BNxtMIfV.js.map → ComponentConfigurationPage-G4EIirP8.js.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-D340bYlT.js → EditConfigurationPage-B2AA1kVF.js} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-D340bYlT.js.map → EditConfigurationPage-B2AA1kVF.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-GTp-Ucnw.mjs → EditConfigurationPage-I2kKh9dx.mjs} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-GTp-Ucnw.mjs.map → EditConfigurationPage-I2kKh9dx.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-CXkmnAvI.js → EditViewPage-CHgoNwlc.js} +19 -8
  10. package/dist/_chunks/EditViewPage-CHgoNwlc.js.map +1 -0
  11. package/dist/_chunks/{EditViewPage-BVMS5hT-.mjs → EditViewPage-zFjJK0s8.mjs} +19 -8
  12. package/dist/_chunks/EditViewPage-zFjJK0s8.mjs.map +1 -0
  13. package/dist/_chunks/{Field-Ibi32diw.js → Field-9DePZh-0.js} +120 -92
  14. package/dist/_chunks/Field-9DePZh-0.js.map +1 -0
  15. package/dist/_chunks/{Field-nNgv5bpd.mjs → Field-DPAzUS1M.mjs} +118 -90
  16. package/dist/_chunks/Field-DPAzUS1M.mjs.map +1 -0
  17. package/dist/_chunks/{Form-DodJsI2A.mjs → Form-CEkENbkF.mjs} +35 -16
  18. package/dist/_chunks/Form-CEkENbkF.mjs.map +1 -0
  19. package/dist/_chunks/{Form-Dhnh34ym.js → Form-DPm-KZ1A.js} +35 -16
  20. package/dist/_chunks/Form-DPm-KZ1A.js.map +1 -0
  21. package/dist/_chunks/{History-C9auUkDi.js → History-DXSbTWez.js} +4 -4
  22. package/dist/_chunks/{History-C9auUkDi.js.map → History-DXSbTWez.js.map} +1 -1
  23. package/dist/_chunks/{History-CKCSQXz_.mjs → History-utls71em.mjs} +4 -4
  24. package/dist/_chunks/{History-CKCSQXz_.mjs.map → History-utls71em.mjs.map} +1 -1
  25. package/dist/_chunks/{ListConfigurationPage-CKEC4ttG.mjs → ListConfigurationPage-CuMXWWqb.mjs} +14 -4
  26. package/dist/_chunks/ListConfigurationPage-CuMXWWqb.mjs.map +1 -0
  27. package/dist/_chunks/{ListConfigurationPage-Bg4rWUjX.js → ListConfigurationPage-D5C7ACZ_.js} +14 -4
  28. package/dist/_chunks/ListConfigurationPage-D5C7ACZ_.js.map +1 -0
  29. package/dist/_chunks/{ListViewPage-B7_WJUjG.mjs → ListViewPage-CdKd-PS_.mjs} +39 -35
  30. package/dist/_chunks/ListViewPage-CdKd-PS_.mjs.map +1 -0
  31. package/dist/_chunks/{ListViewPage-C2gIeYHG.js → ListViewPage-DfuwH1tt.js} +42 -38
  32. package/dist/_chunks/ListViewPage-DfuwH1tt.js.map +1 -0
  33. package/dist/_chunks/{NoContentTypePage-DqgdUfyn.js → NoContentTypePage-BIxlkWWi.js} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-DqgdUfyn.js.map → NoContentTypePage-BIxlkWWi.js.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-Ckem6Ll6.mjs → NoContentTypePage-DkToTT7u.mjs} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-Ckem6Ll6.mjs.map → NoContentTypePage-DkToTT7u.mjs.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-CF29Q-sW.js → NoPermissionsPage-Bu4GWYb-.js} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-CF29Q-sW.js.map → NoPermissionsPage-Bu4GWYb-.js.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-BO-GEjA4.mjs → NoPermissionsPage-DlWi4BAH.mjs} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-BO-GEjA4.mjs.map → NoPermissionsPage-DlWi4BAH.mjs.map} +1 -1
  41. package/dist/_chunks/{Relations-C0uC9J4f.js → Relations-CFjTESWQ.js} +4 -4
  42. package/dist/_chunks/{Relations-C0uC9J4f.js.map → Relations-CFjTESWQ.js.map} +1 -1
  43. package/dist/_chunks/{Relations-DItV5eow.mjs → Relations-QP5yn9_z.mjs} +4 -4
  44. package/dist/_chunks/{Relations-DItV5eow.mjs.map → Relations-QP5yn9_z.mjs.map} +1 -1
  45. package/dist/_chunks/{en-uOUIxfcQ.js → en-BVzUkPxZ.js} +6 -5
  46. package/dist/_chunks/{en-uOUIxfcQ.js.map → en-BVzUkPxZ.js.map} +1 -1
  47. package/dist/_chunks/{en-BrCTWlZv.mjs → en-CPTj6CjC.mjs} +6 -5
  48. package/dist/_chunks/{en-BrCTWlZv.mjs.map → en-CPTj6CjC.mjs.map} +1 -1
  49. package/dist/_chunks/{index-DrNe6ctw.mjs → index-BHfS6_D5.mjs} +219 -114
  50. package/dist/_chunks/index-BHfS6_D5.mjs.map +1 -0
  51. package/dist/_chunks/{index-Dd0nXyJF.js → index-DXiHxy70.js} +200 -95
  52. package/dist/_chunks/index-DXiHxy70.js.map +1 -0
  53. package/dist/_chunks/{layout-B3ez7kvr.mjs → layout-DX_52HSH.mjs} +8 -7
  54. package/dist/_chunks/layout-DX_52HSH.mjs.map +1 -0
  55. package/dist/_chunks/{layout-CLLtt_5O.js → layout-bE-WUnQ0.js} +8 -7
  56. package/dist/_chunks/layout-bE-WUnQ0.js.map +1 -0
  57. package/dist/_chunks/{relations-bRxcNv1q.js → relations-D706vblp.js} +2 -2
  58. package/dist/_chunks/{relations-bRxcNv1q.js.map → relations-D706vblp.js.map} +1 -1
  59. package/dist/_chunks/{relations-B0hlsUU_.mjs → relations-SCVAL_aJ.mjs} +2 -2
  60. package/dist/_chunks/{relations-B0hlsUU_.mjs.map → relations-SCVAL_aJ.mjs.map} +1 -1
  61. package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
  62. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
  63. package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
  64. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
  65. package/dist/admin/index.js +1 -1
  66. package/dist/admin/index.mjs +4 -4
  67. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  68. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  69. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
  70. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +4 -48
  71. package/dist/admin/src/pages/EditView/components/Header.d.ts +10 -11
  72. package/dist/admin/src/services/api.d.ts +1 -1
  73. package/dist/admin/src/services/components.d.ts +2 -2
  74. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  75. package/dist/admin/src/services/documents.d.ts +19 -17
  76. package/dist/admin/src/services/init.d.ts +1 -1
  77. package/dist/admin/src/services/relations.d.ts +2 -2
  78. package/dist/admin/src/services/uid.d.ts +3 -3
  79. package/dist/admin/src/utils/validation.d.ts +4 -1
  80. package/dist/server/index.js +47 -23
  81. package/dist/server/index.js.map +1 -1
  82. package/dist/server/index.mjs +47 -23
  83. package/dist/server/index.mjs.map +1 -1
  84. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  85. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  86. package/dist/server/src/history/services/history.d.ts.map +1 -1
  87. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  88. package/dist/server/src/history/services/utils.d.ts +1 -0
  89. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  90. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  91. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  92. package/dist/shared/contracts/collection-types.d.ts +3 -1
  93. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  94. package/package.json +9 -9
  95. package/dist/_chunks/EditViewPage-BVMS5hT-.mjs.map +0 -1
  96. package/dist/_chunks/EditViewPage-CXkmnAvI.js.map +0 -1
  97. package/dist/_chunks/Field-Ibi32diw.js.map +0 -1
  98. package/dist/_chunks/Field-nNgv5bpd.mjs.map +0 -1
  99. package/dist/_chunks/Form-Dhnh34ym.js.map +0 -1
  100. package/dist/_chunks/Form-DodJsI2A.mjs.map +0 -1
  101. package/dist/_chunks/ListConfigurationPage-Bg4rWUjX.js.map +0 -1
  102. package/dist/_chunks/ListConfigurationPage-CKEC4ttG.mjs.map +0 -1
  103. package/dist/_chunks/ListViewPage-B7_WJUjG.mjs.map +0 -1
  104. package/dist/_chunks/ListViewPage-C2gIeYHG.js.map +0 -1
  105. package/dist/_chunks/index-Dd0nXyJF.js.map +0 -1
  106. package/dist/_chunks/index-DrNe6ctw.mjs.map +0 -1
  107. package/dist/_chunks/layout-B3ez7kvr.mjs.map +0 -1
  108. package/dist/_chunks/layout-CLLtt_5O.js.map +0 -1
  109. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  110. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  111. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
@@ -1,16 +1,16 @@
1
- import { CrossCircle, More, WarningCircle, ListPlus, Pencil, Trash, Check, CheckCircle, ArrowsCounterClockwise, ChevronRight, Duplicate, ClockCounterClockwise, Feather } from "@strapi/icons";
1
+ import { More, Cross, WarningCircle, ListPlus, Pencil, Trash, Check, CrossCircle, CheckCircle, ArrowsCounterClockwise, ChevronRight, Duplicate, ClockCounterClockwise, Feather } from "@strapi/icons";
2
2
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
3
3
  import { useStrapiApp, createContext, useAuth, useRBAC, Page, adminApi, translatedErrors, useNotification, useAPIErrorHandler, getYupValidationErrors, useQueryParams, useTracking, useForm, BackButton, DescriptionComponentRenderer, useTable, Table } from "@strapi/admin/strapi-admin";
4
4
  import * as React from "react";
5
5
  import { lazy } from "react";
6
- import { Button, Menu, VisuallyHidden, Flex, Typography, Dialog, Modal, Radio, Status, Box, SingleSelect, SingleSelectOption, Loader, IconButton, Tooltip, LinkButton } from "@strapi/design-system";
6
+ import { Button, Menu, VisuallyHidden, Flex, Typography, Dialog, Modal, Radio, Status, Box, SingleSelect, SingleSelectOption, IconButton, Loader, Tooltip, LinkButton } from "@strapi/design-system";
7
7
  import { useIntl } from "react-intl";
8
- import { useParams, Navigate, useNavigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
9
- import { styled } from "styled-components";
8
+ import { useParams, useNavigate, Navigate, useMatch, useLocation, Link, NavLink } from "react-router-dom";
10
9
  import * as yup from "yup";
11
10
  import { ValidationError } from "yup";
12
11
  import pipe from "lodash/fp/pipe";
13
12
  import { intervalToDuration, isPast } from "date-fns";
13
+ import { styled } from "styled-components";
14
14
  import { stringify } from "qs";
15
15
  import { createSlice, combineReducers } from "@reduxjs/toolkit";
16
16
  const __variableDynamicImportRuntimeHelper = (glob, path) => {
@@ -158,7 +158,8 @@ const contentManagerApi = adminApi.enhanceEndpoints({
158
158
  "Document",
159
159
  "InitialData",
160
160
  "HistoryVersion",
161
- "Relations"
161
+ "Relations",
162
+ "UidAvailability"
162
163
  ]
163
164
  });
164
165
  const documentApi = contentManagerApi.injectEndpoints({
@@ -188,7 +189,10 @@ const documentApi = contentManagerApi.injectEndpoints({
188
189
  params
189
190
  }
190
191
  }),
191
- invalidatesTags: (_result, _error, { model }) => [{ type: "Document", id: `${model}_LIST` }]
192
+ invalidatesTags: (_result, _error, { model }) => [
193
+ { type: "Document", id: `${model}_LIST` },
194
+ { type: "UidAvailability", id: model }
195
+ ]
192
196
  }),
193
197
  /**
194
198
  * Creates a new collection-type document. This should ONLY be used for collection-types.
@@ -205,7 +209,8 @@ const documentApi = contentManagerApi.injectEndpoints({
205
209
  }),
206
210
  invalidatesTags: (result, _error, { model }) => [
207
211
  { type: "Document", id: `${model}_LIST` },
208
- "Relations"
212
+ "Relations",
213
+ { type: "UidAvailability", id: model }
209
214
  ]
210
215
  }),
211
216
  deleteDocument: builder.mutation({
@@ -246,7 +251,8 @@ const documentApi = contentManagerApi.injectEndpoints({
246
251
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
247
252
  },
248
253
  { type: "Document", id: `${model}_LIST` },
249
- "Relations"
254
+ "Relations",
255
+ { type: "UidAvailability", id: model }
250
256
  ];
251
257
  }
252
258
  }),
@@ -303,6 +309,11 @@ const documentApi = contentManagerApi.injectEndpoints({
303
309
  {
304
310
  type: "Document",
305
311
  id: collectionType !== SINGLE_TYPES ? `${model}_${result && "documentId" in result ? result.documentId : documentId}` : model
312
+ },
313
+ // Make it easy to invalidate all individual documents queries for a model
314
+ {
315
+ type: "Document",
316
+ id: `${model}_ALL_ITEMS`
306
317
  }
307
318
  ];
308
319
  }
@@ -366,7 +377,8 @@ const documentApi = contentManagerApi.injectEndpoints({
366
377
  type: "Document",
367
378
  id: collectionType !== SINGLE_TYPES ? `${model}_${documentId}` : model
368
379
  },
369
- "Relations"
380
+ "Relations",
381
+ { type: "UidAvailability", id: model }
370
382
  ];
371
383
  },
372
384
  async onQueryStarted({ data, ...patch }, { dispatch, queryFulfilled }) {
@@ -449,7 +461,7 @@ const buildValidParams = (query) => {
449
461
  const isBaseQueryError = (error) => {
450
462
  return error.name !== void 0;
451
463
  };
452
- const createYupSchema = (attributes = {}, components = {}) => {
464
+ const createYupSchema = (attributes = {}, components = {}, options = { status: null }) => {
453
465
  const createModelSchema = (attributes2) => yup.object().shape(
454
466
  Object.entries(attributes2).reduce((acc, [name, attribute]) => {
455
467
  if (DOCUMENT_META_FIELDS.includes(name)) {
@@ -462,7 +474,7 @@ const createYupSchema = (attributes = {}, components = {}) => {
462
474
  addMinValidation,
463
475
  addMaxValidation,
464
476
  addRegexValidation
465
- ].map((fn) => fn(attribute));
477
+ ].map((fn) => fn(attribute, options));
466
478
  const transformSchema = pipe(...validations);
467
479
  switch (attribute.type) {
468
480
  case "component": {
@@ -563,6 +575,14 @@ const createAttributeSchema = (attribute) => {
563
575
  if (!value || typeof value === "string" && value.length === 0) {
564
576
  return true;
565
577
  }
578
+ if (typeof value === "object") {
579
+ try {
580
+ JSON.stringify(value);
581
+ return true;
582
+ } catch (err) {
583
+ return false;
584
+ }
585
+ }
566
586
  try {
567
587
  JSON.parse(value);
568
588
  return true;
@@ -581,13 +601,7 @@ const createAttributeSchema = (attribute) => {
581
601
  return yup.mixed();
582
602
  }
583
603
  };
584
- const addRequiredValidation = (attribute) => (schema) => {
585
- if ((attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") && attribute.required && "min" in schema) {
586
- return schema.min(1, translatedErrors.required);
587
- }
588
- if (attribute.required && attribute.type !== "relation") {
589
- return schema.required(translatedErrors.required);
590
- }
604
+ const nullableSchema = (schema) => {
591
605
  return schema?.nullable ? schema.nullable() : (
592
606
  // In some cases '.nullable' will not be available on the schema.
593
607
  // e.g. when the schema has been built using yup.lazy (e.g. for relations).
@@ -595,7 +609,22 @@ const addRequiredValidation = (attribute) => (schema) => {
595
609
  schema
596
610
  );
597
611
  };
598
- const addMinLengthValidation = (attribute) => (schema) => {
612
+ const addRequiredValidation = (attribute, options) => (schema) => {
613
+ if (options.status === "draft") {
614
+ return nullableSchema(schema);
615
+ }
616
+ if ((attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") && attribute.required && "min" in schema) {
617
+ return schema.min(1, translatedErrors.required);
618
+ }
619
+ if (attribute.required && attribute.type !== "relation") {
620
+ return schema.required(translatedErrors.required);
621
+ }
622
+ return nullableSchema(schema);
623
+ };
624
+ const addMinLengthValidation = (attribute, options) => (schema) => {
625
+ if (options.status === "draft") {
626
+ return schema;
627
+ }
599
628
  if ("minLength" in attribute && attribute.minLength && Number.isInteger(attribute.minLength) && "min" in schema) {
600
629
  return schema.min(attribute.minLength, {
601
630
  ...translatedErrors.minLength,
@@ -617,11 +646,11 @@ const addMaxLengthValidation = (attribute) => (schema) => {
617
646
  }
618
647
  return schema;
619
648
  };
620
- const addMinValidation = (attribute) => (schema) => {
649
+ const addMinValidation = (attribute, options) => (schema) => {
621
650
  if ("min" in attribute) {
622
651
  const min = toInteger(attribute.min);
623
652
  if (attribute.type === "component" && attribute.repeatable || attribute.type === "dynamiczone") {
624
- if (!attribute.required && "test" in schema && min) {
653
+ if (options.status !== "draft" && !attribute.required && "test" in schema && min) {
625
654
  return schema.test(
626
655
  "custom-min",
627
656
  {
@@ -857,6 +886,7 @@ const useDocumentActions = () => {
857
886
  const { formatMessage } = useIntl();
858
887
  const { trackUsage } = useTracking();
859
888
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
889
+ const navigate = useNavigate();
860
890
  const [deleteDocument] = useDeleteDocumentMutation();
861
891
  const _delete = React.useCallback(
862
892
  async ({ collectionType, model, documentId, params }, trackerProperty) => {
@@ -1210,7 +1240,7 @@ const useDocumentActions = () => {
1210
1240
  throw err;
1211
1241
  }
1212
1242
  },
1213
- [autoCloneDocument, formatAPIError, formatMessage, toggleNotification]
1243
+ [autoCloneDocument, formatMessage, toggleNotification]
1214
1244
  );
1215
1245
  const [cloneDocument] = useCloneDocumentMutation();
1216
1246
  const clone = React.useCallback(
@@ -1236,6 +1266,7 @@ const useDocumentActions = () => {
1236
1266
  defaultMessage: "Cloned document"
1237
1267
  })
1238
1268
  });
1269
+ navigate(`../../${res.data.data.documentId}`, { relative: "path" });
1239
1270
  return res.data;
1240
1271
  } catch (err) {
1241
1272
  toggleNotification({
@@ -1246,7 +1277,7 @@ const useDocumentActions = () => {
1246
1277
  throw err;
1247
1278
  }
1248
1279
  },
1249
- [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError]
1280
+ [cloneDocument, trackUsage, toggleNotification, formatMessage, formatAPIError, navigate]
1250
1281
  );
1251
1282
  const [getDoc] = useLazyGetDocumentQuery();
1252
1283
  const getDocument = React.useCallback(
@@ -1272,7 +1303,7 @@ const useDocumentActions = () => {
1272
1303
  };
1273
1304
  };
1274
1305
  const ProtectedHistoryPage = lazy(
1275
- () => import("./History-CKCSQXz_.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1306
+ () => import("./History-utls71em.mjs").then((mod) => ({ default: mod.ProtectedHistoryPage }))
1276
1307
  );
1277
1308
  const routes$1 = [
1278
1309
  {
@@ -1285,31 +1316,31 @@ const routes$1 = [
1285
1316
  }
1286
1317
  ];
1287
1318
  const ProtectedEditViewPage = lazy(
1288
- () => import("./EditViewPage-BVMS5hT-.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1319
+ () => import("./EditViewPage-zFjJK0s8.mjs").then((mod) => ({ default: mod.ProtectedEditViewPage }))
1289
1320
  );
1290
1321
  const ProtectedListViewPage = lazy(
1291
- () => import("./ListViewPage-B7_WJUjG.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1322
+ () => import("./ListViewPage-CdKd-PS_.mjs").then((mod) => ({ default: mod.ProtectedListViewPage }))
1292
1323
  );
1293
1324
  const ProtectedListConfiguration = lazy(
1294
- () => import("./ListConfigurationPage-CKEC4ttG.mjs").then((mod) => ({
1325
+ () => import("./ListConfigurationPage-CuMXWWqb.mjs").then((mod) => ({
1295
1326
  default: mod.ProtectedListConfiguration
1296
1327
  }))
1297
1328
  );
1298
1329
  const ProtectedEditConfigurationPage = lazy(
1299
- () => import("./EditConfigurationPage-GTp-Ucnw.mjs").then((mod) => ({
1330
+ () => import("./EditConfigurationPage-I2kKh9dx.mjs").then((mod) => ({
1300
1331
  default: mod.ProtectedEditConfigurationPage
1301
1332
  }))
1302
1333
  );
1303
1334
  const ProtectedComponentConfigurationPage = lazy(
1304
- () => import("./ComponentConfigurationPage-BWOQWCv2.mjs").then((mod) => ({
1335
+ () => import("./ComponentConfigurationPage-CnL10QYC.mjs").then((mod) => ({
1305
1336
  default: mod.ProtectedComponentConfigurationPage
1306
1337
  }))
1307
1338
  );
1308
1339
  const NoPermissions = lazy(
1309
- () => import("./NoPermissionsPage-BO-GEjA4.mjs").then((mod) => ({ default: mod.NoPermissions }))
1340
+ () => import("./NoPermissionsPage-DlWi4BAH.mjs").then((mod) => ({ default: mod.NoPermissions }))
1310
1341
  );
1311
1342
  const NoContentType = lazy(
1312
- () => import("./NoContentTypePage-Ckem6Ll6.mjs").then((mod) => ({ default: mod.NoContentType }))
1343
+ () => import("./NoContentTypePage-DkToTT7u.mjs").then((mod) => ({ default: mod.NoContentType }))
1313
1344
  );
1314
1345
  const CollectionTypePages = () => {
1315
1346
  const { collectionType } = useParams();
@@ -1423,12 +1454,14 @@ const DocumentActionButton = (action) => {
1423
1454
  /* @__PURE__ */ jsx(
1424
1455
  Button,
1425
1456
  {
1426
- flex: 1,
1457
+ flex: "auto",
1427
1458
  startIcon: action.icon,
1428
1459
  disabled: action.disabled,
1429
1460
  onClick: handleClick(action),
1430
1461
  justifyContent: "center",
1431
1462
  variant: action.variant || "default",
1463
+ paddingTop: "7px",
1464
+ paddingBottom: "7px",
1432
1465
  children: action.label
1433
1466
  }
1434
1467
  ),
@@ -1506,7 +1539,7 @@ const DocumentActionsMenu = ({
1506
1539
  ]
1507
1540
  }
1508
1541
  ),
1509
- /* @__PURE__ */ jsxs(Menu.Content, { top: "4px", maxHeight: void 0, popoverPlacement: "bottom-end", children: [
1542
+ /* @__PURE__ */ jsxs(Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
1510
1543
  actions2.map((action) => {
1511
1544
  return /* @__PURE__ */ jsx(
1512
1545
  Menu.Item,
@@ -1522,7 +1555,14 @@ const DocumentActionsMenu = ({
1522
1555
  gap: 2,
1523
1556
  tag: "span",
1524
1557
  children: [
1525
- /* @__PURE__ */ jsx("span", { children: action.icon }),
1558
+ /* @__PURE__ */ jsx(
1559
+ Flex,
1560
+ {
1561
+ tag: "span",
1562
+ color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
1563
+ children: action.icon
1564
+ }
1565
+ ),
1526
1566
  action.label
1527
1567
  ]
1528
1568
  }
@@ -1585,6 +1625,18 @@ const convertActionVariantToColor = (variant = "secondary") => {
1585
1625
  return "primary600";
1586
1626
  }
1587
1627
  };
1628
+ const convertActionVariantToIconColor = (variant = "secondary") => {
1629
+ switch (variant) {
1630
+ case "danger":
1631
+ return "danger600";
1632
+ case "secondary":
1633
+ return "neutral500";
1634
+ case "success":
1635
+ return "success600";
1636
+ default:
1637
+ return "primary600";
1638
+ }
1639
+ };
1588
1640
  const DocumentActionConfirmDialog = ({
1589
1641
  onClose,
1590
1642
  onCancel,
@@ -1611,11 +1663,11 @@ const DocumentActionConfirmDialog = ({
1611
1663
  /* @__PURE__ */ jsx(Dialog.Header, { children: title }),
1612
1664
  /* @__PURE__ */ jsx(Dialog.Body, { children: content }),
1613
1665
  /* @__PURE__ */ jsxs(Dialog.Footer, { children: [
1614
- /* @__PURE__ */ jsx(Dialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { variant: "tertiary", children: formatMessage({
1666
+ /* @__PURE__ */ jsx(Dialog.Cancel, { children: /* @__PURE__ */ jsx(Button, { variant: "tertiary", fullWidth: true, children: formatMessage({
1615
1667
  id: "app.components.Button.cancel",
1616
1668
  defaultMessage: "Cancel"
1617
1669
  }) }) }),
1618
- /* @__PURE__ */ jsx(Button, { onClick: handleConfirm, variant, children: formatMessage({
1670
+ /* @__PURE__ */ jsx(Button, { onClick: handleConfirm, variant, fullWidth: true, children: formatMessage({
1619
1671
  id: "app.components.Button.confirm",
1620
1672
  defaultMessage: "Confirm"
1621
1673
  }) })
@@ -1654,12 +1706,10 @@ const PublishAction$1 = ({
1654
1706
  const navigate = useNavigate();
1655
1707
  const { toggleNotification } = useNotification();
1656
1708
  const { _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler();
1709
+ const isListView = useMatch(LIST_PATH) !== null;
1657
1710
  const isCloning = useMatch(CLONE_PATH) !== null;
1658
1711
  const { formatMessage } = useIntl();
1659
- const { canPublish, canCreate, canUpdate } = useDocumentRBAC(
1660
- "PublishAction",
1661
- ({ canPublish: canPublish2, canCreate: canCreate2, canUpdate: canUpdate2 }) => ({ canPublish: canPublish2, canCreate: canCreate2, canUpdate: canUpdate2 })
1662
- );
1712
+ const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
1663
1713
  const { publish } = useDocumentActions();
1664
1714
  const [
1665
1715
  countDraftRelations,
@@ -1711,24 +1761,25 @@ const PublishAction$1 = ({
1711
1761
  }
1712
1762
  }, [documentId, modified, formValues, setLocalCountOfDraftRelations]);
1713
1763
  React.useEffect(() => {
1714
- if (documentId) {
1715
- const fetchDraftRelationsCount = async () => {
1716
- const { data, error } = await countDraftRelations({
1717
- collectionType,
1718
- model,
1719
- documentId,
1720
- params
1721
- });
1722
- if (error) {
1723
- throw error;
1724
- }
1725
- if (data) {
1726
- setServerCountOfDraftRelations(data.data);
1727
- }
1728
- };
1729
- fetchDraftRelationsCount();
1764
+ if (!document || !document.documentId || isListView) {
1765
+ return;
1730
1766
  }
1731
- }, [documentId, countDraftRelations, collectionType, model, params]);
1767
+ const fetchDraftRelationsCount = async () => {
1768
+ const { data, error } = await countDraftRelations({
1769
+ collectionType,
1770
+ model,
1771
+ documentId,
1772
+ params
1773
+ });
1774
+ if (error) {
1775
+ throw error;
1776
+ }
1777
+ if (data) {
1778
+ setServerCountOfDraftRelations(data.data);
1779
+ }
1780
+ };
1781
+ fetchDraftRelationsCount();
1782
+ }, [isListView, document, documentId, countDraftRelations, collectionType, model, params]);
1732
1783
  const isDocumentPublished = (document?.[PUBLISHED_AT_ATTRIBUTE_NAME] || meta?.availableStatus.some((doc) => doc[PUBLISHED_AT_ATTRIBUTE_NAME] !== null)) && document?.status !== "modified";
1733
1784
  if (!schema?.options?.draftAndPublish) {
1734
1785
  return null;
@@ -1769,7 +1820,8 @@ const PublishAction$1 = ({
1769
1820
  }
1770
1821
  };
1771
1822
  const totalDraftRelations = localCountOfDraftRelations + serverCountOfDraftRelations;
1772
- const hasDraftRelations = totalDraftRelations > 0;
1823
+ const enableDraftRelationsCount = false;
1824
+ const hasDraftRelations = enableDraftRelationsCount;
1773
1825
  return {
1774
1826
  /**
1775
1827
  * Disabled when:
@@ -1786,9 +1838,6 @@ const PublishAction$1 = ({
1786
1838
  defaultMessage: "Publish"
1787
1839
  }),
1788
1840
  onClick: async () => {
1789
- if (hasDraftRelations) {
1790
- return;
1791
- }
1792
1841
  await performPublish();
1793
1842
  },
1794
1843
  dialog: hasDraftRelations ? {
@@ -1827,10 +1876,6 @@ const UpdateAction = ({
1827
1876
  const cloneMatch = useMatch(CLONE_PATH);
1828
1877
  const isCloning = cloneMatch !== null;
1829
1878
  const { formatMessage } = useIntl();
1830
- useDocumentRBAC("UpdateAction", ({ canCreate: canCreate2, canUpdate: canUpdate2 }) => ({
1831
- canCreate: canCreate2,
1832
- canUpdate: canUpdate2
1833
- }));
1834
1879
  const { create, update, clone } = useDocumentActions();
1835
1880
  const [{ query, rawQuery }] = useQueryParams();
1836
1881
  const params = React.useMemo(() => buildValidParams(query), [query]);
@@ -1856,16 +1901,18 @@ const UpdateAction = ({
1856
1901
  onClick: async () => {
1857
1902
  setSubmitting(true);
1858
1903
  try {
1859
- const { errors } = await validate();
1860
- if (errors) {
1861
- toggleNotification({
1862
- type: "danger",
1863
- message: formatMessage({
1864
- id: "content-manager.validation.error",
1865
- defaultMessage: "There are validation errors in your document. Please fix them before saving."
1866
- })
1867
- });
1868
- return;
1904
+ if (activeTab !== "draft") {
1905
+ const { errors } = await validate();
1906
+ if (errors) {
1907
+ toggleNotification({
1908
+ type: "danger",
1909
+ message: formatMessage({
1910
+ id: "content-manager.validation.error",
1911
+ defaultMessage: "There are validation errors in your document. Please fix them before saving."
1912
+ })
1913
+ });
1914
+ return;
1915
+ }
1869
1916
  }
1870
1917
  if (isCloning) {
1871
1918
  const res = await clone(
@@ -1961,7 +2008,7 @@ const UnpublishAction$1 = ({
1961
2008
  id: "app.utils.unpublish",
1962
2009
  defaultMessage: "Unpublish"
1963
2010
  }),
1964
- icon: /* @__PURE__ */ jsx(StyledCrossCircle, {}),
2011
+ icon: /* @__PURE__ */ jsx(Cross, {}),
1965
2012
  onClick: async () => {
1966
2013
  if (!documentId && collectionType !== SINGLE_TYPES || isDocumentModified) {
1967
2014
  if (!documentId) {
@@ -2073,7 +2120,7 @@ const DiscardAction = ({
2073
2120
  id: "content-manager.actions.discard.label",
2074
2121
  defaultMessage: "Discard changes"
2075
2122
  }),
2076
- icon: /* @__PURE__ */ jsx(StyledCrossCircle, {}),
2123
+ icon: /* @__PURE__ */ jsx(Cross, {}),
2077
2124
  position: ["panel", "table-row"],
2078
2125
  variant: "danger",
2079
2126
  dialog: {
@@ -2101,11 +2148,6 @@ const DiscardAction = ({
2101
2148
  };
2102
2149
  };
2103
2150
  DiscardAction.type = "discard";
2104
- const StyledCrossCircle = styled(CrossCircle)`
2105
- path {
2106
- fill: currentColor;
2107
- }
2108
- `;
2109
2151
  const DEFAULT_ACTIONS = [PublishAction$1, UpdateAction, UnpublishAction$1, DiscardAction];
2110
2152
  const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
2111
2153
  const RelativeTime = React.forwardRef(
@@ -2153,7 +2195,7 @@ const getDisplayName = ({
2153
2195
  };
2154
2196
  const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
2155
2197
  const DocumentStatus = ({ status = "draft", ...restProps }) => {
2156
- const statusVariant = status === "draft" ? "primary" : status === "published" ? "success" : "alternative";
2198
+ const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
2157
2199
  return /* @__PURE__ */ jsx(Status, { ...restProps, showBullet: false, size: "S", variant: statusVariant, children: /* @__PURE__ */ jsx(Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: capitalise(status) }) });
2158
2200
  };
2159
2201
  const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
@@ -2336,8 +2378,22 @@ const Information = ({ activeTab }) => {
2336
2378
  );
2337
2379
  };
2338
2380
  const HeaderActions = ({ actions: actions2 }) => {
2339
- return /* @__PURE__ */ jsx(Flex, { children: actions2.map((action) => {
2340
- if ("options" in action) {
2381
+ const [dialogId, setDialogId] = React.useState(null);
2382
+ const handleClick = (action) => async (e) => {
2383
+ if (!("options" in action)) {
2384
+ const { onClick = () => false, dialog, id } = action;
2385
+ const muteDialog = await onClick(e);
2386
+ if (dialog && !muteDialog) {
2387
+ e.preventDefault();
2388
+ setDialogId(id);
2389
+ }
2390
+ }
2391
+ };
2392
+ const handleClose = () => {
2393
+ setDialogId(null);
2394
+ };
2395
+ return /* @__PURE__ */ jsx(Flex, { gap: 1, children: actions2.map((action) => {
2396
+ if (action.options) {
2341
2397
  return /* @__PURE__ */ jsx(
2342
2398
  SingleSelect,
2343
2399
  {
@@ -2351,10 +2407,49 @@ const HeaderActions = ({ actions: actions2 }) => {
2351
2407
  action.id
2352
2408
  );
2353
2409
  } else {
2354
- return null;
2410
+ if (action.type === "icon") {
2411
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [
2412
+ /* @__PURE__ */ jsx(
2413
+ IconButton,
2414
+ {
2415
+ disabled: action.disabled,
2416
+ label: action.label,
2417
+ size: "S",
2418
+ onClick: handleClick(action),
2419
+ children: action.icon
2420
+ }
2421
+ ),
2422
+ action.dialog ? /* @__PURE__ */ jsx(
2423
+ HeaderActionDialog,
2424
+ {
2425
+ ...action.dialog,
2426
+ isOpen: dialogId === action.id,
2427
+ onClose: handleClose
2428
+ }
2429
+ ) : null
2430
+ ] }, action.id);
2431
+ }
2355
2432
  }
2356
2433
  }) });
2357
2434
  };
2435
+ const HeaderActionDialog = ({
2436
+ onClose,
2437
+ onCancel,
2438
+ title,
2439
+ content: Content,
2440
+ isOpen
2441
+ }) => {
2442
+ const handleClose = async () => {
2443
+ if (onCancel) {
2444
+ await onCancel();
2445
+ }
2446
+ onClose();
2447
+ };
2448
+ return /* @__PURE__ */ jsx(Dialog.Root, { open: isOpen, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(Dialog.Content, { children: [
2449
+ /* @__PURE__ */ jsx(Dialog.Header, { children: title }),
2450
+ typeof Content === "function" ? /* @__PURE__ */ jsx(Content, { onClose: handleClose }) : Content
2451
+ ] }) });
2452
+ };
2358
2453
  const ConfigureTheViewAction = ({ collectionType, model }) => {
2359
2454
  const navigate = useNavigate();
2360
2455
  const { formatMessage } = useIntl();
@@ -2490,7 +2585,7 @@ const ActionsPanel = () => {
2490
2585
  return {
2491
2586
  title: formatMessage({
2492
2587
  id: "content-manager.containers.edit.panels.default.title",
2493
- defaultMessage: "Document"
2588
+ defaultMessage: "Entry"
2494
2589
  }),
2495
2590
  content: /* @__PURE__ */ jsx(ActionsPanelContent, {})
2496
2591
  };
@@ -2734,7 +2829,8 @@ const formatEditLayout = (data, {
2734
2829
  layout: convertEditLayoutToFieldLayouts(
2735
2830
  configuration.layouts.edit,
2736
2831
  components[uid].attributes,
2737
- configuration.metadatas
2832
+ configuration.metadatas,
2833
+ { configurations: data.components, schemas: components }
2738
2834
  ),
2739
2835
  settings: {
2740
2836
  ...configuration.settings,
@@ -2891,6 +2987,7 @@ const ConfirmDialogPublishAll = ({
2891
2987
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);
2892
2988
  const { model, schema } = useDoc();
2893
2989
  const [{ query }] = useQueryParams();
2990
+ const enableDraftRelationsCount = false;
2894
2991
  const {
2895
2992
  data: countDraftRelations = 0,
2896
2993
  isLoading,
@@ -2902,7 +2999,7 @@ const ConfirmDialogPublishAll = ({
2902
2999
  locale: query?.plugins?.i18n?.locale
2903
3000
  },
2904
3001
  {
2905
- skip: selectedEntries.length === 0
3002
+ skip: !enableDraftRelationsCount
2906
3003
  }
2907
3004
  );
2908
3005
  React.useEffect(() => {
@@ -3087,7 +3184,7 @@ const SelectedEntriesTableContent = ({
3087
3184
  status: row.status
3088
3185
  }
3089
3186
  ) }),
3090
- /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(
3187
+ /* @__PURE__ */ jsx(Table.Cell, { children: /* @__PURE__ */ jsx(Flex, { children: /* @__PURE__ */ jsx(
3091
3188
  IconButton,
3092
3189
  {
3093
3190
  tag: Link,
@@ -3110,9 +3207,10 @@ const SelectedEntriesTableContent = ({
3110
3207
  ),
3111
3208
  target: "_blank",
3112
3209
  marginLeft: "auto",
3113
- children: /* @__PURE__ */ jsx(Pencil, {})
3210
+ variant: "ghost",
3211
+ children: /* @__PURE__ */ jsx(Pencil, { width: "1.6rem", height: "1.6rem" })
3114
3212
  }
3115
- ) })
3213
+ ) }) })
3116
3214
  ] }, row.id)) })
3117
3215
  ] });
3118
3216
  };
@@ -3149,7 +3247,13 @@ const SelectedEntriesModalContent = ({
3149
3247
  );
3150
3248
  const { rows, validationErrors } = React.useMemo(() => {
3151
3249
  if (data.length > 0 && schema) {
3152
- const validate = createYupSchema(schema.attributes, components);
3250
+ const validate = createYupSchema(
3251
+ schema.attributes,
3252
+ components,
3253
+ // Since this is the "Publish" action, the validation
3254
+ // schema must enforce the rules for published entities
3255
+ { status: "published" }
3256
+ );
3153
3257
  const validationErrors2 = {};
3154
3258
  const rows2 = data.map((entry) => {
3155
3259
  try {
@@ -3499,7 +3603,7 @@ const TableActions = ({ document }) => {
3499
3603
  DescriptionComponentRenderer,
3500
3604
  {
3501
3605
  props,
3502
- descriptions: plugins["content-manager"].apis.getDocumentActions(),
3606
+ descriptions: plugins["content-manager"].apis.getDocumentActions().filter((action) => action.name !== "PublishAction"),
3503
3607
  children: (actions2) => {
3504
3608
  const tableRowActions = actions2.filter((action) => {
3505
3609
  const positions = Array.isArray(action.position) ? action.position : [action.position];
@@ -3610,7 +3714,7 @@ const CloneAction = ({ model, documentId }) => {
3610
3714
  }),
3611
3715
  content: /* @__PURE__ */ jsx(AutoCloneFailureModalBody, { prohibitedFields }),
3612
3716
  footer: ({ onClose }) => {
3613
- return /* @__PURE__ */ jsxs(Flex, { justifyContent: "space-between", children: [
3717
+ return /* @__PURE__ */ jsxs(Modal.Footer, { children: [
3614
3718
  /* @__PURE__ */ jsx(Button, { onClick: onClose, variant: "tertiary", children: formatMessage({
3615
3719
  id: "cancel",
3616
3720
  defaultMessage: "Cancel"
@@ -3841,7 +3945,7 @@ const index = {
3841
3945
  app.router.addRoute({
3842
3946
  path: "content-manager/*",
3843
3947
  lazy: async () => {
3844
- const { Layout } = await import("./layout-B3ez7kvr.mjs");
3948
+ const { Layout } = await import("./layout-DX_52HSH.mjs");
3845
3949
  return {
3846
3950
  Component: Layout
3847
3951
  };
@@ -3858,7 +3962,7 @@ const index = {
3858
3962
  async registerTrads({ locales }) {
3859
3963
  const importedTrads = await Promise.all(
3860
3964
  locales.map((locale) => {
3861
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-BrCTWlZv.mjs"), "./translations/es.json": () => import("./es-CeXiYflN.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr-CD9VFbPM.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-CtsUxOvk.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
3965
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => import("./ar-CCEVvqGG.mjs"), "./translations/ca.json": () => import("./ca-5U32ON2v.mjs"), "./translations/cs.json": () => import("./cs-CM2aBUar.mjs"), "./translations/de.json": () => import("./de-C72KDNOl.mjs"), "./translations/en.json": () => import("./en-CPTj6CjC.mjs"), "./translations/es.json": () => import("./es-CeXiYflN.mjs"), "./translations/eu.json": () => import("./eu-CdALomew.mjs"), "./translations/fr.json": () => import("./fr-CD9VFbPM.mjs"), "./translations/gu.json": () => import("./gu-CNpaMDpH.mjs"), "./translations/hi.json": () => import("./hi-Dwvd04m3.mjs"), "./translations/hu.json": () => import("./hu-CeYvaaO0.mjs"), "./translations/id.json": () => import("./id-BtwA9WJT.mjs"), "./translations/it.json": () => import("./it-BrVPqaf1.mjs"), "./translations/ja.json": () => import("./ja-CtsUxOvk.mjs"), "./translations/ko.json": () => import("./ko-HVQRlfUI.mjs"), "./translations/ml.json": () => import("./ml-BihZwQit.mjs"), "./translations/ms.json": () => import("./ms-m_WjyWx7.mjs"), "./translations/nl.json": () => import("./nl-D4R9gHx5.mjs"), "./translations/pl.json": () => import("./pl-sbx9mSt_.mjs"), "./translations/pt-BR.json": () => import("./pt-BR-C71iDxnh.mjs"), "./translations/pt.json": () => import("./pt-BsaFvS8-.mjs"), "./translations/ru.json": () => import("./ru-BE6A4Exp.mjs"), "./translations/sa.json": () => import("./sa-Dag0k-Z8.mjs"), "./translations/sk.json": () => import("./sk-BFg-R8qJ.mjs"), "./translations/sv.json": () => import("./sv-CUnfWGsh.mjs"), "./translations/th.json": () => import("./th-BqbI8lIT.mjs"), "./translations/tr.json": () => import("./tr-CgeK3wJM.mjs"), "./translations/uk.json": () => import("./uk-CR-zDhAY.mjs"), "./translations/vi.json": () => import("./vi-DUXIk_fw.mjs"), "./translations/zh-Hans.json": () => import("./zh-Hans-BPQcRIyH.mjs"), "./translations/zh.json": () => import("./zh-BWZspA60.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
3862
3966
  return {
3863
3967
  data: prefixPluginTranslations(data, PLUGIN_ID),
3864
3968
  locale
@@ -3879,13 +3983,14 @@ export {
3879
3983
  BulkActionsRenderer as B,
3880
3984
  COLLECTION_TYPES as C,
3881
3985
  DocumentStatus as D,
3882
- DEFAULT_SETTINGS as E,
3883
- convertEditLayoutToFieldLayouts as F,
3884
- useDocument as G,
3986
+ extractContentTypeComponents as E,
3987
+ DEFAULT_SETTINGS as F,
3988
+ convertEditLayoutToFieldLayouts as G,
3885
3989
  HOOKS as H,
3886
3990
  InjectionZone as I,
3887
- index as J,
3888
- useDocumentActions as K,
3991
+ useDocument as J,
3992
+ index as K,
3993
+ useDocumentActions as L,
3889
3994
  Panels as P,
3890
3995
  RelativeTime as R,
3891
3996
  SINGLE_TYPES as S,
@@ -3903,18 +4008,18 @@ export {
3903
4008
  PERMISSIONS as k,
3904
4009
  DocumentRBAC as l,
3905
4010
  DOCUMENT_META_FIELDS as m,
3906
- useDocLayout as n,
3907
- useGetContentTypeConfigurationQuery as o,
3908
- CREATOR_FIELDS as p,
3909
- getMainField as q,
3910
- getDisplayName as r,
4011
+ CLONE_PATH as n,
4012
+ useDocLayout as o,
4013
+ useGetContentTypeConfigurationQuery as p,
4014
+ CREATOR_FIELDS as q,
4015
+ getMainField as r,
3911
4016
  setInitialData as s,
3912
- checkIfAttributeIsDisplayable as t,
4017
+ getDisplayName as t,
3913
4018
  useContentTypeSchema as u,
3914
- useGetAllDocumentsQuery as v,
3915
- convertListLayoutToFieldLayouts as w,
3916
- capitalise as x,
3917
- useUpdateContentTypeConfigurationMutation as y,
3918
- extractContentTypeComponents as z
4019
+ checkIfAttributeIsDisplayable as v,
4020
+ useGetAllDocumentsQuery as w,
4021
+ convertListLayoutToFieldLayouts as x,
4022
+ capitalise as y,
4023
+ useUpdateContentTypeConfigurationMutation as z
3919
4024
  };
3920
- //# sourceMappingURL=index-DrNe6ctw.mjs.map
4025
+ //# sourceMappingURL=index-BHfS6_D5.mjs.map