@strapi/content-manager 0.0.0-experimental.e60ec1829240dae21c1e1d29076681c322288813 → 0.0.0-experimental.e9122b401c96877b6707775c4f893660eab93ae3

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 (180) hide show
  1. package/LICENSE +18 -3
  2. package/dist/_chunks/{CardDragPreview-DSVYodBX.js → CardDragPreview-C0QyJgRA.js} +10 -14
  3. package/dist/_chunks/CardDragPreview-C0QyJgRA.js.map +1 -0
  4. package/dist/_chunks/{CardDragPreview-ikSG4M46.mjs → CardDragPreview-DOxamsuj.mjs} +7 -9
  5. package/dist/_chunks/CardDragPreview-DOxamsuj.mjs.map +1 -0
  6. package/dist/_chunks/{ComponentConfigurationPage-BPvzFjM7.mjs → ComponentConfigurationPage-CpBFh6_r.mjs} +3 -3
  7. package/dist/_chunks/{ComponentConfigurationPage-BPvzFjM7.mjs.map → ComponentConfigurationPage-CpBFh6_r.mjs.map} +1 -1
  8. package/dist/_chunks/{ComponentConfigurationPage-DjWJdz6Y.js → ComponentConfigurationPage-_zF8p6CY.js} +3 -3
  9. package/dist/_chunks/{ComponentConfigurationPage-DjWJdz6Y.js.map → ComponentConfigurationPage-_zF8p6CY.js.map} +1 -1
  10. package/dist/_chunks/{ComponentIcon-BBQsYCVn.js → ComponentIcon-BXdiCGQp.js} +8 -2
  11. package/dist/_chunks/ComponentIcon-BXdiCGQp.js.map +1 -0
  12. package/dist/_chunks/{ComponentIcon-BOFnK76n.mjs → ComponentIcon-u4bIXTFY.mjs} +9 -3
  13. package/dist/_chunks/ComponentIcon-u4bIXTFY.mjs.map +1 -0
  14. package/dist/_chunks/{EditConfigurationPage-DacbqQ_f.mjs → EditConfigurationPage-CE_yavTi.mjs} +3 -3
  15. package/dist/_chunks/{EditConfigurationPage-DacbqQ_f.mjs.map → EditConfigurationPage-CE_yavTi.mjs.map} +1 -1
  16. package/dist/_chunks/{EditConfigurationPage-Dmv83RlS.js → EditConfigurationPage-_aG2DJSU.js} +3 -3
  17. package/dist/_chunks/{EditConfigurationPage-Dmv83RlS.js.map → EditConfigurationPage-_aG2DJSU.js.map} +1 -1
  18. package/dist/_chunks/{EditViewPage-DDS6H9HO.mjs → EditViewPage-DeTn7rAF.mjs} +59 -48
  19. package/dist/_chunks/EditViewPage-DeTn7rAF.mjs.map +1 -0
  20. package/dist/_chunks/{EditViewPage-DvNpQkam.js → EditViewPage-G9uNzwYL.js} +58 -49
  21. package/dist/_chunks/EditViewPage-G9uNzwYL.js.map +1 -0
  22. package/dist/_chunks/{Field-6gvGdPBV.mjs → Field-CnCKhI1R.mjs} +995 -795
  23. package/dist/_chunks/Field-CnCKhI1R.mjs.map +1 -0
  24. package/dist/_chunks/{Field-DmVKIAOo.js → Field-DDHUWEfV.js} +1041 -842
  25. package/dist/_chunks/Field-DDHUWEfV.js.map +1 -0
  26. package/dist/_chunks/{Form-CPZC9vWa.js → Form-DYETaKUX.js} +65 -45
  27. package/dist/_chunks/Form-DYETaKUX.js.map +1 -0
  28. package/dist/_chunks/{Form-DW6K1IH-.mjs → Form-IvVVwqRL.mjs} +65 -44
  29. package/dist/_chunks/Form-IvVVwqRL.mjs.map +1 -0
  30. package/dist/_chunks/{History-Dmr9fmUA.mjs → History-BMunT-do.mjs} +148 -54
  31. package/dist/_chunks/History-BMunT-do.mjs.map +1 -0
  32. package/dist/_chunks/{History-DeAPlvtv.js → History-CnZDctSO.js} +149 -56
  33. package/dist/_chunks/History-CnZDctSO.js.map +1 -0
  34. package/dist/_chunks/{ListConfigurationPage-DPCwW5Vr.js → ListConfigurationPage-BynalOp8.js} +67 -58
  35. package/dist/_chunks/ListConfigurationPage-BynalOp8.js.map +1 -0
  36. package/dist/_chunks/{ListConfigurationPage-DhwvYcNv.mjs → ListConfigurationPage-CDqkCxgV.mjs} +63 -53
  37. package/dist/_chunks/ListConfigurationPage-CDqkCxgV.mjs.map +1 -0
  38. package/dist/_chunks/{ListViewPage-5ySZ-VUs.js → ListViewPage-I88Ouzoq.js} +126 -137
  39. package/dist/_chunks/ListViewPage-I88Ouzoq.js.map +1 -0
  40. package/dist/_chunks/{ListViewPage-BtAwuYLE.mjs → ListViewPage-_5gS-DOF.mjs} +123 -134
  41. package/dist/_chunks/ListViewPage-_5gS-DOF.mjs.map +1 -0
  42. package/dist/_chunks/{NoContentTypePage-DOC_yWOf.js → NoContentTypePage-BaWQ7HsA.js} +3 -3
  43. package/dist/_chunks/NoContentTypePage-BaWQ7HsA.js.map +1 -0
  44. package/dist/_chunks/{NoContentTypePage-DSPxnxxp.mjs → NoContentTypePage-Dht-55hr.mjs} +3 -3
  45. package/dist/_chunks/NoContentTypePage-Dht-55hr.mjs.map +1 -0
  46. package/dist/_chunks/{NoPermissionsPage-UWDC-1Tw.mjs → NoPermissionsPage-Bs8D5W_v.mjs} +2 -2
  47. package/dist/_chunks/{NoPermissionsPage-UWDC-1Tw.mjs.map → NoPermissionsPage-Bs8D5W_v.mjs.map} +1 -1
  48. package/dist/_chunks/{NoPermissionsPage-Dwu8rRJu.js → NoPermissionsPage-DCVUh5at.js} +2 -2
  49. package/dist/_chunks/{NoPermissionsPage-Dwu8rRJu.js.map → NoPermissionsPage-DCVUh5at.js.map} +1 -1
  50. package/dist/_chunks/{Relations-CgWtgnPe.js → Relations-BPgFQeGj.js} +71 -62
  51. package/dist/_chunks/Relations-BPgFQeGj.js.map +1 -0
  52. package/dist/_chunks/{Relations-J8cscLlR.mjs → Relations-Chdt5qWc.mjs} +67 -57
  53. package/dist/_chunks/Relations-Chdt5qWc.mjs.map +1 -0
  54. package/dist/_chunks/{en-C-V1_90f.js → en-BVzUkPxZ.js} +16 -8
  55. package/dist/_chunks/{en-C-V1_90f.js.map → en-BVzUkPxZ.js.map} +1 -1
  56. package/dist/_chunks/{en-MBPul9Su.mjs → en-CPTj6CjC.mjs} +16 -8
  57. package/dist/_chunks/{en-MBPul9Su.mjs.map → en-CPTj6CjC.mjs.map} +1 -1
  58. package/dist/_chunks/{index-C6AH2hEl.js → index-BhbLFX4l.js} +1752 -903
  59. package/dist/_chunks/index-BhbLFX4l.js.map +1 -0
  60. package/dist/_chunks/{index-CwRRo1V9.mjs → index-D4UGPFZC.mjs} +1778 -928
  61. package/dist/_chunks/index-D4UGPFZC.mjs.map +1 -0
  62. package/dist/_chunks/{layout-B_SXLhqf.js → layout-CYA7s0qO.js} +45 -29
  63. package/dist/_chunks/layout-CYA7s0qO.js.map +1 -0
  64. package/dist/_chunks/{layout-jIDzX0Fp.mjs → layout-D4HI4_PS.mjs} +45 -27
  65. package/dist/_chunks/layout-D4HI4_PS.mjs.map +1 -0
  66. package/dist/_chunks/{relations-CuvIgCqI.mjs → relations-1pXaYpBK.mjs} +2 -2
  67. package/dist/_chunks/{relations-CuvIgCqI.mjs.map → relations-1pXaYpBK.mjs.map} +1 -1
  68. package/dist/_chunks/{relations-iBMa_OFG.js → relations-DDZ9OxNo.js} +2 -2
  69. package/dist/_chunks/{relations-iBMa_OFG.js.map → relations-DDZ9OxNo.js.map} +1 -1
  70. package/dist/_chunks/useDebounce-CtcjDB3L.js +28 -0
  71. package/dist/_chunks/useDebounce-CtcjDB3L.js.map +1 -0
  72. package/dist/_chunks/useDebounce-DmuSJIF3.mjs +29 -0
  73. package/dist/_chunks/useDebounce-DmuSJIF3.mjs.map +1 -0
  74. package/dist/_chunks/useDragAndDrop-DdHgKsqq.mjs.map +1 -1
  75. package/dist/_chunks/useDragAndDrop-J0TUUbR6.js.map +1 -1
  76. package/dist/admin/index.js +2 -1
  77. package/dist/admin/index.js.map +1 -1
  78. package/dist/admin/index.mjs +8 -7
  79. package/dist/admin/src/components/ComponentIcon.d.ts +6 -3
  80. package/dist/admin/src/content-manager.d.ts +3 -3
  81. package/dist/admin/src/exports.d.ts +1 -0
  82. package/dist/admin/src/history/components/VersionInputRenderer.d.ts +1 -1
  83. package/dist/admin/src/history/index.d.ts +3 -0
  84. package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
  85. package/dist/admin/src/hooks/useDocument.d.ts +5 -8
  86. package/dist/admin/src/hooks/useDocumentActions.d.ts +24 -3
  87. package/dist/admin/src/hooks/useDocumentLayout.d.ts +2 -2
  88. package/dist/admin/src/hooks/useDragAndDrop.d.ts +4 -4
  89. package/dist/admin/src/hooks/useKeyboardDragAndDrop.d.ts +1 -1
  90. package/dist/admin/src/index.d.ts +1 -0
  91. package/dist/admin/src/pages/EditView/components/DocumentActions.d.ts +11 -4
  92. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +3 -3
  93. package/dist/admin/src/pages/EditView/components/FormInputs/BlocksInput/utils/constants.d.ts +4 -0
  94. package/dist/admin/src/pages/EditView/components/FormInputs/Component/Input.d.ts +2 -2
  95. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/ComponentCategory.d.ts +3 -5
  96. package/dist/admin/src/pages/EditView/components/FormInputs/DynamicZone/Field.d.ts +1 -1
  97. package/dist/admin/src/pages/EditView/components/FormInputs/Relations.d.ts +30 -18
  98. package/dist/admin/src/pages/EditView/components/FormInputs/UID.d.ts +2 -2
  99. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/EditorLayout.d.ts +3 -49
  100. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +2 -2
  101. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygFooter.d.ts +2 -2
  102. package/dist/admin/src/pages/EditView/components/FormInputs/Wysiwyg/WysiwygStyles.d.ts +16 -53
  103. package/dist/admin/src/pages/EditView/components/Header.d.ts +10 -11
  104. package/dist/admin/src/pages/EditView/components/InputRenderer.d.ts +2 -10
  105. package/dist/admin/src/pages/ListView/components/BulkActions/Actions.d.ts +3 -30
  106. package/dist/admin/src/pages/ListView/components/BulkActions/ConfirmBulkActionDialog.d.ts +2 -2
  107. package/dist/admin/src/pages/ListView/components/BulkActions/PublishAction.d.ts +9 -26
  108. package/dist/admin/src/services/api.d.ts +2 -3
  109. package/dist/admin/src/services/components.d.ts +2 -2
  110. package/dist/admin/src/services/contentTypes.d.ts +5 -5
  111. package/dist/admin/src/services/documents.d.ts +31 -17
  112. package/dist/admin/src/services/init.d.ts +2 -2
  113. package/dist/admin/src/services/relations.d.ts +3 -3
  114. package/dist/admin/src/services/uid.d.ts +3 -3
  115. package/dist/admin/src/utils/api.d.ts +4 -18
  116. package/dist/admin/src/utils/validation.d.ts +5 -7
  117. package/dist/server/index.js +436 -281
  118. package/dist/server/index.js.map +1 -1
  119. package/dist/server/index.mjs +444 -289
  120. package/dist/server/index.mjs.map +1 -1
  121. package/dist/server/src/controllers/collection-types.d.ts.map +1 -1
  122. package/dist/server/src/controllers/relations.d.ts.map +1 -1
  123. package/dist/server/src/controllers/single-types.d.ts.map +1 -1
  124. package/dist/server/src/controllers/uid.d.ts.map +1 -1
  125. package/dist/server/src/controllers/utils/metadata.d.ts +8 -0
  126. package/dist/server/src/controllers/utils/metadata.d.ts.map +1 -0
  127. package/dist/server/src/controllers/validation/dimensions.d.ts +11 -0
  128. package/dist/server/src/controllers/validation/dimensions.d.ts.map +1 -0
  129. package/dist/server/src/controllers/validation/index.d.ts +1 -1
  130. package/dist/server/src/history/services/history.d.ts.map +1 -1
  131. package/dist/server/src/history/services/lifecycles.d.ts.map +1 -1
  132. package/dist/server/src/history/services/utils.d.ts +2 -1
  133. package/dist/server/src/history/services/utils.d.ts.map +1 -1
  134. package/dist/server/src/index.d.ts +18 -39
  135. package/dist/server/src/index.d.ts.map +1 -1
  136. package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
  137. package/dist/server/src/services/document-manager.d.ts +13 -12
  138. package/dist/server/src/services/document-manager.d.ts.map +1 -1
  139. package/dist/server/src/services/document-metadata.d.ts +8 -29
  140. package/dist/server/src/services/document-metadata.d.ts.map +1 -1
  141. package/dist/server/src/services/index.d.ts +18 -39
  142. package/dist/server/src/services/index.d.ts.map +1 -1
  143. package/dist/server/src/services/permission-checker.d.ts.map +1 -1
  144. package/dist/server/src/services/utils/populate.d.ts +8 -1
  145. package/dist/server/src/services/utils/populate.d.ts.map +1 -1
  146. package/dist/shared/contracts/collection-types.d.ts +17 -7
  147. package/dist/shared/contracts/collection-types.d.ts.map +1 -1
  148. package/dist/shared/contracts/relations.d.ts +2 -2
  149. package/dist/shared/contracts/relations.d.ts.map +1 -1
  150. package/package.json +14 -15
  151. package/dist/_chunks/CardDragPreview-DSVYodBX.js.map +0 -1
  152. package/dist/_chunks/CardDragPreview-ikSG4M46.mjs.map +0 -1
  153. package/dist/_chunks/ComponentIcon-BBQsYCVn.js.map +0 -1
  154. package/dist/_chunks/ComponentIcon-BOFnK76n.mjs.map +0 -1
  155. package/dist/_chunks/EditViewPage-DDS6H9HO.mjs.map +0 -1
  156. package/dist/_chunks/EditViewPage-DvNpQkam.js.map +0 -1
  157. package/dist/_chunks/Field-6gvGdPBV.mjs.map +0 -1
  158. package/dist/_chunks/Field-DmVKIAOo.js.map +0 -1
  159. package/dist/_chunks/Form-CPZC9vWa.js.map +0 -1
  160. package/dist/_chunks/Form-DW6K1IH-.mjs.map +0 -1
  161. package/dist/_chunks/History-DeAPlvtv.js.map +0 -1
  162. package/dist/_chunks/History-Dmr9fmUA.mjs.map +0 -1
  163. package/dist/_chunks/ListConfigurationPage-DPCwW5Vr.js.map +0 -1
  164. package/dist/_chunks/ListConfigurationPage-DhwvYcNv.mjs.map +0 -1
  165. package/dist/_chunks/ListViewPage-5ySZ-VUs.js.map +0 -1
  166. package/dist/_chunks/ListViewPage-BtAwuYLE.mjs.map +0 -1
  167. package/dist/_chunks/NoContentTypePage-DOC_yWOf.js.map +0 -1
  168. package/dist/_chunks/NoContentTypePage-DSPxnxxp.mjs.map +0 -1
  169. package/dist/_chunks/Relations-CgWtgnPe.js.map +0 -1
  170. package/dist/_chunks/Relations-J8cscLlR.mjs.map +0 -1
  171. package/dist/_chunks/index-C6AH2hEl.js.map +0 -1
  172. package/dist/_chunks/index-CwRRo1V9.mjs.map +0 -1
  173. package/dist/_chunks/layout-B_SXLhqf.js.map +0 -1
  174. package/dist/_chunks/layout-jIDzX0Fp.mjs.map +0 -1
  175. package/dist/_chunks/urls-CbOsUOoW.mjs +0 -7
  176. package/dist/_chunks/urls-CbOsUOoW.mjs.map +0 -1
  177. package/dist/_chunks/urls-DzZya_gm.js +0 -6
  178. package/dist/_chunks/urls-DzZya_gm.js.map +0 -1
  179. package/dist/server/src/controllers/utils/dimensions.d.ts +0 -5
  180. package/dist/server/src/controllers/utils/dimensions.d.ts.map +0 -1
