@strapi/content-manager 0.0.0-next.c823b10e981295994d8b0733c78fa065aec064ee → 0.0.0-next.c9f32f6f0c2be1b88323373117f12eb33219d20e

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 (103) hide show
  1. package/dist/_chunks/{ComponentConfigurationPage-BpM_Hc7r.mjs → ComponentConfigurationPage-BaJMOQyq.mjs} +3 -3
  2. package/dist/_chunks/{ComponentConfigurationPage-BpM_Hc7r.mjs.map → ComponentConfigurationPage-BaJMOQyq.mjs.map} +1 -1
  3. package/dist/_chunks/{ComponentConfigurationPage-CL9CAMaL.js → ComponentConfigurationPage-N-CTtgQa.js} +3 -3
  4. package/dist/_chunks/{ComponentConfigurationPage-CL9CAMaL.js.map → ComponentConfigurationPage-N-CTtgQa.js.map} +1 -1
  5. package/dist/_chunks/{EditConfigurationPage-ILWo0h1e.js → EditConfigurationPage-BHkjAbxH.js} +3 -3
  6. package/dist/_chunks/{EditConfigurationPage-ILWo0h1e.js.map → EditConfigurationPage-BHkjAbxH.js.map} +1 -1
  7. package/dist/_chunks/{EditConfigurationPage-_prbqpTM.mjs → EditConfigurationPage-CKK-5LfX.mjs} +3 -3
  8. package/dist/_chunks/{EditConfigurationPage-_prbqpTM.mjs.map → EditConfigurationPage-CKK-5LfX.mjs.map} +1 -1
  9. package/dist/_chunks/{EditViewPage-DAtscabN.mjs → EditViewPage-B11aeMcf.mjs} +38 -8
  10. package/dist/_chunks/EditViewPage-B11aeMcf.mjs.map +1 -0
  11. package/dist/_chunks/{EditViewPage-BqZvBN4s.js → EditViewPage-QPUftxUd.js} +37 -7
  12. package/dist/_chunks/EditViewPage-QPUftxUd.js.map +1 -0
  13. package/dist/_chunks/{Field-D-mgn1tH.mjs → Field-Bj_RgtGo.mjs} +43 -24
  14. package/dist/_chunks/Field-Bj_RgtGo.mjs.map +1 -0
  15. package/dist/_chunks/{Field-CcoQiiz1.js → Field-DUK83cfh.js} +42 -23
  16. package/dist/_chunks/Field-DUK83cfh.js.map +1 -0
  17. package/dist/_chunks/{Form-CmLbZDfi.js → Form-DHmBRlHd.js} +2 -2
  18. package/dist/_chunks/{Form-CmLbZDfi.js.map → Form-DHmBRlHd.js.map} +1 -1
  19. package/dist/_chunks/{Form-BxyeWiXW.mjs → Form-DLMSoXV7.mjs} +2 -2
  20. package/dist/_chunks/{Form-BxyeWiXW.mjs.map → Form-DLMSoXV7.mjs.map} +1 -1
  21. package/dist/_chunks/{History-BOhLaq_g.mjs → History-CfCSNlG9.mjs} +9 -63
  22. package/dist/_chunks/History-CfCSNlG9.mjs.map +1 -0
  23. package/dist/_chunks/{History-uECUbCZB.js → History-Di3zm4HT.js} +8 -62
  24. package/dist/_chunks/History-Di3zm4HT.js.map +1 -0
  25. package/dist/_chunks/{ListConfigurationPage-D0vQez6F.mjs → ListConfigurationPage-0mtv_iqk.mjs} +5 -4
  26. package/dist/_chunks/ListConfigurationPage-0mtv_iqk.mjs.map +1 -0
  27. package/dist/_chunks/{ListConfigurationPage-D_bBSFNW.js → ListConfigurationPage-Cq361KIt.js} +4 -3
  28. package/dist/_chunks/ListConfigurationPage-Cq361KIt.js.map +1 -0
  29. package/dist/_chunks/{ListViewPage-ns-bmy5C.mjs → ListViewPage-BxLVROX8.mjs} +63 -51
  30. package/dist/_chunks/ListViewPage-BxLVROX8.mjs.map +1 -0
  31. package/dist/_chunks/{ListViewPage-BkZ83b1A.js → ListViewPage-DFDcG8gM.js} +63 -51
  32. package/dist/_chunks/ListViewPage-DFDcG8gM.js.map +1 -0
  33. package/dist/_chunks/{NoContentTypePage-BA5ZKMDR.mjs → NoContentTypePage-BRfDd67_.mjs} +2 -2
  34. package/dist/_chunks/{NoContentTypePage-BA5ZKMDR.mjs.map → NoContentTypePage-BRfDd67_.mjs.map} +1 -1
  35. package/dist/_chunks/{NoContentTypePage-C1439s4s.js → NoContentTypePage-BSyvnDZZ.js} +2 -2
  36. package/dist/_chunks/{NoContentTypePage-C1439s4s.js.map → NoContentTypePage-BSyvnDZZ.js.map} +1 -1
  37. package/dist/_chunks/{NoPermissionsPage-B0GdMw1Q.mjs → NoPermissionsPage-CV9V8KWa.mjs} +2 -2
  38. package/dist/_chunks/{NoPermissionsPage-B0GdMw1Q.mjs.map → NoPermissionsPage-CV9V8KWa.mjs.map} +1 -1
  39. package/dist/_chunks/{NoPermissionsPage-CPGwsVfb.js → NoPermissionsPage-DyLphsn_.js} +2 -2
  40. package/dist/_chunks/{NoPermissionsPage-CPGwsVfb.js.map → NoPermissionsPage-DyLphsn_.js.map} +1 -1
  41. package/dist/_chunks/Preview-C_B1nx3g.mjs +272 -0
  42. package/dist/_chunks/Preview-C_B1nx3g.mjs.map +1 -0
  43. package/dist/_chunks/Preview-D_3aO6Ly.js +291 -0
  44. package/dist/_chunks/Preview-D_3aO6Ly.js.map +1 -0
  45. package/dist/_chunks/{Relations-BIGPMSW4.mjs → Relations-C6pwmDXh.mjs} +3 -3
  46. package/dist/_chunks/{Relations-BIGPMSW4.mjs.map → Relations-C6pwmDXh.mjs.map} +1 -1
  47. package/dist/_chunks/{Relations-d-8Uef_-.js → Relations-Cne2AlrL.js} +3 -3
  48. package/dist/_chunks/{Relations-d-8Uef_-.js.map → Relations-Cne2AlrL.js.map} +1 -1
  49. package/dist/_chunks/{en-CZw4xdPY.mjs → en-DhFUjrNW.mjs} +10 -3
  50. package/dist/_chunks/{en-CZw4xdPY.mjs.map → en-DhFUjrNW.mjs.map} +1 -1
  51. package/dist/_chunks/{en-Bdpa50w3.js → en-Ic0kXjxB.js} +10 -3
  52. package/dist/_chunks/{en-Bdpa50w3.js.map → en-Ic0kXjxB.js.map} +1 -1
  53. package/dist/_chunks/{index-3_WeHXYp.mjs → index-BpxR3En4.mjs} +122 -116
  54. package/dist/_chunks/index-BpxR3En4.mjs.map +1 -0
  55. package/dist/_chunks/{index-BgaeYWIy.js → index-T-aWjbj2.js} +116 -110
  56. package/dist/_chunks/index-T-aWjbj2.js.map +1 -0
  57. package/dist/_chunks/{layout-ByFyQRDH.js → layout-BEuNwv-F.js} +3 -3
  58. package/dist/_chunks/{layout-ByFyQRDH.js.map → layout-BEuNwv-F.js.map} +1 -1
  59. package/dist/_chunks/{layout-CrTxOnCy.mjs → layout-DhMZ_lDx.mjs} +3 -3
  60. package/dist/_chunks/{layout-CrTxOnCy.mjs.map → layout-DhMZ_lDx.mjs.map} +1 -1
  61. package/dist/_chunks/{relations-BlpLgngh.mjs → relations-BdnxoX6f.mjs} +6 -3
  62. package/dist/_chunks/relations-BdnxoX6f.mjs.map +1 -0
  63. package/dist/_chunks/{relations-C5RSW926.js → relations-kLcuobLk.js} +6 -3
  64. package/dist/_chunks/relations-kLcuobLk.js.map +1 -0
  65. package/dist/admin/index.js +1 -1
  66. package/dist/admin/index.mjs +4 -4
  67. package/dist/admin/src/pages/EditView/EditViewPage.d.ts +9 -1
  68. package/dist/admin/src/pages/EditView/components/DocumentStatus.d.ts +2 -2
  69. package/dist/admin/src/preview/components/PreviewContent.d.ts +2 -0
  70. package/dist/admin/src/preview/components/PreviewHeader.d.ts +2 -0
  71. package/dist/admin/src/preview/pages/Preview.d.ts +11 -0
  72. package/dist/admin/src/preview/routes.d.ts +3 -0
  73. package/dist/admin/src/router.d.ts +1 -1
  74. package/dist/admin/src/services/documents.d.ts +0 -3
  75. package/dist/server/index.js +56 -9
  76. package/dist/server/index.js.map +1 -1
  77. package/dist/server/index.mjs +57 -10
  78. package/dist/server/index.mjs.map +1 -1
  79. package/dist/server/src/preview/controllers/validation/preview.d.ts.map +1 -1
  80. package/dist/server/src/preview/index.d.ts.map +1 -1
  81. package/dist/server/src/preview/services/index.d.ts +1 -0
  82. package/dist/server/src/preview/services/index.d.ts.map +1 -1
  83. package/dist/server/src/preview/services/preview-config.d.ts +2 -0
  84. package/dist/server/src/preview/services/preview-config.d.ts.map +1 -1
  85. package/dist/server/src/preview/utils.d.ts +1 -0
  86. package/dist/server/src/preview/utils.d.ts.map +1 -1
  87. package/dist/server/src/register.d.ts.map +1 -1
  88. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  89. package/package.json +9 -9
  90. package/dist/_chunks/EditViewPage-BqZvBN4s.js.map +0 -1
  91. package/dist/_chunks/EditViewPage-DAtscabN.mjs.map +0 -1
  92. package/dist/_chunks/Field-CcoQiiz1.js.map +0 -1
  93. package/dist/_chunks/Field-D-mgn1tH.mjs.map +0 -1
  94. package/dist/_chunks/History-BOhLaq_g.mjs.map +0 -1
  95. package/dist/_chunks/History-uECUbCZB.js.map +0 -1
  96. package/dist/_chunks/ListConfigurationPage-D0vQez6F.mjs.map +0 -1
  97. package/dist/_chunks/ListConfigurationPage-D_bBSFNW.js.map +0 -1
  98. package/dist/_chunks/ListViewPage-BkZ83b1A.js.map +0 -1
  99. package/dist/_chunks/ListViewPage-ns-bmy5C.mjs.map +0 -1
  100. package/dist/_chunks/index-3_WeHXYp.mjs.map +0 -1
  101. package/dist/_chunks/index-BgaeYWIy.js.map +0 -1
  102. package/dist/_chunks/relations-BlpLgngh.mjs.map +0 -1
  103. package/dist/_chunks/relations-C5RSW926.js.map +0 -1
