@strapi/content-manager 0.0.0-experimental.c3e9d4b26f9fd3d9eb530b5c11f9baa1d09b13ad → 0.0.0-experimental.c592deb623aed3f74ef7fdacfad9757ed59d34f7

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 (133) hide show
  1. package/LICENSE +18 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-BMajAl1u.mjs → ComponentConfigurationPage-7-qB29e7.mjs} +3 -3
  3. package/dist/_chunks/{ComponentConfigurationPage-BMajAl1u.mjs.map → ComponentConfigurationPage-7-qB29e7.mjs.map} +1 -1
  4. package/dist/_chunks/{ComponentConfigurationPage-y_7iLdmB.js → ComponentConfigurationPage-DP7AC0UU.js} +3 -3
  5. package/dist/_chunks/{ComponentConfigurationPage-y_7iLdmB.js.map → ComponentConfigurationPage-DP7AC0UU.js.map} +1 -1
  6. package/dist/_chunks/{EditConfigurationPage-CcOoD26O.mjs → EditConfigurationPage-CI4XoymK.mjs} +3 -3
  7. package/dist/_chunks/{EditConfigurationPage-CcOoD26O.mjs.map → EditConfigurationPage-CI4XoymK.mjs.map} +1 -1
  8. package/dist/_chunks/{EditConfigurationPage-CPVB8Uqc.js → EditConfigurationPage-DITVliEI.js} +3 -3
  9. package/dist/_chunks/{EditConfigurationPage-CPVB8Uqc.js.map → EditConfigurationPage-DITVliEI.js.map} +1 -1
  10. package/dist/_chunks/{EditViewPage-CTTDHKkQ.js → EditViewPage-CUS2EAhB.js} +62 -47
  11. package/dist/_chunks/EditViewPage-CUS2EAhB.js.map +1 -0
  12. package/dist/_chunks/{EditViewPage-DWb0DE7R.mjs → EditViewPage-Dzpno8xI.mjs} +63 -48
  13. package/dist/_chunks/EditViewPage-Dzpno8xI.mjs.map +1 -0
  14. package/dist/_chunks/{Field-DnStdvQw.mjs → Field-B_jG_EV9.mjs} +541 -221
  15. package/dist/_chunks/Field-B_jG_EV9.mjs.map +1 -0
  16. package/dist/_chunks/{Field-C5Z1Ivdv.js → Field-CtUU1Fg8.js} +543 -223
  17. package/dist/_chunks/Field-CtUU1Fg8.js.map +1 -0
  18. package/dist/_chunks/{Form-DqGgE55Q.mjs → Form-BXHao2mZ.mjs} +53 -35
  19. package/dist/_chunks/Form-BXHao2mZ.mjs.map +1 -0
  20. package/dist/_chunks/{Form-B81OtW-k.js → Form-DTqO0ymI.js} +51 -33
  21. package/dist/_chunks/Form-DTqO0ymI.js.map +1 -0
  22. package/dist/_chunks/{History-DS6-HCYX.mjs → History-2Ah2CQ4T.mjs} +52 -29
  23. package/dist/_chunks/History-2Ah2CQ4T.mjs.map +1 -0
  24. package/dist/_chunks/{History-4NbOq2dX.js → History-C_uSGzO5.js} +51 -28
  25. package/dist/_chunks/History-C_uSGzO5.js.map +1 -0
  26. package/dist/_chunks/{ListConfigurationPage-DQJJltko.mjs → ListConfigurationPage-BjSJlaoC.mjs} +58 -48
  27. package/dist/_chunks/ListConfigurationPage-BjSJlaoC.mjs.map +1 -0
  28. package/dist/_chunks/{ListConfigurationPage-CpfstlYY.js → ListConfigurationPage-nyuP7OSy.js} +57 -46
  29. package/dist/_chunks/ListConfigurationPage-nyuP7OSy.js.map +1 -0
  30. package/dist/_chunks/{ListViewPage-nQrOQuVo.mjs → ListViewPage-B75x3nz2.mjs} +103 -102
  31. package/dist/_chunks/ListViewPage-B75x3nz2.mjs.map +1 -0
  32. package/dist/_chunks/{ListViewPage-CA3I75m5.js → ListViewPage-DHgHD8Xg.js} +105 -104
  33. package/dist/_chunks/ListViewPage-DHgHD8Xg.js.map +1 -0
  34. package/dist/_chunks/{NoContentTypePage-Dldu-_Mx.js → NoContentTypePage-CDUKdZ7d.js} +2 -2
  35. package/dist/_chunks/{NoContentTypePage-Dldu-_Mx.js.map → NoContentTypePage-CDUKdZ7d.js.map} +1 -1
  36. package/dist/_chunks/{NoContentTypePage-DbnHE22g.mjs → NoContentTypePage-DUacQSyF.mjs} +2 -2
  37. package/dist/_chunks/{NoContentTypePage-DbnHE22g.mjs.map → NoContentTypePage-DUacQSyF.mjs.map} +1 -1
  38. package/dist/_chunks/{NoPermissionsPage-fOIkQM0v.mjs → NoPermissionsPage-SFllMekk.mjs} +2 -2
  39. package/dist/_chunks/{NoPermissionsPage-fOIkQM0v.mjs.map → NoPermissionsPage-SFllMekk.mjs.map} +1 -1
  40. package/dist/_chunks/{NoPermissionsPage-CO2MK200.js → NoPermissionsPage-zwIZydDI.js} +2 -2
  41. package/dist/_chunks/{NoPermissionsPage-CO2MK200.js.map → NoPermissionsPage-zwIZydDI.js.map} +1 -1
  42. package/dist/_chunks/{Relations-BDRl99Ux.mjs → Relations-D2NRW8fC.mjs} +14 -10
  43. package/dist/_chunks/Relations-D2NRW8fC.mjs.map +1 -0
  44. package/dist/_chunks/{Relations-DG2jnOcr.js → Relations-NFLaRNPr.js} +14 -10
  45. package/dist/_chunks/Relations-NFLaRNPr.js.map +1 -0
  46. package/dist/_chunks/{en-fbKQxLGn.js → en-BlhnxQfj.js} +11 -9
  47. package/dist/_chunks/{en-fbKQxLGn.js.map → en-BlhnxQfj.js.map} +1 -1
  48. package/dist/_chunks/{en-Ux26r5pl.mjs → en-C8YBvRrK.mjs} +11 -9
  49. package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-C8YBvRrK.mjs.map} +1 -1
  50. package/dist/_chunks/{index-Drt2DN7v.mjs → index-C9HxCo5R.mjs} +1008 -867
  51. package/dist/_chunks/index-C9HxCo5R.mjs.map +1 -0
  52. package/dist/_chunks/{index-BZoNZMXL.js → index-ovJRE1FM.js} +998 -857
  53. package/dist/_chunks/index-ovJRE1FM.js.map +1 -0
  54. package/dist/_chunks/{layout-BzAbmoO6.mjs → layout-DaUjDiWQ.mjs} +27 -14
  55. package/dist/_chunks/layout-DaUjDiWQ.mjs.map +1 -0
  56. package/dist/_chunks/{layout-DEYBqgF1.js → layout-UNWstw_s.js} +25 -12
  57. package/dist/_chunks/layout-UNWstw_s.js.map +1 -0
  58. package/dist/_chunks/{relations-D26zVRdi.mjs → relations-D8iFAeRu.mjs} +2 -2
  59. package/dist/_chunks/{relations-D26zVRdi.mjs.map → relations-D8iFAeRu.mjs.map} +1 -1
  60. package/dist/_chunks/{relations-D0eZ4VWw.js → relations-NN3coOG5.js} +2 -2
  61. package/dist/_chunks/{relations-D0eZ4VWw.js.map → relations-NN3coOG5.js.map} +1 -1
  62. package/dist/_chunks/{usePrev-B9w_-eYc.js → useDebounce-CtcjDB3L.js} +14 -1
  63. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
  64. package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
  65. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
  66. package/dist/admin/index.js +2 -1
  67. package/dist/admin/index.js.map +1 -1
  68. package/dist/admin/index.mjs +3 -2
  69. package/dist/admin/src/exports.d.ts +1 -1
  70. package/dist/admin/src/history/index.d.ts +3 -0
  71. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  72. package/dist/admin/src/hooks/useDocument.d.ts +32 -1
  73. package/dist/admin/src/index.d.ts +1 -0
  74. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +8 -3
  75. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +4 -0
  76. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +20 -0
  77. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  78. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
  79. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +6 -58
  80. package/dist/admin/src/pages/EditView/components/Header.d.ts +11 -11
  81. package/dist/admin/src/pages/ListView/components/BulkActions/Actions.d.ts +3 -30
  82. package/dist/admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +2 -2
  83. package/dist/admin/src/services/api.d.ts +1 -1
  84. package/dist/admin/src/services/components.d.ts +2 -2
  85. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  86. package/dist/admin/src/services/documents.d.ts +19 -17
  87. package/dist/admin/src/services/init.d.ts +1 -1
  88. package/dist/admin/src/services/relations.d.ts +2 -2
  89. package/dist/admin/src/services/uid.d.ts +3 -3
  90. package/dist/admin/src/utils/validation.d.ts +4 -1
  91. package/dist/server/index.js +191 -110
  92. package/dist/server/index.js.map +1 -1
  93. package/dist/server/index.mjs +192 -111
  94. package/dist/server/index.mjs.map +1 -1
  95. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  96. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  97. package/dist/server/src/controllers/uid.d.ts.map +1 -1
  98. package/dist/server/src/controllers/validation/dimensions.d.ts +4 -2
  99. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  100. package/dist/server/src/history/services/history.d.ts.map +1 -1
  101. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  102. package/dist/server/src/history/services/utils.d.ts +2 -1
  103. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  104. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  105. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  106. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  107. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  108. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  109. package/dist/shared/contracts/collection-types.d.ts +3 -1
  110. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  111. package/package.json +11 -11
  112. package/dist/_chunks/EditViewPage-CTTDHKkQ.js.map +0 -1
  113. package/dist/_chunks/EditViewPage-DWb0DE7R.mjs.map +0 -1
  114. package/dist/_chunks/Field-C5Z1Ivdv.js.map +0 -1
  115. package/dist/_chunks/Field-DnStdvQw.mjs.map +0 -1
  116. package/dist/_chunks/Form-B81OtW-k.js.map +0 -1
  117. package/dist/_chunks/Form-DqGgE55Q.mjs.map +0 -1
  118. package/dist/_chunks/History-4NbOq2dX.js.map +0 -1
  119. package/dist/_chunks/History-DS6-HCYX.mjs.map +0 -1
  120. package/dist/_chunks/ListConfigurationPage-CpfstlYY.js.map +0 -1
  121. package/dist/_chunks/ListConfigurationPage-DQJJltko.mjs.map +0 -1
  122. package/dist/_chunks/ListViewPage-CA3I75m5.js.map +0 -1
  123. package/dist/_chunks/ListViewPage-nQrOQuVo.mjs.map +0 -1
  124. package/dist/_chunks/Relations-BDRl99Ux.mjs.map +0 -1
  125. package/dist/_chunks/Relations-DG2jnOcr.js.map +0 -1
  126. package/dist/_chunks/index-BZoNZMXL.js.map +0 -1
  127. package/dist/_chunks/index-Drt2DN7v.mjs.map +0 -1
  128. package/dist/_chunks/layout-BzAbmoO6.mjs.map +0 -1
  129. package/dist/_chunks/layout-DEYBqgF1.js.map +0 -1
  130. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  131. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  132. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
  133. package/strapi-server.js +0 -3