@@ -9,13 +9,13 @@ const isEqual = require("lodash/isEqual");
9
9
  const qs = require("qs");
10
10
  const reactIntl = require("react-intl");
11
11
  const reactRouterDom = require("react-router-dom");
12
- const styled = require("styled-components");
13
- const index = require("./index-C6AH2hEl.js");
12
+ const styledComponents = require("styled-components");
13
+ const index = require("./index-BhbLFX4l.js");
14
+ const useDebounce = require("./useDebounce-CtcjDB3L.js");
14
15
  const isEmpty = require("lodash/isEmpty");
15
16
  const parseISO = require("date-fns/parseISO");
16
17
  const toString = require("lodash/toString");
17
- const urls = require("./urls-DzZya_gm.js");
18
- const relations = require("./relations-iBMa_OFG.js");
18
+ const relations = require("./relations-DDZ9OxNo.js");
19
19
  const hooks = require("./hooks-BAaaKPS_.js");
20
20
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
21
21
  function _interopNamespace(e) {
@@ -38,17 +38,9 @@ function _interopNamespace(e) {
38
38
  }
39
39
  const React__namespace = /* @__PURE__ */ _interopNamespace(React);
40
40
  const isEqual__default = /* @__PURE__ */ _interopDefault(isEqual);
41
- const styled__default = /* @__PURE__ */ _interopDefault(styled);
42
41
  const isEmpty__default = /* @__PURE__ */ _interopDefault(isEmpty);
43
42
  const parseISO__default = /* @__PURE__ */ _interopDefault(parseISO);
44
43
  const toString__default = /* @__PURE__ */ _interopDefault(toString);
45
- const usePrev = (value) => {
46
- const ref = React.useRef();
47
- React.useEffect(() => {
48
- ref.current = value;
49
- }, [value]);
50
- return ref.current;
51
- };
52
44
  const NOT_ALLOWED_FILTERS = [
53
45
  "json",
54
46
  "component",
@@ -155,6 +147,15 @@ const FiltersImpl = ({ disabled, schema }) => {
155
147
  }
156
148
  };
157
149
  }