@@ -7,11 +7,11 @@ const designSystem = require("@strapi/design-system");
7
7
  const mapValues = require("lodash/fp/mapValues");
8
8
  const reactIntl = require("react-intl");
9
9
  const reactRouterDom = require("react-router-dom");
10
+ const styledComponents = require("styled-components");
10
11
  const yup = require("yup");
12
+ const qs = require("qs");
11
13
  const pipe = require("lodash/fp/pipe");
12
14
  const dateFns = require("date-fns");
13
- const styledComponents = require("styled-components");
14
- const qs = require("qs");
15
15
  const toolkit = require("@reduxjs/toolkit");
16
16
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
17
17
  function _interopNamespace(e) {
@@ -296,7 +296,7 @@ const documentApi = contentManagerApi.injectEndpoints({
296
296
  url: `/content-manager/collection-types/${model}`,
297
297
  method: "GET",
298
298
  config: {
299
- params
299
+ params: qs.stringify(params, { encode: true })
300
300
  }
301
301
  }),
302
302
  providesTags: (result, _error, arg) => {
@@ -484,9 +484,6 @@ const buildValidParams = (query) => {
484
484
  {}
485
485
  )
486
486
  };
487
- if ("_q" in validQueryParams) {
488
- validQueryParams._q = encodeURIComponent(validQueryParams._q);
489
- }
490
487
  return validQueryParams;
491
488
  };
