@strapi/content-manager 0.0.0-experimental.9612538209f3c68285c5dea8fe26f96e7e470afd → 0.0.0-experimental.9c5778c9200404fcee94d5a0fc88da5e4376b82c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +18 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-DHNM3YBz.mjs → ComponentConfigurationPage-CpBFh6_r.mjs} +3 -3
  3. package/dist/_chunks/{ComponentConfigurationPage-DHNM3YBz.mjs.map → ComponentConfigurationPage-CpBFh6_r.mjs.map} +1 -1
  4. package/dist/_chunks/{ComponentConfigurationPage-BvHtG7uH.js → ComponentConfigurationPage-_zF8p6CY.js} +3 -3
  5. package/dist/_chunks/{ComponentConfigurationPage-BvHtG7uH.js.map → ComponentConfigurationPage-_zF8p6CY.js.map} +1 -1
  6. package/dist/_chunks/{EditConfigurationPage-Cp6HAEzN.mjs → EditConfigurationPage-CE_yavTi.mjs} +3 -3
  7. package/dist/_chunks/{EditConfigurationPage-Cp6HAEzN.mjs.map → EditConfigurationPage-CE_yavTi.mjs.map} +1 -1
  8. package/dist/_chunks/{EditConfigurationPage-DOmfCEMo.js → EditConfigurationPage-_aG2DJSU.js} +3 -3
  9. package/dist/_chunks/{EditConfigurationPage-DOmfCEMo.js.map → EditConfigurationPage-_aG2DJSU.js.map} +1 -1
  10. package/dist/_chunks/{EditViewPage-BtkEx339.mjs → EditViewPage-DeTn7rAF.mjs} +19 -8
  11. package/dist/_chunks/EditViewPage-DeTn7rAF.mjs.map +1 -0
  12. package/dist/_chunks/{EditViewPage-BqNpC6hO.js → EditViewPage-G9uNzwYL.js} +19 -8
  13. package/dist/_chunks/EditViewPage-G9uNzwYL.js.map +1 -0
  14. package/dist/_chunks/{Field-R5NbffTB.mjs → Field-CnCKhI1R.mjs} +194 -141
  15. package/dist/_chunks/Field-CnCKhI1R.mjs.map +1 -0
  16. package/dist/_chunks/{Field-lsPFnAmH.js → Field-DDHUWEfV.js} +196 -143
  17. package/dist/_chunks/Field-DDHUWEfV.js.map +1 -0
  18. package/dist/_chunks/{Form-CcGboku8.js → Form-DYETaKUX.js} +35 -16
  19. package/dist/_chunks/Form-DYETaKUX.js.map +1 -0
  20. package/dist/_chunks/{Form-BHmXSfyy.mjs → Form-IvVVwqRL.mjs} +35 -16
  21. package/dist/_chunks/Form-IvVVwqRL.mjs.map +1 -0
  22. package/dist/_chunks/{History-ByUPL3T3.mjs → History-BMunT-do.mjs} +28 -18
  23. package/dist/_chunks/History-BMunT-do.mjs.map +1 -0
  24. package/dist/_chunks/{History-Bsud8jwh.js → History-CnZDctSO.js} +28 -18
  25. package/dist/_chunks/History-CnZDctSO.js.map +1 -0
  26. package/dist/_chunks/{ListConfigurationPage-DiT463qx.js → ListConfigurationPage-BynalOp8.js} +20 -8
  27. package/dist/_chunks/ListConfigurationPage-BynalOp8.js.map +1 -0
  28. package/dist/_chunks/{ListConfigurationPage-Bm5HACXf.mjs → ListConfigurationPage-CDqkCxgV.mjs} +20 -8
  29. package/dist/_chunks/ListConfigurationPage-CDqkCxgV.mjs.map +1 -0
  30. package/dist/_chunks/{ListViewPage-CsrC9L_d.js → ListViewPage-I88Ouzoq.js} +44 -39
  31. package/dist/_chunks/ListViewPage-I88Ouzoq.js.map +1 -0
  32. package/dist/_chunks/{ListViewPage-JSyNAAYu.mjs → ListViewPage-_5gS-DOF.mjs} +42 -37
  33. package/dist/_chunks/ListViewPage-_5gS-DOF.mjs.map +1 -0
  34. package/dist/_chunks/{NoContentTypePage-Bsvng4II.js → NoContentTypePage-BaWQ7HsA.js} +2 -2
  35. package/dist/_chunks/{NoContentTypePage-Bsvng4II.js.map → NoContentTypePage-BaWQ7HsA.js.map} +1 -1
  36. package/dist/_chunks/{NoContentTypePage-CsrQUpBE.mjs → NoContentTypePage-Dht-55hr.mjs} +2 -2
  37. package/dist/_chunks/{NoContentTypePage-CsrQUpBE.mjs.map → NoContentTypePage-Dht-55hr.mjs.map} +1 -1
  38. package/dist/_chunks/{NoPermissionsPage-DNmf_pj0.mjs → NoPermissionsPage-Bs8D5W_v.mjs} +2 -2
  39. package/dist/_chunks/{NoPermissionsPage-DNmf_pj0.mjs.map → NoPermissionsPage-Bs8D5W_v.mjs.map} +1 -1
  40. package/dist/_chunks/{NoPermissionsPage-CdHNJtEf.js → NoPermissionsPage-DCVUh5at.js} +2 -2
  41. package/dist/_chunks/{NoPermissionsPage-CdHNJtEf.js.map → NoPermissionsPage-DCVUh5at.js.map} +1 -1
  42. package/dist/_chunks/{Relations-CghaPv2D.js → Relations-BPgFQeGj.js} +4 -4
  43. package/dist/_chunks/Relations-BPgFQeGj.js.map +1 -0
  44. package/dist/_chunks/{Relations-u8-37jK0.mjs → Relations-Chdt5qWc.mjs} +4 -4
  45. package/dist/_chunks/Relations-Chdt5qWc.mjs.map +1 -0
  46. package/dist/_chunks/{en-fbKQxLGn.js → en-BVzUkPxZ.js} +10 -8
  47. package/dist/_chunks/{en-fbKQxLGn.js.map → en-BVzUkPxZ.js.map} +1 -1
  48. package/dist/_chunks/{en-Ux26r5pl.mjs → en-CPTj6CjC.mjs} +10 -8
  49. package/dist/_chunks/{en-Ux26r5pl.mjs.map → en-CPTj6CjC.mjs.map} +1 -1
  50. package/dist/_chunks/{index-BOZx6IMg.js → index-BhbLFX4l.js} +417 -185
  51. package/dist/_chunks/index-BhbLFX4l.js.map +1 -0
  52. package/dist/_chunks/{index-CaE6NG4a.mjs → index-D4UGPFZC.mjs} +436 -204
  53. package/dist/_chunks/index-D4UGPFZC.mjs.map +1 -0
  54. package/dist/_chunks/{layout-Ciz224q5.js → layout-CYA7s0qO.js} +22 -9
  55. package/dist/_chunks/layout-CYA7s0qO.js.map +1 -0
  56. package/dist/_chunks/{layout-Bx7svTbY.mjs → layout-D4HI4_PS.mjs} +23 -10
  57. package/dist/_chunks/layout-D4HI4_PS.mjs.map +1 -0
  58. package/dist/_chunks/{relations-Cxc1cEv3.mjs → relations-1pXaYpBK.mjs} +2 -2
  59. package/dist/_chunks/{relations-Cxc1cEv3.mjs.map → relations-1pXaYpBK.mjs.map} +1 -1
  60. package/dist/_chunks/{relations-CP8sB2YZ.js → relations-DDZ9OxNo.js} +2 -2
  61. package/dist/_chunks/{relations-CP8sB2YZ.js.map → relations-DDZ9OxNo.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 +1 -1
  67. package/dist/admin/index.mjs +4 -4
  68. package/dist/admin/src/history/index.d.ts +3 -0
  69. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  70. package/dist/admin/src/index.d.ts +1 -0
  71. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +1 -0
  72. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +20 -0
  73. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +2 -2
  74. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
  75. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +4 -48
  76. package/dist/admin/src/pages/EditView/components/Header.d.ts +10 -11
  77. package/dist/admin/src/services/api.d.ts +1 -1
  78. package/dist/admin/src/services/components.d.ts +2 -2
  79. package/dist/admin/src/services/contentTypes.d.ts +3 -3
  80. package/dist/admin/src/services/documents.d.ts +19 -17
  81. package/dist/admin/src/services/init.d.ts +1 -1
  82. package/dist/admin/src/services/relations.d.ts +2 -2
  83. package/dist/admin/src/services/uid.d.ts +3 -3
  84. package/dist/admin/src/utils/validation.d.ts +4 -1
  85. package/dist/server/index.js +174 -105
  86. package/dist/server/index.js.map +1 -1
  87. package/dist/server/index.mjs +175 -106
  88. package/dist/server/index.mjs.map +1 -1
  89. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  90. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  91. package/dist/server/src/controllers/uid.d.ts.map +1 -1
  92. package/dist/server/src/controllers/validation/dimensions.d.ts +4 -2
  93. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -1
  94. package/dist/server/src/history/services/history.d.ts.map +1 -1
  95. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  96. package/dist/server/src/history/services/utils.d.ts +2 -1
  97. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  98. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  99. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  100. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  101. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  102. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  103. package/dist/shared/contracts/collection-types.d.ts +3 -1
  104. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  105. package/package.json +9 -9
  106. package/dist/_chunks/EditViewPage-BqNpC6hO.js.map +0 -1
  107. package/dist/_chunks/EditViewPage-BtkEx339.mjs.map +0 -1
  108. package/dist/_chunks/Field-R5NbffTB.mjs.map +0 -1
  109. package/dist/_chunks/Field-lsPFnAmH.js.map +0 -1
  110. package/dist/_chunks/Form-BHmXSfyy.mjs.map +0 -1
  111. package/dist/_chunks/Form-CcGboku8.js.map +0 -1
  112. package/dist/_chunks/History-Bsud8jwh.js.map +0 -1
  113. package/dist/_chunks/History-ByUPL3T3.mjs.map +0 -1
  114. package/dist/_chunks/ListConfigurationPage-Bm5HACXf.mjs.map +0 -1
  115. package/dist/_chunks/ListConfigurationPage-DiT463qx.js.map +0 -1
  116. package/dist/_chunks/ListViewPage-CsrC9L_d.js.map +0 -1
  117. package/dist/_chunks/ListViewPage-JSyNAAYu.mjs.map +0 -1
  118. package/dist/_chunks/Relations-CghaPv2D.js.map +0 -1
  119. package/dist/_chunks/Relations-u8-37jK0.mjs.map +0 -1
  120. package/dist/_chunks/index-BOZx6IMg.js.map +0 -1
  121. package/dist/_chunks/index-CaE6NG4a.mjs.map +0 -1
  122. package/dist/_chunks/layout-Bx7svTbY.mjs.map +0 -1
  123. package/dist/_chunks/layout-Ciz224q5.js.map +0 -1
  124. package/dist/_chunks/usePrev-B9w_-eYc.js.map +0 -1
  125. package/dist/_chunks/usePrev-DH6iah0A.mjs +0 -16
  126. package/dist/_chunks/usePrev-DH6iah0A.mjs.map +0 -1
@@ -2,12 +2,12 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { useState, useEffect, useCallback, memo } from "react";
4
4
  import { useStrapiApp, createContext, useField, useNotification, useForm, useAPIErrorHandler, useQueryParams, useFocusInputField, InputRenderer as InputRenderer$1 } from "@strapi/admin/strapi-admin";
5
- import { Box, SingleSelect, SingleSelectOption, Typography, Flex, BaseLink, Button, Popover, Field, Tooltip, IconButton, useComposedRefs, Portal, FocusTrap, Divider, VisuallyHidden, Grid as Grid$1, Accordion, TextButton, BaseButton, TextInput, IconButtonGroup, Menu, MenuItem } from "@strapi/design-system";
5
+ import { Box, SingleSelect, SingleSelectOption, Typography, Flex, BaseLink, Button, Popover, Field, Tooltip, IconButton, useComposedRefs, Portal, FocusTrap, Divider, VisuallyHidden, Grid as Grid$1, Accordion, TextButton, TextInput, IconButtonGroup, Menu, MenuItem } from "@strapi/design-system";
6
6
  import pipe$1 from "lodash/fp/pipe";
7
7
  import { useIntl } from "react-intl";
8
- import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, d as buildValidParams, f as useDocumentRBAC, n as useDocLayout } from "./index-CaE6NG4a.mjs";
8
+ import { m as DOCUMENT_META_FIELDS, g as getTranslation, c as useDoc, e as contentManagerApi, n as CLONE_PATH, d as buildValidParams, f as useDocumentRBAC, o as useDocLayout } from "./index-D4UGPFZC.mjs";
9
9
  import { generateNKeysBetween } from "fractional-indexing";
