@strapi/content-type-builder 5.57.0 → 5.59.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 (167) hide show
  1. package/dist/admin/components/AIChat/FeedbackModal.js +13 -7
  2. package/dist/admin/components/AIChat/FeedbackModal.js.map +1 -1
  3. package/dist/admin/components/AIChat/FeedbackModal.mjs +14 -8
  4. package/dist/admin/components/AIChat/FeedbackModal.mjs.map +1 -1
  5. package/dist/admin/components/AIChat/UploadCodeModal.js +12 -6
  6. package/dist/admin/components/AIChat/UploadCodeModal.js.map +1 -1
  7. package/dist/admin/components/AIChat/UploadCodeModal.mjs +13 -7
  8. package/dist/admin/components/AIChat/UploadCodeModal.mjs.map +1 -1
  9. package/dist/admin/components/AIChat/UploadFigmaModal.js +12 -6
  10. package/dist/admin/components/AIChat/UploadFigmaModal.js.map +1 -1
  11. package/dist/admin/components/AIChat/UploadFigmaModal.mjs +13 -7
  12. package/dist/admin/components/AIChat/UploadFigmaModal.mjs.map +1 -1
  13. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js +6 -3
  14. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.js.map +1 -1
  15. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs +7 -4
  16. package/dist/admin/components/AIChat/components/Attachments/components/Attachment.mjs.map +1 -1
  17. package/dist/admin/components/AIChat/components/Collapsible.js +9 -4
  18. package/dist/admin/components/AIChat/components/Collapsible.js.map +1 -1
  19. package/dist/admin/components/AIChat/components/Collapsible.mjs +10 -5
  20. package/dist/admin/components/AIChat/components/Collapsible.mjs.map +1 -1
  21. package/dist/admin/components/AIChat/components/Dropzone.js +13 -6
  22. package/dist/admin/components/AIChat/components/Dropzone.js.map +1 -1
  23. package/dist/admin/components/AIChat/components/Dropzone.mjs +14 -7
  24. package/dist/admin/components/AIChat/components/Dropzone.mjs.map +1 -1
  25. package/dist/admin/components/AIChat/components/FloatingPanel.js +11 -4
  26. package/dist/admin/components/AIChat/components/FloatingPanel.js.map +1 -1
  27. package/dist/admin/components/AIChat/components/FloatingPanel.mjs +12 -5
  28. package/dist/admin/components/AIChat/components/FloatingPanel.mjs.map +1 -1
  29. package/dist/admin/components/AIChat/components/FullScreenImage.js +16 -8
  30. package/dist/admin/components/AIChat/components/FullScreenImage.js.map +1 -1
  31. package/dist/admin/components/AIChat/components/FullScreenImage.mjs +17 -9
  32. package/dist/admin/components/AIChat/components/FullScreenImage.mjs.map +1 -1
  33. package/dist/admin/components/AIChat/components/Input.js +6 -3
  34. package/dist/admin/components/AIChat/components/Input.js.map +1 -1
  35. package/dist/admin/components/AIChat/components/Input.mjs +7 -4
  36. package/dist/admin/components/AIChat/components/Input.mjs.map +1 -1
  37. package/dist/admin/components/AIChat/components/Messages/Message.js +88 -12
  38. package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
  39. package/dist/admin/components/AIChat/components/Messages/Message.mjs +87 -13
  40. package/dist/admin/components/AIChat/components/Messages/Message.mjs.map +1 -1
  41. package/dist/admin/components/AIChat/components/StepModal.js +44 -17
  42. package/dist/admin/components/AIChat/components/StepModal.js.map +1 -1
  43. package/dist/admin/components/AIChat/components/StepModal.mjs +45 -18
  44. package/dist/admin/components/AIChat/components/StepModal.mjs.map +1 -1
  45. package/dist/admin/components/AIChat/providers/ChatProvider.js +79 -27
  46. package/dist/admin/components/AIChat/providers/ChatProvider.js.map +1 -1
  47. package/dist/admin/components/AIChat/providers/ChatProvider.mjs +80 -28
  48. package/dist/admin/components/AIChat/providers/ChatProvider.mjs.map +1 -1
  49. package/dist/admin/components/AIChat/providers/SchemaProvider.js +6 -3
  50. package/dist/admin/components/AIChat/providers/SchemaProvider.js.map +1 -1
  51. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs +7 -4
  52. package/dist/admin/components/AIChat/providers/SchemaProvider.mjs.map +1 -1
  53. package/dist/admin/components/AttributeOptions/AttributeOption.js +2 -2
  54. package/dist/admin/components/AttributeOptions/AttributeOption.js.map +1 -1
  55. package/dist/admin/components/AttributeOptions/AttributeOption.mjs +2 -2
  56. package/dist/admin/components/AttributeOptions/AttributeOption.mjs.map +1 -1
  57. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.js.map +1 -1
  58. package/dist/admin/components/ContentTypeBuilderNav/lib/buildFolderTree.mjs.map +1 -1
  59. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.js.map +1 -1
  60. package/dist/admin/components/ContentTypeBuilderNav/lib/dropProjection.mjs.map +1 -1
  61. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js +2 -1
  62. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.js.map +1 -1
  63. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs +2 -1
  64. package/dist/admin/components/CustomRadioGroup/CustomRadioGroup.mjs.map +1 -1
  65. package/dist/admin/components/DataManager/DataManagerProvider.js +317 -275
  66. package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
  67. package/dist/admin/components/DataManager/DataManagerProvider.mjs +319 -277
  68. package/dist/admin/components/DataManager/DataManagerProvider.mjs.map +1 -1
  69. package/dist/admin/components/DataManager/RenameMigrationModal.js.map +1 -1
  70. package/dist/admin/components/DataManager/RenameMigrationModal.mjs.map +1 -1
  71. package/dist/admin/components/DataManager/reducer.js +53 -4
  72. package/dist/admin/components/DataManager/reducer.js.map +1 -1
  73. package/dist/admin/components/DataManager/reducer.mjs +53 -4
  74. package/dist/admin/components/DataManager/reducer.mjs.map +1 -1
  75. package/dist/admin/components/DynamicZoneList.js +2 -1
  76. package/dist/admin/components/DynamicZoneList.js.map +1 -1
  77. package/dist/admin/components/DynamicZoneList.mjs +2 -1
  78. package/dist/admin/components/DynamicZoneList.mjs.map +1 -1
  79. package/dist/admin/components/FormModal/FormModal.js +36 -62
  80. package/dist/admin/components/FormModal/FormModal.js.map +1 -1
  81. package/dist/admin/components/FormModal/FormModal.mjs +36 -62
  82. package/dist/admin/components/FormModal/FormModal.mjs.map +1 -1
  83. package/dist/admin/components/FormModal/attributes/ConditionForm.js +2 -1
  84. package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
  85. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs +2 -1
  86. package/dist/admin/components/FormModal/attributes/ConditionForm.mjs.map +1 -1
  87. package/dist/admin/components/FormModal/attributes/types.js +2 -2
  88. package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
  89. package/dist/admin/components/FormModal/attributes/types.mjs +2 -2
  90. package/dist/admin/components/FormModal/attributes/types.mjs.map +1 -1
  91. package/dist/admin/components/FormModal/forms/forms.js +1 -1
  92. package/dist/admin/components/FormModal/forms/forms.js.map +1 -1
  93. package/dist/admin/components/FormModal/forms/forms.mjs +1 -1
  94. package/dist/admin/components/FormModal/forms/forms.mjs.map +1 -1
  95. package/dist/admin/components/GenericInputs.js +2 -1
  96. package/dist/admin/components/GenericInputs.js.map +1 -1
  97. package/dist/admin/components/GenericInputs.mjs +2 -1
  98. package/dist/admin/components/GenericInputs.mjs.map +1 -1
  99. package/dist/admin/components/TabForm.js.map +1 -1
  100. package/dist/admin/components/TabForm.mjs.map +1 -1
  101. package/dist/admin/src/components/AIChat/components/FullScreenImage.d.ts +8 -0
  102. package/dist/admin/src/components/AIChat/components/Messages/Message.d.ts +20 -0
  103. package/dist/admin/src/components/DataManager/utils/cleanData.d.ts +8 -8
  104. package/dist/admin/translations/cs.json.js +0 -2
  105. package/dist/admin/translations/cs.json.js.map +1 -1
  106. package/dist/admin/translations/cs.json.mjs +0 -2
  107. package/dist/admin/translations/cs.json.mjs.map +1 -1
  108. package/dist/admin/translations/de.json.js +0 -2
  109. package/dist/admin/translations/de.json.js.map +1 -1
  110. package/dist/admin/translations/de.json.mjs +0 -2
  111. package/dist/admin/translations/de.json.mjs.map +1 -1
  112. package/dist/admin/translations/en.json.js +0 -2
  113. package/dist/admin/translations/en.json.js.map +1 -1
  114. package/dist/admin/translations/en.json.mjs +0 -2
  115. package/dist/admin/translations/en.json.mjs.map +1 -1
  116. package/dist/admin/translations/ja.json.js +0 -2
  117. package/dist/admin/translations/ja.json.js.map +1 -1
  118. package/dist/admin/translations/ja.json.mjs +0 -2
  119. package/dist/admin/translations/ja.json.mjs.map +1 -1
  120. package/dist/admin/translations/ko.json.js +0 -2
  121. package/dist/admin/translations/ko.json.js.map +1 -1
  122. package/dist/admin/translations/ko.json.mjs +0 -2
  123. package/dist/admin/translations/ko.json.mjs.map +1 -1
  124. package/dist/admin/translations/nl.json.js +0 -2
  125. package/dist/admin/translations/nl.json.js.map +1 -1
  126. package/dist/admin/translations/nl.json.mjs +0 -2
  127. package/dist/admin/translations/nl.json.mjs.map +1 -1
  128. package/dist/admin/translations/pl.json.js +0 -2
  129. package/dist/admin/translations/pl.json.js.map +1 -1
  130. package/dist/admin/translations/pl.json.mjs +0 -2
  131. package/dist/admin/translations/pl.json.mjs.map +1 -1
  132. package/dist/admin/translations/ru.json.js +0 -2
  133. package/dist/admin/translations/ru.json.js.map +1 -1
  134. package/dist/admin/translations/ru.json.mjs +0 -2
  135. package/dist/admin/translations/ru.json.mjs.map +1 -1
  136. package/dist/admin/translations/sk.json.js +0 -2
  137. package/dist/admin/translations/sk.json.js.map +1 -1
  138. package/dist/admin/translations/sk.json.mjs +0 -2
  139. package/dist/admin/translations/sk.json.mjs.map +1 -1
  140. package/dist/admin/utils/folderTelemetry.js.map +1 -1
  141. package/dist/admin/utils/folderTelemetry.mjs.map +1 -1
  142. package/dist/admin/utils/formAPI.js.map +1 -1
  143. package/dist/admin/utils/formAPI.mjs.map +1 -1
  144. package/dist/server/controllers/validation/schema.js +3 -2
  145. package/dist/server/controllers/validation/schema.js.map +1 -1
  146. package/dist/server/controllers/validation/schema.mjs +4 -3
  147. package/dist/server/controllers/validation/schema.mjs.map +1 -1
  148. package/dist/server/register.js.map +1 -1
  149. package/dist/server/register.mjs.map +1 -1
  150. package/dist/server/services/migration-builder/index.js.map +1 -1
  151. package/dist/server/services/migration-builder/index.mjs.map +1 -1
  152. package/dist/server/services/schema.js +87 -1
  153. package/dist/server/services/schema.js.map +1 -1
  154. package/dist/server/services/schema.mjs +87 -1
  155. package/dist/server/services/schema.mjs.map +1 -1
  156. package/dist/server/src/controllers/validation/schema.d.ts.map +1 -1
  157. package/dist/server/src/register.d.ts.map +1 -1
  158. package/dist/server/src/services/migration-builder/index.d.ts.map +1 -1
  159. package/dist/server/src/services/schema-builder/types.d.ts.map +1 -1
  160. package/dist/server/src/services/schema.d.ts.map +1 -1
  161. package/dist/server/src/utils/uid-target.d.ts +18 -0
  162. package/dist/server/src/utils/uid-target.d.ts.map +1 -0
  163. package/dist/server/utils/uid-target.js +34 -0
  164. package/dist/server/utils/uid-target.js.map +1 -0
  165. package/dist/server/utils/uid-target.mjs +31 -0
  166. package/dist/server/utils/uid-target.mjs.map +1 -0
  167. package/package.json +6 -6