492
489
  const isBaseQueryError = (error) => {
@@ -1685,10 +1682,10 @@ const useDocumentActions = () => {
1685
1682
  update
1686
1683
  };
1687
1684
  };
1688
- const ProtectedHistoryPage = React.lazy(
1689
- () => Promise.resolve().then(() => require("./History-uECUbCZB.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
1685
+ const ProtectedHistoryPage = React__namespace.lazy(
1686
+ () => Promise.resolve().then(() => require("./History-Di3zm4HT.js")).then((mod) => ({ default: mod.ProtectedHistoryPage }))
1690
1687
  );
1691
- const routes$1 = [
1688
+ const routes$2 = [
1692
1689
  {
1693
1690
  path: ":collectionType/:slug/:id/history",
1694
1691
  Component: ProtectedHistoryPage
@@ -1698,32 +1695,45 @@ const routes$1 = [
1698
1695
  Component: ProtectedHistoryPage
1699
1696
  }
1700
1697
  ];
1698
+ const ProtectedPreviewPage = React__namespace.lazy(
1699
+ () => Promise.resolve().then(() => require("./Preview-D_3aO6Ly.js")).then((mod) => ({ default: mod.ProtectedPreviewPage }))
1700
+ );
1701
+ const routes$1 = [
1702
+ {
1703
+ path: ":collectionType/:slug/:id/preview",
1704
+ Component: ProtectedPreviewPage
1705
+ },
1706
+ {
1707
+ path: ":collectionType/:slug/preview",
1708
+ Component: ProtectedPreviewPage
1709
+ }
1710
+ ];
1701
1711
  const ProtectedEditViewPage = React.lazy(
1702
- () => Promise.resolve().then(() => require("./EditViewPage-BqZvBN4s.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
1712
+ () => Promise.resolve().then(() => require("./EditViewPage-QPUftxUd.js")).then((mod) => ({ default: mod.ProtectedEditViewPage }))
1703
1713
  );
1704
1714
  const ProtectedListViewPage = React.lazy(
1705
- () => Promise.resolve().then(() => require("./ListViewPage-BkZ83b1A.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
1715
+ () => Promise.resolve().then(() => require("./ListViewPage-DFDcG8gM.js")).then((mod) => ({ default: mod.ProtectedListViewPage }))
1706
1716
  );
1707
1717
  const ProtectedListConfiguration = React.lazy(
1708
- () => Promise.resolve().then(() => require("./ListConfigurationPage-D_bBSFNW.js")).then((mod) => ({
1718
+ () => Promise.resolve().then(() => require("./ListConfigurationPage-Cq361KIt.js")).then((mod) => ({
1709
1719
  default: mod.ProtectedListConfiguration
1710
1720
  }))
1711
1721
  );
1712
1722
  const ProtectedEditConfigurationPage = React.lazy(
1713
- () => Promise.resolve().then(() => require("./EditConfigurationPage-ILWo0h1e.js")).then((mod) => ({
1723
+ () => Promise.resolve().then(() => require("./EditConfigurationPage-BHkjAbxH.js")).then((mod) => ({
1714
1724
  default: mod.ProtectedEditConfigurationPage
1715
1725
  }))
1716
1726
  );
1717
1727
  const ProtectedComponentConfigurationPage = React.lazy(
1718
- () => Promise.resolve().then(() => require("./ComponentConfigurationPage-CL9CAMaL.js")).then((mod) => ({
1728
+ () => Promise.resolve().then(() => require("./ComponentConfigurationPage-N-CTtgQa.js")).then((mod) => ({
1719
1729
  default: mod.ProtectedComponentConfigurationPage
1720
1730
  }))
1721
1731
  );
1722
1732
  const NoPermissions = React.lazy(
1723
- () => Promise.resolve().then(() => require("./NoPermissionsPage-CPGwsVfb.js")).then((mod) => ({ default: mod.NoPermissions }))
1733
+ () => Promise.resolve().then(() => require("./NoPermissionsPage-DyLphsn_.js")).then((mod) => ({ default: mod.NoPermissions }))
1724
1734
  );
1725
1735
  const NoContentType = React.lazy(
1726
- () => Promise.resolve().then(() => require("./NoContentTypePage-C1439s4s.js")).then((mod) => ({ default: mod.NoContentType }))
1736
+ () => Promise.resolve().then(() => require("./NoContentTypePage-BSyvnDZZ.js")).then((mod) => ({ default: mod.NoContentType }))
1727
1737
  );
1728
1738
  const CollectionTypePages = () => {
1729
1739
  const { collectionType } = reactRouterDom.useParams();
@@ -1735,7 +1745,7 @@ const CollectionTypePages = () => {
1735
1745
  const CLONE_RELATIVE_PATH = ":collectionType/:slug/clone/:origin";
1736
1746
  const CLONE_PATH = `/content-manager/${CLONE_RELATIVE_PATH}`;
1737
1747
  const LIST_RELATIVE_PATH = ":collectionType/:slug";
1738
- const LIST_PATH = `/content-manager/${LIST_RELATIVE_PATH}`;
1748
+ const LIST_PATH = `/content-manager/collection-types/:slug`;
1739
1749
  const routes = [
1740
1750
  {
1741
1751
  path: LIST_RELATIVE_PATH,
@@ -1769,6 +1779,7 @@ const routes = [
1769
1779
  path: "no-content-types",
1770
1780
  Component: NoContentType
1771
1781
  },
1782
+ ...routes$2,
1772
1783
  ...routes$1
1773
1784
  ];
1774
1785
  const DocumentActions = ({ actions: actions2 }) => {
@@ -1867,6 +1878,11 @@ const DocumentActionButton = (action) => {
1867
1878
  ) : null
1868
1879
  ] });
1869
1880
  };
1881
+ const MenuItem = styledComponents.styled(designSystem.Menu.Item)`
1882
+ &:hover {
1883
+ background: ${({ theme, isVariantDanger, isDisabled }) => isVariantDanger && !isDisabled ? theme.colors.danger100 : "neutral"};
1884
+ }
1885
+ `;
1870
1886
  const DocumentActionsMenu = ({
1871
1887
  actions: actions2,
1872
1888
  children,
@@ -1925,48 +1941,32 @@ const DocumentActionsMenu = ({
1925
1941
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { maxHeight: void 0, popoverPlacement: "bottom-end", children: [
1926
1942
  actions2.map((action) => {
1927
1943
  return /* @__PURE__ */ jsxRuntime.jsx(
1928
- designSystem.Menu.Item,
1944
+ MenuItem,
1929
1945
  {
1930
1946
  disabled: action.disabled,
1931
1947
  onSelect: handleClick(action),
1932
1948
  display: "block",
1933
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: [
1934
- /* @__PURE__ */ jsxRuntime.jsxs(
1935
- designSystem.Flex,
1936
- {
1937
- color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
1938
- gap: 2,
1939
- tag: "span",
1940
- children: [
1941
- /* @__PURE__ */ jsxRuntime.jsx(
1942
- designSystem.Flex,
1943
- {
1944
- tag: "span",
1945
- color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
1946
- children: action.icon
1947
- }
1948
- ),
1949
- action.label
1950
- ]
1951
- }
1952
- ),
1953
- action.id.startsWith("HistoryAction") && /* @__PURE__ */ jsxRuntime.jsx(
1954
- designSystem.Flex,
1955
- {
1956
- alignItems: "center",
1957
- background: "alternative100",
1958
- borderStyle: "solid",
1959
- borderColor: "alternative200",
1960
- borderWidth: "1px",
1961
- height: 5,
1962
- paddingLeft: 2,
1963
- paddingRight: 2,
1964
- hasRadius: true,
1965
- color: "alternative600",
1966
- children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "sigma", fontWeight: "bold", lineHeight: 1, children: formatMessage({ id: "global.new", defaultMessage: "New" }) })
1967
- }
1968
- )
1969
- ] })
1949
+ isVariantDanger: action.variant === "danger",
1950
+ isDisabled: action.disabled,
1951
+ children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { justifyContent: "space-between", gap: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(
1952
+ designSystem.Flex,
1953
+ {
1954
+ color: !action.disabled ? convertActionVariantToColor(action.variant) : "inherit",
1955
+ gap: 2,
1956
+ tag: "span",
1957
+ children: [
1958
+ /* @__PURE__ */ jsxRuntime.jsx(
1959
+ designSystem.Flex,
1960
+ {
1961
+ tag: "span",
1962
+ color: !action.disabled ? convertActionVariantToIconColor(action.variant) : "inherit",
1963
+ children: action.icon
1964
+ }
1965
+ ),
1966
+ action.label
1967
+ ]
1968
+ }
1969
+ ) })
1970
1970
  },
1971
1971
  action.id
1972
1972
  );
@@ -2103,6 +2103,7 @@ const PublishAction$1 = ({
2103
2103
  const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
2104
2104
  const isListView = reactRouterDom.useMatch(LIST_PATH) !== null;
2105
2105
  const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
2106
+ const { id } = reactRouterDom.useParams();
2106
2107
  const { formatMessage } = reactIntl.useIntl();
2107
2108
  const canPublish = useDocumentRBAC("PublishAction", ({ canPublish: canPublish2 }) => canPublish2);
2108
2109
  const { publish } = useDocumentActions();
@@ -2205,10 +2206,12 @@ const PublishAction$1 = ({
2205
2206
  transformData(formValues)
2206
2207
  );
2207
2208
  if ("data" in res && collectionType !== SINGLE_TYPES) {
2208
- navigate({
2209
- pathname: `../${collectionType}/${model}/${res.data.documentId}`,
2210
- search: rawQuery
2211
- });
2209
+ if (id === "create") {
2210
+ navigate({
2211
+ pathname: `../${collectionType}/${model}/${res.data.documentId}`,
2212
+ search: rawQuery
2213
+ });
2214
+ }
2212
2215
  } else if ("error" in res && isBaseQueryError(res.error) && res.error.name === "ValidationError") {
2213
2216
  setErrors(formatValidationErrors(res.error));
2214
2217
  }
@@ -2292,7 +2295,7 @@ const UpdateAction = ({
2292
2295
  */
2293
2296
  disabled: isSubmitting || !modified && !isCloning || activeTab === "published",
2294
2297
  label: formatMessage({
2295
- id: "content-manager.containers.Edit.save",
2298
+ id: "global.save",
2296
2299
  defaultMessage: "Save"
2297
2300
  }),
2298
2301
  onClick: async () => {
@@ -2557,7 +2560,7 @@ const RelativeTime = React__namespace.forwardRef(
2557
2560
  });
2558
2561
  const unit = intervals.find((intervalUnit) => {
2559
2562
  return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
2560
- });
2563
+ }) ?? "seconds";
2561
2564
  const relativeTime = dateFns.isPast(timestamp) ? -interval[unit] : interval[unit];
2562
2565
  const customInterval = customIntervals.find(
2563
2566
  (custom) => interval[custom.unit] < custom.threshold
@@ -2591,19 +2594,29 @@ const getDisplayName = ({
2591
2594
  return email ?? "";
2592
2595
  };
2593
2596
  const capitalise = (str) => str.charAt(0).toUpperCase() + str.slice(1);
2594
- const DocumentStatus = ({ status = "draft", ...restProps }) => {
2597
+ const DocumentStatus = ({ status = "draft", size = "S", ...restProps }) => {
2595
2598
  const statusVariant = status === "draft" ? "secondary" : status === "published" ? "success" : "alternative";
2596
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, showBullet: false, size: "S", variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: capitalise(status) }) });
2599
+ const { formatMessage } = reactIntl.useIntl();
2600
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Status, { ...restProps, size, variant: statusVariant, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "span", variant: "omega", fontWeight: "bold", children: formatMessage({
2601
+ id: `content-manager.containers.List.${status}`,
2602
+ defaultMessage: capitalise(status)
2603
+ }) }) });
2597
2604
  };
2598
2605
  const Header = ({ isCreating, status, title: documentTitle = "Untitled" }) => {
2599
2606
  const { formatMessage } = reactIntl.useIntl();
2600
2607
  const isCloning = reactRouterDom.useMatch(CLONE_PATH) !== null;
2608
+ const params = reactRouterDom.useParams();
2601
2609
  const title = isCreating ? formatMessage({
2602
2610
  id: "content-manager.containers.edit.title.new",
2603
2611
  defaultMessage: "Create an entry"
2604
2612
  }) : documentTitle;
2605
2613
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "flex-start", paddingTop: 6, paddingBottom: 4, gap: 2, children: [
2606
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.BackButton, {}),
2614
+ /* @__PURE__ */ jsxRuntime.jsx(
2615
+ strapiAdmin.BackButton,
2616
+ {
2617
+ fallback: params.collectionType === SINGLE_TYPES ? void 0 : `../${COLLECTION_TYPES}/${params.slug}`
2618
+ }
2619
+ ),
2607
2620
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { width: "100%", justifyContent: "space-between", gap: "80px", alignItems: "flex-start", children: [
2608
2621
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "alpha", tag: "h1", children: title }),
2609
2622
  /* @__PURE__ */ jsxRuntime.jsx(HeaderToolbar, {})
@@ -3290,18 +3303,10 @@ const SelectedEntriesTableContent = ({
3290
3303
  search: row.locale && `?plugins[i18n][locale]=${row.locale}`
3291
3304
  },
3292
3305
  state: { from: pathname },
3293
- label: formatMessage(
3294
- { id: "app.component.HelperPluginTable.edit", defaultMessage: "Edit {target}" },
3295
- {
3296
- target: formatMessage(
3297
- {
3298
- id: "content-manager.components.ListViewHelperPluginTable.row-line",
3299
- defaultMessage: "item line {number}"
3300
- },
3301
- { number: index2 + 1 }
3302
- )
3303
- }
3304
- ),
3306
+ label: formatMessage({
3307
+ id: "content-manager.bulk-publish.edit",
3308
+ defaultMessage: "Edit"
3309
+ }),
3305
3310
  target: "_blank",
3306
3311
  marginLeft: "auto",
3307
3312
  variant: "ghost",
@@ -3945,17 +3950,27 @@ const HistoryAction = ({ model, document }) => {
3945
3950
  const { formatMessage } = reactIntl.useIntl();
3946
3951
  const [{ query }] = strapiAdmin.useQueryParams();
3947
3952
  const navigate = reactRouterDom.useNavigate();
3953
+ const { trackUsage } = strapiAdmin.useTracking();
3954
+ const { pathname } = reactRouterDom.useLocation();
3948
3955
  const pluginsQueryParams = qs.stringify({ plugins: query.plugins }, { encode: false });
3949
3956
  if (!window.strapi.features.isEnabled("cms-content-history")) {
3950
3957
  return null;
3951
3958
  }
3959
+ const handleOnClick = () => {
3960
+ const destination = { pathname: "history", search: pluginsQueryParams };
3961
+ trackUsage("willNavigate", {
3962
+ from: pathname,
3963
+ to: `${pathname}/${destination.pathname}`
3964
+ });
3965
+ navigate(destination);
3966
+ };
3952
3967
  return {
3953
3968
  icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ClockCounterClockwise, {}),
3954
3969
  label: formatMessage({
3955
3970
  id: "content-manager.history.document-action",
3956
3971
  defaultMessage: "Content History"
3957
3972
  }),
3958
- onClick: () => navigate({ pathname: "history", search: pluginsQueryParams }),
3973
+ onClick: handleOnClick,
3959
3974
  disabled: (
3960
3975
  /**
3961
3976
  * The user is creating a new document.
@@ -4041,8 +4056,9 @@ const previewApi = contentManagerApi.injectEndpoints({
4041
4056
  const { useGetPreviewUrlQuery } = previewApi;
4042
4057
  const PreviewSidePanel = ({ model, documentId, document }) => {
4043
4058
  const { formatMessage } = reactIntl.useIntl();
4044
- const { toggleNotification } = strapiAdmin.useNotification();
4045
- const { copy } = strapiAdmin.useClipboard();
4059
+ const { trackUsage } = strapiAdmin.useTracking();
4060
+ const { pathname } = reactRouterDom.useLocation();
4061
+ const [{ query }] = strapiAdmin.useQueryParams();
4046
4062
  const { data, error } = useGetPreviewUrlQuery({
4047
4063
  params: {
4048
4064
  contentType: model
@@ -4056,37 +4072,26 @@ const PreviewSidePanel = ({ model, documentId, document }) => {
4056
4072
  if (!data?.data?.url || error) {
4057
4073
  return null;
4058
4074
  }
4059
- const { url } = data.data;
4060
- const handleCopyLink = () => {
4061
- copy(url);
4062
- toggleNotification({
4063
- message: formatMessage({
4064
- id: "content-manager.preview.copy.success",
4065
- defaultMessage: "Copied preview link"
4066
- }),
4067
- type: "success"
4068
- });
4075
+ const trackNavigation = () => {
4076
+ const destinationPathname = pathname.replace(/\/$/, "") + "/preview";
4077
+ trackUsage("willNavigate", { from: pathname, to: destinationPathname });
4069
4078
  };
4070
4079
  return {
4071
4080
  title: formatMessage({ id: "content-manager.preview.panel.title", defaultMessage: "Preview" }),
4072
- content: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, width: "100%", children: [
4073
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", tag: reactRouterDom.Link, to: url, target: "_blank", flex: "auto", children: formatMessage({
4074
- id: "content-manager.preview.panel.button",
4075
- defaultMessage: "Open preview"
4076
- }) }),
4077
- /* @__PURE__ */ jsxRuntime.jsx(
4078
- designSystem.IconButton,
4079
- {
4080
- type: "button",
4081
- label: formatMessage({
4082
- id: "preview.copy.label",
4083
- defaultMessage: "Copy preview link"
4084
- }),
4085
- onClick: handleCopyLink,
4086
- children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Link, {})
4087
- }
4088
- )
4089
- ] })
4081
+ content: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { gap: 2, width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
4082
+ designSystem.Button,
4083
+ {
4084
+ variant: "tertiary",
4085
+ tag: reactRouterDom.Link,
4086
+ to: { pathname: "preview", search: qs.stringify(query, { encode: false }) },
4087
+ onClick: trackNavigation,
4088
+ flex: "auto",
4089
+ children: formatMessage({
4090
+ id: "content-manager.preview.panel.button",
4091
+ defaultMessage: "Open preview"
4092
+ })
4093
+ }
4094
+ ) })
4090
4095
  };
4091
4096
  };
4092
4097
  const FEATURE_ID = "preview";
@@ -4118,7 +4123,7 @@ const index = {
4118
4123
  app.router.addRoute({
4119
4124
  path: "content-manager/*",
4120
4125
  lazy: async () => {
4121
- const { Layout } = await Promise.resolve().then(() => require("./layout-ByFyQRDH.js"));
4126
+ const { Layout } = await Promise.resolve().then(() => require("./layout-BEuNwv-F.js"));
4122
4127
  return {
4123
4128
  Component: Layout
4124
4129
  };
@@ -4138,7 +4143,7 @@ const index = {
4138
4143
  async registerTrads({ locales }) {
4139
4144
  const importedTrads = await Promise.all(
4140
4145
  locales.map((locale) => {
4141
- return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-Bdpa50w3.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-9K52xZIr.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B2Kyv8Z9.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-7sfIbjxE.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
4146
+ return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/ar.json": () => Promise.resolve().then(() => require("./ar-BUUWXIYu.js")), "./translations/ca.json": () => Promise.resolve().then(() => require("./ca-Cmk45QO6.js")), "./translations/cs.json": () => Promise.resolve().then(() => require("./cs-CkJy6B2v.js")), "./translations/de.json": () => Promise.resolve().then(() => require("./de-CCEmbAah.js")), "./translations/en.json": () => Promise.resolve().then(() => require("./en-Ic0kXjxB.js")), "./translations/es.json": () => Promise.resolve().then(() => require("./es-9K52xZIr.js")), "./translations/eu.json": () => Promise.resolve().then(() => require("./eu-VDH-3ovk.js")), "./translations/fr.json": () => Promise.resolve().then(() => require("./fr-B2Kyv8Z9.js")), "./translations/gu.json": () => Promise.resolve().then(() => require("./gu-BRmF601H.js")), "./translations/hi.json": () => Promise.resolve().then(() => require("./hi-CCJBptSq.js")), "./translations/hu.json": () => Promise.resolve().then(() => require("./hu-sNV_yLYy.js")), "./translations/id.json": () => Promise.resolve().then(() => require("./id-B5Ser98A.js")), "./translations/it.json": () => Promise.resolve().then(() => require("./it-DkBIs7vD.js")), "./translations/ja.json": () => Promise.resolve().then(() => require("./ja-7sfIbjxE.js")), "./translations/ko.json": () => Promise.resolve().then(() => require("./ko-woFZPmLk.js")), "./translations/ml.json": () => Promise.resolve().then(() => require("./ml-C2W8N8k1.js")), "./translations/ms.json": () => Promise.resolve().then(() => require("./ms-BuFotyP_.js")), "./translations/nl.json": () => Promise.resolve().then(() => require("./nl-bbEOHChV.js")), "./translations/pl.json": () => Promise.resolve().then(() => require("./pl-uzwG-hk7.js")), "./translations/pt-BR.json": () => Promise.resolve().then(() => require("./pt-BR-BiOz37D9.js")), "./translations/pt.json": () => Promise.resolve().then(() => require("./pt-CeXQuq50.js")), "./translations/ru.json": () => Promise.resolve().then(() => require("./ru-BT3ybNny.js")), "./translations/sa.json": () => Promise.resolve().then(() => require("./sa-CcvkYInH.js")), "./translations/sk.json": () => Promise.resolve().then(() => require("./sk-CvY09Xjv.js")), "./translations/sv.json": () => Promise.resolve().then(() => require("./sv-MYDuzgvT.js")), "./translations/th.json": () => Promise.resolve().then(() => require("./th-D9_GfAjc.js")), "./translations/tr.json": () => Promise.resolve().then(() => require("./tr-D9UH-O_R.js")), "./translations/uk.json": () => Promise.resolve().then(() => require("./uk-C8EiqJY7.js")), "./translations/vi.json": () => Promise.resolve().then(() => require("./vi-CJlYDheJ.js")), "./translations/zh-Hans.json": () => Promise.resolve().then(() => require("./zh-Hans-9kOncHGw.js")), "./translations/zh.json": () => Promise.resolve().then(() => require("./zh-CQQfszqR.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
4142
4147
  return {
4143
4148
  data: prefixPluginTranslations(data, PLUGIN_ID),
4144
4149
  locale
@@ -4196,5 +4201,6 @@ exports.useGetAllContentTypeSettingsQuery = useGetAllContentTypeSettingsQuery;
4196
4201
  exports.useGetAllDocumentsQuery = useGetAllDocumentsQuery;
4197
4202
  exports.useGetContentTypeConfigurationQuery = useGetContentTypeConfigurationQuery;
4198
4203
  exports.useGetInitialDataQuery = useGetInitialDataQuery;
4204
+ exports.useGetPreviewUrlQuery = useGetPreviewUrlQuery;
4199
4205
  exports.useUpdateContentTypeConfigurationMutation = useUpdateContentTypeConfigurationMutation;
4200
- //# sourceMappingURL=index-BgaeYWIy.js.map
4206
+ //# sourceMappingURL=index-T-aWjbj2.js.map