150
+ if (attribute.type === "enumeration") {
151
+ filter = {
152
+ ...filter,
153
+ options: attribute.enum.map((value) => ({
154
+ label: value,
155
+ value
156
+ }))
157
+ };
158
+ }
158
159
  return filter;
159
160
  }).filter(Boolean).toSorted((a, b) => formatter.compare(a.label, b.label));
160
161
  }, [
@@ -197,18 +198,22 @@ const FiltersImpl = ({ disabled, schema }) => {
197
198
  );
198
199
  };
199
200
  const AdminUsersFilter = ({ name }) => {
200
- const [page, setPage] = React__namespace.useState(1);
201
+ const [pageSize, setPageSize] = React__namespace.useState(10);
202
+ const [search, setSearch] = React__namespace.useState("");
201
203
  const { formatMessage } = reactIntl.useIntl();
204
+ const debouncedSearch = useDebounce.useDebounce(search, 300);
202
205
  const { data, isLoading } = strapiAdmin.useAdminUsers({
203
- page
206
+ pageSize,
207
+ _q: debouncedSearch
204
208
  });
205
209
  const field = strapiAdmin.useField(name);
206
210
  const handleOpenChange = (isOpen) => {
207
211
  if (!isOpen) {
208
- setPage(1);
212
+ setPageSize(10);
209
213
  }
210
214
  };
211
- const users = data?.users || [];
215
+ const { users = [], pagination } = data ?? {};
216
+ const { pageCount = 1, page = 1 } = pagination ?? {};
212
217
  return /* @__PURE__ */ jsxRuntime.jsx(
213
218
  designSystem.Combobox,
214
219
  {
@@ -220,7 +225,11 @@ const AdminUsersFilter = ({ name }) => {
220
225
  onOpenChange: handleOpenChange,
221
226
  onChange: (value) => field.onChange(name, value),
222
227
  loading: isLoading,
223
- onLoadMore: () => setPage((prev) => prev + 1),
228
+ onLoadMore: () => setPageSize(pageSize + 10),
229
+ hasMoreItems: page < pageCount,
230
+ onInputChange: (e) => {
231
+ setSearch(e.currentTarget.value);
232
+ },
224
233
  children: users.map((user) => {
225
234
  return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ComboboxOption, { value: user.id.toString(), children: index.getDisplayName(user) }, user.id);
226
235
  })
@@ -262,20 +271,16 @@ const SingleComponent = ({ content, mainField }) => {
262
271
  if (!mainField) {
263
272
  return null;
264
273
  }
265
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label: content[mainField.name], children: /* @__PURE__ */ jsxRuntime.jsx(SingleComponentTypography, { textColor: "neutral800", ellipsis: true, children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: mainField.type, value: content[mainField.name] }) }) });
274
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { label: content[mainField.name], children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { maxWidth: "25rem", textColor: "neutral800", ellipsis: true, children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: mainField.type, value: content[mainField.name] }) }) });
266
275
  };