@@ -5,9 +5,9 @@ const strapiAdmin = require("@strapi/admin/strapi-admin");
5
5
  const designSystem = require("@strapi/design-system");
6
6
  const pipe$1 = require("lodash/fp/pipe");
7
7
  const reactIntl = require("react-intl");
8
- const index = require("./index-BZoNZMXL.js");
8
+ const index = require("./index-ovJRE1FM.js");
9
9
  const fractionalIndexing = require("fractional-indexing");
10
- const Relations = require("./Relations-DG2jnOcr.js");
10
+ const Relations = require("./Relations-NFLaRNPr.js");
11
11
  const Icons = require("@strapi/icons");
12
12
  const styledComponents = require("styled-components");
13
13
  const ComponentIcon = require("./ComponentIcon-BXdiCGQp.js");
@@ -17,7 +17,7 @@ const objects = require("./objects-gigeqt7s.js");
17
17
  const slate = require("slate");
18
18
  const slateHistory = require("slate-history");
19
19
  const slateReact = require("slate-react");
20
- const usePrev = require("./usePrev-B9w_-eYc.js");
20
+ const useDebounce = require("./useDebounce-CtcjDB3L.js");
21
21
  const Toolbar = require("@radix-ui/react-toolbar");
22
22
  const reactRouterDom = require("react-router-dom");
23
23
  const CodeMirror = require("codemirror5");
@@ -194,6 +194,220 @@ const useLazyComponents = (componentUids = []) => {
194
194
  }, []);
195
195
  return { isLazyLoading: loading, lazyComponentStore, cleanup };
196
196
  };
