@contentful/field-editor-reference 5.21.2 → 5.21.4

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 (144) hide show
  1. package/dist/cjs/__fixtures__/FakeSdk.js +3 -3
  2. package/dist/cjs/__fixtures__/asset/index.js +10 -10
  3. package/dist/cjs/__fixtures__/content-type/index.js +1 -1
  4. package/dist/cjs/__fixtures__/entry/index.js +7 -7
  5. package/dist/cjs/__fixtures__/fixtures.js +6 -8
  6. package/dist/cjs/__fixtures__/locale/index.js +2 -2
  7. package/dist/cjs/__fixtures__/space/index.js +1 -1
  8. package/dist/cjs/assets/MultipleMediaEditor.js +5 -7
  9. package/dist/cjs/assets/SingleMediaEditor.js +4 -6
  10. package/dist/cjs/assets/WrappedAssetCard/AssetCardActions.js +19 -21
  11. package/dist/cjs/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +11 -18
  12. package/dist/cjs/assets/WrappedAssetCard/WrappedAssetCard.js +11 -20
  13. package/dist/cjs/assets/WrappedAssetCard/WrappedAssetLink.js +9 -12
  14. package/dist/cjs/assets/index.js +3 -3
  15. package/dist/cjs/common/EntityStore.js +32 -51
  16. package/dist/cjs/common/MultipleReferenceEditor.js +11 -20
  17. package/dist/cjs/common/ReferenceEditor.js +5 -7
  18. package/dist/cjs/common/SingleReferenceEditor.js +7 -11
  19. package/dist/cjs/common/SortableLinkList.js +14 -14
  20. package/dist/cjs/common/customCardTypes.js +2 -4
  21. package/dist/cjs/common/queryClient.js +9 -14
  22. package/dist/cjs/common/useContentTypePermissions.js +1 -3
  23. package/dist/cjs/common/useEditorPermissions.js +3 -15
  24. package/dist/cjs/common/useEditorPermissions.spec.js +11 -12
  25. package/dist/cjs/components/AssetThumbnail/AssetThumbnail.js +3 -5
  26. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.js +9 -13
  27. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +15 -17
  28. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +19 -29
  29. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +12 -14
  30. package/dist/cjs/components/LinkActions/CombinedLinkActions.js +21 -28
  31. package/dist/cjs/components/LinkActions/LinkActions.js +15 -17
  32. package/dist/cjs/components/LinkActions/LinkEntityActions.js +17 -26
  33. package/dist/cjs/components/LinkActions/NoLinkPermissionsInfo.js +3 -5
  34. package/dist/cjs/components/LinkActions/helpers.js +5 -14
  35. package/dist/cjs/components/LinkActions/redesignStyles.js +4 -4
  36. package/dist/cjs/components/LinkActions/styles.js +1 -1
  37. package/dist/cjs/components/MissingEntityCard/MissingEntityCard.js +9 -11
  38. package/dist/cjs/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +4 -6
  39. package/dist/cjs/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +4 -6
  40. package/dist/cjs/components/ScheduledIconWithTooltip/ScheduleTooltip.js +8 -10
  41. package/dist/cjs/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +4 -9
  42. package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.js +4 -5
  43. package/dist/cjs/components/SpaceName/SpaceName.js +7 -9
  44. package/dist/cjs/components/index.js +12 -12
  45. package/dist/cjs/entries/MultipleEntryReferenceEditor.js +7 -9
  46. package/dist/cjs/entries/SingleEntryReferenceEditor.js +5 -7
  47. package/dist/cjs/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +11 -20
  48. package/dist/cjs/entries/WrappedEntryCard/WrappedEntryCard.js +17 -23
  49. package/dist/cjs/entries/index.js +3 -3
  50. package/dist/cjs/index.js +37 -37
  51. package/dist/cjs/resources/Cards/ContentfulEntryCard.js +4 -13
  52. package/dist/cjs/resources/Cards/ResourceCard.js +12 -16
  53. package/dist/cjs/resources/Cards/ResourceCard.spec.js +17 -20
  54. package/dist/cjs/resources/MultipleResourceReferenceEditor.js +17 -20
  55. package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +13 -34
  56. package/dist/cjs/resources/SingleResourceReferenceEditor.js +9 -11
  57. package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +6 -13
  58. package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +5 -12
  59. package/dist/cjs/resources/useResourceLinkActions.js +2 -11
  60. package/dist/cjs/types.js +3 -3
  61. package/dist/cjs/utils/fromFieldValidations.js +1 -2
  62. package/dist/cjs/utils/useSortIDs.js +4 -6
  63. package/dist/esm/__fixtures__/FakeSdk.js +3 -3
  64. package/dist/esm/assets/MultipleMediaEditor.js +3 -3
  65. package/dist/esm/assets/SingleMediaEditor.js +2 -2
  66. package/dist/esm/assets/WrappedAssetCard/AssetCardActions.js +12 -12
  67. package/dist/esm/assets/WrappedAssetCard/FetchingWrappedAssetCard.js +9 -14
  68. package/dist/esm/assets/WrappedAssetCard/WrappedAssetCard.js +7 -15
  69. package/dist/esm/assets/WrappedAssetCard/WrappedAssetLink.js +6 -7
  70. package/dist/esm/common/EntityStore.js +22 -39
  71. package/dist/esm/common/MultipleReferenceEditor.js +9 -16
  72. package/dist/esm/common/ReferenceEditor.js +2 -2
  73. package/dist/esm/common/SingleReferenceEditor.js +5 -7
  74. package/dist/esm/common/SortableLinkList.js +12 -12
  75. package/dist/esm/common/queryClient.js +3 -10
  76. package/dist/esm/common/useContentTypePermissions.js +1 -3
  77. package/dist/esm/common/useEditorPermissions.js +3 -15
  78. package/dist/esm/common/useEditorPermissions.spec.js +11 -12
  79. package/dist/esm/components/AssetThumbnail/AssetThumbnail.js +1 -1
  80. package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.js +5 -7
  81. package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +12 -12
  82. package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.js +15 -23
  83. package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +8 -9
  84. package/dist/esm/components/LinkActions/CombinedLinkActions.js +19 -30
  85. package/dist/esm/components/LinkActions/LinkActions.js +9 -9
  86. package/dist/esm/components/LinkActions/LinkEntityActions.js +11 -18
  87. package/dist/esm/components/LinkActions/NoLinkPermissionsInfo.js +1 -1
  88. package/dist/esm/components/LinkActions/helpers.js +2 -11
  89. package/dist/esm/components/MissingEntityCard/MissingEntityCard.js +6 -6
  90. package/dist/esm/components/ResourceEntityErrorCard/ResourceEntityErrorCard.js +2 -2
  91. package/dist/esm/components/ResourceEntityErrorCard/UnsupportedEntityCard.js +2 -2
  92. package/dist/esm/components/ScheduledIconWithTooltip/ScheduleTooltip.js +3 -3
  93. package/dist/esm/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.js +2 -5
  94. package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.js +2 -11
  95. package/dist/esm/components/SpaceName/SpaceName.js +4 -4
  96. package/dist/esm/entries/MultipleEntryReferenceEditor.js +5 -5
  97. package/dist/esm/entries/SingleEntryReferenceEditor.js +3 -3
  98. package/dist/esm/entries/WrappedEntryCard/FetchingWrappedEntryCard.js +8 -15
  99. package/dist/esm/entries/WrappedEntryCard/WrappedEntryCard.js +14 -18
  100. package/dist/esm/resources/Cards/ContentfulEntryCard.js +2 -9
  101. package/dist/esm/resources/Cards/ResourceCard.js +10 -12
  102. package/dist/esm/resources/Cards/ResourceCard.spec.js +11 -12
  103. package/dist/esm/resources/MultipleResourceReferenceEditor.js +13 -14
  104. package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +11 -30
  105. package/dist/esm/resources/SingleResourceReferenceEditor.js +6 -6
  106. package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +4 -9
  107. package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +2 -9
  108. package/dist/esm/resources/useResourceLinkActions.js +2 -11
  109. package/dist/esm/utils/fromFieldValidations.js +0 -1
  110. package/dist/esm/utils/useSortIDs.js +2 -2
  111. package/dist/types/assets/MultipleMediaEditor.d.ts +2 -2
  112. package/dist/types/assets/SingleMediaEditor.d.ts +2 -2
  113. package/dist/types/assets/WrappedAssetCard/AssetCardActions.d.ts +3 -3
  114. package/dist/types/assets/WrappedAssetCard/FetchingWrappedAssetCard.d.ts +2 -2
  115. package/dist/types/assets/WrappedAssetCard/WrappedAssetCard.d.ts +2 -2
  116. package/dist/types/assets/WrappedAssetCard/WrappedAssetLink.d.ts +2 -2
  117. package/dist/types/common/EntityStore.d.ts +1 -1
  118. package/dist/types/common/MultipleReferenceEditor.d.ts +1 -1
  119. package/dist/types/common/ReferenceEditor.d.ts +1 -1
  120. package/dist/types/common/SingleReferenceEditor.d.ts +1 -1
  121. package/dist/types/common/SortableLinkList.d.ts +1 -1
  122. package/dist/types/common/queryClient.d.ts +1 -1
  123. package/dist/types/components/AssetThumbnail/AssetThumbnail.d.ts +2 -2
  124. package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.d.ts +1 -1
  125. package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.d.ts +1 -1
  126. package/dist/types/components/LinkActions/CombinedLinkActions.d.ts +2 -2
  127. package/dist/types/components/LinkActions/LinkActions.d.ts +1 -1
  128. package/dist/types/components/LinkActions/LinkEntityActions.d.ts +2 -2
  129. package/dist/types/components/LinkActions/NoLinkPermissionsInfo.d.ts +2 -2
  130. package/dist/types/components/MissingEntityCard/MissingEntityCard.d.ts +2 -2
  131. package/dist/types/components/ResourceEntityErrorCard/ResourceEntityErrorCard.d.ts +2 -2
  132. package/dist/types/components/ResourceEntityErrorCard/UnsupportedEntityCard.d.ts +2 -2
  133. package/dist/types/components/ScheduledIconWithTooltip/ScheduleTooltip.d.ts +1 -1
  134. package/dist/types/components/ScheduledIconWithTooltip/ScheduledIconWithTooltip.d.ts +1 -1
  135. package/dist/types/components/SpaceName/SpaceName.d.ts +2 -2
  136. package/dist/types/entries/MultipleEntryReferenceEditor.d.ts +2 -2
  137. package/dist/types/entries/SingleEntryReferenceEditor.d.ts +2 -2
  138. package/dist/types/entries/WrappedEntryCard/FetchingWrappedEntryCard.d.ts +2 -2
  139. package/dist/types/entries/WrappedEntryCard/WrappedEntryCard.d.ts +1 -1
  140. package/dist/types/resources/Cards/ContentfulEntryCard.d.ts +2 -2
  141. package/dist/types/resources/Cards/ResourceCard.d.ts +2 -2
  142. package/dist/types/resources/MultipleResourceReferenceEditor.d.ts +2 -2
  143. package/dist/types/resources/SingleResourceReferenceEditor.d.ts +2 -2
  144. package/package.json +7 -4
