@strapi/content-type-builder 5.55.1 → 5.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +117 -13
  2. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
  3. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs +118 -13
  4. package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/providers/SchemaProvider.js +31 -19
  6. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  7. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +31 -19
  8. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  9. package/dist/admin/components/DataManager/DataManagerContext.js.map +1 -1
  10. package/dist/admin/components/DataManager/DataManagerContext.mjs.map +1 -1
  11. package/dist/admin/components/DataManager/DataManagerProvider.js +166 -6
  12. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  13. package/dist/admin/components/DataManager/DataManagerProvider.mjs +165 -7
  14. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  15. package/dist/admin/components/DataManager/RenameMigrationModal.js +285 -0
  16. package/dist/admin/components/DataManager/RenameMigrationModal.js.map +1 -0
  17. package/dist/admin/components/DataManager/RenameMigrationModal.mjs +257 -0
  18. package/dist/admin/components/DataManager/RenameMigrationModal.mjs.map +1 -0
  19. package/dist/admin/components/DataManager/reducer.js +107 -2
  20. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  21. package/dist/admin/components/DataManager/reducer.mjs +106 -2
  22. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  23. package/dist/admin/components/DataManager/utils/cleanData.js +8 -1
  24. package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
  25. package/dist/admin/components/DataManager/utils/cleanData.mjs +8 -1
  26. package/dist/admin/components/DataManager/utils/cleanData.mjs.map +1 -1
  27. package/dist/admin/components/DataManager/utils/groupRenameChains.js +86 -0
  28. package/dist/admin/components/DataManager/utils/groupRenameChains.js.map +1 -0
  29. package/dist/admin/components/DataManager/utils/groupRenameChains.mjs +84 -0
  30. package/dist/admin/components/DataManager/utils/groupRenameChains.mjs.map +1 -0
  31. package/dist/admin/components/DataManager/utils/isStorageCompatibleRename.js +29 -0
  32. package/dist/admin/components/DataManager/utils/isStorageCompatibleRename.js.map +1 -0
  33. package/dist/admin/components/DataManager/utils/isStorageCompatibleRename.mjs +27 -0
  34. package/dist/admin/components/DataManager/utils/isStorageCompatibleRename.mjs.map +1 -0
  35. package/dist/admin/components/DataManager/utils/resolveAfterEditRenameConsent.js +35 -0
  36. package/dist/admin/components/DataManager/utils/resolveAfterEditRenameConsent.js.map +1 -0
  37. package/dist/admin/components/DataManager/utils/resolveAfterEditRenameConsent.mjs +33 -0
  38. package/dist/admin/components/DataManager/utils/resolveAfterEditRenameConsent.mjs.map +1 -0
  39. package/dist/admin/components/DataManager/utils/splitChainsByInheritedConsent.js +48 -0
  40. package/dist/admin/components/DataManager/utils/splitChainsByInheritedConsent.js.map +1 -0
  41. package/dist/admin/components/DataManager/utils/splitChainsByInheritedConsent.mjs +45 -0
  42. package/dist/admin/components/DataManager/utils/splitChainsByInheritedConsent.mjs.map +1 -0
  43. package/dist/admin/components/FormModal/FormModal.js +143 -9
  44. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  45. package/dist/admin/components/FormModal/FormModal.mjs +144 -10
  46. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  47. package/dist/admin/components/FormModal/attributes/validation/common.js +6 -5
  48. package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
  49. package/dist/admin/components/FormModal/attributes/validation/common.mjs +1 -1
  50. package/dist/admin/components/FormModal/attributes/validation/common.mjs.map +1 -1
  51. package/dist/admin/components/FormModal/component/createComponentSchema.js +10 -7
  52. package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
  53. package/dist/admin/components/FormModal/component/createComponentSchema.mjs +1 -1
  54. package/dist/admin/components/FormModal/component/createComponentSchema.mjs.map +1 -1
  55. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +24 -21
  56. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
  57. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs +1 -1
  58. package/dist/admin/components/FormModal/contentType/createContentTypeSchema.mjs.map +1 -1
  59. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +3 -2
  60. package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
  61. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs +1 -1
  62. package/dist/admin/components/FormModal/forms/utils/createCollectionName.mjs.map +1 -1
  63. package/dist/admin/components/FormModal/utils/getRenameStorageChange.js +73 -0
  64. package/dist/admin/components/FormModal/utils/getRenameStorageChange.js.map +1 -0
  65. package/dist/admin/components/FormModal/utils/getRenameStorageChange.mjs +70 -0
  66. package/dist/admin/components/FormModal/utils/getRenameStorageChange.mjs.map +1 -0
  67. package/dist/admin/src/components/AIChat/components/AnimatedBox.d.ts +2 -2
  68. package/dist/admin/src/components/AIChat/components/Input.d.ts +2 -2
  69. package/dist/admin/src/components/AIChat/lib/transforms/schemas/toCTB.d.ts +4 -3
  70. package/dist/admin/src/components/AIChat/lib/types/schema.d.ts +6 -1
  71. package/dist/admin/src/components/AttributeOptions/OptionBoxWrapper.d.ts +2 -2
  72. package/dist/admin/src/components/ComponentRow.d.ts +2 -2
  73. package/dist/admin/src/components/DataManager/DataManagerContext.d.ts +28 -2
  74. package/dist/admin/src/components/DataManager/RenameMigrationModal.d.ts +73 -0
  75. package/dist/admin/src/components/DataManager/reducer.d.ts +17 -2
  76. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +16 -0
  77. package/dist/admin/src/components/DataManager/utils/groupRenameChains.d.ts +31 -0
  78. package/dist/admin/src/components/DataManager/utils/isStorageCompatibleRename.d.ts +10 -0
  79. package/dist/admin/src/components/DataManager/utils/resolveAfterEditRenameConsent.d.ts +24 -0
  80. package/dist/admin/src/components/DataManager/utils/splitChainsByInheritedConsent.d.ts +26 -0
  81. package/dist/admin/src/components/FormModal/utils/getRenameStorageChange.d.ts +40 -0
  82. package/dist/admin/src/components/List.d.ts +2 -2
  83. package/dist/admin/src/components/Relation/RelationNaturePicker/Components.d.ts +4 -4
  84. package/dist/admin/src/types.d.ts +23 -0
  85. package/dist/admin/translations/en.json.js +12 -0
  86. package/dist/admin/translations/en.json.js.map +1 -1
  87. package/dist/admin/translations/en.json.mjs +12 -0
  88. package/dist/admin/translations/en.json.mjs.map +1 -1
  89. package/dist/server/config.js +24 -3
  90. package/dist/server/config.js.map +1 -1
  91. package/dist/server/config.mjs +21 -3
  92. package/dist/server/config.mjs.map +1 -1
  93. package/dist/server/controllers/schema.js +2 -2
  94. package/dist/server/controllers/schema.js.map +1 -1
  95. package/dist/server/controllers/schema.mjs +1 -1
  96. package/dist/server/controllers/schema.mjs.map +1 -1
  97. package/dist/server/controllers/validation/content-type.js +9 -11
  98. package/dist/server/controllers/validation/content-type.js.map +1 -1
  99. package/dist/server/controllers/validation/content-type.mjs +7 -9
  100. package/dist/server/controllers/validation/content-type.mjs.map +1 -1
  101. package/dist/server/controllers/validation/model-schema.js +2 -3
  102. package/dist/server/controllers/validation/model-schema.js.map +1 -1
  103. package/dist/server/controllers/validation/model-schema.mjs +1 -2
  104. package/dist/server/controllers/validation/model-schema.mjs.map +1 -1
  105. package/dist/server/controllers/validation/relations.js +1 -2
  106. package/dist/server/controllers/validation/relations.js.map +1 -1
  107. package/dist/server/controllers/validation/relations.mjs +1 -2
  108. package/dist/server/controllers/validation/relations.mjs.map +1 -1
  109. package/dist/server/controllers/validation/schema.js +42 -23
  110. package/dist/server/controllers/validation/schema.js.map +1 -1
  111. package/dist/server/controllers/validation/schema.mjs +43 -24
  112. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  113. package/dist/server/index.js +1 -1
  114. package/dist/server/index.js.map +1 -1
  115. package/dist/server/services/content-types.js +1 -2
  116. package/dist/server/services/content-types.js.map +1 -1
  117. package/dist/server/services/content-types.mjs +2 -3
  118. package/dist/server/services/content-types.mjs.map +1 -1
  119. package/dist/server/services/migration-builder/index.js +580 -0
  120. package/dist/server/services/migration-builder/index.js.map +1 -0
  121. package/dist/server/services/migration-builder/index.mjs +573 -0
  122. package/dist/server/services/migration-builder/index.mjs.map +1 -0
  123. package/dist/server/services/schema-builder/content-type-builder.js +31 -1
  124. package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
  125. package/dist/server/services/schema-builder/content-type-builder.mjs +31 -1
  126. package/dist/server/services/schema-builder/content-type-builder.mjs.map +1 -1
  127. package/dist/server/services/schema-mutation.js +30 -2
  128. package/dist/server/services/schema-mutation.js.map +1 -1
  129. package/dist/server/services/schema-mutation.mjs +10 -2
  130. package/dist/server/services/schema-mutation.mjs.map +1 -1
  131. package/dist/server/services/schema.js +259 -15
  132. package/dist/server/services/schema.js.map +1 -1
  133. package/dist/server/services/schema.mjs +252 -9
  134. package/dist/server/services/schema.mjs.map +1 -1
  135. package/dist/server/src/config.d.ts +23 -2
  136. package/dist/server/src/config.d.ts.map +1 -1
  137. package/dist/server/src/controllers/validation/content-type.d.ts +0 -1
  138. package/dist/server/src/controllers/validation/content-type.d.ts.map +1 -1
  139. package/dist/server/src/controllers/validation/relations.d.ts.map +1 -1
  140. package/dist/server/src/controllers/validation/schema.d.ts +28 -0
  141. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  142. package/dist/server/src/index.d.ts +10 -2
  143. package/dist/server/src/index.d.ts.map +1 -1
  144. package/dist/server/src/services/content-types.d.ts.map +1 -1
  145. package/dist/server/src/services/migration-builder/index.d.ts +83 -0
  146. package/dist/server/src/services/migration-builder/index.d.ts.map +1 -0
  147. package/dist/server/src/services/schema-builder/content-type-builder.d.ts.map +1 -1
  148. package/dist/server/src/services/schema-mutation.d.ts +4 -2
  149. package/dist/server/src/services/schema-mutation.d.ts.map +1 -1
  150. package/dist/server/src/services/schema.d.ts +19 -0
  151. package/dist/server/src/services/schema.d.ts.map +1 -1
  152. package/package.json +11 -10
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useState } from 'react';
4
4
  import { useStrapiApp, useNotification, useGuidedTour, ConfirmDialog, GUIDED_TOUR_REQUIRED_ACTIONS } from '@strapi/admin/strapi-admin';
