@strapi/content-manager 0.0.0-experimental.f37a0ea0333947b6879c4608fae75646d63c07a1 → 0.0.0-experimental.f3ec579d505563eb88e01308248766a76e49d9b3

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 (126) hide show
  1. package/dist/admin/history/components/VersionContent.js +3 -24
  2. package/dist/admin/history/components/VersionContent.js.map +1 -1
  3. package/dist/admin/history/components/VersionContent.mjs +4 -25
  4. package/dist/admin/history/components/VersionContent.mjs.map +1 -1
  5. package/dist/admin/hooks/useDocumentActions.js +2 -5
  6. package/dist/admin/hooks/useDocumentActions.js.map +1 -1
  7. package/dist/admin/hooks/useDocumentActions.mjs +2 -5
  8. package/dist/admin/hooks/useDocumentActions.mjs.map +1 -1
  9. package/dist/admin/index.js +0 -2
  10. package/dist/admin/index.js.map +1 -1
  11. package/dist/admin/index.mjs +0 -1
  12. package/dist/admin/index.mjs.map +1 -1
  13. package/dist/admin/pages/EditView/EditViewPage.js +6 -18
  14. package/dist/admin/pages/EditView/EditViewPage.js.map +1 -1
  15. package/dist/admin/pages/EditView/EditViewPage.mjs +7 -19
  16. package/dist/admin/pages/EditView/EditViewPage.mjs.map +1 -1
  17. package/dist/admin/pages/EditView/components/DocumentActions.js +63 -59
  18. package/dist/admin/pages/EditView/components/DocumentActions.js.map +1 -1
  19. package/dist/admin/pages/EditView/components/DocumentActions.mjs +65 -61
  20. package/dist/admin/pages/EditView/components/DocumentActions.mjs.map +1 -1
  21. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js +1 -12
  22. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.js.map +1 -1
  23. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs +2 -13
  24. package/dist/admin/pages/EditView/components/FormInputs/Component/NonRepeatable.mjs.map +1 -1
  25. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js +2 -13
  26. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.js.map +1 -1
  27. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs +3 -14
  28. package/dist/admin/pages/EditView/components/FormInputs/Component/Repeatable.mjs.map +1 -1
  29. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js +5 -18
  30. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.js.map +1 -1
  31. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs +7 -20
  32. package/dist/admin/pages/EditView/components/FormInputs/DynamicZone/DynamicComponent.mjs.map +1 -1
  33. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js +0 -1
  34. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.js.map +1 -1
  35. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs +0 -1
  36. package/dist/admin/pages/EditView/components/FormInputs/Relations/RelationModal.mjs.map +1 -1
  37. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js +105 -153
  38. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.js.map +1 -1
  39. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs +108 -156
  40. package/dist/admin/pages/EditView/components/FormInputs/Relations/Relations.mjs.map +1 -1
  41. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js +118 -86
  42. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.js.map +1 -1
  43. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs +118 -86
  44. package/dist/admin/pages/EditView/components/FormInputs/Wysiwyg/WysiwygNav.mjs.map +1 -1
  45. package/dist/admin/pages/EditView/components/FormLayout.js +3 -27
  46. package/dist/admin/pages/EditView/components/FormLayout.js.map +1 -1
  47. package/dist/admin/pages/EditView/components/FormLayout.mjs +3 -27
  48. package/dist/admin/pages/EditView/components/FormLayout.mjs.map +1 -1
  49. package/dist/admin/pages/EditView/utils/data.js +0 -103
  50. package/dist/admin/pages/EditView/utils/data.js.map +1 -1
  51. package/dist/admin/pages/EditView/utils/data.mjs +1 -103
  52. package/dist/admin/pages/EditView/utils/data.mjs.map +1 -1
  53. package/dist/admin/pages/ListView/ListViewPage.js +65 -74
  54. package/dist/admin/pages/ListView/ListViewPage.js.map +1 -1
  55. package/dist/admin/pages/ListView/ListViewPage.mjs +66 -75
  56. package/dist/admin/pages/ListView/ListViewPage.mjs.map +1 -1
  57. package/dist/admin/pages/ListView/components/TableActions.js +3 -13
  58. package/dist/admin/pages/ListView/components/TableActions.js.map +1 -1
  59. package/dist/admin/pages/ListView/components/TableActions.mjs +3 -13
  60. package/dist/admin/pages/ListView/components/TableActions.mjs.map +1 -1
  61. package/dist/admin/services/api.js +1 -2
  62. package/dist/admin/services/api.js.map +1 -1
  63. package/dist/admin/services/api.mjs +1 -2
  64. package/dist/admin/services/api.mjs.map +1 -1
  65. package/dist/admin/services/documents.js +4 -4
  66. package/dist/admin/services/documents.js.map +1 -1
  67. package/dist/admin/services/documents.mjs +4 -4
  68. package/dist/admin/services/documents.mjs.map +1 -1
  69. package/dist/admin/src/exports.d.ts +0 -1
  70. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  71. package/dist/admin/src/hooks/useDocumentActions.d.ts +0 -1
  72. package/dist/admin/src/pages/EditView/utils/data.d.ts +1 -19
  73. package/dist/admin/src/preview/services/preview.d.ts +1 -1
  74. package/dist/admin/src/services/api.d.ts +1 -1
  75. package/dist/admin/src/services/components.d.ts +2 -2
  76. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  77. package/dist/admin/src/services/documents.d.ts +17 -23
  78. package/dist/admin/src/services/homepage.d.ts +1 -1
  79. package/dist/admin/src/services/init.d.ts +1 -1
  80. package/dist/admin/src/services/relations.d.ts +2 -2
  81. package/dist/admin/src/services/uid.d.ts +3 -3
  82. package/dist/admin/src/utils/validation.d.ts +0 -1
  83. package/dist/admin/translations/fr.json.js +1 -6
  84. package/dist/admin/translations/fr.json.js.map +1 -1
  85. package/dist/admin/translations/fr.json.mjs +1 -6
  86. package/dist/admin/translations/fr.json.mjs.map +1 -1
  87. package/dist/admin/utils/validation.js +5 -16
  88. package/dist/admin/utils/validation.js.map +1 -1
  89. package/dist/admin/utils/validation.mjs +5 -16
  90. package/dist/admin/utils/validation.mjs.map +1 -1
  91. package/dist/server/controllers/relations.js +2 -2
  92. package/dist/server/controllers/relations.js.map +1 -1
  93. package/dist/server/controllers/relations.mjs +2 -2
  94. package/dist/server/controllers/relations.mjs.map +1 -1
  95. package/dist/server/homepage/services/homepage.js +49 -58
  96. package/dist/server/homepage/services/homepage.js.map +1 -1
  97. package/dist/server/homepage/services/homepage.mjs +49 -58
  98. package/dist/server/homepage/services/homepage.mjs.map +1 -1
  99. package/dist/server/services/document-manager.js +0 -3
  100. package/dist/server/services/document-manager.js.map +1 -1
  101. package/dist/server/services/document-manager.mjs +0 -3
  102. package/dist/server/services/document-manager.mjs.map +1 -1
  103. package/dist/server/services/document-metadata.js +1 -1
  104. package/dist/server/services/document-metadata.js.map +1 -1
  105. package/dist/server/services/document-metadata.mjs +1 -1
  106. package/dist/server/services/document-metadata.mjs.map +1 -1
  107. package/dist/server/services/utils/populate.js +0 -11
  108. package/dist/server/services/utils/populate.js.map +1 -1
  109. package/dist/server/services/utils/populate.mjs +0 -11
  110. package/dist/server/services/utils/populate.mjs.map +1 -1
  111. package/dist/server/src/homepage/index.d.ts +0 -2
  112. package/dist/server/src/homepage/index.d.ts.map +1 -1
  113. package/dist/server/src/homepage/services/homepage.d.ts +1 -3
  114. package/dist/server/src/homepage/services/homepage.d.ts.map +1 -1
  115. package/dist/server/src/homepage/services/index.d.ts +0 -2
  116. package/dist/server/src/homepage/services/index.d.ts.map +1 -1
  117. package/dist/server/src/index.d.ts +0 -2
  118. package/dist/server/src/index.d.ts.map +1 -1
  119. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  120. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  121. package/dist/server/src/services/index.d.ts +0 -2
  122. package/dist/server/src/services/index.d.ts.map +1 -1
  123. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  124. package/dist/shared/contracts/collection-types.d.ts +1 -0
  125. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  126. package/package.json +7 -7
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { unstable_tours, useNotification, useAPIErrorHandler, useQueryParams, useForm } from '@strapi/admin/strapi-admin';
4
- import { Flex, Button, Menu, VisuallyHidden, Dialog, Modal, Typography, Radio } from '@strapi/design-system';
3
+ import { useNotification, useAPIErrorHandler, useQueryParams, useForm } from '@strapi/admin/strapi-admin';
4
+ import { Menu, Flex, Button, VisuallyHidden, Dialog, Modal, Typography, Radio } from '@strapi/design-system';
5
5
  import { More, Cross, WarningCircle } from '@strapi/icons';