267
- const SingleComponentTypography = styled__default.default(designSystem.Typography)`
268
- max-width: 250px;
269
- `;
270
276
  const RepeatableComponent = ({ content, mainField }) => {
271
277
  const { formatMessage } = reactIntl.useIntl();
272
278
  if (!mainField) {
273
279
  return null;
274
280
  }
275
281
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
276
- /* @__PURE__ */ jsxRuntime.jsxs(MenuTrigger$1, { onClick: (e) => e.stopPropagation(), children: [
282
+ /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Trigger, { onClick: (e) => e.stopPropagation(), children: [
277
283
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { children: content.length }),
278
- " ",
279
284
  formatMessage(
280
285
  {
281
286
  id: "content-manager.containers.list.items",
@@ -284,25 +289,24 @@ const RepeatableComponent = ({ content, mainField }) => {
284
289
  { number: content.length }
285
290
  )
286
291
  ] }),
287
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { children: content.map((item) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Item, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(RepeatableComponentTypography, { ellipsis: true, children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: mainField.type, value: item[mainField.name] }) }) }, item.id)) })
292
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { children: content.map((item) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Item, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { maxWidth: "50rem", ellipsis: true, children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: mainField.type, value: item[mainField.name] }) }) }, item.id)) })
288
293
  ] });