5
- import { Modal, Dialog, Box, Typography, Tabs, Flex, Divider, Button } from '@strapi/design-system';
5
+ import { Modal, Dialog, Box, Typography, Button, Tabs, Flex, Divider } from '@strapi/design-system';
6
6
  import get from 'lodash/get';
7
7
  import has from 'lodash/has';
8
8
  import isEqual from 'lodash/isEqual';
@@ -53,6 +53,7 @@ import { canEditContentType } from './utils/canEditContentType.mjs';
53
53
  import { createUid, createComponentUid } from './utils/createUid.mjs';
54
54
  import { getAttributesToDisplay } from './utils/getAttributesToDisplay.mjs';
55
55
  import { getFormInputNames } from './utils/getFormInputNames.mjs';
56
+ import { getRenameStorageChange } from './utils/getRenameStorageChange.mjs';
56
57
 
57
58
  const FormComponent = styled.form`
58
59
  overflow: auto;
@@ -88,11 +89,20 @@ const FormModal = ()=>{
88
89
  const ctbFormsAPI = ctbPlugin?.apis.forms;
89
90
  const inputsFromPlugins = ctbFormsAPI.components.inputs;
90
91
  const dispatchGuidedTour = useGuidedTour('FormModal', (s)=>s.dispatch);
91
- const { addAttribute, editAttribute, addCustomFieldAttribute, addCreatedComponentToDynamicZone, changeDynamicZoneComponents, contentTypes, components, createSchema, createComponentSchema, deleteComponent, deleteContentType, editCustomFieldAttribute, updateSchema, nestedComponents, sortedContentTypesList, updateComponentSchema, updateComponentUid, reservedNames } = useDataManager();
92
+ const { addAttribute, editAttribute, addCustomFieldAttribute, addCreatedComponentToDynamicZone, changeDynamicZoneComponents, contentTypes, components, createSchema, createComponentSchema, deleteComponent, deleteContentType, editCustomFieldAttribute, updateSchema, nestedComponents, sortedContentTypesList, updateComponentSchema, updateComponentUid, reservedNames, confirmAttributeRenameMigration, attributeRenameMigrationMode } = useDataManager();
92
93
  const { componentToCreate, formErrors, initialData, isCreatingComponentWhileAddingAField, modifiedData } = reducerState;
93
94
  const type = forTarget === 'component' ? components[targetUid] : contentTypes[targetUid];
94
95
  const [showWarningDialog, setShowWarningDialog] = useState(false);
95
96
  const [pendingSubmit, setPendingSubmit] = useState(null);
97
+ // Set when the edit renames an existing field *and* changes its storage: the
98
+ // data cannot be preserved, so the user confirms before the field is recreated.
99
+ const [storageChangeWarning, setStorageChangeWarning] = useState(null);
100
+ const checkRenameStorageChange = ()=>{
101
+ if (actionType !== 'edit' || modalType !== 'attribute' && modalType !== 'customField') {
102
+ return null;
103
+ }
104
+ return getRenameStorageChange(initialData, modifiedData, attributeRenameMigrationMode);
105
+ };
96
106
  const checkFieldNameChanges = ()=>{
97
107
  // Only check when editing an attribute
98
108
  if (actionType !== 'edit' || modalType !== 'attribute') {
@@ -128,7 +138,7 @@ const FormModal = ()=>{
128
138
  return false;
129
139
  };
130
140
  React.useEffect(()=>{
131
- if (isOpen) {
141
+ if (isOpen && modalType) {
132
142
  const collectionTypesForRelation = sortedContentTypesList.filter(isAllowedContentTypesForRelations);
133
143
  if (actionType === 'edit' && modalType === 'attribute' && forTarget === 'contentType') {
134
144
  trackUsage('willEditFieldOfContentType');
@@ -384,9 +394,48 @@ const FormModal = ()=>{
384
394
  dispatch,
385
395
  formErrors
386
396
  ]);
387
- const submitForm = async (e, shouldContinue = isCreating)=>{
397
+ const submitForm = async (e, shouldContinue = isCreating, // The user already confirmed the field will be recreated empty (rename +
398
+ // storage change): there is no data to preserve, so don't ask about it.
399
+ { skipRenameMigration = false } = {})=>{
388
400
  try {
389
401
  await checkFormValidity();
402
+ let recordRename = !skipRenameMigration;
403
+ let declineRename = false;
404
+ if (!skipRenameMigration && actionType === 'edit' && (isCreatingAttribute || isCreatingCustomFieldAttribute) && // A field that was never saved has no data to preserve (and
405
+ // `recordRename` skips it), so there is nothing to ask about.
406
+ initialData.status !== 'NEW' && toStringValue(initialData.name) !== toStringValue(modifiedData.name)) {
407
+ const decision = await confirmAttributeRenameMigration({
408
+ forTarget,
409
+ uid: targetUid,
410
+ oldName: toStringValue(initialData.name),
411
+ newName: toStringValue(modifiedData.name)
412
+ });
413
+ if (decision === null) {
414
+ return;
415
+ }
416
+ recordRename = decision;
417
+ declineRename = !decision;
418
+ }
419
+ // Renaming the other side of a relation from this form renames a field
420
+ // of the target type, which may own the join table: ask for that one
421
+ // too, after the field's own prompt.
422
+ const oldTargetAttribute = toStringValue(initialData.targetAttribute);
423
+ const newTargetAttribute = toStringValue(modifiedData.targetAttribute);
424
+ let recordTargetRename = !skipRenameMigration;
425
+ let declineTargetRename = false;
426
+ if (!skipRenameMigration && actionType === 'edit' && isCreatingAttribute && attributeType === 'relation' && oldTargetAttribute !== '' && newTargetAttribute !== '' && oldTargetAttribute !== newTargetAttribute && toStringValue(initialData.target) === toStringValue(modifiedData.target)) {
427
+ const decision = await confirmAttributeRenameMigration({
428
+ forTarget: 'contentType',
429
+ uid: toStringValue(modifiedData.target),
430
+ oldName: oldTargetAttribute,
431
+ newName: newTargetAttribute
432
+ });
433
+ if (decision === null) {
434
+ return;
435
+ }
436
+ recordTargetRename = decision;
437
+ declineTargetRename = !decision;
438
+ }
390
439
  dispatch(actions.setErrors({
391
440
  errors: {}
392
441
  }));
@@ -505,7 +554,9 @@ const FormModal = ()=>{
505
554
  },
506
555
  forTarget,
507
556
  targetUid,
508
- name: toStringValue(initialData.name)
557
+ name: toStringValue(initialData.name),
558
+ recordRename,
559
+ declineRename
509
560
  };
510
561
  if (actionType === 'edit') {
511
562
  editCustomFieldAttribute(customFieldAttributeUpdate);
@@ -536,7 +587,9 @@ const FormModal = ()=>{
536
587
  attributeToSet: modifiedData,
537
588
  forTarget,
538
589
  targetUid,
539
- name: toStringValue(initialData.name)
590
+ name: toStringValue(initialData.name),
591
+ recordRename,
592
+ declineRename
540
593
  });
541
594
  }
542
595
  // Adding a component to a dynamiczone is not the same logic as creating a simple field
@@ -566,7 +619,11 @@ const FormModal = ()=>{
566
619
  attributeToSet: modifiedData,
567
620
  forTarget,
568
621
  targetUid,
569
- name: toStringValue(initialData.name)
622
+ name: toStringValue(initialData.name),
623
+ recordRename,
624
+ declineRename,
625
+ recordTargetRename,
626
+ declineTargetRename
570
627
  });
571
628
  }
572
629
  if (shouldContinue) {
@@ -622,7 +679,9 @@ const FormModal = ()=>{
622
679
  attributeToSet: attributeData,
623
680
  forTarget,
624
681
  targetUid,
625
- name: toStringValue(initialData.name)
682
+ name: toStringValue(initialData.name),
683
+ recordRename,
684
+ declineRename
626
685
  });
627
686
  }
628
687
  if (shouldContinue) {
@@ -743,6 +802,34 @@ const FormModal = ()=>{
743
802
  }
744
803
  }
745
804
  };
805
+ // Runs after the condition warning (if any): warn when the rename also
806
+ // changes the field's storage, otherwise submit.
807
+ const continueSubmit = async (e, shouldContinue)=>{
808
+ const storageChange = checkRenameStorageChange();
809
+ if (storageChange) {
810
+ setPendingSubmit({
811
+ e,
812
+ shouldContinue
813
+ });
814
+ setStorageChangeWarning(storageChange);
815
+ return;
816
+ }
817
+ await submitForm(e, shouldContinue);
818
+ };
819
+ const cancelStorageChange = ()=>{
820
+ setStorageChangeWarning(null);
821
+ setPendingSubmit(null);
822
+ };
823
+ const confirmStorageChange = ()=>{
824
+ if (pendingSubmit === null) {
825
+ return;
826
+ }
827
+ const { e, shouldContinue } = pendingSubmit;
828
+ cancelStorageChange();
829
+ submitForm(e, shouldContinue, {
830
+ skipRenameMigration: true
831
+ });
832
+ };
746
833
  const handleSubmit = async (e, shouldContinue = isCreating)=>{
747
834
  e.preventDefault();
748
835
  // Check for field name changes when clicking Finish
@@ -755,7 +842,7 @@ const FormModal = ()=>{
755
842
  setShowWarningDialog(true);
756
843
  return;
757
844
  }
758
- await submitForm(e, shouldContinue);
845
+ await continueSubmit(e, shouldContinue);
759
846
  };
760
847
  const handleConfirmClose = ()=>{
761
848
  // eslint-disable-next-line no-alert
@@ -919,7 +1006,7 @@ const FormModal = ()=>{
919
1006
  const { e, shouldContinue } = pendingSubmit;
920
1007
  setShowWarningDialog(false);
921
1008
  setPendingSubmit(null);
922
- submitForm(e, shouldContinue);
1009
+ continueSubmit(e, shouldContinue);
923
1010
  }
924
1011
  },
925
1012
  onCancel: ()=>{
@@ -984,6 +1071,53 @@ const FormModal = ()=>{
984
1071
  })
985
1072
  ]
986
1073
  }),
1074
+ /*#__PURE__*/ jsx(Dialog.Root, {
1075
+ open: storageChangeWarning !== null,
1076
+ onOpenChange: (open)=>!open && cancelStorageChange(),
1077
+ children: /*#__PURE__*/ jsx(ConfirmDialog, {
1078
+ title: formatMessage({
1079
+ id: getTrad('form.attribute.rename-type-change-warning.title'),
1080
+ defaultMessage: 'Existing data will be lost'
1081
+ }),
1082
+ onCancel: cancelStorageChange,
1083
+ endAction: /*#__PURE__*/ jsx(Dialog.Action, {
1084
+ children: /*#__PURE__*/ jsx(Button, {
1085
+ fullWidth: true,
1086
+ variant: "danger",
1087
+ onClick: confirmStorageChange,
1088
+ children: formatMessage({
1089
+ id: getTrad('form.attribute.rename-type-change-warning.confirm'),
1090
+ defaultMessage: 'Continue'
1091
+ })
1092
+ })
1093
+ }),
1094
+ children: storageChangeWarning && /*#__PURE__*/ jsx(Box, {
1095
+ children: /*#__PURE__*/ jsx(Typography, {
1096
+ children: formatMessage({
1097
+ id: getTrad('form.attribute.rename-type-change-warning.body'),
1098
+ defaultMessage: 'You are renaming {oldName} to {newName} and changing it from {oldType} to {newType}. Strapi cannot preserve the existing data of this field when both change at once. The field will be recreated empty when you save.'
1099
+ }, {
1100
+ oldName: /*#__PURE__*/ jsx(Typography, {
1101
+ fontWeight: "bold",
1102
+ children: storageChangeWarning.oldName
1103
+ }),
1104
+ newName: /*#__PURE__*/ jsx(Typography, {
1105
+ fontWeight: "bold",
1106
+ children: storageChangeWarning.newName
1107
+ }),
1108
+ oldType: /*#__PURE__*/ jsx(Typography, {
1109
+ fontWeight: "bold",
1110
+ children: storageChangeWarning.oldType
1111
+ }),
1112
+ newType: /*#__PURE__*/ jsx(Typography, {
1113
+ fontWeight: "bold",
1114
+ children: storageChangeWarning.newType
1115
+ })
1116
+ })
1117
+ })
1118
+ })
1119
+ })
1120
+ }),
987
1121
  /*#__PURE__*/ jsx(FormModalHeader, {
988
1122
  actionType: actionType,
989
1123
  attributeName: attributeName,