10
- import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-u8-37jK0.mjs";
10
+ import { u as useComponent, C as ComponentProvider, M as MemoizedRelationsField } from "./Relations-Chdt5qWc.mjs";
11
11
  import { Code, HeadingOne, HeadingTwo, HeadingThree, HeadingFour, HeadingFive, HeadingSix, Image as Image$1, NumberList, BulletList, Paragraph, Quotes, Link as Link$1, Drag, Collapse, Bold, Italic, Underline, StrikeThrough, Expand, PlusCircle, Plus, Trash, EyeStriked, CheckCircle, WarningCircle, Loader, ArrowClockwise, More } from "@strapi/icons";
12
12
  import { styled, css, keyframes } from "styled-components";
13
13
  import { C as ComponentIcon, a as COMPONENT_ICONS } from "./ComponentIcon-u4bIXTFY.mjs";
@@ -17,9 +17,9 @@ import { g as getIn } from "./objects-mKMAmfec.mjs";
17
17
  import { Editor as Editor$1, Transforms, Node, Element, Range, Path, Point, createEditor } from "slate";
18
18
  import { withHistory } from "slate-history";
19
19
  import { useFocused, useSelected, ReactEditor, Editable, useSlate, Slate, withReact } from "slate-react";
20
- import { p as prefixFileUrlWithBackendUrl, u as usePrev } from "./usePrev-DH6iah0A.mjs";
20
+ import { p as prefixFileUrlWithBackendUrl, u as usePrev, a as useDebounce } from "./useDebounce-DmuSJIF3.mjs";
21
21
  import * as Toolbar from "@radix-ui/react-toolbar";