289
294
  };
290
- const RepeatableComponentTypography = styled__default.default(designSystem.Typography)`
291
- max-width: 500px;
292
- `;
293
- const MenuTrigger$1 = styled__default.default(designSystem.Menu.Trigger)`
294
- svg {
295
- width: 0.6rem;
296
- height: 0.4rem;
297
- }
298
- `;
299
295
  const getFileExtension = (ext) => ext && ext[0] === "." ? ext.substring(1) : ext;
300
296
  const MediaSingle = ({ url, mime, alternativeText, name, ext, formats }) => {
301
- const fileURL = urls.prefixFileUrlWithBackendUrl(url);
297
+ const fileURL = useDebounce.prefixFileUrlWithBackendUrl(url);
302
298
  if (mime.includes("image")) {
303
299
  const thumbnail = formats?.thumbnail?.url;
304
- const mediaURL = urls.prefixFileUrlWithBackendUrl(thumbnail) || fileURL;
305
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Avatar, { src: mediaURL, alt: alternativeText || name, preview: true });
300
+ const mediaURL = useDebounce.prefixFileUrlWithBackendUrl(thumbnail) || fileURL;
301
+ return /* @__PURE__ */ jsxRuntime.jsx(
302
+ designSystem.Avatar.Item,
303
+ {
304
+ src: mediaURL,
305
+ alt: alternativeText || name,
306
+ fallback: alternativeText || name,
307
+ preview: true
308
+ }
309
+ );
306
310
  }
307
311
  const fileExtension = getFileExtension(ext);
308
312
  const fileName = name.length > 100 ? `${name.substring(0, 100)}...` : name;