@@ -37,14 +37,14 @@ describe('CreateEntryLinkButton general', ()=>{
37
37
  }
38
38
  };
39
39
  it('renders with multiple content types as list', ()=>{
40
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, props));
40
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, props));
41
41
  expect(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
42
42
  const link = findButton(getByTestId);
43
43
  expect(link).toBeDefined();
44
44
  expect(link.textContent).toBe('Add entry');
45
45
  });
46
46
  it('renders dropdown menu on click when with multiple content types', ()=>{
47
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, props));
47
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, props));
48
48
  fireEvent.click(findButton(getByTestId));
49
49
  const menu = getByTestId('add-entry-menu');
50
50
  expect(menu).toBeDefined();
@@ -54,7 +54,7 @@ describe('CreateEntryLinkButton general', ()=>{
54
54
  });
55
55
  it('renders suggestedContentType as text when given', ()=>{
56
56
  const suggestedContentTypeId = 'ID_2';
57
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
57
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, {
58
58
  ...props,
59
59
  suggestedContentTypeId: suggestedContentTypeId
60
60
  }));
@@ -64,7 +64,7 @@ describe('CreateEntryLinkButton general', ()=>{
64
64
  expect(button.textContent).toBe(`Add ${CONTENT_TYPE_2.name}`);
65
65
  });