197
+ const codeLanguages = [
198
+ {
199
+ value: "asm",
200
+ label: "Assembly"
201
+ },
202
+ {
203
+ value: "bash",
204
+ label: "Bash"
205
+ },
206
+ {
207
+ value: "c",
208
+ label: "C"
209
+ },
210
+ {
211
+ value: "clojure",
212
+ label: "Clojure"
213
+ },
214
+ {
215
+ value: "cobol",
216
+ label: "COBOL"
217
+ },
218
+ {
219
+ value: "cpp",
220
+ label: "C++"
221
+ },
222
+ {
223
+ value: "csharp",
224
+ label: "C#"
225
+ },
226
+ {
227
+ value: "css",
228
+ label: "CSS"
229
+ },
230
+ {
231
+ value: "dart",
232
+ label: "Dart"
233
+ },
234
+ {
235
+ value: "dockerfile",
236
+ label: "Dockerfile"
237
+ },
238
+ {
239
+ value: "elixir",
240
+ label: "Elixir"
241
+ },
242
+ {
243
+ value: "erlang",
244
+ label: "Erlang"
245
+ },
246
+ {
247
+ value: "fortran",
248
+ label: "Fortran"
249
+ },
250
+ {
251
+ value: "fsharp",
252
+ label: "F#"
253
+ },
254
+ {
255
+ value: "go",
256
+ label: "Go"
257
+ },
258
+ {
259
+ value: "graphql",
260
+ label: "GraphQL"
261
+ },
262
+ {
263
+ value: "groovy",
264
+ label: "Groovy"
265
+ },
266
+ {
267
+ value: "haskell",
268
+ label: "Haskell"
269
+ },
270
+ {
271
+ value: "haxe",
272
+ label: "Haxe"
273
+ },
274
+ {
275
+ value: "html",
276
+ label: "HTML"
277
+ },
278
+ {
279
+ value: "ini",
280
+ label: "INI"
281
+ },
282
+ {
283
+ value: "java",
284
+ label: "Java"
285
+ },
286
+ {
287
+ value: "javascript",
288
+ label: "JavaScript"
289
+ },
290
+ {
291
+ value: "jsx",
292
+ label: "JavaScript (React)"
293
+ },
294
+ {
295
+ value: "json",
296
+ label: "JSON"
297
+ },
298
+ {
299
+ value: "julia",
300
+ label: "Julia"
301
+ },
302
+ {
303
+ value: "kotlin",
304
+ label: "Kotlin"
305
+ },
306
+ {
307
+ value: "latex",
308
+ label: "LaTeX"
309
+ },
310
+ {
311
+ value: "lua",
312
+ label: "Lua"
313
+ },
314
+ {
315
+ value: "markdown",
316
+ label: "Markdown"
317
+ },
318
+ {
319
+ value: "matlab",
320
+ label: "MATLAB"
321
+ },
322
+ {
323
+ value: "makefile",
324
+ label: "Makefile"
325
+ },
326
+ {
327
+ value: "objectivec",
328
+ label: "Objective-C"
329
+ },
330
+ {
331
+ value: "perl",
332
+ label: "Perl"
333
+ },
334
+ {
335
+ value: "php",
336
+ label: "PHP"
337
+ },
338
+ {
339
+ value: "plaintext",
340
+ label: "Plain text"
341
+ },
342
+ {
343
+ value: "powershell",
344
+ label: "PowerShell"
345
+ },
346
+ {
347
+ value: "python",
348
+ label: "Python"
349
+ },
350
+ {
351
+ value: "r",
352
+ label: "R"
353
+ },
354
+ {
355
+ value: "ruby",
356
+ label: "Ruby"
357
+ },
358
+ {
359
+ value: "rust",
360
+ label: "Rust"
361
+ },
362
+ {
363
+ value: "sas",
364
+ label: "SAS"
365
+ },
366
+ {
367
+ value: "scala",
368
+ label: "Scala"
369
+ },
370
+ {
371
+ value: "scheme",
372
+ label: "Scheme"
373
+ },
374
+ {
375
+ value: "shell",
376
+ label: "Shell"
377
+ },
378
+ {
379
+ value: "sql",
380
+ label: "SQL"
381
+ },
382
+ {
383
+ value: "stata",
384
+ label: "Stata"
385
+ },
386
+ {
387
+ value: "swift",
388
+ label: "Swift"
389
+ },
390
+ {
391
+ value: "typescript",
392
+ label: "TypeScript"
393
+ },
394
+ {
395
+ value: "tsx",
396
+ label: "TypeScript (React)"
397
+ },
398
+ {
399
+ value: "vbnet",
400
+ label: "VB.NET"
401
+ },
402
+ {
403
+ value: "xml",
404
+ label: "XML"
405
+ },
406
+ {
407
+ value: "yaml",
408
+ label: "YAML"
409
+ }
410
+ ];
197
411
  const baseHandleConvert = (editor, attributesToSet) => {
198
412
  const [_, lastNodePath] = slate.Editor.last(editor, []);
199
413
  slate.Transforms.unwrapNodes(editor, {
@@ -264,6 +478,7 @@ const CodeBlock = styledComponents.styled.pre`
264
478
  overflow: auto;
265
479
  padding: ${({ theme }) => `${theme.spaces[3]} ${theme.spaces[4]}`};
266
480
  flex-shrink: 1;
481
+
267
482
  & > code {
268
483
  font-family: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', Menlo, Consolas,
269
484
  monospace;
@@ -272,9 +487,61 @@ const CodeBlock = styledComponents.styled.pre`
272
487
  max-width: 100%;
273
488
  }
274
489
  `;
490
+ const CodeEditor = (props) => {
491
+ const { editor } = useBlocksEditorContext("ImageDialog");
492
+ const editorIsFocused = slateReact.useFocused();
493
+ const imageIsSelected = slateReact.useSelected();
494
+ const { formatMessage } = reactIntl.useIntl();
495
+ const [isSelectOpen, setIsSelectOpen] = React__namespace.useState(false);
496
+ const shouldDisplayLanguageSelect = editorIsFocused && imageIsSelected || isSelectOpen;
497
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { position: "relative", width: "100%", children: [
498
+ /* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { ...props.attributes, children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: props.children }) }),
499
+ shouldDisplayLanguageSelect && /* @__PURE__ */ jsxRuntime.jsx(
500
+ designSystem.Box,
501
+ {
502
+ position: "absolute",
503
+ background: "neutral0",
504
+ borderColor: "neutral150",
505
+ borderStyle: "solid",
506
+ borderWidth: "0.5px",
507
+ shadow: "tableShadow",
508
+ top: "100%",
509
+ marginTop: 1,
510
+ right: 0,
511
+ padding: 1,
512
+ hasRadius: true,
513
+ children: /* @__PURE__ */ jsxRuntime.jsx(
514
+ designSystem.SingleSelect,
515
+ {
516
+ onChange: (open) => {
517
+ slate.Transforms.setNodes(
518
+ editor,
519
+ { language: open.toString() },
520
+ { match: (node) => !slate.Editor.isEditor(node) && node.type === "code" }
521
+ );
522
+ },
523
+ value: props.element.type === "code" && props.element.language || "plaintext",
524
+ onOpenChange: (open) => {
525
+ setIsSelectOpen(open);
526
+ if (!open) {
527
+ slateReact.ReactEditor.focus(editor);
528
+ }
529
+ },
530
+ onCloseAutoFocus: (e) => e.preventDefault(),
531
+ "aria-label": formatMessage({
532
+ id: "components.Blocks.blocks.code.languageLabel",
533
+ defaultMessage: "Select a language"
534
+ }),
535
+ children: codeLanguages.map(({ value, label }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value, children: label }, value))
536
+ }
537
+ )
538
+ }
539
+ )
540
+ ] });
541
+ };
275
542
  const codeBlocks = {
276
543
  code: {
277
- renderElement: (props) => /* @__PURE__ */ jsxRuntime.jsx(CodeBlock, { ...props.attributes, children: /* @__PURE__ */ jsxRuntime.jsx("code", { children: props.children }) }),
544
+ renderElement: (props) => /* @__PURE__ */ jsxRuntime.jsx(CodeEditor, { ...props }),
278
545
  icon: Icons.Code,
279
546
  label: {
280
547
  id: "components.Blocks.blocks.code",
@@ -283,7 +550,7 @@ const codeBlocks = {
283
550
  matchNode: (node) => node.type === "code",
284
551
  isInBlocksSelector: true,
285
552
  handleConvert(editor) {
286
- baseHandleConvert(editor, { type: "code" });
553
+ baseHandleConvert(editor, { type: "code", language: "plaintext" });
287
554
  },
288
555
  handleEnterKey(editor) {
289
556
  pressEnterTwiceToExit(editor);
@@ -501,7 +768,7 @@ const ImageDialog = () => {
501
768
  const nodeImage = {
502
769
  ...expectedImage,
503
770
  alternativeText: expectedImage.alternativeText || expectedImage.name,
504
- url: usePrev.prefixFileUrlWithBackendUrl(image.url)
771
+ url: useDebounce.prefixFileUrlWithBackendUrl(image.url)
505
772
  };
506
773
  return nodeImage;
507
774
  });
@@ -623,18 +890,12 @@ const LinkContent = React__namespace.forwardRef(
623
890
  const [popoverOpen, setPopoverOpen] = React__namespace.useState(
624
891
  editor.lastInsertedLinkPath ? slate.Path.equals(path, editor.lastInsertedLinkPath) : false
625
892
  );
626
- const linkRef = React__namespace.useRef(null);
627
893
  const elementText = link.children.map((child) => child.text).join("");
628
894
  const [linkText, setLinkText] = React__namespace.useState(elementText);
629
895
  const [linkUrl, setLinkUrl] = React__namespace.useState(link.url);
630
896
  const linkInputRef = React__namespace.useRef(null);
631
- const [showRemoveButton, setShowRemoveButton] = React__namespace.useState(false);
897
+ const isLastInsertedLink = editor.lastInsertedLinkPath ? !slate.Path.equals(path, editor.lastInsertedLinkPath) : true;
632
898
  const [isSaveDisabled, setIsSaveDisabled] = React__namespace.useState(false);
633
- const handleOpenEditPopover = (e) => {
634
- e.preventDefault();
635
- setPopoverOpen(true);
636
- setShowRemoveButton(true);
637
- };
638
899
  const onLinkChange = (e) => {
639
900
  setIsSaveDisabled(false);
640
901
  setLinkUrl(e.target.value);
@@ -655,33 +916,33 @@ const LinkContent = React__namespace.forwardRef(
655
916
  editLink(editor, { url: linkUrl, text: linkText });
656
917
  setPopoverOpen(false);
657
918
  editor.lastInsertedLinkPath = null;
919
+ slateReact.ReactEditor.focus(editor);
658
920
  };
659
- const handleDismiss = () => {
660
- setPopoverOpen(false);
921
+ const handleClose = () => {
661
922
  if (link.url === "") {
662
923
  removeLink(editor);
663
924
  }
925
+ setPopoverOpen(false);
664
926
  slateReact.ReactEditor.focus(editor);
665
927
  };
666
- const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
667
- const composedRefs = designSystem.useComposedRefs(linkRef, forwardedRef);
668
928
  React__namespace.useEffect(() => {
669
929
  if (popoverOpen)
670
930
  linkInputRef.current?.focus();
671
931
  }, [popoverOpen]);
672
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
673
- /* @__PURE__ */ jsxRuntime.jsx(
932
+ const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
933
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { open: popoverOpen, children: [
934
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
674
935
  StyledBaseLink,
675
936
  {
676
937
  ...attributes,
677
- ref: composedRefs,
938
+ ref: forwardedRef,
678
939
  href: link.url,
679
- onClick: handleOpenEditPopover,
940
+ onClick: () => setPopoverOpen(true),
680
941
  color: "primary600",
681
942
  children
682
943
  }
683
- ),
684
- popoverOpen && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover, { source: linkRef, onDismiss: handleDismiss, padding: 4, contentEditable: false, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "form", onSubmit: handleSave, direction: "column", gap: 4, children: [
944
+ ) }),
945
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { onPointerDownOutside: handleClose, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 4, direction: "column", gap: 4, children: [
685
946
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { width: "368px", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
686
947
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
687
948
  id: "components.Blocks.popover.text",
@@ -727,7 +988,7 @@ const LinkContent = React__namespace.forwardRef(
727
988
  {
728
989
  variant: "danger-light",
729
990
  onClick: () => removeLink(editor),
730
- $visible: showRemoveButton,
991
+ $visible: isLastInsertedLink,
731
992
  children: formatMessage({
732
993
  id: "components.Blocks.popover.remove",
733
994
  defaultMessage: "Remove"
@@ -735,11 +996,11 @@ const LinkContent = React__namespace.forwardRef(
735
996
  }
736
997
  ),
737
998
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
738
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: handleDismiss, children: formatMessage({
999
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
739
1000
  id: "components.Blocks.popover.cancel",
740
1001
  defaultMessage: "Cancel"
741
1002
  }) }),
742
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", disabled: Boolean(inputNotDirty) || isSaveDisabled, children: formatMessage({
1003
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
743
1004
  id: "components.Blocks.popover.save",
744
1005
  defaultMessage: "Save"
745
1006
  }) })
@@ -1180,7 +1441,7 @@ const ToolbarButton = ({
1180
1441
  width: 7,
1181
1442
  height: 7,
1182
1443
  hasRadius: true,
1183
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { width: "1.2rem", height: "1.2rem", fill: disabled ? "neutral300" : enabledColor })
1444
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
1184
1445
  }
1185
1446
  )
1186
1447
  }
@@ -1325,6 +1586,26 @@ const ListButton = ({ block, format }) => {
1325
1586
  }
1326
1587
  return false;
1327
1588
  };
1589
+ const isListDisabled = () => {
1590
+ if (disabled) {
1591
+ return true;
1592
+ }
1593
+ if (!editor.selection) {
1594
+ return false;
1595
+ }
1596
+ const anchorNodeEntry = slate.Editor.above(editor, {
1597
+ at: editor.selection.anchor,
1598
+ match: (node) => !slate.Editor.isEditor(node) && node.type !== "text"
1599
+ });
1600
+ const focusNodeEntry = slate.Editor.above(editor, {
1601
+ at: editor.selection.focus,
1602
+ match: (node) => !slate.Editor.isEditor(node) && node.type !== "text"
1603
+ });
1604
+ if (!anchorNodeEntry || !focusNodeEntry) {
1605
+ return false;
1606
+ }
1607
+ return anchorNodeEntry[0] !== focusNodeEntry[0];
1608
+ };
1328
1609
  const toggleList = (format2) => {
1329
1610
  let currentListEntry;
1330
1611
  if (editor.selection) {
@@ -1358,7 +1639,7 @@ const ListButton = ({ block, format }) => {
1358
1639
  name: format,
1359
1640
  label: block.label,
1360
1641
  isActive: isListActive(),
1361
- disabled,
1642
+ disabled: isListDisabled(),
1362
1643
  handleClick: () => toggleList(format)
1363
1644
  }
1364
1645
  );
@@ -1502,6 +1783,7 @@ const DragItem = styledComponents.styled(designSystem.Flex)`
1502
1783
  }
1503
1784
  `;
1504
1785
  const DragIconButton = styledComponents.styled(designSystem.IconButton)`
1786
+ user-select: none;
1505
1787
  display: flex;
1506
1788
  align-items: center;
1507
1789
  justify-content: center;
@@ -1525,7 +1807,7 @@ const DragIconButton = styledComponents.styled(designSystem.IconButton)`
1525
1807
  }
1526
1808
  svg {
1527
1809
  height: auto;
1528
- width: ${({ theme }) => theme.spaces[3]};
1810
+ min-width: ${({ theme }) => theme.spaces[3]};
1529
1811
 
1530
1812
  path {
1531
1813
  fill: ${({ theme }) => theme.colors.neutral700};
@@ -1630,6 +1912,7 @@ const DragAndDropElement = ({
1630
1912
  DragIconButton,
1631
1913
  {
1632
1914
  tag: "div",
1915
+ contentEditable: false,
1633
1916
  role: "button",
1634
1917
  tabIndex: 0,
1635
1918
  withTooltip: false,
@@ -1642,7 +1925,7 @@ const DragAndDropElement = ({
1642
1925
  disabled,
1643
1926
  draggable: true,
1644
1927
  $dragHandleTopMargin: dragHandleTopMargin,
1645
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, { color: "neutral600" })
1928
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Drag, { color: "primary500" })
1646
1929
  }
1647
1930
  ),
1648
1931
  children
@@ -1966,7 +2249,7 @@ const EditorLayout$1 = ({
1966
2249
  /* @__PURE__ */ jsxRuntime.jsx(
1967
2250
  CollapseIconButton,
1968
2251
  {
1969
- "aria-label": formatMessage({
2252
+ label: formatMessage({
1970
2253
  id: index.getTranslation("components.Blocks.collapse"),
1971
2254
  defaultMessage: "Collapse"
1972
2255
  }),
@@ -2305,7 +2588,7 @@ const BlocksEditor = React__namespace.forwardRef(
2305
2588
  !isExpandedMode && /* @__PURE__ */ jsxRuntime.jsx(
2306
2589
  ExpandIconButton,
2307
2590
  {
2308
- "aria-label": formatMessage({
2591
+ label: formatMessage({
2309
2592
  id: index.getTranslation("components.Blocks.expand"),
2310
2593
  defaultMessage: "Expand"
2311
2594
  }),
@@ -2371,30 +2654,27 @@ const createDefaultForm = (contentType, components = {}) => {
2371
2654
  const Initializer = ({ disabled, name: name2, onClick }) => {
2372
2655
  const { formatMessage } = reactIntl.useIntl();
2373
2656
  const field = strapiAdmin.useField(name2);
2374
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2375
- /* @__PURE__ */ jsxRuntime.jsx(
2376
- designSystem.Box,
2377
- {
2378
- tag: "button",
2379
- background: "neutral100",
2380
- borderColor: field.error ? "danger600" : "neutral200",
2381
- hasRadius: true,
2382
- disabled,
2383
- onClick,
2384
- paddingTop: 9,
2385
- paddingBottom: 9,
2386
- type: "button",
2387
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
2388
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, {}) }),
2389
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
2390
- id: index.getTranslation("components.empty-repeatable"),
2391
- defaultMessage: "No entry yet. Click on the button below to add one."
2392
- }) }) })
2393
- ] })
2394
- }
2395
- ),
2396
- field.error && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "danger600", variant: "pi", children: field.error })
2397
- ] });
2657
+ return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
2658
+ designSystem.Box,
2659
+ {
2660
+ tag: "button",
2661
+ background: "neutral100",
2662
+ borderColor: field.error ? "danger600" : "neutral200",
2663
+ hasRadius: true,
2664
+ disabled,
2665
+ onClick,
2666
+ paddingTop: 9,
2667
+ paddingBottom: 9,
2668
+ type: "button",
2669
+ children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 2, children: [
2670
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(CircleIcon, {}) }),
2671
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
2672
+ id: index.getTranslation("components.empty-repeatable"),
2673
+ defaultMessage: "No entry yet. Click on the button below to add one."
2674
+ }) }) })
2675
+ ] })
2676
+ }
2677
+ ) });
2398
2678
  };
2399
2679
  const CircleIcon = styledComponents.styled(Icons.PlusCircle)`
2400
2680
  width: 2.4rem;
@@ -2426,9 +2706,20 @@ const NonRepeatableComponent = ({
2426
2706
  hasRadius: isNested,
2427
2707
  borderColor: isNested ? "neutral200" : void 0,
2428
2708
  children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index2) => {
2429
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
2709
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2430
2710
  const completeFieldName = `${name2}.${field.name}`;
2431
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, s: 12, xs: 12, children: children({ ...field, name: completeFieldName }) }, completeFieldName);
2711
+ return /* @__PURE__ */ jsxRuntime.jsx(
2712
+ designSystem.Grid.Item,
2713
+ {
2714
+ col: size,
2715
+ s: 12,
2716
+ xs: 12,
2717
+ direction: "column",
2718
+ alignItems: "stretch",
2719
+ children: children({ ...field, name: completeFieldName })
2720
+ },
2721
+ completeFieldName
2722
+ );
2432
2723
  }) }, index2);