@@ -312,7 +316,7 @@ const FileWrapper = ({ children }) => {
312
316
  return /* @__PURE__ */ jsxRuntime.jsx(
313
317
  designSystem.Flex,
314
318
  {
315
- as: "span",
319
+ tag: "span",
316
320
  position: "relative",
317
321
  borderRadius: "50%",
318
322
  width: "26px",
@@ -326,12 +330,12 @@ const FileWrapper = ({ children }) => {
326
330
  }
327
331
  );
328
332
  };
329
- const FileTypography = styled__default.default(designSystem.Typography)`
333
+ const FileTypography = styledComponents.styled(designSystem.Typography)`
330
334
  font-size: 0.9rem;
331
335
  line-height: 0.9rem;
332
336
  `;
333
337
  const MediaMultiple = ({ content }) => {
334
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.AvatarGroup, { children: content.map((file, index2) => {
338
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Avatar.Group, { children: content.map((file, index2) => {
335
339
  const key = `${file.id}${index2}`;
336
340
  if (index2 === 3) {
337
341
  const remainingFiles = `+${content.length - 3}`;
@@ -344,11 +348,8 @@ const MediaMultiple = ({ content }) => {
344
348
  }) });
345
349
  };
346
350
  const RelationSingle = ({ mainField, content }) => {
347
- return /* @__PURE__ */ jsxRuntime.jsx(TypographyMaxWidth$1, { textColor: "neutral800", ellipsis: true, children: relations.getRelationLabel(content, mainField) });
351
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { maxWidth: "50rem", textColor: "neutral800", ellipsis: true, children: relations.getRelationLabel(content, mainField) });
348
352
  };
349
- const TypographyMaxWidth$1 = styled__default.default(designSystem.Typography)`
350
- max-width: 500px;
351
- `;
352
353
  const RelationMultiple = ({ mainField, content, rowId, name }) => {
353
354
  const { model } = index.useDoc();
354
355
  const { formatMessage } = reactIntl.useIntl();
@@ -377,23 +378,20 @@ const RelationMultiple = ({ mainField, content, rowId, name }) => {
377
378
  }
378
379
  }, [data, formatMessage, notifyStatus]);
379
380
  return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { onOpenChange: (isOpen2) => setIsOpen(isOpen2), children: [
380
- /* @__PURE__ */ jsxRuntime.jsx(MenuTrigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 1, wrap: "nowrap", children: [
381
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { children: content.count }),
382
- formatMessage(
383
- {
384
- id: "content-manager.containers.list.items",
385
- defaultMessage: "{number, plural, =0 {items} one {item} other {items}}"
386
- },
387
- { number: content.count }
388
- )
389
- ] }) }),
381
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Trigger, { onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { style: { cursor: "pointer" }, textColor: "neutral800", fontWeight: "regular", children: content.count > 0 ? formatMessage(
382
+ {
383
+ id: "content-manager.containers.list.items",
384
+ defaultMessage: "{number} {number, plural, =0 {items} one {item} other {items}}"
385
+ },
386
+ { number: content.count }
387
+ ) : "-" }) }),
390
388
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Content, { children: [
391
389
  isLoading && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Item, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Loader, { small: true, children: formatMessage({
392
390
  id: index.getTranslation("ListViewTable.relation-loading"),
393
391
  defaultMessage: "Relations are loading"
394
392
  }) }) }),
395
393
  data?.results && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
396
- data.results.map((entry) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Item, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(TypographyMaxWidth$1, { ellipsis: true, children: relations.getRelationLabel(entry, mainField) }) }, entry.documentId)),
394
+ data.results.map((entry) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Item, { disabled: true, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { maxWidth: "50rem", ellipsis: true, children: relations.getRelationLabel(entry, mainField) }) }, entry.documentId)),
397
395
  data?.pagination && data?.pagination.total > 10 && /* @__PURE__ */ jsxRuntime.jsx(
398
396
  designSystem.Menu.Item,
399
397
  {
@@ -409,15 +407,17 @@ const RelationMultiple = ({ mainField, content, rowId, name }) => {
409
407
  ] })
410
408
  ] });
411
409
  };
412
- const MenuTrigger = styled__default.default(designSystem.Menu.Trigger)`
413
- svg {
414
- width: 0.6rem;
415
- height: 0.4rem;
416
- }
417
- `;
418
410
  const CellContent = ({ content, mainField, attribute, rowId, name }) => {
419
411
  if (!hasContent(content, mainField, attribute)) {
420
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral800", children: "-" });
412
+ return /* @__PURE__ */ jsxRuntime.jsx(
413
+ designSystem.Typography,
414
+ {
415
+ textColor: "neutral800",
416
+ paddingLeft: attribute.type === "relation" ? "1.6rem" : 0,
417
+ paddingRight: attribute.type === "relation" ? "1.6rem" : 0,
418
+ children: "-"
419
+ }
420
+ );
421
421
  }
422
422
  switch (attribute.type) {
423
423
  case "media":
@@ -437,14 +437,11 @@ const CellContent = ({ content, mainField, attribute, rowId, name }) => {
437
437
  }
438
438
  return /* @__PURE__ */ jsxRuntime.jsx(SingleComponent, { mainField, content });
439
439
  case "string":
440
- return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { description: content, children: /* @__PURE__ */ jsxRuntime.jsx(TypographyMaxWidth, { ellipsis: true, textColor: "neutral800", children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: attribute.type, value: content }) }) });
440
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Tooltip, { description: content, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { maxWidth: "30rem", ellipsis: true, textColor: "neutral800", children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: attribute.type, value: content }) }) });
441
441
  default:
442
- return /* @__PURE__ */ jsxRuntime.jsx(TypographyMaxWidth, { ellipsis: true, textColor: "neutral800", children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: attribute.type, value: content }) });
442
+ return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { maxWidth: "30rem", ellipsis: true, textColor: "neutral800", children: /* @__PURE__ */ jsxRuntime.jsx(CellValue, { type: attribute.type, value: content }) });
443
443
  }
444
444
  };
445
- const TypographyMaxWidth = styled__default.default(designSystem.Typography)`
446
- max-width: 300px;
447
- `;
448
445
  const hasContent = (content, mainField, attribute) => {
449
446
  if (attribute.type === "component") {
450
447
  if (attribute.repeatable || !mainField) {
@@ -472,8 +469,6 @@ const hasContent = (content, mainField, attribute) => {
472
469
  };
473
470
  const isSingleRelation = (type) => ["oneToOne", "manyToOne", "oneToOneMorph"].includes(type);
474
471
  const ViewSettingsMenu = (props) => {
475
- const [isVisible, setIsVisible] = React__namespace.useState(false);
476
- const cogButtonRef = React__namespace.useRef(null);
477
472
  const permissions = hooks.useTypedSelector(
478
473
  (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations ?? []
479
474
  );
@@ -482,52 +477,37 @@ const ViewSettingsMenu = (props) => {
482
477
  const {
483
478
  allowedActions: { canConfigureView }
484
479
  } = strapiAdmin.useRBAC(permissions);
485
- const handleToggle = () => {
486
- setIsVisible((prev) => !prev);
487
- };
488
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
489
- /* @__PURE__ */ jsxRuntime.jsx(
480
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { children: [
481
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
490
482
  designSystem.IconButton,
491
483
  {
492
- icon: /* @__PURE__ */ jsxRuntime.jsx(Icons.Cog, {}),
493
484
  label: formatMessage({
494
485
  id: "components.ViewSettings.tooltip",
495
486
  defaultMessage: "View Settings"
496
487
  }),
497
- ref: cogButtonRef,
498
- onClick: handleToggle
499
- }
500
- ),
501
- isVisible && /* @__PURE__ */ jsxRuntime.jsx(
502
- designSystem.Popover,
503
- {
504
- placement: "bottom-end",
505
- source: cogButtonRef,
506
- onDismiss: handleToggle,
507
- spacing: 4,
508
- padding: 3,
509
- children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "stretch", direction: "column", gap: 3, children: [
510
- canConfigureView ? /* @__PURE__ */ jsxRuntime.jsx(
511
- designSystem.LinkButton,
512
- {
513
- size: "S",
514
- startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ListPlus, {}),
515
- variant: "secondary",
516
- as: reactRouterDom.NavLink,
517
- to: {
518
- pathname: "configurations/list",
519
- search: query.plugins ? qs.stringify({ plugins: query.plugins }, { encode: false }) : ""
520
- },
521
- children: formatMessage({
522
- id: "app.links.configure-view",
523
- defaultMessage: "Configure the view"
524
- })
525
- }
526
- ) : null,
527
- /* @__PURE__ */ jsxRuntime.jsx(FieldPicker, { ...props })
528
- ] })
488
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icons.Cog, {})
529
489
  }
530
- )
490
+ ) }),
491
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { side: "bottom", align: "end", sideOffset: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "stretch", direction: "column", padding: 3, gap: 3, children: [
492
+ canConfigureView ? /* @__PURE__ */ jsxRuntime.jsx(
493
+ designSystem.LinkButton,
494
+ {
495
+ size: "S",
496
+ startIcon: /* @__PURE__ */ jsxRuntime.jsx(Icons.ListPlus, {}),
497
+ variant: "secondary",
498
+ tag: reactRouterDom.NavLink,
499
+ to: {
500
+ pathname: "configurations/list",
501
+ search: query.plugins ? qs.stringify({ plugins: query.plugins }, { encode: false }) : ""
502
+ },
503
+ children: formatMessage({
504
+ id: "app.links.configure-view",
505
+ defaultMessage: "Configure the view"
506
+ })
507
+ }
508
+ ) : null,
509
+ /* @__PURE__ */ jsxRuntime.jsx(FieldPicker, { ...props })
510
+ ] }) })
531
511
  ] });
532
512
  };
533
513
  const FieldPicker = ({ headers = [], resetHeaders, setHeaders }) => {
@@ -551,9 +531,9 @@ const FieldPicker = ({ headers = [], resetHeaders, setHeaders }) => {
551
531
  const handleReset = () => {
552
532
  resetHeaders();
553
533
  };
554
- return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { as: "fieldset", direction: "column", alignItems: "stretch", gap: 3, children: [
534
+ return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "fieldset", direction: "column", alignItems: "stretch", gap: 3, borderWidth: 0, children: [
555
535
  /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { justifyContent: "space-between", children: [
556
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "legend", variant: "pi", fontWeight: "bold", children: formatMessage({
536
+ /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "legend", variant: "pi", fontWeight: "bold", children: formatMessage({
557
537
  id: "containers.list.displayedFields",
558
538
  defaultMessage: "Displayed fields"
559
539
  }) }),
@@ -564,38 +544,33 @@ const FieldPicker = ({ headers = [], resetHeaders, setHeaders }) => {
564
544
  ] }),
565
545
  /* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", children: columns.map((header) => {
566
546
  const isActive = headers.includes(header.name);
567
- return /* @__PURE__ */ jsxRuntime.jsxs(
568
- ChackboxWrapper,
547
+ return /* @__PURE__ */ jsxRuntime.jsx(
548
+ designSystem.Flex,
569
549
  {
570
550
  wrap: "wrap",
571
551
  gap: 2,
572
- as: "label",
573
552
  background: isActive ? "primary100" : "transparent",
574
553
  hasRadius: true,
575
554
  padding: 2,
576
- children: [
577
- /* @__PURE__ */ jsxRuntime.jsx(
578
- designSystem.BaseCheckbox,
579
- {
580
- onChange: () => handleChange(header.name),
581
- value: isActive,
582
- name: header.name
583
- }
584
- ),
585
- /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontSize: 1, children: header.label })
586
- ]
555
+ children: /* @__PURE__ */ jsxRuntime.jsx(
556
+ designSystem.Checkbox,
557
+ {
558
+ onCheckedChange: () => handleChange(header.name),
559
+ checked: isActive,
560
+ name: header.name,
561
+ children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { fontSize: 1, children: header.label })
562
+ }
563
+ )
587
564
  },
588
565
  header.name
589
566
  );
590
567
  }) })
591
568
  ] });
592
569
  };
593
- const ChackboxWrapper = styled__default.default(designSystem.Flex)`
594
- :hover {
595
- background-color: ${(props) => props.theme.colors.primary100};
596
- }
597
- `;
598
570
  const { INJECT_COLUMN_IN_TABLE } = index.HOOKS;
571
+ const LayoutsHeaderCustom = styledComponents.styled(strapiAdmin.Layouts.Header)`
572
+ overflow-wrap: anywhere;
573
+ `;
599
574
  const ListViewPage = () => {
600
575
  const { trackUsage } = strapiAdmin.useTracking();
601
576
  const navigate = reactRouterDom.useNavigate();
@@ -605,7 +580,7 @@ const ListViewPage = () => {
605
580
  const { collectionType, model, schema } = index.useDoc();
606
581
  const { list } = index.useDocumentLayout(model);
607
582
  const [displayedHeaders, setDisplayedHeaders] = React__namespace.useState([]);
608
- const listLayout = usePrev(list.layout);
583
+ const listLayout = useDebounce.usePrev(list.layout);
609
584
  React__namespace.useEffect(() => {
610
585
  if (!isEqual__default.default(listLayout, list.layout)) {
611
586
  setDisplayedHeaders(list.layout);
@@ -622,7 +597,7 @@ const ListViewPage = () => {
622
597
  sort: list.settings.defaultSortBy ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}` : ""
623
598
  });