22
- import { useLocation } from "react-router-dom";
22
+ import { useLocation, useMatch } from "react-router-dom";
23
23
  import CodeMirror from "codemirror5";
24
24
  import sanitizeHtml from "sanitize-html";
25
25
  import { getLanguage, highlight, highlightAuto } from "highlight.js";
@@ -860,20 +860,8 @@ const LinkContent = React.forwardRef(
860
860
  const [linkText, setLinkText] = React.useState(elementText);
861
861
  const [linkUrl, setLinkUrl] = React.useState(link.url);
862
862
  const linkInputRef = React.useRef(null);
863
- const [showRemoveButton, setShowRemoveButton] = React.useState(false);
863
+ const isLastInsertedLink = editor.lastInsertedLinkPath ? !Path.equals(path, editor.lastInsertedLinkPath) : true;
864
864
  const [isSaveDisabled, setIsSaveDisabled] = React.useState(false);
865
- const handleOpenChange = (isOpen) => {
866
- if (isOpen) {
867
- setPopoverOpen(isOpen);
868
- setShowRemoveButton(isOpen);
869
- } else {
870
- setPopoverOpen(isOpen);
871
- if (link.url === "") {
872
- removeLink(editor);
873
- }
874
- ReactEditor.focus(editor);
875
- }
876
- };
877
865
  const onLinkChange = (e) => {
878
866
  setIsSaveDisabled(false);
879
867
  setLinkUrl(e.target.value);
@@ -894,15 +882,33 @@ const LinkContent = React.forwardRef(
894
882
  editLink(editor, { url: linkUrl, text: linkText });
895
883
  setPopoverOpen(false);
896
884
  editor.lastInsertedLinkPath = null;
885
+ ReactEditor.focus(editor);
886
+ };
887
+ const handleClose = () => {
888
+ if (link.url === "") {
889
+ removeLink(editor);
890
+ }
891
+ setPopoverOpen(false);
892
+ ReactEditor.focus(editor);
897
893
  };
898
894
  React.useEffect(() => {
899
895
  if (popoverOpen)
900
896
  linkInputRef.current?.focus();
901
897
  }, [popoverOpen]);
902
898
  const inputNotDirty = !linkText || !linkUrl || link.url && link.url === linkUrl && elementText && elementText === linkText;
903
- return /* @__PURE__ */ jsxs(Popover.Root, { onOpenChange: handleOpenChange, open: popoverOpen, children: [
904
- /* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(StyledBaseLink, { ...attributes, ref: forwardedRef, href: link.url, color: "primary600", children }) }),
905
- /* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsxs(Flex, { padding: 4, tag: "form", onSubmit: handleSave, direction: "column", gap: 4, children: [
899
+ return /* @__PURE__ */ jsxs(Popover.Root, { open: popoverOpen, children: [
900
+ /* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(
901
+ StyledBaseLink,
902
+ {
903
+ ...attributes,
904
+ ref: forwardedRef,
905
+ href: link.url,
906
+ onClick: () => setPopoverOpen(true),
907
+ color: "primary600",
908
+ children
909
+ }
910
+ ) }),
911
+ /* @__PURE__ */ jsx(Popover.Content, { onPointerDownOutside: handleClose, children: /* @__PURE__ */ jsxs(Flex, { padding: 4, direction: "column", gap: 4, children: [
906
912
  /* @__PURE__ */ jsx(Field.Root, { width: "368px", children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 1, alignItems: "stretch", children: [
907
913
  /* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
908
914
  id: "components.Blocks.popover.text",
@@ -948,7 +954,7 @@ const LinkContent = React.forwardRef(
948
954
  {
949
955
  variant: "danger-light",
950
956
  onClick: () => removeLink(editor),
951
- $visible: showRemoveButton,
957
+ $visible: isLastInsertedLink,
952
958
  children: formatMessage({
953
959
  id: "components.Blocks.popover.remove",
954
960
  defaultMessage: "Remove"
@@ -956,11 +962,11 @@ const LinkContent = React.forwardRef(
956
962
  }
957
963
  ),
958
964
  /* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
959
- /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: () => handleOpenChange(false), children: formatMessage({
965
+ /* @__PURE__ */ jsx(Button, { variant: "tertiary", onClick: handleClose, children: formatMessage({
960
966
  id: "components.Blocks.popover.cancel",
961
967
  defaultMessage: "Cancel"
962
968
  }) }),
963
- /* @__PURE__ */ jsx(Button, { type: "submit", disabled: Boolean(inputNotDirty) || isSaveDisabled, children: formatMessage({
969
+ /* @__PURE__ */ jsx(Button, { disabled: Boolean(inputNotDirty) || isSaveDisabled, onClick: handleSave, children: formatMessage({
964
970
  id: "components.Blocks.popover.save",
965
971
  defaultMessage: "Save"
966
972
  }) })
@@ -1401,7 +1407,7 @@ const ToolbarButton = ({
1401
1407
  width: 7,
1402
1408
  height: 7,
1403
1409
  hasRadius: true,
1404
- children: /* @__PURE__ */ jsx(Icon, { width: "1.2rem", height: "1.2rem", fill: disabled ? "neutral300" : enabledColor })
1410
+ children: /* @__PURE__ */ jsx(Icon, { fill: disabled ? "neutral300" : enabledColor })
1405
1411
  }
1406
1412
  )
1407
1413
  }
@@ -1546,6 +1552,26 @@ const ListButton = ({ block, format }) => {
1546
1552
  }
1547
1553
  return false;
1548
1554
  };
1555
+ const isListDisabled = () => {
1556
+ if (disabled) {
1557
+ return true;
1558
+ }
1559
+ if (!editor.selection) {
1560
+ return false;
1561
+ }
1562
+ const anchorNodeEntry = Editor$1.above(editor, {
1563
+ at: editor.selection.anchor,
1564
+ match: (node) => !Editor$1.isEditor(node) && node.type !== "text"
1565
+ });
1566
+ const focusNodeEntry = Editor$1.above(editor, {
1567
+ at: editor.selection.focus,
1568
+ match: (node) => !Editor$1.isEditor(node) && node.type !== "text"
1569
+ });
1570
+ if (!anchorNodeEntry || !focusNodeEntry) {
1571
+ return false;
1572
+ }
1573
+ return anchorNodeEntry[0] !== focusNodeEntry[0];
1574
+ };
1549
1575
  const toggleList = (format2) => {
1550
1576
  let currentListEntry;
1551
1577
  if (editor.selection) {
@@ -1579,7 +1605,7 @@ const ListButton = ({ block, format }) => {
1579
1605
  name: format,
1580
1606
  label: block.label,
1581
1607
  isActive: isListActive(),
1582
- disabled,
1608
+ disabled: isListDisabled(),
1583
1609
  handleClick: () => toggleList(format)
1584
1610
  }
1585
1611
  );
@@ -1723,6 +1749,7 @@ const DragItem = styled(Flex)`
1723
1749
  }
1724
1750
  `;
1725
1751
  const DragIconButton = styled(IconButton)`
1752
+ user-select: none;
1726
1753
  display: flex;
1727
1754
  align-items: center;
1728
1755
  justify-content: center;
@@ -1746,7 +1773,7 @@ const DragIconButton = styled(IconButton)`
1746
1773
  }
1747
1774
  svg {
1748
1775
  height: auto;
1749
- width: ${({ theme }) => theme.spaces[3]};
1776
+ min-width: ${({ theme }) => theme.spaces[3]};
1750
1777
 
1751
1778
  path {
1752
1779
  fill: ${({ theme }) => theme.colors.neutral700};
@@ -1851,6 +1878,7 @@ const DragAndDropElement = ({
1851
1878
  DragIconButton,
1852
1879
  {
1853
1880
  tag: "div",
1881
+ contentEditable: false,
1854
1882
  role: "button",
1855
1883
  tabIndex: 0,
1856
1884
  withTooltip: false,
@@ -1863,7 +1891,7 @@ const DragAndDropElement = ({
1863
1891
  disabled,
1864
1892
  draggable: true,
1865
1893
  $dragHandleTopMargin: dragHandleTopMargin,
1866
- children: /* @__PURE__ */ jsx(Drag, { color: "neutral600" })
1894
+ children: /* @__PURE__ */ jsx(Drag, { color: "primary500" })
1867
1895
  }
1868
1896
  ),
1869
1897
  children
@@ -2187,7 +2215,7 @@ const EditorLayout$1 = ({
2187
2215
  /* @__PURE__ */ jsx(
2188
2216
  CollapseIconButton,
2189
2217
  {
2190
- "aria-label": formatMessage({
2218
+ label: formatMessage({
2191
2219
  id: getTranslation("components.Blocks.collapse"),
2192
2220
  defaultMessage: "Collapse"
2193
2221
  }),
@@ -2526,7 +2554,7 @@ const BlocksEditor = React.forwardRef(
2526
2554
  !isExpandedMode && /* @__PURE__ */ jsx(
2527
2555
  ExpandIconButton,
2528
2556
  {
2529
- "aria-label": formatMessage({
2557
+ label: formatMessage({
2530
2558
  id: getTranslation("components.Blocks.expand"),
2531
2559
  defaultMessage: "Expand"
2532
2560
  }),
@@ -2592,30 +2620,27 @@ const createDefaultForm = (contentType, components = {}) => {
2592
2620
  const Initializer = ({ disabled, name: name2, onClick }) => {
2593
2621
  const { formatMessage } = useIntl();
2594
2622
  const field = useField(name2);
2595
- return /* @__PURE__ */ jsxs(Fragment, { children: [
2596
- /* @__PURE__ */ jsx(
2597
- Box,
2598
- {
2599
- tag: "button",
2600
- background: "neutral100",
2601
- borderColor: field.error ? "danger600" : "neutral200",
2602
- hasRadius: true,
2603
- disabled,
2604
- onClick,
2605
- paddingTop: 9,
2606
- paddingBottom: 9,
2607
- type: "button",
2608
- children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
2609
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
2610
- /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
2611
- id: getTranslation("components.empty-repeatable"),
2612
- defaultMessage: "No entry yet. Click on the button below to add one."
2613
- }) }) })
2614
- ] })
2615
- }
2616
- ),
2617
- field.error && /* @__PURE__ */ jsx(Typography, { textColor: "danger600", variant: "pi", children: field.error })
2618
- ] });
2623
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
2624
+ Box,
2625
+ {
2626
+ tag: "button",
2627
+ background: "neutral100",
2628
+ borderColor: field.error ? "danger600" : "neutral200",
2629
+ hasRadius: true,
2630
+ disabled,
2631
+ onClick,
2632
+ paddingTop: 9,
2633
+ paddingBottom: 9,
2634
+ type: "button",
2635
+ children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: 2, children: [
2636
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(CircleIcon, {}) }),
2637
+ /* @__PURE__ */ jsx(Flex, { justifyContent: "center", children: /* @__PURE__ */ jsx(Typography, { textColor: "primary600", variant: "pi", fontWeight: "bold", children: formatMessage({
2638
+ id: getTranslation("components.empty-repeatable"),
2639
+ defaultMessage: "No entry yet. Click on the button below to add one."
2640
+ }) }) })
2641
+ ] })
2642
+ }
2643
+ ) });
2619
2644
  };
2620
2645
  const CircleIcon = styled(PlusCircle)`
2621
2646
  width: 2.4rem;
@@ -2649,7 +2674,18 @@ const NonRepeatableComponent = ({
2649
2674
  children: /* @__PURE__ */ jsx(Flex, { direction: "column", alignItems: "stretch", gap: 6, children: layout.map((row, index) => {
2650
2675
  return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2651
2676
  const completeFieldName = `${name2}.${field.name}`;
2652
- return /* @__PURE__ */ jsx(Grid$1.Item, { col: size, s: 12, xs: 12, children: children({ ...field, name: completeFieldName }) }, completeFieldName);
2677
+ return /* @__PURE__ */ jsx(
2678
+ Grid$1.Item,
2679
+ {
2680
+ col: size,
2681
+ s: 12,
2682
+ xs: 12,
2683
+ direction: "column",
2684
+ alignItems: "stretch",
2685
+ children: children({ ...field, name: completeFieldName })
2686
+ },
2687
+ completeFieldName
2688
+ );
2653
2689
  }) }, index);
2654
2690
  }) })
2655
2691
  }
@@ -2827,7 +2863,18 @@ const RepeatableComponent = ({
2827
2863
  children: layout.map((row, index2) => {
2828
2864
  return /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
2829
2865
  const completeFieldName = `${nameWithIndex}.${field.name}`;
2830
- return /* @__PURE__ */ jsx(Grid$1.Item, { col: size, s: 12, xs: 12, children: children({ ...field, name: completeFieldName }) }, completeFieldName);
2866
+ return /* @__PURE__ */ jsx(
2867
+ Grid$1.Item,
2868
+ {
2869
+ col: size,
2870
+ s: 12,
2871
+ xs: 12,
2872
+ direction: "column",
2873
+ alignItems: "stretch",
2874
+ children: children({ ...field, name: completeFieldName })
2875
+ },
2876
+ completeFieldName
2877
+ );
2831
2878
  }) }, index2);
2832
2879
  })
2833
2880
  }
@@ -2922,7 +2969,7 @@ const Component = ({
2922
2969
  /* @__PURE__ */ jsx(
2923
2970
  IconButton,
2924
2971
  {
2925
- borderWidth: 0,
2972
+ variant: "ghost",
2926
2973
  onClick: onDeleteComponent,
2927
2974
  label: formatMessage({
2928
2975
  id: getTranslation("containers.Edit.delete"),
@@ -2935,7 +2982,7 @@ const Component = ({
2935
2982
  IconButton,
2936
2983
  {
2937
2984
  ref: composedAccordionRefs,
2938
- borderWidth: 0,
2985
+ variant: "ghost",
2939
2986
  onClick: (e) => e.stopPropagation(),
2940
2987
  "data-handler-id": handlerId,
2941
2988
  label: formatMessage({
@@ -3005,7 +3052,7 @@ const ComponentInput = ({
3005
3052
  id: getTranslation("components.reset-entry"),
3006
3053
  defaultMessage: "Reset Entry"
3007
3054
  }),
3008
- borderWidth: 0,
3055
+ variant: "ghost",
3009
3056
  onClick: () => {
3010
3057
  field.onChange(name2, null);
3011
3058
  },
@@ -3034,11 +3081,8 @@ const AddComponentButton = ({
3034
3081
  onClick,
3035
3082
  disabled: isDisabled,
3036
3083
  background: "neutral0",
3037
- paddingTop: 3,
3038
- paddingBottom: 3,
3039
- paddingLeft: 4,
3040
- paddingRight: 4,
3041
3084
  style: { cursor: isDisabled ? "not-allowed" : "pointer" },
3085
+ variant: "tertiary",
3042
3086
  children: /* @__PURE__ */ jsxs(Flex, { tag: "span", gap: 2, children: [
3043
3087
  /* @__PURE__ */ jsx(StyledAddIcon, { "aria-hidden": true, $isOpen: isOpen, $hasError: hasError && !isOpen }),
3044
3088
  /* @__PURE__ */ jsx(
@@ -3067,10 +3111,11 @@ const StyledAddIcon = styled(PlusCircle)`
3067
3111
  }
3068
3112
  `;
3069
3113
  const AddComponentTitle = styled(Typography)``;
3070
- const StyledButton = styled(BaseButton)`
3114
+ const StyledButton = styled(Button)`
3071
3115
  border-radius: 26px;
3072
3116
  border-color: ${({ theme }) => theme.colors.neutral150};
3073
3117
  box-shadow: ${({ theme }) => theme.shadows.filterShadow};
3118
+ height: 5rem;
3074
3119
 
3075
3120
  &:hover {
3076
3121
  ${AddComponentTitle} {
@@ -3082,7 +3127,7 @@ const StyledButton = styled(BaseButton)`
3082
3127
  fill: ${({ theme }) => theme.colors.primary600};
3083
3128
  }
3084
3129
  > path {
3085
- fill: ${({ theme }) => theme.colors.neutral100};
3130
+ fill: ${({ theme }) => theme.colors.primary600};
3086
3131
  }
3087
3132
  }
3088
3133
  }
@@ -3213,18 +3258,6 @@ const NotAllowedInput = ({ hint, label, required, name: name2 }) => {
3213
3258
  /* @__PURE__ */ jsx(Field.Hint, {})
3214
3259
  ] });
3215
3260
  };
3216
- function useDebounce(value, delay) {
3217
- const [debouncedValue, setDebouncedValue] = useState(value);
3218
- useEffect(() => {
3219
- const handler = setTimeout(() => {
3220
- setDebouncedValue(value);
3221
- }, delay);
3222
- return () => {
3223
- clearTimeout(handler);
3224
- };
3225
- }, [value, delay]);
3226
- return debouncedValue;
3227
- }
3228
3261
  const uidApi = contentManagerApi.injectEndpoints({
3229
3262
  endpoints: (builder) => ({
3230
3263
  getDefaultUID: builder.query({
@@ -3259,7 +3292,10 @@ const uidApi = contentManagerApi.injectEndpoints({
3259
3292
  config: {
3260
3293
  params
3261
3294
  }
3262
- })
3295
+ }),
3296
+ providesTags: (_res, _error, params) => [
3297
+ { type: "UidAvailability", id: params.contentTypeUID }
3298
+ ]
3263
3299
  })
3264
3300
  })
3265
3301
  });
@@ -3271,8 +3307,10 @@ const UIDInput = React.forwardRef(
3271
3307
  const allFormValues = useForm("InputUID", (form) => form.values);
3272
3308
  const [availability, setAvailability] = React.useState();
3273
3309
  const [showRegenerate, setShowRegenerate] = React.useState(false);
3310
+ const isCloning = useMatch(CLONE_PATH) !== null;
3274
3311
  const field = useField(name2);
3275
3312
  const debouncedValue = useDebounce(field.value, 300);
3313
+ const hasChanged = debouncedValue !== field.initialValue;
3276
3314
  const { toggleNotification } = useNotification();
3277
3315
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
3278
3316
  const { formatMessage } = useIntl();
@@ -3348,8 +3386,9 @@ const UIDInput = React.forwardRef(
3348
3386
  params
3349
3387
  },
3350
3388
  {
3389
+ // Don't check availability if the value is empty or wasn't changed
3351
3390
  skip: !Boolean(
3352
- debouncedValue !== field.initialValue && debouncedValue && UID_REGEX.test(debouncedValue.trim())
3391
+ (hasChanged || isCloning) && debouncedValue && UID_REGEX.test(debouncedValue.trim())
3353
3392
  )
3354
3393
  }
3355
3394
  );
@@ -3378,6 +3417,7 @@ const UIDInput = React.forwardRef(
3378
3417
  const isLoading = isGeneratingDefaultUID || isGeneratingUID || isCheckingAvailability;
3379
3418
  const fieldRef = useFocusInputField(name2);
3380
3419
  const composedRefs = useComposedRefs(ref, fieldRef);
3420
+ const shouldShowAvailability = (hasChanged || isCloning) && debouncedValue != null && availability && !showRegenerate;
3381
3421
  return /* @__PURE__ */ jsxs(Field.Root, { hint, name: name2, error: field.error, required, children: [
3382
3422
  /* @__PURE__ */ jsx(Field.Label, { action: labelAction, children: label }),
3383
3423
  /* @__PURE__ */ jsx(
@@ -3386,7 +3426,7 @@ const UIDInput = React.forwardRef(
3386
3426
  ref: composedRefs,
3387
3427
  disabled: props.disabled,
3388
3428
  endAction: /* @__PURE__ */ jsxs(Flex, { position: "relative", gap: 1, children: [
3389
- availability && !showRegenerate && /* @__PURE__ */ jsxs(
3429
+ shouldShowAvailability && /* @__PURE__ */ jsxs(
3390
3430
  TextValidation,
3391
3431
  {
3392
3432
  alignItems: "center",
@@ -4220,7 +4260,7 @@ const EditorLayout = ({
4220
4260
  justifyContent: "flex-end",
4221
4261
  shrink: 0,
4222
4262
  width: "100%",
4223
- children: /* @__PURE__ */ jsxs(ExpandButton$1, { onClick: onCollapse, children: [
4263
+ children: /* @__PURE__ */ jsxs(ExpandButton$1, { onClick: onCollapse, variant: "tertiary", size: "M", children: [
4224
4264
  /* @__PURE__ */ jsx(Typography, { children: formatMessage({
4225
4265
  id: "components.Wysiwyg.collapse",
4226
4266
  defaultMessage: "Collapse"
@@ -4238,12 +4278,14 @@ const EditorLayout = ({
4238
4278
  ) }) });
4239
4279
  }
4240
4280
  return /* @__PURE__ */ jsx(
4241
- Box,
4281
+ Flex,
4242
4282
  {
4243
4283
  borderColor: error ? "danger600" : "neutral200",
4244
4284
  borderStyle: "solid",
4245
4285
  borderWidth: "1px",
4246
4286
  hasRadius: true,
4287
+ direction: "column",
4288
+ alignItems: "stretch",
4247
4289
  children
4248
4290
  }
4249
4291
  );
@@ -4254,11 +4296,19 @@ const ExpandWrapper = styled(Flex)`
4254
4296
  const BoxWithBorder = styled(Box)`
4255
4297
  border-right: 1px solid ${({ theme }) => theme.colors.neutral200};
4256
4298
  `;
4257
- const ExpandButton$1 = styled(BaseButton)`
4299
+ const ExpandButton$1 = styled(Button)`
4258
4300
  background-color: transparent;
4259
4301
  border: none;
4260
4302
  align-items: center;
4261
4303
 
4304
+ & > span {
4305
+ display: flex;
4306
+ justify-content: space-between;
4307
+ align-items: center;
4308
+ width: 100%;
4309
+ font-weight: ${({ theme }) => theme.fontWeights.regular};
4310
+ }
4311
+
4262
4312
  svg {
4263
4313
  margin-left: ${({ theme }) => `${theme.spaces[2]}`};
4264
4314
 
@@ -4525,40 +4575,28 @@ const quoteAndCodeHandler = (editor, markdownType) => {
4525
4575
  insertWithoutTextToEdit(editor, markdownType, line, contentLength);
4526
4576
  }
4527
4577
  };
4528
- const CustomIconButton = styled(IconButton)`
4529
- padding: ${({ theme }) => theme.spaces[2]};
4530
-
4531
- svg {
4532
- width: 1.8rem;
4533
- height: 1.8rem;
4534
- }
4535
- `;
4536
- const CustomLinkIconButton = styled(CustomIconButton)`
4537
- svg {
4538
- width: 0.8rem;
4539
- height: 0.8rem;
4540
- }
4541
- `;
4542
4578
  const MainButtons = styled(IconButtonGroup)`
4543
4579
  margin-left: ${({ theme }) => theme.spaces[4]};
4544
4580
  `;
4545
4581
  const MoreButton = styled(IconButton)`
4546
4582
  margin: ${({ theme }) => `0 ${theme.spaces[2]}`};
4547
- padding: ${({ theme }) => theme.spaces[2]};
4548
-
4549
- svg {
4550
- width: 1.8rem;
4551
- height: 1.8rem;
4552
- }
4553
4583
  `;
4554
4584
  const IconButtonGroupMargin = styled(IconButtonGroup)`
4555
4585
  margin-right: ${({ theme }) => `${theme.spaces[2]}`};
4556
4586
  `;
4557
- const ExpandButton = styled(BaseButton)`
4587
+ const ExpandButton = styled(Button)`
4558
4588
  background-color: transparent;
4559
4589
  border: none;
4560
4590
  align-items: center;
4561
4591
 
4592
+ & > span {
4593
+ display: flex;
4594
+ justify-content: space-between;
4595
+ align-items: center;
4596
+ width: 100%;
4597
+ font-weight: ${({ theme }) => theme.fontWeights.regular};
4598
+ }
4599
+
4562
4600
  svg {
4563
4601
  margin-left: ${({ theme }) => `${theme.spaces[2]}`};
4564
4602
  path {
@@ -4570,8 +4608,8 @@ const ExpandButton = styled(BaseButton)`
4570
4608
  `;
4571
4609
  const WysiwygFooter = ({ onToggleExpand }) => {
4572
4610
  const { formatMessage } = useIntl();
4573
- return /* @__PURE__ */ jsx(Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, children: [
4574
- /* @__PURE__ */ jsx(Typography, { children: formatMessage({
4611
+ return /* @__PURE__ */ jsx(Box, { padding: 2, background: "neutral100", borderRadius: `0 0 0.4rem 0.4rem`, children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", alignItems: "flex-end", children: /* @__PURE__ */ jsxs(ExpandButton, { id: "expand", onClick: onToggleExpand, variant: "tertiary", size: "M", children: [
4612
+ /* @__PURE__ */ jsx(Typography, { textColor: "neutral800", children: formatMessage({
4575
4613
  id: "components.WysiwygBottomControls.fullscreen",
4576
4614
  defaultMessage: "Expand"
4577
4615
  }) }),
@@ -4607,18 +4645,27 @@ const WysiwygNav = ({
4607
4645
  borderRadius: `0.4rem 0.4rem 0 0`,
4608
4646
  children: [
4609
4647
  /* @__PURE__ */ jsxs(Flex, { children: [
4610
- /* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsxs(SingleSelect, { disabled: true, placeholder: selectPlaceholder, "aria-label": selectPlaceholder, children: [
4611
- /* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
4612
- /* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
4613
- /* @__PURE__ */ jsx(SingleSelectOption, { value: "h3", children: "h3" }),
4614
- /* @__PURE__ */ jsx(SingleSelectOption, { value: "h4", children: "h4" }),
4615
- /* @__PURE__ */ jsx(SingleSelectOption, { value: "h5", children: "h5" }),
4616
- /* @__PURE__ */ jsx(SingleSelectOption, { value: "h6", children: "h6" })
4617
- ] }) }),
4648
+ /* @__PURE__ */ jsx(Field.Root, { children: /* @__PURE__ */ jsxs(
4649
+ SingleSelect,
4650
+ {
4651
+ disabled: true,
4652
+ placeholder: selectPlaceholder,
4653
+ "aria-label": selectPlaceholder,
4654
+ size: "S",
4655
+ children: [
4656
+ /* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
4657
+ /* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
4658
+ /* @__PURE__ */ jsx(SingleSelectOption, { value: "h3", children: "h3" }),
4659
+ /* @__PURE__ */ jsx(SingleSelectOption, { value: "h4", children: "h4" }),
4660
+ /* @__PURE__ */ jsx(SingleSelectOption, { value: "h5", children: "h5" }),
4661
+ /* @__PURE__ */ jsx(SingleSelectOption, { value: "h6", children: "h6" })
4662
+ ]
4663
+ }
4664
+ ) }),
4618
4665
  /* @__PURE__ */ jsxs(MainButtons, { children: [
4619
- /* @__PURE__ */ jsx(CustomIconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
4620
- /* @__PURE__ */ jsx(CustomIconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
4621
- /* @__PURE__ */ jsx(CustomIconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
4666
+ /* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
4667
+ /* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Italic", name: "Italic", children: /* @__PURE__ */ jsx(Italic, {}) }),
4668
+ /* @__PURE__ */ jsx(IconButton, { disabled: true, label: "Underline", name: "Underline", children: /* @__PURE__ */ jsx(Underline, {}) })
4622
4669
  ] }),
4623
4670
  /* @__PURE__ */ jsx(MoreButton, { disabled: true, label: "More", children: /* @__PURE__ */ jsx(More, {}) })
4624
4671
  ] }),
@@ -4645,6 +4692,7 @@ const WysiwygNav = ({
4645
4692
  placeholder: selectPlaceholder,
4646
4693
  "aria-label": selectPlaceholder,
4647
4694
  onChange: (value) => onActionClick(value, editorRef),
4695
+ size: "S",
4648
4696
  children: [
4649
4697
  /* @__PURE__ */ jsx(SingleSelectOption, { value: "h1", children: "h1" }),
4650
4698
  /* @__PURE__ */ jsx(SingleSelectOption, { value: "h2", children: "h2" }),
@@ -4656,17 +4704,9 @@ const WysiwygNav = ({
4656
4704
  }
4657
4705
  ) }),
4658
4706
  /* @__PURE__ */ jsxs(MainButtons, { children: [
4707
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => onActionClick("Bold", editorRef), label: "Bold", name: "Bold", children: /* @__PURE__ */ jsx(Bold, {}) }),
4659
4708
  /* @__PURE__ */ jsx(
4660
- CustomIconButton,
4661
- {
4662
- onClick: () => onActionClick("Bold", editorRef),
4663
- label: "Bold",
4664
- name: "Bold",
4665
- children: /* @__PURE__ */ jsx(Bold, {})
4666
- }
4667
- ),
4668
- /* @__PURE__ */ jsx(
4669
- CustomIconButton,
4709
+ IconButton,
4670
4710
  {
4671
4711
  onClick: () => onActionClick("Italic", editorRef),
4672
4712
  label: "Italic",
@@ -4675,7 +4715,7 @@ const WysiwygNav = ({
4675
4715
  }
4676
4716
  ),
4677
4717
  /* @__PURE__ */ jsx(
4678
- CustomIconButton,
4718
+ IconButton,
4679
4719
  {
4680
4720
  onClick: () => onActionClick("Underline", editorRef),
4681
4721
  label: "Underline",
@@ -4689,7 +4729,7 @@ const WysiwygNav = ({
4689
4729
  /* @__PURE__ */ jsx(Popover.Content, { sideOffset: 12, children: /* @__PURE__ */ jsxs(Flex, { padding: 2, children: [
4690
4730
  /* @__PURE__ */ jsxs(IconButtonGroupMargin, { children: [
4691
4731
  /* @__PURE__ */ jsx(
4692
- CustomIconButton,
4732
+ IconButton,
4693
4733
  {
4694
4734
  onClick: () => onActionClick("Strikethrough", editorRef, handleTogglePopover),
4695
4735
  label: "Strikethrough",
@@ -4698,7 +4738,7 @@ const WysiwygNav = ({
4698
4738
  }
4699
4739
  ),
4700
4740
  /* @__PURE__ */ jsx(
4701
- CustomIconButton,
4741
+ IconButton,
4702
4742
  {
4703
4743
  onClick: () => onActionClick("BulletList", editorRef, handleTogglePopover),
4704
4744
  label: "BulletList",
@@ -4707,7 +4747,7 @@ const WysiwygNav = ({
4707
4747
  }
4708
4748
  ),
4709
4749
  /* @__PURE__ */ jsx(
4710
- CustomIconButton,
4750
+ IconButton,
4711
4751
  {
4712
4752
  onClick: () => onActionClick("NumberList", editorRef, handleTogglePopover),
4713
4753
  label: "NumberList",
@@ -4718,7 +4758,7 @@ const WysiwygNav = ({
4718
4758
  ] }),
4719
4759
  /* @__PURE__ */ jsxs(IconButtonGroup, { children: [
4720
4760
  /* @__PURE__ */ jsx(
4721
- CustomIconButton,
4761
+ IconButton,
4722
4762
  {
4723
4763
  onClick: () => onActionClick("Code", editorRef, handleTogglePopover),
4724
4764
  label: "Code",
@@ -4727,7 +4767,7 @@ const WysiwygNav = ({
4727
4767
  }
4728
4768
  ),
4729
4769
  /* @__PURE__ */ jsx(
4730
- CustomIconButton,
4770
+ IconButton,
4731
4771
  {
4732
4772
  onClick: () => {
4733
4773
  handleTogglePopover();
@@ -4739,7 +4779,7 @@ const WysiwygNav = ({
4739
4779
  }
4740
4780
  ),
4741
4781
  /* @__PURE__ */ jsx(
4742
- CustomLinkIconButton,
4782
+ IconButton,
4743
4783
  {
4744
4784
  onClick: () => onActionClick("Link", editorRef, handleTogglePopover),
4745
4785
  label: "Link",
@@ -4748,7 +4788,7 @@ const WysiwygNav = ({
4748
4788
  }
4749
4789
  ),
4750
4790
  /* @__PURE__ */ jsx(
4751
- CustomIconButton,
4791
+ IconButton,
4752
4792
  {
4753
4793
  onClick: () => onActionClick("Quote", editorRef, handleTogglePopover),
4754
4794
  label: "Quote",
@@ -4984,7 +5024,9 @@ const useFieldHint = (hint = void 0, attribute) => {
4984
5024
  if (!maximum && !minimum) {
4985
5025
  return hint;
4986
5026
  }
4987
- const units = !["biginteger", "integer", "number"].includes(attribute.type) ? formatMessage(
5027
+ const units = !["biginteger", "integer", "number", "dynamiczone", "component"].includes(
5028
+ attribute.type
5029
+ ) ? formatMessage(
4988
5030
  {
4989
5031
  id: "content-manager.form.Input.hint.character.unit",
4990
5032
  defaultMessage: "{maxValue, plural, one { character} other { characters}}"
@@ -5078,7 +5120,7 @@ const DynamicComponent = ({
5078
5120
  /* @__PURE__ */ jsx(
5079
5121
  IconButton,
5080
5122
  {
5081
- borderWidth: 0,
5123
+ variant: "ghost",
5082
5124
  label: formatMessage(
5083
5125
  {
5084
5126
  id: getTranslation("components.DynamicZone.delete-label"),
@@ -5093,7 +5135,7 @@ const DynamicComponent = ({
5093
5135
  /* @__PURE__ */ jsx(
5094
5136
  IconButton,
5095
5137
  {
5096
- borderWidth: 0,
5138
+ variant: "ghost",
5097
5139
  onClick: (e) => e.stopPropagation(),
5098
5140
  "data-handler-id": handlerId,
5099
5141
  ref: dragRef,
@@ -5154,7 +5196,18 @@ const DynamicComponent = ({
5154
5196
  ] }),
5155
5197
  /* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(AccordionContentRadius, { background: "neutral0", children: /* @__PURE__ */ jsx(Box, { paddingLeft: 6, paddingRight: 6, paddingTop: 6, paddingBottom: 6, children: components[componentUid]?.layout?.map((row, rowInd) => /* @__PURE__ */ jsx(Grid$1.Root, { gap: 4, children: row.map(({ size, ...field }) => {
5156
5198
  const fieldName = `${name2}.${index}.${field.name}`;
5157
- return /* @__PURE__ */ jsx(Grid$1.Item, { col: size, s: 12, xs: 12, children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName }) }, fieldName);
5199
+ return /* @__PURE__ */ jsx(
5200
+ Grid$1.Item,
5201
+ {
5202
+ col: size,
5203
+ s: 12,
5204
+ xs: 12,
5205
+ direction: "column",
5206
+ alignItems: "stretch",
5207
+ children: /* @__PURE__ */ jsx(MemoizedInputRenderer, { ...field, name: fieldName })
5208
+ },
5209
+ fieldName
5210
+ );
5158
5211
  }) }, rowInd)) }) }) })
5159
5212
  ] }) }) })
5160
5213
  ] });
@@ -5347,7 +5400,7 @@ const DynamicZone = ({
5347
5400
  const handleRemoveComponent = (name22, currentIndex) => () => {
5348
5401
  removeFieldRow(name22, currentIndex);
5349
5402
  };
5350
- const hasError = error !== void 0 || dynamicDisplayedComponentsLength < min || dynamicDisplayedComponentsLength > max;
5403
+ const hasError = error !== void 0;
5351
5404
  const renderButtonLabel = () => {
5352
5405
  if (addComponentIsOpen) {
5353
5406
  return formatMessage({ id: "app.utils.close-label", defaultMessage: "Close" });
@@ -5463,4 +5516,4 @@ export {
5463
5516
  transformDocument as t,
5464
5517
  useLazyComponents as u
5465
5518
  };
5466
- //# sourceMappingURL=Field-R5NbffTB.mjs.map
5519
+ //# sourceMappingURL=Field-CnCKhI1R.mjs.map