6
6
  import mapValues from 'lodash/fp/mapValues';
7
7
  import get from 'lodash/get';
@@ -9,6 +9,7 @@ import merge from 'lodash/merge';
9
9
  import set from 'lodash/set';
10
10
  import { useIntl } from 'react-intl';
11
11
  import { useNavigate, useMatch, useParams } from 'react-router-dom';
12
+ import { styled } from 'styled-components';
12
13
  import { PUBLISHED_AT_ATTRIBUTE_NAME } from '../../../constants/attributes.mjs';
13
14
  import { SINGLE_TYPES } from '../../../constants/collections.mjs';
14
15
  import { useDocumentRBAC } from '../../../features/DocumentRBAC.mjs';
@@ -20,7 +21,6 @@ import { LIST_PATH, CLONE_PATH } from '../../../router.mjs';
20
21
  import { useGetDraftRelationCountQuery as useLazyGetDraftRelationCountQuery, useUpdateDocumentMutation } from '../../../services/documents.mjs';
21
22
  import { isBaseQueryError, buildValidParams } from '../../../utils/api.mjs';
22
23
  import { getTranslation } from '../../../utils/translations.mjs';
23
- import { handleInvisibleAttributes } from '../utils/data.mjs';
24
24
  import { useRelationModal } from './FormInputs/Relations/RelationModal.mjs';