@@ -131,39 +131,34 @@ const FormModal = ()=>{
131
131
  }
132
132
  return getRenameStorageChange.getRenameStorageChange(initialData, modifiedData, attributeRenameMigrationMode);
133
133
  };
134
- const checkFieldNameChanges = ()=>{
135
- // Only check when editing an attribute
134
+ /**
135
+ * Fields whose visibility condition depends on this field and references an
136
+ * enum value that this edit removes or changes. Renames are followed
137
+ * automatically, so only an enum value change can break a condition.
138
+ */ const getConditionsBrokenByEnumChange = ()=>{
136
139
  if (actionType !== 'edit' || modalType !== 'attribute') {
137
140
  return false;
138
141
  }
139
- const oldName = initialData.name;
140
142
  const oldEnum = initialData.enum;
141
143
  const newEnum = modifiedData.enum;
142
- // Get all attributes from the content type schema
144
+ if (!Array.isArray(oldEnum) || !Array.isArray(newEnum)) {
145
+ return false;
146
+ }
147
+ const removedValues = oldEnum.filter((value)=>!newEnum.includes(value));
148
+ if (removedValues.length === 0) {
149
+ return false;
150
+ }
151
+ const fieldName = initialData.name;
143
152
  const contentTypeAttributes = type?.attributes ?? [];
144
- // Find all fields that reference this field in their conditions
145
- const referencedFields = contentTypeAttributes.filter((attr)=>{
153
+ const brokenFields = contentTypeAttributes.filter((attr)=>{
146
154
  const conditionEntry = conditions.getFirstVisibleConditionEntry(attr.conditions);
147
155
  if (conditionEntry === null) {
148
156
  return false;
149
157
  }
150
158
  const { fieldVar, value } = conditionEntry;
151
- // Check if this condition references our field
152
- if (fieldVar.var !== oldName) {
153
- return false;
154
- }
155
- // If it's an enum field, also check if the value is being deleted/changed
156
- if (oldEnum !== undefined && newEnum !== undefined) {
157
- const deletedOrChangedValues = oldEnum.filter((oldValue)=>!newEnum.includes(oldValue));
158
- return typeof value === 'string' && deletedOrChangedValues.includes(value);
159
- }
160
- return true;
159
+ return fieldVar.var === fieldName && typeof value === 'string' && removedValues.includes(value);
161
160
  });
162
- // If any fields reference this field, return them
163
- if (referencedFields.length > 0) {
164
- return referencedFields;
165
- }
166
- return false;
161
+ return brokenFields.length > 0 ? brokenFields : false;
167
162
  };
168
163
  React__namespace.useEffect(()=>{
169
164
  if (isOpen && modalType) {
@@ -860,9 +855,9 @@ const FormModal = ()=>{
860
855
  };
861
856
  const handleSubmit = async (e, shouldContinue = isCreating)=>{
862
857
  e.preventDefault();
863
- // Check for field name changes when clicking Finish
864
- const referencedFields = checkFieldNameChanges();
865
- if (referencedFields) {
858
+ // Check for conditions broken by an enum value change when clicking Finish
859
+ const brokenFields = getConditionsBrokenByEnumChange();
860
+ if (brokenFields) {
866
861
  setPendingSubmit({
867
862
  e,
868
863
  shouldContinue
@@ -1042,46 +1037,17 @@ const FormModal = ()=>{
1042
1037
  setPendingSubmit(null);
1043
1038
  },
1044
1039
  children: (()=>{
1045
- const referencedFields = checkFieldNameChanges();
1046
- if (referencedFields === false) return null;
1047
- const fieldNames = referencedFields.map((field)=>field.name).join(', ');
1048
- const oldEnum = initialData.enum;
1049
- const newEnum = modifiedData.enum;
1050
- const isEnum = Array.isArray(oldEnum) && Array.isArray(newEnum);
1051
- if (isEnum === true) {
1052
- const deletedOrChangedValues = oldEnum.filter((value)=>!newEnum.includes(value));
1053
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
1054
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
1055
- children: [
1056
- formatMessage({
1057
- id: 'form.attribute.condition.enum-change-warning',
1058
- defaultMessage: 'The following fields have conditions that depend on this field: '
1059
- }),
1060
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
1061
- fontWeight: "bold",
1062
- children: fieldNames
1063
- }),
1064
- formatMessage({
1065
- id: 'form.attribute.condition.enum-change-warning-values',
1066
- defaultMessage: '. Changing or removing the enum values '
1067
- }),
1068
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
1069
- fontWeight: "bold",
1070
- children: deletedOrChangedValues.join(', ')
1071
- }),
1072
- formatMessage({
1073
- id: 'form.attribute.condition.enum-change-warning-end',
1074
- defaultMessage: ' will break these conditions. Do you want to proceed?'
1075
- })
1076
- ]
1077
- })
1078
- });
1079
- }
1040
+ const brokenFields = getConditionsBrokenByEnumChange();
1041
+ if (brokenFields === false) return null;
1042
+ const fieldNames = brokenFields.map((field)=>field.name).join(', ');
1043
+ const oldEnum = initialData.enum ?? [];
1044
+ const newEnum = modifiedData.enum ?? [];
1045
+ const deletedOrChangedValues = oldEnum.filter((value)=>!newEnum.includes(value));
1080
1046
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
1081
1047
  children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
1082
1048
  children: [
1083
1049
  formatMessage({
1084
- id: 'form.attribute.condition.field-change-warning',
1050
+ id: 'form.attribute.condition.enum-change-warning',
1085
1051
  defaultMessage: 'The following fields have conditions that depend on this field: '
1086
1052
  }),
1087
1053
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
@@ -1089,8 +1055,16 @@ const FormModal = ()=>{
1089
1055
  children: fieldNames
1090
1056
  }),
1091
1057
  formatMessage({
1092
- id: 'form.attribute.condition.field-change-warning-end',
1093
- defaultMessage: '. Renaming it will break these conditions. Do you want to proceed?'
1058
+ id: 'form.attribute.condition.enum-change-warning-values',
1059
+ defaultMessage: '. Changing or removing the enum values '
1060
+ }),
1061
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
1062
+ fontWeight: "bold",
1063
+ children: deletedOrChangedValues.join(', ')
1064
+ }),
1065
+ formatMessage({
1066
+ id: 'form.attribute.condition.enum-change-warning-end',
1067
+ defaultMessage: ' will break these conditions. Do you want to proceed?'
1094
1068
  })
1095
1069
  ]
1096
1070
  })