2433
2724
  }) })
2434
2725
  }
@@ -2468,7 +2759,7 @@ const RepeatableComponent = ({
2468
2759
  }
2469
2760
  return void 0;
2470
2761
  }, [search, name2, value]);
2471
- const prevValue = usePrev.usePrev(value);
2762
+ const prevValue = useDebounce.usePrev(value);
2472
2763
  React__namespace.useEffect(() => {
2473
2764
  if (prevValue && prevValue.length < value.length) {
2474
2765
  setCollapseToOpen(value[value.length - 1].__temp_key__);
@@ -2604,9 +2895,20 @@ const RepeatableComponent = ({
2604
2895
  onGrabItem: handleGrabItem,
2605
2896
  __temp_key__: key,
2606
2897
  children: layout.map((row, index22) => {
2607
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
2898
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2608
2899
  const completeFieldName = `${nameWithIndex}.${field.name}`;
2609
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, s: 12, xs: 12, children: children({ ...field, name: completeFieldName }) }, completeFieldName);
2900
+ return /* @__PURE__ */ jsxRuntime.jsx(
2901
+ designSystem.Grid.Item,
2902
+ {
2903
+ col: size,
2904
+ s: 12,
2905
+ xs: 12,
2906
+ direction: "column",
2907
+ alignItems: "stretch",
2908
+ children: children({ ...field, name: completeFieldName })
2909
+ },
2910
+ completeFieldName
2911
+ );
2610
2912
  }) }, index22);
2611
2913
  })