66
66
  it('renders the name of the content type as part of the text if only 1 content type is given', ()=>{
67
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
67
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, {
68
68
  onSelect: props.onSelect,
69
69
  contentTypes: [
70
70
  CONTENT_TYPE_1
@@ -80,7 +80,7 @@ describe('CreateEntryLinkButton general', ()=>{
80
80
  text: 'CUSTOM_TEXT',
81
81
  hasPlusIcon: true
82
82
  };
83
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
83
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, {
84
84
  ...props,
85
85
  ...propsOverrides
86
86
  }));
@@ -101,13 +101,13 @@ describe('CreateEntryLinkButton with multiple entries', ()=>{
101
101
  }
102
102
  };
103
103
  it('should render dropdown items for each content type', ()=>{
104
- const { getByTestId, getAllByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, props));
104
+ const { getByTestId , getAllByTestId } = render(React.createElement(CreateEntryLinkButton, props));
105
105
  fireEvent.click(findButton(getByTestId));
106
106
  expect(getAllByTestId('contentType')).toHaveLength(props.contentTypes.length);
107
107
  });
108
108
  it('calls onSelect after click on menu item', ()=>{
109
109
  const selectSpy = jest.fn();
110
- const { getByTestId, getAllByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
110
+ const { getByTestId , getAllByTestId } = render(React.createElement(CreateEntryLinkButton, {
111
111
  ...props,
112
112
  onSelect: selectSpy
113
113
  }));
@@ -127,7 +127,7 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
127
127
  };
128
128
  it('should fire the onSelect function when clicked', ()=>{
129
129
  const onSelectStub = jest.fn();
130
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
130
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, {
131
131
  ...props,
132
132
  onSelect: onSelectStub
133
133
  }));
@@ -139,7 +139,7 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
139
139
  describe('CreateEntryLinkButton common', ()=>{
140
140
  it('should render a spinner if onSelect returns a promise', async ()=>{
141
141
  const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
142
- const { getByTestId, container } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
142
+ const { getByTestId , container } = render(React.createElement(CreateEntryLinkButton, {
143
143
  contentTypes: [
144
144
  CONTENT_TYPE_1
145
145
  ],
@@ -155,7 +155,7 @@ describe('CreateEntryLinkButton common', ()=>{
155
155
  });
156
156
  it('should hide a spinner after the promise from onSelect resolves', async ()=>{
157
157
  const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 500)));
158
- const { getByTestId, container } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
158
+ const { getByTestId , container } = render(React.createElement(CreateEntryLinkButton, {
159
159
  contentTypes: [
160
160
  CONTENT_TYPE_1
161
161
  ],
@@ -172,7 +172,7 @@ describe('CreateEntryLinkButton common', ()=>{
172
172
  });
173
173
  it('does not emit onSelect on subsequent click before the promise from onSelect resolves', async ()=>{
174
174
  const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(()=>resolve(undefined), 200)));
175
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
175
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, {
176
176
  contentTypes: [
177
177
  CONTENT_TYPE_1
178
178
  ],
@@ -188,7 +188,7 @@ describe('CreateEntryLinkButton common', ()=>{
188
188
  });
189
189
  it('emits onSelect on subsequent click after the promise from onSelect resolves', async ()=>{
190
190
  const onSelect = jest.fn(()=>Promise.resolve());
191
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
191
+ const { getByTestId } = render(React.createElement(CreateEntryLinkButton, {
192
192
  contentTypes: [
193
193
  CONTENT_TYPE_1
194
194
  ],
@@ -1,4 +1,4 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */ import React, { useState, useRef, useEffect } from 'react';
1
+ import React, { useState, useRef, useEffect } from 'react';
2
2
  import { TextInput, Menu } from '@contentful/f36-components';
3
3
  import { SearchIcon } from '@contentful/f36-icons';
4
4
  import tokens from '@contentful/f36-tokens';
@@ -36,23 +36,16 @@ const styles = {
36
36
  borderColor: tokens.gray200
37
37
  })
38
38
  };
39
- export const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, contentTypesLabel, onSelect, testId, dropdownSettings = {
39
+ export const CreateEntryMenuTrigger = ({ contentTypes , suggestedContentTypeId , contentTypesLabel , onSelect , testId , dropdownSettings ={
40
40
  position: 'bottom-left'
41
- }, customDropdownItems, children, menuProps })=>{
41
+ } , customDropdownItems , children , menuProps })=>{
42
42
  const [isOpen, setOpen] = useState(false);
43
43
  const [isSelecting, setSelecting] = useState(false);
44
44
  const [searchInput, setSearchInput] = useState('');
45
45
  const wrapper = useRef(null);
46
46
  const textField = useRef(null);
47
47
  const menuListRef = useRef(null);
48
- /*
49
- By default, dropdown wraps it's content, so it's width = the width of the widest item
50
- During search, menu items change, and so the widest menu item can change
51
- This leads to menu always changing it's width
52
- To prevent this, we get the width of the menu item after the first mount of a dropdown (when all the content is displayed)
53
- And hardcode it through the class name. This way we ensure that even during search the menu will keep that max width
54
- That it had on initial mount and that fits any menu item in has
55
- */ const [dropdownWidth, setDropdownWidth] = useState();
48
+ const [dropdownWidth, setDropdownWidth] = useState();
56
49
  const hasDropdown = contentTypes.length > 1 || !!customDropdownItems;
57
50
  const closeMenu = ()=>setOpen(false);
58
51
  useEffect(()=>{
@@ -77,7 +70,6 @@ export const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, c
77
70
  const handleSelect = (item)=>{
78
71
  closeMenu();
79
72
  const res = onSelect(item.sys.id);
80
- // TODO: Convert to controllable component.
81
73
  if (res && typeof res.then === 'function') {
82
74
  setSelecting(true);
83
75
  res.then(()=>setSelecting(false), ()=>setSelecting(false));
@@ -97,28 +89,28 @@ export const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, c
97
89
  }, [
98
90
  isOpen
99
91
  ]);
100
- const renderSearchResultsCount = (resultsLength)=>resultsLength ? /*#__PURE__*/ React.createElement(Menu.SectionTitle, {
92
+ const renderSearchResultsCount = (resultsLength)=>resultsLength ? React.createElement(Menu.SectionTitle, {
101
93
  testId: "add-entru-menu-search-results"
102
94
  }, resultsLength, " result", resultsLength > 1 ? 's' : '') : null;
103
95
  const isSearchable = contentTypes.length > MAX_ITEMS_WITHOUT_SEARCH;
104
96
  const maxDropdownHeight = suggestedContentTypeId ? 300 : 250;
105
97
  const suggestedContentType = contentTypes.find((ct)=>ct.sys.id === suggestedContentTypeId);
106
98
  const filteredContentTypes = contentTypes.filter((ct)=>!searchInput || get(ct, 'name', 'Untitled').toLowerCase().includes(searchInput.toLowerCase()));
107
- return /*#__PURE__*/ React.createElement("span", {
99
+ return React.createElement("span", {
108
100
  className: styles.wrapper,
109
101
  ref: wrapper,
110
102
  "data-test-id": testId
111
- }, /*#__PURE__*/ React.createElement(Menu, {
103
+ }, React.createElement(Menu, {
112
104
  placement: menuPlacementMap[dropdownSettings.position],
113
105
  isAutoalignmentEnabled: dropdownSettings.isAutoalignmentEnabled,
114
106
  isOpen: isOpen,
115
107
  onClose: closeMenu,
116
108
  onOpen: handleMenuOpen,
117
109
  ...menuProps
118
- }, /*#__PURE__*/ React.createElement(Menu.Trigger, null, children({
110
+ }, React.createElement(Menu.Trigger, null, children({
119
111
  isOpen,
120
112
  isSelecting
121
- })), isOpen && /*#__PURE__*/ React.createElement(Menu.List, {
113
+ })), isOpen && React.createElement(Menu.List, {
122
114
  className: styles.dropdownList,
123
115
  style: {
124
116
  width: dropdownWidth != undefined ? `${dropdownWidth}px` : undefined,
@@ -126,25 +118,25 @@ export const CreateEntryMenuTrigger = ({ contentTypes, suggestedContentTypeId, c
126
118
  },
127
119
  ref: menuListRef,
128
120
  testId: "add-entry-menu"
129
- }, Boolean(customDropdownItems) && /*#__PURE__*/ React.createElement(React.Fragment, null, customDropdownItems, /*#__PURE__*/ React.createElement(Menu.Divider, null)), isSearchable && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement("div", {
121
+ }, Boolean(customDropdownItems) && React.createElement(React.Fragment, null, customDropdownItems, React.createElement(Menu.Divider, null)), isSearchable && React.createElement(React.Fragment, null, React.createElement("div", {
130
122
  ref: textField,
131
123
  className: styles.inputWrapper
132
- }, /*#__PURE__*/ React.createElement(TextInput, {
124
+ }, React.createElement(TextInput, {
133
125
  className: styles.searchInput,
134
126
  placeholder: "Search all content types",
135
127
  testId: "add-entry-menu-search",
136
128
  value: searchInput,
137
129
  onChange: (e)=>setSearchInput(e.target.value)
138
- }), /*#__PURE__*/ React.createElement(SearchIcon, {
130
+ }), React.createElement(SearchIcon, {
139
131
  className: styles.searchIcon
140
- })), /*#__PURE__*/ React.createElement(Menu.Divider, null)), searchInput && renderSearchResultsCount(filteredContentTypes.length), suggestedContentType && !searchInput && /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Menu.SectionTitle, null, "Suggested Content Type"), /*#__PURE__*/ React.createElement(Menu.Item, {
132
+ })), React.createElement(Menu.Divider, null)), searchInput && renderSearchResultsCount(filteredContentTypes.length), suggestedContentType && !searchInput && React.createElement(React.Fragment, null, React.createElement(Menu.SectionTitle, null, "Suggested Content Type"), React.createElement(Menu.Item, {
141
133
  testId: "suggested",
142
134
  onClick: ()=>handleSelect(suggestedContentType)
143
- }, get(suggestedContentType, 'name')), /*#__PURE__*/ React.createElement(Menu.Divider, null)), !searchInput && /*#__PURE__*/ React.createElement(Menu.SectionTitle, null, contentTypesLabel), filteredContentTypes.length ? filteredContentTypes.map((contentType, i)=>/*#__PURE__*/ React.createElement(Menu.Item, {
135
+ }, get(suggestedContentType, 'name')), React.createElement(Menu.Divider, null)), !searchInput && React.createElement(Menu.SectionTitle, null, contentTypesLabel), filteredContentTypes.length ? filteredContentTypes.map((contentType, i)=>React.createElement(Menu.Item, {
144
136
  testId: "contentType",
145
137
  key: `${get(contentType, 'name')}-${i}`,
146
138
  onClick: ()=>handleSelect(contentType)
147
- }, get(contentType, 'name', 'Untitled'))) : /*#__PURE__*/ React.createElement(Menu.Item, {
139
+ }, get(contentType, 'name', 'Untitled'))) : React.createElement(Menu.Item, {
148
140
  testId: "add-entru-menu-search-results"
149
141
  }, "No results found"))));
150
142
  };
@@ -3,7 +3,6 @@ import { Button } from '@contentful/f36-components';
3
3
  import '@testing-library/jest-dom/extend-expect';
4
4
  import { act, configure, fireEvent, render } from '@testing-library/react';
5
5
  import noop from 'lodash/noop';
6
- // eslint-disable-next-line -- TODO: describe this disable you-dont-need-lodash-underscore/fill
7
6
  import fill from 'lodash/fill';
8
7
  import { CreateEntryMenuTrigger } from './CreateEntryMenuTrigger';
9
8
  configure({
@@ -40,7 +39,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
40
39
  };
41
40
  let stub = jest.fn();
42
41
  beforeEach(()=>{
43
- stub = jest.fn().mockImplementation(()=>/*#__PURE__*/ React.createElement(Button, {
42
+ stub = jest.fn().mockImplementation(()=>React.createElement(Button, {
44
43
  testId: "menu-trigger"
45
44
  }));
46
45
  });
@@ -48,13 +47,13 @@ describe('CreateEntryMenuTrigger general', ()=>{
48
47
  const stub = (api)=>{
49
48
  expect(api.isOpen).toBe(false);
50
49
  expect(api.isSelecting).toBe(false);
51
- return /*#__PURE__*/ React.createElement("span", null);
50
+ return React.createElement("span", null);
52
51
  };
53
- render(/*#__PURE__*/ React.createElement(CreateEntryMenuTrigger, props, stub));
52
+ render(React.createElement(CreateEntryMenuTrigger, props, stub));
54
53
  });
55
54
  it('should set isSelecting to true in case onSelect returns a promise', async ()=>{
56
55
  const selectStub = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
57
- const { getAllByTestId, getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryMenuTrigger, {
56
+ const { getAllByTestId , getByTestId } = render(React.createElement(CreateEntryMenuTrigger, {
58
57
  ...props,
59
58
  onSelect: selectStub
60
59
  }, stub));
@@ -68,7 +67,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
68
67
  });
69
68
  it('should not set isSelecting to true in case onSelect is sync', async ()=>{
70
69
  const selectStub = jest.fn();
71
- const { getAllByTestId, getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryMenuTrigger, {
70
+ const { getAllByTestId , getByTestId } = render(React.createElement(CreateEntryMenuTrigger, {
72
71
  ...props,
73
72
  onSelect: selectStub
74
73
  }, stub));
@@ -85,7 +84,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
85
84
  expect(selectStub).toHaveBeenCalled();
86
85
  });
87
86
  it('renders text input if contentTypes.length > 20', ()=>{
88
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryMenuTrigger, {
87
+ const { getByTestId } = render(React.createElement(CreateEntryMenuTrigger, {
89
88
  ...props,
90
89
  contentTypes: fill(Array(21), CONTENT_TYPE_3)
91
90
  }, stub));
@@ -96,7 +95,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
96
95
  });
97
96
  it('shows the search results if typed in input', ()=>{
98
97
  const contentTypes = fill(fill(fill(Array(21), CONTENT_TYPE_1, 0, 10), CONTENT_TYPE_2, 10, 20), CONTENT_TYPE_3, 20);
99
- const { getByTestId, getAllByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryMenuTrigger, {
98
+ const { getByTestId , getAllByTestId } = render(React.createElement(CreateEntryMenuTrigger, {
100
99
  ...props,
101
100
  contentTypes: contentTypes
102
101
  }, stub));
@@ -129,7 +128,7 @@ describe('CreateEntryMenuTrigger general', ()=>{
129
128
  expect(getByTestId('add-entru-menu-search-results').textContent).toBe('No results found');
130
129
  });
131
130
  it('shows suggestedContentType in the list', ()=>{
132
- const { getByTestId } = render(/*#__PURE__*/ React.createElement(CreateEntryMenuTrigger, {
131
+ const { getByTestId } = render(React.createElement(CreateEntryMenuTrigger, {
133
132
  ...props,
134
133
  suggestedContentTypeId: props.contentTypes[0].sys.id
135
134
  }, stub));
@@ -9,27 +9,18 @@ const testIds = {
9
9
  ...sharedTextIds,
10
10
  actionsWrapper: 'link-actions-menu-trigger'
11
11
  };
12
- /**
13
- * Alternative, experimental alternative to <LinkActions /> that is planned to
14
- * replace the current default LinkActions in reference and media editors.
15
- *
16
- * Places both actions to create and link new, as well as link existing, behind
17
- * one action dropdown and introduces new copy for action labels.
18
- */ export function CombinedLinkActions(props) {
12
+ export function CombinedLinkActions(props) {
19
13
  if (props.isFull) {
20
- return null; // Don't render link actions if we reached max allowed links.
14
+ return null;
21
15
  }
22
- // We don't want to render a spacious container in case there are are already
23
- // assets linked (in case of entries, always show it) as the border wouldn't be
24
- // nicely aligned with asset cards.
25
16
  const hideEmptyCard = props.entityType === 'Asset' && !props.isEmpty;
26
- return /*#__PURE__*/ React.createElement("div", {
17
+ return React.createElement("div", {
27
18
  className: hideEmptyCard ? '' : styles.container
28
- }, !props.canCreateEntity && !props.canLinkEntity && /*#__PURE__*/ React.createElement(NoLinkPermissionsInfo, null), props.entityType === 'Entry' && /*#__PURE__*/ React.createElement(CombinedEntryLinkActions, props), props.entityType === 'Asset' && /*#__PURE__*/ React.createElement(CombinedAssetLinkActions, props));
19
+ }, !props.canCreateEntity && !props.canLinkEntity && React.createElement(NoLinkPermissionsInfo, null), props.entityType === 'Entry' && React.createElement(CombinedEntryLinkActions, props), props.entityType === 'Asset' && React.createElement(CombinedAssetLinkActions, props));
29
20
  }
30
21
  function CombinedEntryLinkActions(props) {
31
22
  if (props.canCreateEntity) {
32
- return /*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
23
+ return React.createElement(CreateEntryLinkButton, {
33
24
  testId: testIds.actionsWrapper,
34
25
  disabled: props.isDisabled,
35
26
  text: props.combinedActionsLabel || 'Add content',
@@ -42,7 +33,7 @@ function CombinedEntryLinkActions(props) {
42
33
  onSelect: (contentTypeId)=>{
43
34
  return contentTypeId ? props.onCreate(contentTypeId) : Promise.resolve();
44
35
  },
45
- customDropdownItems: props.canLinkEntity ? /*#__PURE__*/ React.createElement(Menu.Item, {
36
+ customDropdownItems: props.canLinkEntity ? React.createElement(Menu.Item, {
46
37
  testId: testIds.linkExisting,
47
38
  onClick: ()=>{
48
39
  props.onLinkExisting();
@@ -50,7 +41,7 @@ function CombinedEntryLinkActions(props) {
50
41
  }, "Add existing content") : undefined
51
42
  });
52
43
  } else if (props.canLinkEntity) {
53
- return /*#__PURE__*/ React.createElement(Button, {
44
+ return React.createElement(Button, {
54
45
  isDisabled: props.isDisabled,
55
46
  testId: testIds.linkExisting,
56
47
  className: styles.action,
@@ -58,7 +49,7 @@ function CombinedEntryLinkActions(props) {
58
49
  props.onLinkExisting();
59
50
  },
60
51
  variant: "secondary",
61
- startIcon: /*#__PURE__*/ React.createElement(LinkIcon, null),
52
+ startIcon: React.createElement(LinkIcon, null),
62
53
  size: "small"
63
54
  }, "Add existing content");
64
55
  }
@@ -68,7 +59,7 @@ function CombinedAssetLinkActions(props) {
68
59
  const [isOpen, setOpen] = React.useState(false);
69
60
  if (!props.canLinkEntity || !props.canCreateEntity) {
70
61
  if (props.canLinkEntity) {
71
- return /*#__PURE__*/ React.createElement(Button, {
62
+ return React.createElement(Button, {
72
63
  isDisabled: props.isDisabled,
73
64
  testId: testIds.linkExisting,
74
65
  className: styles.action,
@@ -76,12 +67,12 @@ function CombinedAssetLinkActions(props) {
76
67
  props.onLinkExisting();
77
68
  },
78
69
  variant: "secondary",
79
- startIcon: /*#__PURE__*/ React.createElement(PlusIcon, null),
70
+ startIcon: React.createElement(PlusIcon, null),
80
71
  size: "small"
81
72
  }, "Add existing media");
82
73
  }
83
74
  if (props.canCreateEntity) {
84
- return /*#__PURE__*/ React.createElement(Button, {
75
+ return React.createElement(Button, {
85
76
  isDisabled: props.isDisabled,
86
77
  testId: testIds.createAndLink,
87
78
  className: styles.action,
@@ -89,15 +80,13 @@ function CombinedAssetLinkActions(props) {
89
80
  props.onCreate();
90
81
  },
91
82
  variant: "secondary",
92
- startIcon: /*#__PURE__*/ React.createElement(PlusIcon, null),
83
+ startIcon: React.createElement(PlusIcon, null),
93
84
  size: "small"
94
85
  }, "Add media");
95
86
  }
96
87
  return null;
97
88
  }
98
- // TODO: If we fully switch to this new layout, make a more generic `CreateEntityLinkButton`
99
- // that works without content types to cover asset use-case.
100
- return /*#__PURE__*/ React.createElement(Menu, {
89
+ return React.createElement(Menu, {
101
90
  isOpen: isOpen,
102
91
  onClose: ()=>{
103
92
  setOpen(false);
@@ -105,22 +94,22 @@ function CombinedAssetLinkActions(props) {
105
94
  onOpen: ()=>{
106
95
  setOpen(true);
107
96
  }
108
- }, /*#__PURE__*/ React.createElement(Menu.Trigger, null, /*#__PURE__*/ React.createElement(Button, {
109
- endIcon: /*#__PURE__*/ React.createElement(ChevronDownIcon, null),
97
+ }, React.createElement(Menu.Trigger, null, React.createElement(Button, {
98
+ endIcon: React.createElement(ChevronDownIcon, null),
110
99
  isDisabled: props.isDisabled,
111
100
  testId: testIds.actionsWrapper,
112
101
  className: styles.action,
113
102
  variant: "secondary",
114
- startIcon: /*#__PURE__*/ React.createElement(PlusIcon, null),
103
+ startIcon: React.createElement(PlusIcon, null),
115
104
  size: "small"
116
- }, "Add media")), isOpen && /*#__PURE__*/ React.createElement(Menu.List, {
105
+ }, "Add media")), isOpen && React.createElement(Menu.List, {
117
106
  testId: testIds.dropdown
118
- }, /*#__PURE__*/ React.createElement(Menu.Item, {
107
+ }, React.createElement(Menu.Item, {
119
108
  testId: testIds.linkExisting,
120
109
  onClick: ()=>{
121
110
  props.onLinkExisting();
122
111
  }
123
- }, "Add existing media"), /*#__PURE__*/ React.createElement(Menu.Item, {
112
+ }, "Add existing media"), React.createElement(Menu.Item, {
124
113
  testId: testIds.createAndLink,
125
114
  onClick: ()=>{
126
115
  props.onCreate();
@@ -20,16 +20,16 @@ export const testIds = {
20
20
  };
21
21
  export function LinkActions(props) {
22
22
  if (props.isFull) {
23
- return null; // Don't render link actions if we reached max allowed links.
23
+ return null;
24
24
  }
25
25
  const defaultLabels = props.entityType === 'Entry' ? defaultEntryLabels : defaultAssetLabels;
26
26
  const labels = {
27
27
  ...defaultLabels,
28
28
  ...props.actionLabels
29
29
  };
30
- return /*#__PURE__*/ React.createElement("div", {
30
+ return React.createElement("div", {
31
31
  className: styles.container
32
- }, props.canCreateEntity && /*#__PURE__*/ React.createElement(React.Fragment, null, props.entityType === 'Entry' && /*#__PURE__*/ React.createElement(CreateEntryLinkButton, {
32
+ }, props.canCreateEntity && React.createElement(React.Fragment, null, props.entityType === 'Entry' && React.createElement(CreateEntryLinkButton, {
33
33
  testId: testIds.createAndLink,
34
34
  disabled: props.isDisabled,
35
35
  text: labels.createNew({
@@ -40,27 +40,27 @@ export function LinkActions(props) {
40
40
  onSelect: (contentTypeId)=>{
41
41
  return contentTypeId ? props.onCreate(contentTypeId, props.itemsLength) : Promise.resolve();
42
42
  }
43
- }), props.entityType === 'Asset' && /*#__PURE__*/ React.createElement(Button, {
43
+ }), props.entityType === 'Asset' && React.createElement(Button, {
44
44
  isDisabled: props.isDisabled,
45
45
  testId: testIds.createAndLink,
46
46
  onClick: ()=>{
47
47
  props.onCreate(undefined, props.itemsLength);
48
48
  },
49
49
  variant: "secondary",
50
- startIcon: /*#__PURE__*/ React.createElement(PlusIcon, null),
50
+ startIcon: React.createElement(PlusIcon, null),
51
51
  size: "small"
52
- }, labels.createNew()), /*#__PURE__*/ React.createElement("span", {
52
+ }, labels.createNew()), React.createElement("span", {
53
53
  className: styles.separator
54
- })), props.canLinkEntity && /*#__PURE__*/ React.createElement(Button, {
54
+ })), props.canLinkEntity && React.createElement(Button, {
55
55
  isDisabled: props.isDisabled,
56
56
  testId: testIds.linkExisting,
57
57
  onClick: ()=>{
58
58
  props.onLinkExisting();
59
59
  },
60
60
  variant: "secondary",
61
- startIcon: /*#__PURE__*/ React.createElement(LinkIcon, null),
61
+ startIcon: React.createElement(LinkIcon, null),
62
62
  size: "small"
63
63
  }, labels.linkExisting({
64
64
  canLinkMultiple: props.canLinkMultiple
65
- })), !props.canCreateEntity && !props.canLinkEntity && /*#__PURE__*/ React.createElement(NoLinkPermissionsInfo, null));
65
+ })), !props.canCreateEntity && !props.canLinkEntity && React.createElement(NoLinkPermissionsInfo, null));
66
66
  }
@@ -4,7 +4,7 @@ import { CombinedLinkActions } from './CombinedLinkActions';
4
4
  import { createEntity, selectMultipleEntities, selectSingleEntity } from './helpers';
5
5
  import { LinkActions } from './LinkActions';
6
6
  export function useLinkActionsProps(props) {
7
- const { sdk, editorPermissions, entityType, canLinkMultiple, isDisabled, actionLabels, itemsLength } = props;
7
+ const { sdk , editorPermissions , entityType , canLinkMultiple , isDisabled , actionLabels , itemsLength } = props;
8
8
  const maxLinksCount = editorPermissions.validations.numberOfLinks?.max;
9
9
  const value = sdk.field.getValue();
10
10
  const linkCount = Array.isArray(value) ? value.length : value ? 1 : 0;
@@ -19,8 +19,7 @@ export function useLinkActionsProps(props) {
19
19
  slide,
20
20
  index
21
21
  });
22
- }, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
23
- [
22
+ }, [
24
23
  entityType,
25
24
  props.onCreate,
26
25
  props.onAction
@@ -35,14 +34,13 @@ export function useLinkActionsProps(props) {
35
34
  index: index === undefined ? undefined : index + i
36
35
  });
37
36
  });
38
- }, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
39
- [
37
+ }, [
40
38
  entityType,
41
39
  props.onLink,
42
40
  props.onAction
43
41
  ]);
44
42
  const onCreate = React.useCallback(async (contentTypeId, index)=>{
45
- const { entity, slide } = await createEntity({
43
+ const { entity , slide } = await createEntity({
46
44
  sdk,
47
45
  entityType,
48
46
  contentTypeId
@@ -68,8 +66,7 @@ export function useLinkActionsProps(props) {
68
66
  onLinkedExisting([
69
67
  entity
70
68
  ], index);
71
- }, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
72
- [
69
+ }, [
73
70
  sdk,
74
71
  entityType,
75
72
  onLinkedExisting
@@ -84,13 +81,11 @@ export function useLinkActionsProps(props) {
84
81
  return;
85
82
  }
86
83
  onLinkedExisting(entities, index);
87
- }, // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
88
- [
84
+ }, [
89
85
  sdk,
90
86
  entityType,
91
87
  onLinkedExisting
92
88
  ]);
93
- // FIXME: The memoization might rerun every time due to the always changing callback identities above
94
89
  return useMemo(()=>({
95
90
  entityType,
96
91
  canLinkMultiple,
@@ -106,8 +101,7 @@ export function useLinkActionsProps(props) {
106
101
  onCreated,
107
102
  onLinkedExisting,
108
103
  itemsLength
109
- }), // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
110
- [
104
+ }), [
111
105
  entityType,
112
106
  canLinkMultiple,
113
107
  isDisabled,
@@ -116,7 +110,6 @@ export function useLinkActionsProps(props) {
116
110
  editorPermissions.canCreateEntity,
117
111
  editorPermissions.canLinkEntity,
118
112
  actionLabels,
119
- // eslint-disable-next-line react-hooks/exhaustive-deps -- TODO: Evaluate the dependencies
120
113
  editorPermissions.creatableContentTypes.map((ct)=>ct.sys.id).join(':'),
121
114
  onCreate,
122
115
  onLinkExisting,
@@ -126,9 +119,9 @@ export function useLinkActionsProps(props) {
126
119
  itemsLength
127
120
  ]);
128
121
  }
129
- export function LinkEntityActions({ renderCustomActions, ...props }) {
130
- return renderCustomActions ? renderCustomActions(props) : /*#__PURE__*/ React.createElement(LinkActions, props);
122
+ export function LinkEntityActions({ renderCustomActions , ...props }) {
123
+ return renderCustomActions ? renderCustomActions(props) : React.createElement(LinkActions, props);
131
124
  }
132
- export function CombinedLinkEntityActions({ renderCustomActions, ...props }) {
133
- return renderCustomActions ? renderCustomActions(props) : /*#__PURE__*/ React.createElement(CombinedLinkActions, props);
125
+ export function CombinedLinkEntityActions({ renderCustomActions , ...props }) {
126
+ return renderCustomActions ? renderCustomActions(props) : React.createElement(CombinedLinkActions, props);
134
127
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { Paragraph } from '@contentful/f36-components';
3
3
  export function NoLinkPermissionsInfo() {
4
- return /*#__PURE__*/ React.createElement(Paragraph, null, "You don't have permission to view this content or this field is not correctly configured. Contact your administrator for help.");
4
+ return React.createElement(Paragraph, null, "You don't have permission to view this content or this field is not correctly configured. Contact your administrator for help.");
5
5
  }
@@ -4,7 +4,7 @@ export async function createEntity(props) {
4
4
  if (!props.contentTypeId) {
5
5
  return {};
6
6
  }
7
- const { entity, slide } = await props.sdk.navigator.openNewEntry(props.contentTypeId, {
7
+ const { entity , slide } = await props.sdk.navigator.openNewEntry(props.contentTypeId, {
8
8
  slideIn: true
9
9
  });
10
10
  return {
@@ -12,7 +12,7 @@ export async function createEntity(props) {
12
12
  slide
13
13
  };
14
14
  } else {
15
- const { entity, slide } = await props.sdk.navigator.openNewAsset({
15
+ const { entity , slide } = await props.sdk.navigator.openNewAsset({
16
16
  slideIn: true
17
17
  });
18
18
  return {
@@ -25,8 +25,6 @@ export async function selectSingleEntity(props) {
25
25
  if (props.entityType === 'Entry') {
26
26
  return await props.sdk.dialogs.selectSingleEntry({
27
27
  locale: props.sdk.field.locale,
28
- // readable CTs do not cover cases where user has partial access to a CT entry,
29
- // e.g. via tags so we're passing in all available CTs (based on field validations)
30
28
  contentTypes: getContentTypeIds(props.editorPermissions.availableContentTypes)
31
29
  });
32
30
  } else {
@@ -39,18 +37,11 @@ export async function selectSingleEntity(props) {
39
37
  export async function selectMultipleEntities(props) {
40
38
  const value = props.sdk.field.getValue();
41
39
  const linkCount = Array.isArray(value) ? value.length : value ? 1 : 0;
42
- // TODO: Why not always set `min: 1` by default? Does it make sense to enforce
43
- // user to select as many entities as the field's "min" requires? What if e.g.
44
- // "min" is 4 and the user wants to insert 2 entities first, then create 2 new ones?
45
40
  const min = Math.max((props.editorPermissions.validations.numberOfLinks?.min || 1) - linkCount, 1);
46
- // TODO: Consider same for max. If e.g. "max" is 4, we disable the button if the
47
- // user wants to select 5 but we show no information why the button is disabled.
48
41
  const max = (props.editorPermissions.validations.numberOfLinks?.max || +Infinity) - linkCount;
49
42
  if (props.entityType === 'Entry') {
50
43
  return await props.sdk.dialogs.selectMultipleEntries({
51
44
  locale: props.sdk.field.locale,
52
- // readable CTs do not cover cases where user has partial access to a CT entry,
53
- // e.g. via tags so we're passing in all available CTs (based on field validations)
54
45
  contentTypes: getContentTypeIds(props.editorPermissions.availableContentTypes),
55
46
  min,
56
47
  max
@@ -3,20 +3,20 @@ import { Card, Flex, IconButton, SectionHeading } from '@contentful/f36-componen
3
3
  import { CloseIcon } from '@contentful/f36-icons';
4
4
  import * as styles from './styles';
5
5
  export function MissingEntityCard(props) {
6
- return /*#__PURE__*/ React.createElement(Card, {
6
+ return React.createElement(Card, {
7
7
  className: styles.card,
8
8
  testId: "cf-ui-missing-entry-card",
9
9
  isSelected: props.isSelected
10
- }, /*#__PURE__*/ React.createElement(Flex, {
10
+ }, React.createElement(Flex, {
11
11
  alignItems: "center",
12
12
  justifyContent: "space-between"
13
- }, /*#__PURE__*/ React.createElement("div", {
13
+ }, React.createElement("div", {
14
14
  className: props.asSquare ? styles.squareCard : ''
15
- }, /*#__PURE__*/ React.createElement(SectionHeading, {
15
+ }, React.createElement(SectionHeading, {
16
16
  marginBottom: "none"
17
- }, props.entityType, " is missing or inaccessible")), !props.isDisabled && props.onRemove && /*#__PURE__*/ React.createElement(IconButton, {
17
+ }, props.entityType, " is missing or inaccessible")), !props.isDisabled && props.onRemove && React.createElement(IconButton, {
18
18
  variant: "transparent",
19
- icon: /*#__PURE__*/ React.createElement(CloseIcon, {
19
+ icon: React.createElement(CloseIcon, {
20
20
  variant: "muted"
21
21
  }),
22
22
  "aria-label": "Delete",