25
25
 
26
26
  const connectRelationToParent = (parentDataToUpdate, fieldToConnect, data, fieldToConnectUID)=>{
@@ -75,33 +75,23 @@ const DocumentActions = ({ actions })=>{
75
75
  alignItems: "stretch",
76
76
  width: "100%",
77
77
  children: [
78
- /*#__PURE__*/ jsx(unstable_tours.contentManager.Publish, {
79
- children: /*#__PURE__*/ jsxs(Flex, {
80
- gap: 2,
81
- children: [
82
- primaryAction.label === 'Publish' ? /*#__PURE__*/ jsx(DocumentActionButton, {
83
- ...primaryAction,
84
- variant: primaryAction.variant || 'default'
85
- }) : /*#__PURE__*/ jsx(DocumentActionButton, {
86
- ...primaryAction,
87
- variant: primaryAction.variant || 'default'
88
- }),
89
- restActions.length > 0 ? /*#__PURE__*/ jsx(DocumentActionsMenu, {
90
- actions: restActions,
91
- label: formatMessage({
92
- id: 'content-manager.containers.edit.panels.default.more-actions',
93
- defaultMessage: 'More document actions'
94
- })
95
- }) : null
96
- ]
97
- })
78
+ /*#__PURE__*/ jsxs(Flex, {
79
+ gap: 2,
80
+ children: [
81
+ /*#__PURE__*/ jsx(DocumentActionButton, {
82
+ ...primaryAction,
83
+ variant: primaryAction.variant || 'default'
84
+ }),
85
+ restActions.length > 0 ? /*#__PURE__*/ jsx(DocumentActionsMenu, {
86
+ actions: restActions,
87
+ label: formatMessage({
88
+ id: 'content-manager.containers.edit.panels.default.more-actions',
89
+ defaultMessage: 'More document actions'
90
+ })
91
+ }) : null
92
+ ]
98
93
  }),
99
- secondaryAction ? secondaryAction.label === 'Publish' ? /*#__PURE__*/ jsx(unstable_tours.contentManager.Publish, {
100
- children: /*#__PURE__*/ jsx(DocumentActionButton, {
101
- ...secondaryAction,
102
- variant: secondaryAction.variant || 'secondary'
103
- })
104
- }) : /*#__PURE__*/ jsx(DocumentActionButton, {
94
+ secondaryAction ? /*#__PURE__*/ jsx(DocumentActionButton, {
105
95
  ...secondaryAction,
106
96
  variant: secondaryAction.variant || 'secondary'
107
97
  }) : null
@@ -163,6 +153,11 @@ const DocumentActionButton = (action)=>{
163
153
  ]
164
154
  });
165
155
  };
156
+ const MenuItem = styled(Menu.Item)`
157
+ &:hover {
158
+ background: ${({ theme, isVariantDanger, isDisabled })=>isVariantDanger && !isDisabled ? theme.colors.danger100 : 'neutral'};
159
+ }
160
+ `;
166
161
  const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })=>{
167
162
  const [isOpen, setIsOpen] = React.useState(false);
168
163
  const [dialogId, setDialogId] = React.useState(null);
@@ -224,19 +219,27 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
224
219
  popoverPlacement: "bottom-end",
225
220
  children: [
226
221
  actions.map((action)=>{
227
- return /*#__PURE__*/ jsx(Menu.Item, {
222
+ return /*#__PURE__*/ jsx(MenuItem, {
228
223
  disabled: action.disabled,
229
224
  /* @ts-expect-error – TODO: this is an error in the DS where it is most likely a synthetic event, not regular. */ onSelect: handleClick(action),
230
225
  display: "block",
231
- variant: action.variant === 'danger' ? action.variant : 'default',
232
- startIcon: action.icon,
226
+ isVariantDanger: action.variant === 'danger',
227
+ isDisabled: action.disabled,
233
228
  children: /*#__PURE__*/ jsx(Flex, {
234
229
  justifyContent: "space-between",
235
230
  gap: 4,
236
- children: /*#__PURE__*/ jsx(Flex, {
231
+ children: /*#__PURE__*/ jsxs(Flex, {
232
+ color: !action.disabled ? convertActionVariantToColor(action.variant) : 'inherit',
237
233
  gap: 2,
238
234
  tag: "span",
239
- children: action.label
235
+ children: [
236
+ /*#__PURE__*/ jsx(Flex, {
237
+ tag: "span",
238
+ color: !action.disabled ? convertActionVariantToIconColor(action.variant) : 'inherit',
239
+ children: action.icon
240
+ }),
241
+ action.label
242
+ ]
240
243
  })
241
244
  })
242
245
  }, action.id);
@@ -264,6 +267,30 @@ const DocumentActionsMenu = ({ actions, children, label, variant = 'tertiary' })
264
267
  ]
265
268
  });
266
269
  };
270
+ const convertActionVariantToColor = (variant = 'secondary')=>{
271
+ switch(variant){
272
+ case 'danger':
273
+ return 'danger600';
274
+ case 'secondary':
275
+ return undefined;
276
+ case 'success':
277
+ return 'success600';
278
+ default:
279
+ return 'primary600';
280
+ }
281
+ };
282
+ const convertActionVariantToIconColor = (variant = 'secondary')=>{
283
+ switch(variant){
284
+ case 'danger':
285
+ return 'danger600';
286
+ case 'secondary':
287
+ return 'neutral500';
288
+ case 'success':
289
+ return 'success600';
290
+ default:
291
+ return 'primary600';
292
+ }
293
+ };
267
294
  const DocumentActionConfirmDialog = ({ onClose, onCancel, onConfirm, title, content, isOpen, variant = 'secondary', loading })=>{
268
295
  const { formatMessage } = useIntl();
269
296
  const handleClose = async ()=>{
@@ -386,7 +413,6 @@ const transformData = (data)=>{
386
413
  const setErrors = useForm('PublishAction', (state)=>state.setErrors);
387
414
  const formValues = useForm('PublishAction', ({ values })=>values);
388
415
  const resetForm = useForm('PublishAction', ({ resetForm })=>resetForm);
389
- const { currentDocument: { components } } = useDocumentContext('PublishAction');
390
416
  // need to discriminate if the publish is coming from a relation modal or in the edit view
391
417
  const relationContext = useRelationModal('PublishAction', ()=>true, false);
392
418
  const fromRelationModal = relationContext != undefined;
@@ -525,16 +551,12 @@ const transformData = (data)=>{
525
551
  }
526
552
  return;
527
553
  }
528
- const { data } = handleInvisibleAttributes(transformData(formValues), {
529
- schema,
530
- components
531
- });
532
554
  const res = await publish({
533
555
  collectionType,
534
556
  model,
535
557
  documentId,
536
558
  params: currentDocumentMeta.params
537
- }, data);
559
+ }, transformData(formValues));
538
560
  // Reset form if successful
539
561
  if ('data' in res) {
540
562
  resetForm();
@@ -668,14 +690,12 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
668
690
  const isCloning = cloneMatch !== null;
669
691
  const { formatMessage } = useIntl();
670
692
  const { create, update, clone, isLoading } = useDocumentActions();
671
- const { currentDocument: { components } } = useDocumentContext('UpdateAction');
672
693
  const [{ rawQuery }] = useQueryParams();
673
694
  const onPreview = usePreviewContext('UpdateAction', (state)=>state.onPreview, false);
674
695
  const { getInitialFormValues } = useDoc();
675
696
  const isSubmitting = useForm('UpdateAction', ({ isSubmitting })=>isSubmitting);
676
697
  const modified = useForm('UpdateAction', ({ modified })=>modified);
677
698
  const setSubmitting = useForm('UpdateAction', ({ setSubmitting })=>setSubmitting);
678
- const initialValues = useForm('UpdateAction', ({ initialValues })=>initialValues);
679
699
  const document = useForm('UpdateAction', ({ values })=>values);
680
700
  const validate = useForm('UpdateAction', (state)=>state.validate);
681
701
  const setErrors = useForm('UpdateAction', (state)=>state.setErrors);
@@ -683,7 +703,6 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
683
703
  const dispatch = useRelationModal('UpdateAction', (state)=>state.dispatch);
684
704
  // need to discriminate if the update is coming from a relation modal or in the edit view
685
705
  const relationContext = useRelationModal('UpdateAction', ()=>true, false);
686
- const relationalModalSchema = useRelationModal('UpdateAction', (state)=>state.currentDocument.schema, false);
687
706
  const fieldToConnect = useRelationModal('UpdateAction', (state)=>state.state.fieldToConnect, false);
688
707
  const fieldToConnectUID = useRelationModal('PublishAction', (state)=>state.state.fieldToConnectUID, false);
689
708
  const documentHistory = useRelationModal('UpdateAction', (state)=>state.state.documentHistory, false);
@@ -701,7 +720,6 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
701
720
  }, {
702
721
  skip: !parentDocumentMetaToUpdate
703
722
  });
704
- const { schema } = useDoc();
705
723
  const handleUpdate = React.useCallback(async ()=>{
706
724
  setSubmitting(true);
707
725
  try {
@@ -738,32 +756,22 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
738
756
  setErrors(formatValidationErrors(res.error));
739
757
  }
740
758
  } else if (documentId || collectionType === SINGLE_TYPES) {
741
- const { data } = handleInvisibleAttributes(transformData(document), {
742
- schema: fromRelationModal ? relationalModalSchema : schema,
743
- initialValues,
744
- components
745
- });
746
759
  const res = await update({
747
760
  collectionType,
748
761
  model,
749
762
  documentId,
750
763
  params: currentDocumentMeta.params
751
- }, data);
764
+ }, transformData(document));
752
765
  if ('error' in res && isBaseQueryError(res.error) && res.error.name === 'ValidationError') {
753
766
  setErrors(formatValidationErrors(res.error));
754
767
  } else {
755
768
  resetForm();
756
769
  }
757
770
  } else {
758
- const { data } = handleInvisibleAttributes(transformData(document), {
759
- schema: fromRelationModal ? relationalModalSchema : schema,
760
- initialValues,
761
- components
762
- });
763
771
  const res = await create({
764
772
  model,
765
773
  params: currentDocumentMeta.params
766
- }, data);
774
+ }, transformData(document));
767
775
  if ('data' in res && collectionType !== SINGLE_TYPES) {
768
776
  if (fromRelationModal) {
769
777
  const createdRelation = {
@@ -864,11 +872,7 @@ const UpdateAction = ({ activeTab, documentId, model, collectionType })=>{
864
872
  fieldToConnectUID,
865
873
  updateDocumentMutation,
866
874
  formatAPIError,
867
- onPreview,
868
- initialValues,
869
- schema,
870
- components,
871
- relationalModalSchema
875
+ onPreview
872
876
  ]);
873
877
  // Auto-save on CMD+S or CMD+Enter on macOS, and CTRL+S or CTRL+Enter on Windows/Linux
874
878
  React.useEffect(()=>{