2612
2914
  }
@@ -2651,7 +2953,7 @@ const TextButtonCustom = styledComponents.styled(designSystem.TextButton)`
2651
2953
  }
2652
2954
 
2653
2955
  @media (prefers-reduced-motion: no-preference) {
2654
- transition: background-color 120ms ${(props) => props.theme.easings.easeOutQuad};
2956
+ transition: background-color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};
2655
2957
  }
2656
2958
  `;
2657
2959
  const Component = ({
@@ -2701,7 +3003,7 @@ const Component = ({
2701
3003
  /* @__PURE__ */ jsxRuntime.jsx(
2702
3004
  designSystem.IconButton,
2703
3005
  {
2704
- borderWidth: 0,
3006
+ variant: "ghost",
2705
3007
  onClick: onDeleteComponent,
2706
3008
  label: formatMessage({
2707
3009
  id: index.getTranslation("containers.Edit.delete"),
@@ -2714,7 +3016,7 @@ const Component = ({
2714
3016
  designSystem.IconButton,
2715
3017
  {
2716
3018
  ref: composedAccordionRefs,
2717
- borderWidth: 0,
3019
+ variant: "ghost",
2718
3020
  onClick: (e) => e.stopPropagation(),
2719
3021
  "data-handler-id": handlerId,
2720
3022
  label: formatMessage({
@@ -2784,7 +3086,7 @@ const ComponentInput = ({
2784
3086
  id: index.getTranslation("components.reset-entry"),
2785
3087
  defaultMessage: "Reset Entry"
2786
3088
  }),
2787
- borderWidth: 0,
3089
+ variant: "ghost",
2788
3090
  onClick: () => {
2789
3091
  field.onChange(name2, null);
2790
3092
  },
@@ -2813,11 +3115,8 @@ const AddComponentButton = ({
2813
3115
  onClick,
2814
3116
  disabled: isDisabled,
2815
3117
  background: "neutral0",
2816
- paddingTop: 3,
2817
- paddingBottom: 3,
2818
- paddingLeft: 4,
2819
- paddingRight: 4,
2820
3118
  style: { cursor: isDisabled ? "not-allowed" : "pointer" },
3119
+ variant: "tertiary",
2821
3120
  children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "span", gap: 2, children: [
2822
3121
  /* @__PURE__ */ jsxRuntime.jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
2823
3122
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -2846,10 +3145,11 @@ const StyledAddIcon = styledComponents.styled(Icons.PlusCircle)`
2846
3145
  }
2847
3146
  `;
2848
3147
  const AddComponentTitle = styledComponents.styled(designSystem.Typography)``;
2849
- const StyledButton = styledComponents.styled(designSystem.BaseButton)`
3148
+ const StyledButton = styledComponents.styled(designSystem.Button)`
2850
3149
  border-radius: 26px;
2851
3150
  border-color: ${({ theme }) => theme.colors.neutral150};
2852
3151
  box-shadow: ${({ theme }) => theme.shadows.filterShadow};
3152
+ height: 5rem;
2853
3153
 
2854
3154
  &:hover {
2855
3155
  ${AddComponentTitle} {
@@ -2861,7 +3161,7 @@ const StyledButton = styledComponents.styled(designSystem.BaseButton)`
2861
3161
  fill: ${({ theme }) => theme.colors.primary600};
2862
3162
  }
2863
3163
  > path {
2864
- fill: ${({ theme }) => theme.colors.neutral100};
3164
+ fill: ${({ theme }) => theme.colors.primary600};
2865
3165
  }
2866
3166
  }
2867
3167
  }
@@ -2919,7 +3219,7 @@ const ComponentBox = styledComponents.styled(designSystem.Flex)`
2919
3219
  cursor: pointer;
2920
3220
 
2921
3221
  @media (prefers-reduced-motion: no-preference) {
2922
- transition: color 120ms ${(props) => props.theme.easings.easeOutQuad};
3222
+ transition: color 120ms ${(props) => props.theme.motion.easings.easeOutQuad};
2923
3223
  }
2924
3224
 
2925
3225
  &:focus,
@@ -2992,18 +3292,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
2992
3292
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
2993
3293
  ] });
2994
3294
  };
2995
- function useDebounce(value, delay) {
2996
- const [debouncedValue, setDebouncedValue] = React.useState(value);
2997
- React.useEffect(() => {
2998
- const handler = setTimeout(() => {
2999
- setDebouncedValue(value);
3000
- }, delay);
3001
- return () => {
3002
- clearTimeout(handler);
3003
- };
3004
- }, [value, delay]);
3005
- return debouncedValue;
3006
- }
3007
3295
  const uidApi = index.contentManagerApi.injectEndpoints({
3008
3296
  endpoints: (builder) => ({
3009
3297
  getDefaultUID: builder.query({
@@ -3038,7 +3326,10 @@ const uidApi = index.contentManagerApi.injectEndpoints({
3038
3326
  config: {
3039
3327
  params
3040
3328
  }
3041
- })
3329
+ }),
3330
+ providesTags: (_res, _error, params) => [
3331
+ { type: "UidAvailability", id: params.contentTypeUID }
3332
+ ]
3042
3333
  })
3043
3334
  })
3044
3335
  });
@@ -3050,8 +3341,10 @@ const UIDInput = React__namespace.forwardRef(
3050
3341
  const allFormValues = strapiAdmin.useForm("InputUID", (form) => form.values);
3051
3342
  const [availability, setAvailability] = React__namespace.useState();
3052
3343
  const [showRegenerate, setShowRegenerate] = React__namespace.useState(false);
3344
+ const isCloning = reactRouterDom.useMatch(index.CLONE_PATH) !== null;
3053
3345
  const field = strapiAdmin.useField(name2);
3054
- const debouncedValue = useDebounce(field.value, 300);
3346
+ const debouncedValue = useDebounce.useDebounce(field.value, 300);
3347
+ const hasChanged = debouncedValue !== field.initialValue;
3055
3348
  const { toggleNotification } = strapiAdmin.useNotification();
3056
3349
  const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
3057
3350
  const { formatMessage } = reactIntl.useIntl();
@@ -3127,8 +3420,9 @@ const UIDInput = React__namespace.forwardRef(
3127
3420
  params
3128
3421
  },
3129
3422
  {
3423
+ // Don't check availability if the value is empty or wasn't changed
3130
3424
  skip: !Boolean(
3131
- debouncedValue !== field.initialValue && debouncedValue && UID_REGEX.test(debouncedValue.trim())
3425
+ (hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
3132
3426
  )
3133
3427
  }
3134
3428
  );
@@ -3157,6 +3451,7 @@ const UIDInput = React__namespace.forwardRef(
3157
3451
  const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
3158
3452
  const fieldRef = strapiAdmin.useFocusInputField(name2);
3159
3453
  const composedRefs = designSystem.useComposedRefs(ref, fieldRef);
3454
+ const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
3160
3455
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { hint, name: name2, error: field.error, required, children: [
3161
3456
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { action: labelAction, children: label }),
3162
3457
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3165,7 +3460,7 @@ const UIDInput = React__namespace.forwardRef(
3165
3460
  ref: composedRefs,
3166
3461
  disabled: props.disabled,
3167
3462
  endAction: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { position: "relative", gap: 1, children: [
3168
- availability && !showRegenerate && /* @__PURE__ */ jsxRuntime.jsxs(
3463
+ shouldShowAvailability && /* @__PURE__ */ jsxRuntime.jsxs(
3169
3464
  TextValidation,
3170
3465
  {
3171
3466
  alignItems: "center",
@@ -3999,7 +4294,7 @@ const EditorLayout = ({
3999
4294
  justifyContent: "flex-end",
4000
4295
  shrink: 0,
4001
4296
  width: "100%",
4002
- children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, children: [
4297
+ children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
4003
4298
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
4004
4299
  id: "components.Wysiwyg.collapse",
4005
4300
  defaultMessage: "Collapse"
@@ -4017,12 +4312,14 @@ const EditorLayout = ({
4017
4312
  ) }) });
4018
4313
  }
4019
4314
  return /* @__PURE__ */ jsxRuntime.jsx(
4020
- designSystem.Box,
4315
+ designSystem.Flex,
4021
4316
  {
4022
4317
  borderColor: error ? "danger600" : "neutral200",
4023
4318
  borderStyle: "solid",
4024
4319
  borderWidth: "1px",
4025
4320
  hasRadius: true,
4321
+ direction: "column",
4322
+ alignItems: "stretch",
4026
4323
  children
4027
4324
  }
4028
4325
  );
@@ -4033,11 +4330,19 @@ const ExpandWrapper = styledComponents.styled(designSystem.Flex)`
4033
4330
  const BoxWithBorder = styledComponents.styled(designSystem.Box)`
4034
4331
  border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
4035
4332
  `;
4036
- const ExpandButton$1 = styledComponents.styled(designSystem.BaseButton)`
4333
+ const ExpandButton$1 = styledComponents.styled(designSystem.Button)`
4037
4334
  background-color: transparent;
4038
4335
  border: none;
4039
4336
  align-items: center;
4040
4337
 
4338
+ & > span {
4339
+ display: flex;
4340
+ justify-content: space-between;
4341
+ align-items: center;
4342
+ width: 100%;
4343
+ font-weight: ${({ theme }) => theme.fontWeights.regular};
4344
+ }
4345
+
4041
4346
  svg {
4042
4347
  margin-left: ${({ theme }) => `${theme.spaces[2]}`};
4043
4348
 
@@ -4304,42 +4609,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
4304
4609
  insertWithoutTextToEdit(editor, markdownType, line, contentLength);
4305
4610
  }
4306
4611
  };
4307
- const CustomIconButton = styledComponents.styled(designSystem.IconButton)`
4308
- padding: ${({ theme }) => theme.spaces[2]};
4309
- /* Trick to prevent the outline from overflowing because of the general outline-offset */
4310
- outline-offset: -2px !important;
4311
-
4312
- svg {
4313
- width: 1.8rem;
4314
- height: 1.8rem;
4315
- }
4316
- `;
4317
- const CustomLinkIconButton = styledComponents.styled(CustomIconButton)`
4318
- svg {
4319
- width: 0.8rem;
4320
- height: 0.8rem;
4321
- }
4322
- `;
4323
4612
  const MainButtons = styledComponents.styled(designSystem.IconButtonGroup)`
4324
4613
  margin-left: ${({ theme }) => theme.spaces[4]};
4325
4614
  `;
4326
4615
  const MoreButton = styledComponents.styled(designSystem.IconButton)`
4327
4616
  margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
4328
- padding: ${({ theme }) => theme.spaces[2]};
4329
-
4330
- svg {
4331
- width: 1.8rem;
4332
- height: 1.8rem;
4333
- }
4334
4617
  `;
4335
4618
  const IconButtonGroupMargin = styledComponents.styled(designSystem.IconButtonGroup)`
4336
4619
  margin-right: ${({ theme }) => `${theme.spaces[2]}`};
4337
4620
  `;
4338
- const ExpandButton = styledComponents.styled(designSystem.BaseButton)`
4621
+ const ExpandButton = styledComponents.styled(designSystem.Button)`
4339
4622
  background-color: transparent;
4340
4623
  border: none;
4341
4624
  align-items: center;
4342
4625
 
4626
+ & > span {
4627
+ display: flex;
4628
+ justify-content: space-between;
4629
+ align-items: center;
4630
+ width: 100%;
4631
+ font-weight: ${({ theme }) => theme.fontWeights.regular};
4632
+ }
4633
+
4343
4634
  svg {
4344
4635
  margin-left: ${({ theme }) => `${theme.spaces[2]}`};
4345
4636
  path {
@@ -4351,8 +4642,8 @@ const ExpandButton = styledComponents.styled(designSystem.BaseButton)`
4351
4642
  `;
4352
4643
  const WysiwygFooter = ({ onToggleExpand }) => {
4353
4644
  const { formatMessage } = reactIntl.useIntl();
4354
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, children: [
4355
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage({
4645
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxRuntime.jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, variant: "tertiary", size: "M", children: [
4646
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: formatMessage({
4356
4647
  id: "components.WysiwygBottomControls.fullscreen",
4357
4648
  defaultMessage: "Expand"
4358
4649
  }) }),
@@ -4374,7 +4665,7 @@ const WysiwygNav = ({
4374
4665
  id: "components.Wysiwyg.selectOptions.title",
4375
4666
  defaultMessage: "Add a title"
4376
4667
  });
4377
- const buttonMoreRef = React__namespace.useRef(null);
4668
+ React__namespace.useRef(null);
4378
4669
  const handleTogglePopover = () => {
4379
4670
  setVisiblePopover((prev) => !prev);
4380
4671
  };
@@ -4388,18 +4679,27 @@ const WysiwygNav = ({
4388
4679
  borderRadius: `0.4rem 0.4rem 0 0`,
4389
4680
  children: [
4390
4681
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
4391
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.SingleSelect, { disabled: true, placeholder: selectPlaceholder, "aria-label": selectPlaceholder, children: [
4392
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
4393
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
4394
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h3", children: "h3" }),
4395
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h4", children: "h4" }),
4396
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h5", children: "h5" }),
4397
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h6", children: "h6" })
4398
- ] }) }),
4682
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(
4683
+ designSystem.SingleSelect,
4684
+ {
4685
+ disabled: true,
4686
+ placeholder: selectPlaceholder,
4687
+ "aria-label": selectPlaceholder,
4688
+ size: "S",
4689
+ children: [
4690
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
4691
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
4692
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h3", children: "h3" }),
4693
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h4", children: "h4" }),
4694
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h5", children: "h5" }),
4695
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h6", children: "h6" })
4696
+ ]
4697
+ }
4698
+ ) }),
4399
4699
  /* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
4400
- /* @__PURE__ */ jsxRuntime.jsx(CustomIconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
4401
- /* @__PURE__ */ jsxRuntime.jsx(CustomIconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Italic, {}) }),
4402
- /* @__PURE__ */ jsxRuntime.jsx(CustomIconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Underline, {}) })
4700
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
4701
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Italic, {}) }),
4702
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Underline, {}) })
4403
4703
  ] }),
4404
4704
  /* @__PURE__ */ jsxRuntime.jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) })
4405
4705
  ] }),
@@ -4426,6 +4726,7 @@ const WysiwygNav = ({
4426
4726
  placeholder: selectPlaceholder,
4427
4727
  "aria-label": selectPlaceholder,
4428
4728
  onChange: (value) => onActionClick(value, editorRef),
4729
+ size: "S",
4429
4730
  children: [
4430
4731
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h1", children: "h1" }),
4431
4732
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: "h2", children: "h2" }),
@@ -4437,17 +4738,9 @@ const WysiwygNav = ({
4437
4738
  }
4438
4739
  ) }),
4439
4740
  /* @__PURE__ */ jsxRuntime.jsxs(MainButtons, { children: [
4741
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {}) }),
4440
4742
  /* @__PURE__ */ jsxRuntime.jsx(
4441
- CustomIconButton,
4442
- {
4443
- onClick: () => onActionClick("Bold", editorRef),
4444
- label: "Bold",
4445
- name: "Bold",
4446
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Bold, {})
4447
- }
4448
- ),
4449
- /* @__PURE__ */ jsxRuntime.jsx(
4450
- CustomIconButton,
4743
+ designSystem.IconButton,
4451
4744
  {
4452
4745
  onClick: () => onActionClick("Italic", editorRef),
4453
4746
  label: "Italic",
@@ -4456,7 +4749,7 @@ const WysiwygNav = ({
4456
4749
  }
4457
4750
  ),
4458
4751
  /* @__PURE__ */ jsxRuntime.jsx(
4459
- CustomIconButton,
4752
+ designSystem.IconButton,
4460
4753
  {
4461
4754
  onClick: () => onActionClick("Underline", editorRef),
4462
4755
  label: "Underline",
@@ -4465,79 +4758,81 @@ const WysiwygNav = ({
4465
4758
  }
4466
4759
  )
4467
4760
  ] }),
4468
- /* @__PURE__ */ jsxRuntime.jsx(MoreButton, { ref: buttonMoreRef, onClick: handleTogglePopover, label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) }),
4469
- visiblePopover && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover, { onDismiss: handleTogglePopover, centered: true, source: buttonMoreRef, spacing: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { children: [
4470
- /* @__PURE__ */ jsxRuntime.jsxs(IconButtonGroupMargin, { children: [
4471
- /* @__PURE__ */ jsxRuntime.jsx(
4472
- CustomIconButton,
4473
- {
4474
- onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
4475
- label: "Strikethrough",
4476
- name: "Strikethrough",
4477
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.StrikeThrough, {})
4478
- }
4479
- ),
4480
- /* @__PURE__ */ jsxRuntime.jsx(
4481
- CustomIconButton,
4482
- {
4483
- onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
4484
- label: "BulletList",
4485
- name: "BulletList",
4486
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.BulletList, {})
4487
- }
4488
- ),
4489
- /* @__PURE__ */ jsxRuntime.jsx(
4490
- CustomIconButton,
4491
- {
4492
- onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
4493
- label: "NumberList",
4494
- name: "NumberList",
4495
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.NumberList, {})
4496
- }
4497
- )
4498
- ] }),
4499
- /* @__PURE__ */ jsxRuntime.jsxs(designSystem.IconButtonGroup, { children: [
4500
- /* @__PURE__ */ jsxRuntime.jsx(
4501
- CustomIconButton,
4502
- {
4503
- onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
4504
- label: "Code",
4505
- name: "Code",
4506
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Code, {})
4507
- }
4508
- ),
4509
- /* @__PURE__ */ jsxRuntime.jsx(
4510
- CustomIconButton,
4511
- {
4512
- onClick: () => {
4513
- handleTogglePopover();
4514
- onToggleMediaLib();
4515
- },
4516
- label: "Image",
4517
- name: "Image",
4518
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Image, {})
4519
- }
4520
- ),
4521
- /* @__PURE__ */ jsxRuntime.jsx(
4522
- CustomLinkIconButton,
4523
- {
4524
- onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
4525
- label: "Link",
4526
- name: "Link",
4527
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Link, {})
4528
- }
4529
- ),
4530
- /* @__PURE__ */ jsxRuntime.jsx(
4531
- CustomIconButton,
4532
- {
4533
- onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
4534
- label: "Quote",
4535
- name: "Quote",
4536
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Quotes, {})
4537
- }
4538
- )
4539
- ] })
4540
- ] }) })
4761
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { children: [
4762
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(MoreButton, { label: "More", children: /* @__PURE__ */ jsxRuntime.jsx(Icons.More, {}) }) }),
4763
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { padding: 2, children: [
4764
+ /* @__PURE__ */ jsxRuntime.jsxs(IconButtonGroupMargin, { children: [
4765
+ /* @__PURE__ */ jsxRuntime.jsx(
4766
+ designSystem.IconButton,
4767
+ {
4768
+ onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
4769
+ label: "Strikethrough",
4770
+ name: "Strikethrough",
4771
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.StrikeThrough, {})
4772
+ }
4773
+ ),
4774
+ /* @__PURE__ */ jsxRuntime.jsx(
4775
+ designSystem.IconButton,
4776
+ {
4777
+ onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
4778
+ label: "BulletList",
4779
+ name: "BulletList",
4780
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.BulletList, {})
4781
+ }
4782
+ ),
4783
+ /* @__PURE__ */ jsxRuntime.jsx(
4784
+ designSystem.IconButton,
4785
+ {
4786
+ onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
4787
+ label: "NumberList",
4788
+ name: "NumberList",
4789
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.NumberList, {})
4790
+ }
4791
+ )
4792
+ ] }),
4793
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.IconButtonGroup, { children: [
4794
+ /* @__PURE__ */ jsxRuntime.jsx(
4795
+ designSystem.IconButton,
4796
+ {
4797
+ onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
4798
+ label: "Code",
4799
+ name: "Code",
4800
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Code, {})
4801
+ }
4802
+ ),
4803
+ /* @__PURE__ */ jsxRuntime.jsx(
4804
+ designSystem.IconButton,
4805
+ {
4806
+ onClick: () => {
4807
+ handleTogglePopover();
4808
+ onToggleMediaLib();
4809
+ },
4810
+ label: "Image",
4811
+ name: "Image",
4812
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Image, {})
4813
+ }
4814
+ ),
4815
+ /* @__PURE__ */ jsxRuntime.jsx(
4816
+ designSystem.IconButton,
4817
+ {
4818
+ onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
4819
+ label: "Link",
4820
+ name: "Link",
4821
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Link, {})
4822
+ }
4823
+ ),
4824
+ /* @__PURE__ */ jsxRuntime.jsx(
4825
+ designSystem.IconButton,
4826
+ {
4827
+ onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
4828
+ label: "Quote",
4829
+ name: "Quote",
4830
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Quotes, {})
4831
+ }
4832
+ )
4833
+ ] })
4834
+ ] }) })
4835
+ ] })
4541
4836
  ] }),
4542
4837
  onTogglePreviewMode && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: onTogglePreviewMode, variant: "tertiary", children: formatMessage({
4543
4838
  id: "components.Wysiwyg.ToggleMode.preview-mode",
@@ -4605,7 +4900,7 @@ const Wysiwyg = React__namespace.forwardRef(
4605
4900
  const handleSelectAssets = (files) => {
4606
4901
  const formattedFiles = files.map((f) => ({
4607
4902
  alt: f.alternativeText || f.name,
4608
- url: usePrev.prefixFileUrlWithBackendUrl(f.url),
4903
+ url: useDebounce.prefixFileUrlWithBackendUrl(f.url),
4609
4904
  mime: f.mime
4610
4905
  }));
4611
4906
  insertFile(editorRef, formattedFiles);
@@ -4683,6 +4978,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4683
4978
  const {
4684
4979
  edit: { components }
4685
4980
  } = index.useDocLayout();
4981
+ const field = strapiAdmin.useField(props.name);
4686
4982
  if (!visible) {
4687
4983
  return null;
4688
4984
  }
@@ -4693,7 +4989,7 @@ const InputRenderer = ({ visible, hint: providedHint, ...props }) => {
4693
4989
  if (attributeHasCustomFieldProperty(props.attribute)) {
4694
4990
  const CustomInput = lazyComponentStore[props.attribute.customField];
4695
4991
  if (CustomInput) {
4696
- return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, hint, disabled: fieldIsDisabled });
4992
+ return /* @__PURE__ */ jsxRuntime.jsx(CustomInput, { ...props, ...field, hint, disabled: fieldIsDisabled });
4697
4993
  }
4698
4994
  return /* @__PURE__ */ jsxRuntime.jsx(
4699
4995
  strapiAdmin.InputRenderer,
@@ -4763,7 +5059,9 @@ const useFieldHint = (hint = void 0, attribute) => {
4763
5059
  if (!maximum && !minimum) {
4764
5060
  return hint;
4765
5061
  }
4766
- const units = !["biginteger", "integer", "number"].includes(attribute.type) ? formatMessage(
5062
+ const units = !["biginteger", "integer", "number", "dynamiczone", "component"].includes(
5063
+ attribute.type
5064
+ ) ? formatMessage(
4767
5065
  {
4768
5066
  id: "content-manager.form.Input.hint.character.unit",
4769
5067
  defaultMessage: "{maxValue, plural, one { character} other { characters}}"
@@ -4857,7 +5155,7 @@ const DynamicComponent = ({
4857
5155
  /* @__PURE__ */ jsxRuntime.jsx(
4858
5156
  designSystem.IconButton,
4859
5157
  {
4860
- borderWidth: 0,
5158
+ variant: "ghost",
4861
5159
  label: formatMessage(
4862
5160
  {
4863
5161
  id: index.getTranslation("components.DynamicZone.delete-label"),
@@ -4872,7 +5170,7 @@ const DynamicComponent = ({
4872
5170
  /* @__PURE__ */ jsxRuntime.jsx(
4873
5171
  designSystem.IconButton,
4874
5172
  {
4875
- borderWidth: 0,
5173
+ variant: "ghost",
4876
5174
  onClick: (e) => e.stopPropagation(),
4877
5175
  "data-handler-id": handlerId,
4878
5176
  ref: dragRef,
@@ -4931,10 +5229,32 @@ const DynamicComponent = ({
4931
5229
  ),
4932
5230
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: accordionActions })
4933
5231
  ] }),
4934
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: row.map(({ size, ...field }) => {
4935
- const fieldName = `${name2}.${index$1}.${field.name}`;
4936
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: size, s: 12, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName }) }, fieldName);
4937
- }) }, rowInd)) }) }) })
5232
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsxRuntime.jsx(
5233
+ designSystem.Grid.Item,
5234
+ {
5235
+ col: 12,
5236
+ s: 12,
5237
+ xs: 12,
5238
+ direction: "column",
5239
+ alignItems: "stretch",
5240
+ children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5241
+ const fieldName = `${name2}.${index$1}.${field.name}`;
5242
+ return /* @__PURE__ */ jsxRuntime.jsx(
5243
+ designSystem.Grid.Item,
5244
+ {
5245
+ col: size,
5246
+ s: 12,
5247
+ xs: 12,
5248
+ direction: "column",
5249
+ alignItems: "stretch",
5250
+ children: /* @__PURE__ */ jsxRuntime.jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5251
+ },
5252
+ fieldName
5253
+ );
5254
+ }) })
5255
+ },
5256
+ rowInd
5257
+ )) }) }) }) })
4938
5258
  ] }) }) })
4939
5259
  ] });
4940
5260
  };
@@ -5126,7 +5446,7 @@ const DynamicZone = ({
5126
5446
  const handleRemoveComponent = (name22, currentIndex) => () => {
5127
5447
  removeFieldRow(name22, currentIndex);
5128
5448
  };
5129
- const hasError = error !== void 0 || dynamicDisplayedComponentsLength < min || dynamicDisplayedComponentsLength > max;
5449
+ const hasError = error !== void 0;
5130
5450
  const renderButtonLabel = () => {
5131
5451
  if (addComponentIsOpen) {
5132
5452
  return formatMessage({ id: "app.utils.close-label", defaultMessage: "Close" });
@@ -5240,4 +5560,4 @@ exports.transformDocument = transformDocument;
5240
5560
  exports.useDynamicZone = useDynamicZone;
5241
5561
  exports.useFieldHint = useFieldHint;
5242
5562
  exports.useLazyComponents = useLazyComponents;
5243
- //# sourceMappingURL=Field-C5Z1Ivdv.js.map
5563
+ //# sourceMappingURL=Field-CtUU1Fg8.js.map