624
599
  const params = React__namespace.useMemo(() => index.buildValidParams(query), [query]);
625
- const { data, error, isLoading } = index.useGetAllDocumentsQuery({
600
+ const { data, error, isFetching } = index.useGetAllDocumentsQuery({
626
601
  model,
627
602
  params
628
603
  });
@@ -680,7 +655,7 @@ const ListViewPage = () => {
680
655
  }
681
656
  return formattedHeaders;
682
657
  }, [displayedHeaders, formatMessage, list, runHookWaterfall, schema?.options?.draftAndPublish]);
683
- if (isLoading) {
658
+ if (isFetching) {
684
659
  return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
685
660
  }
686
661
  if (error) {
@@ -697,7 +672,7 @@ const ListViewPage = () => {
697
672
  return /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Page.Main, { children: [
698
673
  /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Title, { children: `${contentTypeTitle}` }),
699
674
  /* @__PURE__ */ jsxRuntime.jsx(
700
- strapiAdmin.Layouts.Header,
675
+ LayoutsHeaderCustom,
701
676
  {
702
677
  primaryAction: canCreate ? /* @__PURE__ */ jsxRuntime.jsx(CreateButton, {}) : null,
703
678
  subtitle: formatMessage(
@@ -746,8 +721,8 @@ const ListViewPage = () => {
746
721
  }
747
722
  ),
748
723
  /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Layouts.Content, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 4, direction: "column", alignItems: "stretch", children: [
749
- /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Root, { rows: results, headers: tableHeaders, isLoading, children: [
750
- /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.ActionBar, {}),
724
+ /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Root, { rows: results, headers: tableHeaders, isLoading: isFetching, children: [
725
+ /* @__PURE__ */ jsxRuntime.jsx(TableActionsBar, {}),
751
726
  /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Content, { children: [
752
727
  /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Head, { children: [
753
728
  /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.HeaderCheckboxCell, {}),
@@ -805,10 +780,22 @@ const ListViewPage = () => {
805
780
  ] }) })
806
781
  ] });
807
782
  };
808
- const ActionsCell = styled__default.default(strapiAdmin.Table.Cell)`
783
+ const ActionsCell = styledComponents.styled(strapiAdmin.Table.Cell)`
809
784
  display: flex;
810
785
  justify-content: flex-end;
811
786
  `;
787
+ const TableActionsBar = () => {
788
+ const selectRow = strapiAdmin.useTable("TableActionsBar", (state) => state.selectRow);
789
+ const [{ query }] = strapiAdmin.useQueryParams();
790
+ const locale = query?.plugins?.i18n?.locale;
791
+ const prevLocale = useDebounce.usePrev(locale);
792
+ React__namespace.useEffect(() => {
793
+ if (prevLocale !== locale) {
794
+ selectRow([]);
795
+ }
796
+ }, [selectRow, prevLocale, locale]);
797
+ return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.ActionBar, { children: /* @__PURE__ */ jsxRuntime.jsx(index.BulkActionsRenderer, {}) });
798
+ };
812
799
  const CreateButton = ({ variant }) => {
813
800
  const { formatMessage } = reactIntl.useIntl();
814
801
  const { trackUsage } = strapiAdmin.useTracking();
@@ -817,7 +804,7 @@ const CreateButton = ({ variant }) => {
817
804
  designSystem.Button,
818
805
  {
819
806
  variant,
820
- forwardedAs: reactRouterDom.Link,
807
+ tag: reactRouterDom.Link,
821
808
  onClick: () => {
822
809
  trackUsage("willCreateEntry", { status: "draft" });
823
810
  },
@@ -827,6 +814,8 @@ const CreateButton = ({ variant }) => {
827
814
  pathname: "create",
828
815
  search: qs.stringify({ plugins: query.plugins })
829
816
  },
817
+ minWidth: "max-content",
818
+ marginLeft: 2,
830
819
  children: formatMessage({
831
820
  id: index.getTranslation("HeaderLayout.button.label-add-entry"),
832
821
  defaultMessage: "Create new entry"
@@ -856,4 +845,4 @@ const ProtectedListViewPage = () => {
856
845
  };
857
846
  exports.ListViewPage = ListViewPage;
858
847
  exports.ProtectedListViewPage = ProtectedListViewPage;
859
- //# sourceMappingURL=ListViewPage-5ySZ-VUs.js.map
848
+ //# sourceMappingURL=ListViewPage-I88Ouzoq.js.map