@payloadcms/ui 3.49.0-canary.7 → 3.49.0

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 (288) hide show
  1. package/dist/elements/ColumnSelector/index.js +1 -1
  2. package/dist/elements/ColumnSelector/index.js.map +1 -1
  3. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  4. package/dist/elements/DeleteDocument/index.js +65 -47
  5. package/dist/elements/DeleteDocument/index.js.map +1 -1
  6. package/dist/elements/DeleteDocument/index.scss +10 -0
  7. package/dist/elements/DeleteMany/index.d.ts +17 -2
  8. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  9. package/dist/elements/DeleteMany/index.js +162 -49
  10. package/dist/elements/DeleteMany/index.js.map +1 -1
  11. package/dist/elements/DeleteMany/index.scss +13 -0
  12. package/dist/elements/DocumentControls/index.d.ts +3 -0
  13. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  14. package/dist/elements/DocumentControls/index.js +24 -5
  15. package/dist/elements/DocumentControls/index.js.map +1 -1
  16. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -2
  18. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  19. package/dist/elements/DocumentDrawer/Provider.d.ts +4 -0
  20. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  21. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  22. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  23. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  24. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  25. package/dist/elements/DocumentFields/index.d.ts +1 -0
  26. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentFields/index.js +3 -1
  28. package/dist/elements/DocumentFields/index.js.map +1 -1
  29. package/dist/elements/EditMany/DrawerContent.d.ts +2 -0
  30. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  31. package/dist/elements/EditMany/DrawerContent.js +7 -3
  32. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  33. package/dist/elements/EditMany/index.d.ts +7 -2
  34. package/dist/elements/EditMany/index.d.ts.map +1 -1
  35. package/dist/elements/EditMany/index.js +39 -34
  36. package/dist/elements/EditMany/index.js.map +1 -1
  37. package/dist/elements/FolderView/Cell/index.client.d.ts +3 -2
  38. package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
  39. package/dist/elements/FolderView/Cell/index.client.js +3 -1
  40. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  41. package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
  42. package/dist/elements/FolderView/Cell/index.server.js +2 -1
  43. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  44. package/dist/elements/GroupByBuilder/index.d.ts +9 -0
  45. package/dist/elements/GroupByBuilder/index.d.ts.map +1 -0
  46. package/dist/elements/GroupByBuilder/index.js +112 -0
  47. package/dist/elements/GroupByBuilder/index.js.map +1 -0
  48. package/dist/elements/GroupByBuilder/index.scss +39 -0
  49. package/dist/elements/LeaveWithoutSaving/index.d.ts +6 -1
  50. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  51. package/dist/elements/LeaveWithoutSaving/index.js +69 -49
  52. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +28 -4
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/ListControls/index.scss +4 -2
  57. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  58. package/dist/elements/ListDrawer/DrawerContent.js +34 -15
  59. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  60. package/dist/elements/ListDrawer/Provider.d.ts +9 -3
  61. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  62. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  63. package/dist/elements/ListDrawer/index.d.ts +19 -0
  64. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  65. package/dist/elements/ListDrawer/index.js +19 -0
  66. package/dist/elements/ListDrawer/index.js.map +1 -1
  67. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts +7 -0
  68. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -0
  69. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +164 -0
  70. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -0
  71. package/dist/elements/ListHeader/TitleActions/index.d.ts +1 -0
  72. package/dist/elements/ListHeader/TitleActions/index.d.ts.map +1 -1
  73. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  74. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  75. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +10 -0
  76. package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +1 -0
  77. package/dist/elements/ListHeaderTabs/ByFolderPill.js +70 -0
  78. package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +1 -0
  79. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +9 -0
  80. package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +1 -0
  81. package/dist/elements/ListHeaderTabs/DefaultListPill.js +68 -0
  82. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -0
  83. package/dist/elements/ListHeaderTabs/TrashPill.d.ts +6 -0
  84. package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +1 -0
  85. package/dist/elements/ListHeaderTabs/TrashPill.js +53 -0
  86. package/dist/elements/ListHeaderTabs/TrashPill.js.map +1 -0
  87. package/dist/elements/{ListFolderPills → ListHeaderTabs}/index.scss +1 -2
  88. package/dist/elements/ListSelection/index.scss +1 -1
  89. package/dist/elements/PageControls/GroupByPageControls.d.ts +16 -0
  90. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -0
  91. package/dist/elements/PageControls/GroupByPageControls.js +83 -0
  92. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -0
  93. package/dist/elements/PageControls/index.d.ts +17 -0
  94. package/dist/elements/PageControls/index.d.ts.map +1 -0
  95. package/dist/elements/PageControls/index.js +70 -0
  96. package/dist/elements/PageControls/index.js.map +1 -0
  97. package/dist/elements/PageControls/index.scss +40 -0
  98. package/dist/elements/Pagination/ClickableArrow/index.scss +3 -3
  99. package/dist/elements/Pagination/index.js +1 -1
  100. package/dist/elements/Pagination/index.js.map +1 -1
  101. package/dist/elements/Pagination/index.scss +4 -4
  102. package/dist/elements/PermanentlyDeleteButton/index.d.ts +14 -0
  103. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -0
  104. package/dist/elements/PermanentlyDeleteButton/index.js +147 -0
  105. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -0
  106. package/dist/elements/PublishMany/DrawerContent.d.ts +2 -0
  107. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  108. package/dist/elements/PublishMany/DrawerContent.js +7 -3
  109. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  110. package/dist/elements/PublishMany/index.d.ts +6 -1
  111. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  112. package/dist/elements/PublishMany/index.js +38 -33
  113. package/dist/elements/PublishMany/index.js.map +1 -1
  114. package/dist/elements/ReactSelect/types.d.ts +1 -0
  115. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  116. package/dist/elements/ReactSelect/types.js.map +1 -1
  117. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  118. package/dist/elements/RelationshipTable/index.js +16 -11
  119. package/dist/elements/RelationshipTable/index.js.map +1 -1
  120. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  121. package/dist/elements/RenderTitle/index.js +1 -0
  122. package/dist/elements/RenderTitle/index.js.map +1 -1
  123. package/dist/elements/RestoreButton/index.d.ts +15 -0
  124. package/dist/elements/RestoreButton/index.d.ts.map +1 -0
  125. package/dist/elements/RestoreButton/index.js +171 -0
  126. package/dist/elements/RestoreButton/index.js.map +1 -0
  127. package/dist/elements/RestoreButton/index.scss +25 -0
  128. package/dist/elements/RestoreMany/index.d.ts +9 -0
  129. package/dist/elements/RestoreMany/index.d.ts.map +1 -0
  130. package/dist/elements/RestoreMany/index.js +193 -0
  131. package/dist/elements/RestoreMany/index.js.map +1 -0
  132. package/dist/elements/RestoreMany/index.scss +25 -0
  133. package/dist/elements/Status/index.d.ts.map +1 -1
  134. package/dist/elements/Status/index.js +6 -4
  135. package/dist/elements/Status/index.js.map +1 -1
  136. package/dist/elements/StickyToolbar/index.d.ts +6 -0
  137. package/dist/elements/StickyToolbar/index.d.ts.map +1 -0
  138. package/dist/elements/StickyToolbar/index.js +11 -0
  139. package/dist/elements/StickyToolbar/index.js.map +1 -0
  140. package/dist/elements/StickyToolbar/index.scss +27 -0
  141. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  142. package/dist/elements/Table/DefaultCell/index.js +10 -8
  143. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  144. package/dist/elements/Table/OrderableTable.d.ts +2 -0
  145. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  146. package/dist/elements/Table/OrderableTable.js +4 -3
  147. package/dist/elements/Table/OrderableTable.js.map +1 -1
  148. package/dist/elements/Table/index.d.ts +1 -0
  149. package/dist/elements/Table/index.d.ts.map +1 -1
  150. package/dist/elements/Table/index.js +5 -4
  151. package/dist/elements/Table/index.js.map +1 -1
  152. package/dist/elements/TrashBanner/index.d.ts +4 -0
  153. package/dist/elements/TrashBanner/index.d.ts.map +1 -0
  154. package/dist/elements/TrashBanner/index.js +37 -0
  155. package/dist/elements/TrashBanner/index.js.map +1 -0
  156. package/dist/elements/TrashBanner/index.scss +20 -0
  157. package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -0
  158. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  159. package/dist/elements/UnpublishMany/DrawerContent.js +6 -2
  160. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  161. package/dist/elements/UnpublishMany/index.d.ts +6 -1
  162. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  163. package/dist/elements/UnpublishMany/index.js +38 -33
  164. package/dist/elements/UnpublishMany/index.js.map +1 -1
  165. package/dist/elements/WhereBuilder/index.js +3 -3
  166. package/dist/elements/WhereBuilder/index.js.map +1 -1
  167. package/dist/exports/client/index.d.ts +2 -0
  168. package/dist/exports/client/index.d.ts.map +1 -1
  169. package/dist/exports/client/index.js +24 -22
  170. package/dist/exports/client/index.js.map +4 -4
  171. package/dist/fields/Blocks/index.d.ts.map +1 -1
  172. package/dist/fields/Blocks/index.js +1 -0
  173. package/dist/fields/Blocks/index.js.map +1 -1
  174. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  175. package/dist/fields/Checkbox/Input.js +2 -0
  176. package/dist/fields/Checkbox/Input.js.map +1 -1
  177. package/dist/fields/Select/Input.d.ts +1 -0
  178. package/dist/fields/Select/Input.d.ts.map +1 -1
  179. package/dist/fields/Select/Input.js +48 -45
  180. package/dist/fields/Select/Input.js.map +1 -1
  181. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  182. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  183. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +7 -0
  184. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  185. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  186. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  187. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  188. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  189. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  190. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  191. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  192. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  193. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  194. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  195. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  196. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  197. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  198. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  199. package/dist/icons/Trash/index.d.ts +6 -0
  200. package/dist/icons/Trash/index.d.ts.map +1 -0
  201. package/dist/icons/Trash/index.js +22 -0
  202. package/dist/icons/Trash/index.js.map +1 -0
  203. package/dist/icons/Trash/index.scss +6 -0
  204. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  205. package/dist/providers/DocumentInfo/index.js +6 -0
  206. package/dist/providers/DocumentInfo/index.js.map +1 -1
  207. package/dist/providers/DocumentInfo/types.d.ts +7 -0
  208. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  209. package/dist/providers/DocumentInfo/types.js.map +1 -1
  210. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  211. package/dist/providers/ListQuery/index.js +24 -13
  212. package/dist/providers/ListQuery/index.js.map +1 -1
  213. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  214. package/dist/providers/ListQuery/mergeQuery.js +15 -1
  215. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  216. package/dist/providers/ListQuery/types.d.ts +7 -3
  217. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  218. package/dist/providers/ListQuery/types.js.map +1 -1
  219. package/dist/providers/Selection/index.d.ts +6 -2
  220. package/dist/providers/Selection/index.d.ts.map +1 -1
  221. package/dist/providers/Selection/index.js +37 -19
  222. package/dist/providers/Selection/index.js.map +1 -1
  223. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  224. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  225. package/dist/providers/ServerFunctions/index.js.map +1 -1
  226. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  227. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  228. package/dist/providers/TableColumns/buildColumnState/index.js +4 -2
  229. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  230. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  231. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  232. package/dist/providers/TableColumns/buildColumnState/renderCell.js +4 -2
  233. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  234. package/dist/styles.css +1 -1
  235. package/dist/utilities/buildFormState.d.ts.map +1 -1
  236. package/dist/utilities/buildFormState.js +2 -0
  237. package/dist/utilities/buildFormState.js.map +1 -1
  238. package/dist/utilities/buildTableState.js +5 -7
  239. package/dist/utilities/buildTableState.js.map +1 -1
  240. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  241. package/dist/utilities/copyDataFromLocale.js +29 -19
  242. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  243. package/dist/{elements/WhereBuilder/reduceFields.d.ts → utilities/reduceFieldsToOptions.d.ts} +3 -3
  244. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -0
  245. package/dist/{elements/WhereBuilder/reduceFields.js → utilities/reduceFieldsToOptions.js} +11 -11
  246. package/dist/utilities/reduceFieldsToOptions.js.map +1 -0
  247. package/dist/utilities/renderTable.d.ts +9 -3
  248. package/dist/utilities/renderTable.d.ts.map +1 -1
  249. package/dist/utilities/renderTable.js +63 -22
  250. package/dist/utilities/renderTable.js.map +1 -1
  251. package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
  252. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  253. package/dist/views/CollectionFolder/index.d.ts.map +1 -1
  254. package/dist/views/CollectionFolder/index.js +15 -5
  255. package/dist/views/CollectionFolder/index.js.map +1 -1
  256. package/dist/views/Edit/Auth/index.js +5 -4
  257. package/dist/views/Edit/Auth/index.js.map +1 -1
  258. package/dist/views/Edit/SetDocumentStepNav/index.d.ts +1 -0
  259. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  260. package/dist/views/Edit/SetDocumentStepNav/index.js +26 -15
  261. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  262. package/dist/views/Edit/index.d.ts.map +1 -1
  263. package/dist/views/Edit/index.js +59 -35
  264. package/dist/views/Edit/index.js.map +1 -1
  265. package/dist/views/List/GroupByHeader/index.d.ts +10 -0
  266. package/dist/views/List/GroupByHeader/index.d.ts.map +1 -0
  267. package/dist/views/List/GroupByHeader/index.js +29 -0
  268. package/dist/views/List/GroupByHeader/index.js.map +1 -0
  269. package/dist/views/List/GroupByHeader/index.scss +17 -0
  270. package/dist/views/List/ListHeader/index.d.ts +4 -2
  271. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  272. package/dist/views/List/ListHeader/index.js +30 -10
  273. package/dist/views/List/ListHeader/index.js.map +1 -1
  274. package/dist/views/List/ListSelection/index.d.ts +5 -1
  275. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  276. package/dist/views/List/ListSelection/index.js +53 -30
  277. package/dist/views/List/ListSelection/index.js.map +1 -1
  278. package/dist/views/List/index.d.ts.map +1 -1
  279. package/dist/views/List/index.js +122 -170
  280. package/dist/views/List/index.js.map +1 -1
  281. package/dist/views/List/index.scss +12 -35
  282. package/package.json +5 -5
  283. package/dist/elements/ListFolderPills/index.d.ts +0 -10
  284. package/dist/elements/ListFolderPills/index.d.ts.map +0 -1
  285. package/dist/elements/ListFolderPills/index.js +0 -97
  286. package/dist/elements/ListFolderPills/index.js.map +0 -1
  287. package/dist/elements/WhereBuilder/reduceFields.d.ts.map +0 -1
  288. package/dist/elements/WhereBuilder/reduceFields.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .restore-many {
5
+ @include blur-bg;
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ height: 100%;
10
+
11
+ &__toggle {
12
+ @extend %btn-reset;
13
+ }
14
+
15
+ &__checkbox {
16
+ padding: calc(var(--base) * 0.5) 0;
17
+
18
+ .checkbox-input {
19
+ label {
20
+ padding-bottom: 0;
21
+ }
22
+ }
23
+ }
24
+ }
25
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAkM1B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Status/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAW1C,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAyM1B,CAAA"}
@@ -22,6 +22,7 @@ export const Status = () => {
22
22
  globalSlug,
23
23
  hasPublishedDoc,
24
24
  incrementVersionCount,
25
+ isTrashed,
25
26
  setHasPublishedDoc,
26
27
  setMostRecentVersionIsAutosaved,
27
28
  setUnpublishedVersionCount,
@@ -58,6 +59,7 @@ export const Status = () => {
58
59
  } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {
59
60
  statusToRender = 'published';
60
61
  }
62
+ const displayStatusKey = isTrashed ? hasPublishedDoc ? 'previouslyPublished' : 'previouslyDraft' : statusToRender;
61
63
  const performAction = useCallback(async action => {
62
64
  let url;
63
65
  let method;
@@ -129,7 +131,7 @@ export const Status = () => {
129
131
  if (statusToRender) {
130
132
  return /*#__PURE__*/_jsx("div", {
131
133
  className: baseClass,
132
- title: `${t('version:status')}: ${t(`version:${statusToRender}`)}`,
134
+ title: `${t('version:status')}: ${t(`version:${displayStatusKey}`)}`,
133
135
  children: /*#__PURE__*/_jsxs("div", {
134
136
  className: `${baseClass}__value-wrap`,
135
137
  children: [/*#__PURE__*/_jsxs("span", {
@@ -137,8 +139,8 @@ export const Status = () => {
137
139
  children: [t('version:status'), ": "]
138
140
  }), /*#__PURE__*/_jsx("span", {
139
141
  className: `${baseClass}__value`,
140
- children: t(`version:${statusToRender}`)
141
- }), canUpdate && statusToRender === 'published' && /*#__PURE__*/_jsxs(React.Fragment, {
142
+ children: t(`version:${displayStatusKey}`)
143
+ }), !isTrashed && canUpdate && statusToRender === 'published' && /*#__PURE__*/_jsxs(React.Fragment, {
142
144
  children: [" — ", /*#__PURE__*/_jsx(Button, {
143
145
  buttonStyle: "none",
144
146
  className: `${baseClass}__action`,
@@ -152,7 +154,7 @@ export const Status = () => {
152
154
  modalSlug: unPublishModalSlug,
153
155
  onConfirm: () => performAction('unpublish')
154
156
  })]
155
- }), canUpdate && statusToRender === 'changed' && /*#__PURE__*/_jsxs(React.Fragment, {
157
+ }), !isTrashed && canUpdate && statusToRender === 'changed' && /*#__PURE__*/_jsxs(React.Fragment, {
156
158
  children: [" — ", /*#__PURE__*/_jsx(Button, {
157
159
  buttonStyle: "none",
158
160
  className: `${baseClass}__action`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","performAction","action","url","method","body","_status","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${statusToRender}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${statusToRender}`)}</span>\n {canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","React","useCallback","toast","useForm","useConfig","useDocumentInfo","useLocale","useTranslation","requests","Button","ConfirmationModal","baseClass","Status","id","collectionSlug","docPermissions","globalSlug","hasPublishedDoc","incrementVersionCount","isTrashed","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","toggleModal","config","routes","api","serverURL","reset","resetForm","code","locale","i18n","t","unPublishModalSlug","revertModalSlug","statusToRender","displayStatusKey","performAction","action","url","method","body","_status","publishedDoc","get","headers","language","then","res","json","JSON","stringify","status","data","result","doc","success","message","errors","error","err","canUpdate","update","_jsx","className","title","_jsxs","Fragment","buttonStyle","onClick","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/Status/index.tsx"],"sourcesContent":["'use client'\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport './index.scss'\n\nconst baseClass = 'status'\n\nexport const Status: React.FC = () => {\n const {\n id,\n collectionSlug,\n docPermissions,\n globalSlug,\n hasPublishedDoc,\n incrementVersionCount,\n isTrashed,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { toggleModal } = useModal()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { reset: resetForm } = useForm()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const unPublishModalSlug = `confirm-un-publish-${id}`\n const revertModalSlug = `confirm-revert-${id}`\n\n let statusToRender: 'changed' | 'draft' | 'published'\n\n if (unpublishedVersionCount > 0 && hasPublishedDoc) {\n statusToRender = 'changed'\n } else if (!hasPublishedDoc) {\n statusToRender = 'draft'\n } else if (hasPublishedDoc && unpublishedVersionCount <= 0) {\n statusToRender = 'published'\n }\n\n const displayStatusKey = isTrashed\n ? hasPublishedDoc\n ? 'previouslyPublished'\n : 'previouslyDraft'\n : statusToRender\n\n const performAction = useCallback(\n async (action: 'revert' | 'unpublish') => {\n let url\n let method\n let body\n\n if (action === 'unpublish') {\n body = {\n _status: 'draft',\n }\n }\n\n if (collectionSlug) {\n url = `${serverURL}${api}/${collectionSlug}/${id}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'patch'\n }\n\n if (globalSlug) {\n url = `${serverURL}${api}/globals/${globalSlug}?locale=${locale}&fallback-locale=null&depth=0`\n method = 'post'\n }\n\n if (action === 'revert') {\n const publishedDoc = await requests\n .get(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then((res) => res.json())\n\n body = publishedDoc\n }\n\n const res = await requests[method](url, {\n body: JSON.stringify(body),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n if (res.status === 200) {\n let data\n const json = await res.json()\n\n if (globalSlug) {\n data = json.result\n } else if (collectionSlug) {\n data = json.doc\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resetForm(data)\n toast.success(json.message)\n incrementVersionCount()\n setMostRecentVersionIsAutosaved(false)\n\n if (action === 'unpublish') {\n setHasPublishedDoc(false)\n } else if (action === 'revert') {\n setUnpublishedVersionCount(0)\n }\n } else {\n try {\n const json = await res.json()\n if (json.errors?.[0]?.message) {\n toast.error(json.errors[0].message)\n } else if (json.error) {\n toast.error(json.error)\n } else {\n toast.error(t('error:unPublishingDocument'))\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (err) {\n toast.error(t('error:unPublishingDocument'))\n }\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n i18n.language,\n incrementVersionCount,\n locale,\n resetForm,\n serverURL,\n setUnpublishedVersionCount,\n setMostRecentVersionIsAutosaved,\n t,\n setHasPublishedDoc,\n ],\n )\n\n const canUpdate = docPermissions?.update\n\n if (statusToRender) {\n return (\n <div\n className={baseClass}\n title={`${t('version:status')}: ${t(`version:${displayStatusKey}`)}`}\n >\n <div className={`${baseClass}__value-wrap`}>\n <span className={`${baseClass}__label`}>{t('version:status')}:&nbsp;</span>\n <span className={`${baseClass}__value`}>{t(`version:${displayStatusKey}`)}</span>\n {!isTrashed && canUpdate && statusToRender === 'published' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id={`action-unpublish`}\n onClick={() => toggleModal(unPublishModalSlug)}\n >\n {t('version:unpublish')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToUnpublish')}\n confirmingLabel={t('version:unpublishing')}\n heading={t('version:confirmUnpublish')}\n modalSlug={unPublishModalSlug}\n onConfirm={() => performAction('unpublish')}\n />\n </React.Fragment>\n )}\n {!isTrashed && canUpdate && statusToRender === 'changed' && (\n <React.Fragment>\n &nbsp;&mdash;&nbsp;\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__action`}\n id=\"action-revert-to-published\"\n onClick={() => toggleModal(revertModalSlug)}\n >\n {t('version:revertToPublished')}\n </Button>\n <ConfirmationModal\n body={t('version:aboutToRevertToPublished')}\n confirmingLabel={t('version:reverting')}\n heading={t('version:confirmRevertToSaved')}\n modalSlug={revertModalSlug}\n onConfirm={() => performAction('revert')}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare const StickyToolbar: React.FC<{
4
+ children: React.ReactNode;
5
+ }>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StickyToolbar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAiE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import './index.scss';
4
+ const baseClass = 'sticky-toolbar';
5
+ export const StickyToolbar = ({
6
+ children
7
+ }) => /*#__PURE__*/_jsx("div", {
8
+ className: baseClass,
9
+ children: children
10
+ });
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","baseClass","StickyToolbar","children","_jsx","className"],"sources":["../../../src/elements/StickyToolbar/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'sticky-toolbar'\n\nexport const StickyToolbar: React.FC<{\n children: React.ReactNode\n}> = ({ children }) => <div className={baseClass}>{children}</div>\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAERA,CAAC;EAAEC;AAAQ,CAAE,kBAAKC,IAAA,CAAC;EAAIC,SAAA,EAAWJ,SAAA;YAAYE","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .sticky-toolbar {
5
+ padding: base(0.5);
6
+ position: sticky;
7
+ bottom: var(--base);
8
+ background-color: var(--theme-bg);
9
+ border: 1px solid var(--theme-elevation-100);
10
+ max-width: 500px;
11
+ z-index: 1;
12
+ margin-left: 50%;
13
+ transform: translate3d(-50%, 0, 0);
14
+ border-radius: var(--style-radius-m);
15
+ box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.1);
16
+ margin-top: base(2);
17
+
18
+ @include small-break {
19
+ width: calc(100% - var(--base) * 2);
20
+ margin-left: var(--base);
21
+ transform: none;
22
+ position: relative;
23
+ max-width: unset;
24
+ margin-bottom: base(4);
25
+ }
26
+ }
27
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAsJ3D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuJ3D,CAAA"}
@@ -13,7 +13,7 @@ import { Link } from '../../Link/index.js';
13
13
  import { CodeCell } from './fields/Code/index.js';
14
14
  import { cellComponents } from './fields/index.js';
15
15
  export const DefaultCell = props => {
16
- const $ = _c(14);
16
+ const $ = _c(15);
17
17
  const {
18
18
  cellData,
19
19
  className: classNameFromProps,
@@ -22,7 +22,8 @@ export const DefaultCell = props => {
22
22
  field: t0,
23
23
  link,
24
24
  onClick: onClickFromProps,
25
- rowData
25
+ rowData,
26
+ viewType
26
27
  } = props;
27
28
  const {
28
29
  admin
@@ -42,7 +43,7 @@ export const DefaultCell = props => {
42
43
  } = t2;
43
44
  let t3;
44
45
  let t4;
45
- if ($[0] !== admin || $[1] !== adminRoute || $[2] !== cellData || $[3] !== classNameFromProps || $[4] !== collectionSlug || $[5] !== field || $[6] !== getEntityConfig || $[7] !== i18n || $[8] !== link || $[9] !== onClickFromProps || $[10] !== props || $[11] !== rowData) {
46
+ if ($[0] !== admin || $[1] !== adminRoute || $[2] !== cellData || $[3] !== classNameFromProps || $[4] !== collectionSlug || $[5] !== field || $[6] !== getEntityConfig || $[7] !== i18n || $[8] !== link || $[9] !== onClickFromProps || $[10] !== props || $[11] !== rowData || $[12] !== viewType) {
46
47
  t4 = Symbol.for("react.early_return_sentinel");
47
48
  bb0: {
48
49
  const collectionConfig = getEntityConfig({
@@ -60,7 +61,7 @@ export const DefaultCell = props => {
60
61
  WrapElement = Link;
61
62
  wrapElementProps.href = collectionConfig?.slug ? formatAdminURL({
62
63
  adminRoute,
63
- path: `/collections/${collectionConfig?.slug}/${encodeURIComponent(rowData.id)}`
64
+ path: `/collections/${collectionConfig?.slug}${viewType === "trash" ? "/trash" : ""}/${encodeURIComponent(rowData.id)}`
64
65
  }) : "";
65
66
  }
66
67
  if (typeof onClick === "function") {
@@ -153,11 +154,12 @@ export const DefaultCell = props => {
153
154
  $[9] = onClickFromProps;
154
155
  $[10] = props;
155
156
  $[11] = rowData;
156
- $[12] = t3;
157
- $[13] = t4;
157
+ $[12] = viewType;
158
+ $[13] = t3;
159
+ $[14] = t4;
158
160
  } else {
159
- t3 = $[12];
160
- t4 = $[13];
161
+ t3 = $[13];
162
+ t4 = $[14];
161
163
  }
162
164
  if (t4 !== Symbol.for("react.early_return_sentinel")) {
163
165
  return t4;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","onClick","onClickFromProps","rowData","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","isValidElement","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n onClick: onClickFromProps,\n rowData,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (React.isValidElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","React","useConfig","useTranslation","formatAdminURL","getDisplayedFieldValue","Link","CodeCell","cellComponents","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","nowrap","displayedValue","DefaultCellComponent","CellComponent","isValidElement","upload","name","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","Boolean","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { Link } from '../../Link/index.js'\nimport { CodeCell } from './fields/Code/index.js'\nimport { cellComponents } from './fields/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <CodeCell\n cellData={`ID: ${cellData}`}\n collectionConfig={collectionConfig}\n collectionSlug={collectionSlug}\n field={{\n ...field,\n type: 'code',\n }}\n nowrap\n rowData={rowData}\n />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (React.isValidElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,9 +3,11 @@ import './index.scss';
3
3
  import React from 'react';
4
4
  export type Props = {
5
5
  readonly appearance?: 'condensed' | 'default';
6
+ readonly BeforeTable?: React.ReactNode;
6
7
  readonly collection: ClientCollectionConfig;
7
8
  readonly columns?: Column[];
8
9
  readonly data: Record<string, unknown>[];
10
+ readonly heading?: React.ReactNode;
9
11
  };
10
12
  export declare const OrderableTable: React.FC<Props>;
11
13
  //# sourceMappingURL=OrderableTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderableTable.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/OrderableTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAyB,MAAM,SAAS,CAAA;AAEpF,OAAO,cAAc,CAAA;AAGrB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAYlD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyL1C,CAAA"}
1
+ {"version":3,"file":"OrderableTable.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/OrderableTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAyB,MAAM,SAAS,CAAA;AAEpF,OAAO,cAAc,CAAA;AAGrB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAYlD,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2L1C,CAAA"}
@@ -14,6 +14,7 @@ import { OrderableRowDragPreview } from './OrderableRowDragPreview.js';
14
14
  const baseClass = 'table';
15
15
  export const OrderableTable = ({
16
16
  appearance = 'default',
17
+ BeforeTable,
17
18
  collection,
18
19
  columns,
19
20
  data: initialData
@@ -118,9 +119,9 @@ export const OrderableTable = ({
118
119
  setDragActiveRowId(id);
119
120
  };
120
121
  const rowIds = localData.map(row => row.id ?? row._id);
121
- return /*#__PURE__*/_jsx("div", {
122
+ return /*#__PURE__*/_jsxs("div", {
122
123
  className: [baseClass, appearance && `${baseClass}--appearance-${appearance}`].filter(Boolean).join(' '),
123
- children: /*#__PURE__*/_jsxs(DraggableSortable, {
124
+ children: [BeforeTable, /*#__PURE__*/_jsxs(DraggableSortable, {
124
125
  ids: rowIds,
125
126
  onDragEnd: handleDragEnd,
126
127
  onDragStart: handleDragStart,
@@ -171,7 +172,7 @@ export const OrderableTable = ({
171
172
  })
172
173
  })
173
174
  })]
174
- })
175
+ })]
175
176
  });
176
177
  };
177
178
  //# sourceMappingURL=OrderableTable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderableTable.js","names":["DragOverlay","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","routes","api","body","JSON","stringify","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","className","Boolean","join","_jsxs","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(`${config.routes.api}/reorder`, {\n body: JSON.stringify(jsonBody),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"OrderableTable.js","names":["DragOverlay","React","useEffect","useState","toast","useConfig","useListQuery","DraggableSortableItem","DraggableSortable","OrderableRow","OrderableRowDragPreview","baseClass","OrderableTable","appearance","BeforeTable","collection","columns","data","initialData","config","listQueryData","orderableFieldName","query","serverData","docs","localData","setLocalData","cellMap","setCellMap","dragActiveRowId","setDragActiveRowId","Object","fromEntries","map","item","index","String","id","_id","activeColumns","filter","col","active","includes","accessor","length","_jsx","handleDragEnd","moveFromIndex","moveToIndex","sort","warning","undefined","movedId","newBeforeRow","newAfterRow","previousData","currentData","newData","splice","target","key","newKeyWillBe","jsonBody","collectionSlug","slug","docsToMove","response","fetch","routes","api","body","JSON","stringify","headers","method","status","Error","ok","json","err","error","message","handleDragStart","rowIds","row","_jsxs","className","Boolean","join","ids","onDragEnd","onDragStart","cellPadding","cellSpacing","i","Heading","rowIndex","children","attributes","isDragging","listeners","setNodeRef","transform","transition","dragAttributes","dragListeners","ref","rowId","style","opacity"],"sources":["../../../src/elements/Table/OrderableTable.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, Column, OrderableEndpointBody } from 'payload'\n\nimport './index.scss'\n\nimport { DragOverlay } from '@dnd-kit/core'\nimport React, { useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { DraggableSortableItem } from '../DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { OrderableRow } from './OrderableRow.js'\nimport { OrderableRowDragPreview } from './OrderableRowDragPreview.js'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly collection: ClientCollectionConfig\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly heading?: React.ReactNode\n}\n\nexport const OrderableTable: React.FC<Props> = ({\n appearance = 'default',\n BeforeTable,\n collection,\n columns,\n data: initialData,\n}) => {\n const { config } = useConfig()\n const { data: listQueryData, orderableFieldName, query } = useListQuery()\n // Use the data from ListQueryProvider if available, otherwise use the props\n const serverData = listQueryData?.docs || initialData\n\n // Local state to track the current order of rows\n const [localData, setLocalData] = useState(serverData)\n\n // id -> index for each column\n const [cellMap, setCellMap] = useState<Record<string, number>>({})\n\n const [dragActiveRowId, setDragActiveRowId] = useState<number | string | undefined>()\n\n // Update local data when server data changes\n useEffect(() => {\n setLocalData(serverData)\n setCellMap(\n Object.fromEntries(serverData.map((item, index) => [String(item.id ?? item._id), index])),\n )\n }, [serverData])\n\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (\n !activeColumns ||\n activeColumns.filter((col) => !['_dragHandle', '_select'].includes(col.accessor)).length === 0\n ) {\n return <div>No columns selected</div>\n }\n\n const handleDragEnd = async ({ moveFromIndex, moveToIndex }) => {\n if (query.sort !== orderableFieldName && query.sort !== `-${orderableFieldName}`) {\n toast.warning('To reorder the rows you must first sort them by the \"Order\" column')\n setDragActiveRowId(undefined)\n return\n }\n\n if (moveFromIndex === moveToIndex) {\n setDragActiveRowId(undefined)\n return\n }\n\n const movedId = localData[moveFromIndex].id ?? localData[moveFromIndex]._id\n const newBeforeRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex] : localData[moveToIndex - 1]\n const newAfterRow =\n moveToIndex > moveFromIndex ? localData[moveToIndex + 1] : localData[moveToIndex]\n\n // Store the original data for rollback\n const previousData = [...localData]\n\n // Optimisitc update of local state to reorder the rows\n setLocalData((currentData) => {\n const newData = [...currentData]\n // Update the rendered cell for the moved row to show \"pending\"\n newData[moveFromIndex][orderableFieldName] = `pending`\n // Move the item in the array\n newData.splice(moveToIndex, 0, newData.splice(moveFromIndex, 1)[0])\n return newData\n })\n\n try {\n const target: OrderableEndpointBody['target'] = newBeforeRow\n ? {\n id: newBeforeRow.id ?? newBeforeRow._id,\n key: newBeforeRow[orderableFieldName],\n }\n : {\n id: newAfterRow.id ?? newAfterRow._id,\n key: newAfterRow[orderableFieldName],\n }\n\n const newKeyWillBe =\n (newBeforeRow && query.sort === orderableFieldName) ||\n (!newBeforeRow && query.sort === `-${orderableFieldName}`)\n ? 'greater'\n : 'less'\n\n const jsonBody: OrderableEndpointBody = {\n collectionSlug: collection.slug,\n docsToMove: [movedId],\n newKeyWillBe,\n orderableFieldName,\n target,\n }\n\n const response = await fetch(`${config.routes.api}/reorder`, {\n body: JSON.stringify(jsonBody),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n })\n\n if (response.status === 403) {\n throw new Error('You do not have permission to reorder these rows')\n }\n\n if (!response.ok) {\n throw new Error(\n 'Failed to reorder. This can happen if you reorder several rows too quickly. Please try again.',\n )\n }\n\n if (response.status === 200 && (await response.json())['message'] === 'initial migration') {\n throw new Error(\n 'You have enabled \"orderable\" on a collection with existing documents' +\n 'and this is the first time you have sorted documents. We have run an automatic migration ' +\n 'to add an initial order to the documents. Please refresh the page and try again.',\n )\n }\n } catch (err) {\n const error = err instanceof Error ? err.message : String(err)\n // Rollback to previous state if the request fails\n setLocalData(previousData)\n toast.error(error)\n } finally {\n setDragActiveRowId(undefined)\n }\n }\n\n const handleDragStart = ({ id }) => {\n setDragActiveRowId(id)\n }\n\n const rowIds = localData.map((row) => row.id ?? row._id)\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <DraggableSortable ids={rowIds} onDragEnd={handleDragEnd} onDragStart={handleDragStart}>\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {localData.map((row, rowIndex) => (\n <DraggableSortableItem id={rowIds[rowIndex]} key={rowIds[rowIndex]}>\n {({ attributes, isDragging, listeners, setNodeRef, transform, transition }) => (\n <OrderableRow\n cellMap={cellMap}\n className={`row-${rowIndex + 1}`}\n columns={activeColumns}\n dragAttributes={attributes}\n dragListeners={listeners}\n ref={setNodeRef}\n rowId={row.id ?? row._id}\n style={{\n opacity: isDragging ? 0 : 1,\n transform,\n transition,\n }}\n />\n )}\n </DraggableSortableItem>\n ))}\n </tbody>\n </table>\n\n <DragOverlay>\n <OrderableRowDragPreview\n className={[baseClass, `${baseClass}--drag-preview`].join(' ')}\n rowId={dragActiveRowId}\n >\n <OrderableRow cellMap={cellMap} columns={activeColumns} rowId={dragActiveRowId} />\n </OrderableRowDragPreview>\n </DragOverlay>\n </DraggableSortable>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import './index.scss';
4
4
  export type Props = {
5
5
  readonly appearance?: 'condensed' | 'default';
6
+ readonly BeforeTable?: React.ReactNode;
6
7
  readonly columns?: Column[];
7
8
  readonly data: Record<string, unknown>[];
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiDjC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Table/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAErC,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CACzC,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkDjC,CAAA"}
@@ -6,6 +6,7 @@ import './index.scss';
6
6
  const baseClass = 'table';
7
7
  export const Table = ({
8
8
  appearance,
9
+ BeforeTable,
9
10
  columns,
10
11
  data
11
12
  }) => {
@@ -15,9 +16,9 @@ export const Table = ({
15
16
  children: "No columns selected"
16
17
  });
17
18
  }
18
- return /*#__PURE__*/_jsx("div", {
19
+ return /*#__PURE__*/_jsxs("div", {
19
20
  className: [baseClass, appearance && `${baseClass}--appearance-${appearance}`].filter(Boolean).join(' '),
20
- children: /*#__PURE__*/_jsxs("table", {
21
+ children: [BeforeTable, /*#__PURE__*/_jsxs("table", {
21
22
  cellPadding: "0",
22
23
  cellSpacing: "0",
23
24
  children: [/*#__PURE__*/_jsx("thead", {
@@ -28,7 +29,7 @@ export const Table = ({
28
29
  }, i))
29
30
  })
30
31
  }), /*#__PURE__*/_jsx("tbody", {
31
- children: data && data.map((row, rowIndex) => /*#__PURE__*/_jsx("tr", {
32
+ children: data && data?.map((row, rowIndex) => /*#__PURE__*/_jsx("tr", {
32
33
  className: `row-${rowIndex + 1}`,
33
34
  children: activeColumns.map((col, colIndex) => {
34
35
  const {
@@ -41,7 +42,7 @@ export const Table = ({
41
42
  })
42
43
  }, typeof row.id === 'string' || typeof row.id === 'number' ? String(row.id) : rowIndex))
43
44
  })]
44
- })
45
+ })]
45
46
  });
46
47
  };
47
48
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","baseClass","Table","appearance","columns","data","activeColumns","filter","col","active","length","_jsx","className","Boolean","join","_jsxs","cellPadding","cellSpacing","map","i","id","accessor","replace","Heading","row","rowIndex","colIndex","renderedCells","String"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column } from 'payload'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const Table: React.FC<Props> = ({ appearance, columns, data }) => {\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor.replace(/\\./g, '__')}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data.map((row, rowIndex) => (\n <tr\n className={`row-${rowIndex + 1}`}\n key={\n typeof row.id === 'string' || typeof row.id === 'number'\n ? String(row.id)\n : rowIndex\n }\n >\n {activeColumns.map((col, colIndex) => {\n const { accessor } = col\n\n return (\n <td className={`cell-${accessor.replace(/\\./g, '__')}`} key={colIndex}>\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAQlB,OAAO,MAAMC,KAAA,GAAyBA,CAAC;EAAEC,UAAU;EAAEC,OAAO;EAAEC;AAAI,CAAE;EAClE,MAAMC,aAAA,GAAgBF,OAAA,EAASG,MAAA,CAAQC,GAAA,IAAQA,GAAA,EAAKC,MAAA;EAEpD,IAAI,CAACH,aAAA,IAAiBA,aAAA,CAAcI,MAAM,KAAK,GAAG;IAChD,oBAAOC,IAAA,CAAC;gBAAI;;EACd;EAEA,oBACEA,IAAA,CAAC;IACCC,SAAA,EAAW,CAACX,SAAA,EAAWE,UAAA,IAAc,GAAGF,SAAA,gBAAyBE,UAAA,EAAY,CAAC,CAC3EI,MAAM,CAACM,OAAA,EACPC,IAAI,CAAC;cAER,aAAAC,KAAA,CAAC;MAAMC,WAAA,EAAY;MAAIC,WAAA,EAAY;8BACjCN,IAAA,CAAC;kBACC,aAAAA,IAAA,CAAC;oBACEL,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKW,CAAA,kBACvBR,IAAA,CAAC;YAAGS,EAAA,EAAI,WAAWZ,GAAA,CAAIa,QAAQ,CAACC,OAAO,CAAC,OAAO,OAAO;sBACnDd,GAAA,CAAIe;aADsDJ,CAAA;;uBAMnER,IAAA,CAAC;kBACEN,IAAA,IACCA,IAAA,CAAKa,GAAG,CAAC,CAACM,GAAA,EAAKC,QAAA,kBACbd,IAAA,CAAC;UACCC,SAAA,EAAW,OAAOa,QAAA,GAAW,GAAG;oBAO/BnB,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKkB,QAAA;YACvB,MAAM;cAAEL;YAAQ,CAAE,GAAGb,GAAA;YAErB,oBACEG,IAAA,CAAC;cAAGC,SAAA,EAAW,QAAQS,QAAA,CAASC,OAAO,CAAC,OAAO,OAAO;wBACnDd,GAAA,CAAImB,aAAa,CAACF,QAAA;eADwCC,QAAA;UAIjE;WAbE,OAAOF,GAAA,CAAIJ,EAAE,KAAK,YAAY,OAAOI,GAAA,CAAIJ,EAAE,KAAK,WAC5CQ,MAAA,CAAOJ,GAAA,CAAIJ,EAAE,IACbK,QAAA;;;;AAkBtB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","baseClass","Table","appearance","BeforeTable","columns","data","activeColumns","filter","col","active","length","_jsx","_jsxs","className","Boolean","join","cellPadding","cellSpacing","map","i","id","accessor","replace","Heading","row","rowIndex","colIndex","renderedCells","String"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column } from 'payload'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly BeforeTable?: React.ReactNode\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n}\n\nexport const Table: React.FC<Props> = ({ appearance, BeforeTable, columns, data }) => {\n const activeColumns = columns?.filter((col) => col?.active)\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <table cellPadding=\"0\" cellSpacing=\"0\">\n <thead>\n <tr>\n {activeColumns.map((col, i) => (\n <th id={`heading-${col.accessor.replace(/\\./g, '__')}`} key={i}>\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data?.map((row, rowIndex) => (\n <tr\n className={`row-${rowIndex + 1}`}\n key={\n typeof row.id === 'string' || typeof row.id === 'number'\n ? String(row.id)\n : rowIndex\n }\n >\n {activeColumns.map((col, colIndex) => {\n const { accessor } = col\n\n return (\n <td className={`cell-${accessor.replace(/\\./g, '__')}`} key={colIndex}>\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AASlB,OAAO,MAAMC,KAAA,GAAyBA,CAAC;EAAEC,UAAU;EAAEC,WAAW;EAAEC,OAAO;EAAEC;AAAI,CAAE;EAC/E,MAAMC,aAAA,GAAgBF,OAAA,EAASG,MAAA,CAAQC,GAAA,IAAQA,GAAA,EAAKC,MAAA;EAEpD,IAAI,CAACH,aAAA,IAAiBA,aAAA,CAAcI,MAAM,KAAK,GAAG;IAChD,oBAAOC,IAAA,CAAC;gBAAI;;EACd;EAEA,oBACEC,KAAA,CAAC;IACCC,SAAA,EAAW,CAACb,SAAA,EAAWE,UAAA,IAAc,GAAGF,SAAA,gBAAyBE,UAAA,EAAY,CAAC,CAC3EK,MAAM,CAACO,OAAA,EACPC,IAAI,CAAC;eAEPZ,WAAA,E,aACDS,KAAA,CAAC;MAAMI,WAAA,EAAY;MAAIC,WAAA,EAAY;8BACjCN,IAAA,CAAC;kBACC,aAAAA,IAAA,CAAC;oBACEL,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKW,CAAA,kBACvBR,IAAA,CAAC;YAAGS,EAAA,EAAI,WAAWZ,GAAA,CAAIa,QAAQ,CAACC,OAAO,CAAC,OAAO,OAAO;sBACnDd,GAAA,CAAIe;aADsDJ,CAAA;;uBAMnER,IAAA,CAAC;kBACEN,IAAA,IACCA,IAAA,EAAMa,GAAA,CAAI,CAACM,GAAA,EAAKC,QAAA,kBACdd,IAAA,CAAC;UACCE,SAAA,EAAW,OAAOY,QAAA,GAAW,GAAG;oBAO/BnB,aAAA,CAAcY,GAAG,CAAC,CAACV,GAAA,EAAKkB,QAAA;YACvB,MAAM;cAAEL;YAAQ,CAAE,GAAGb,GAAA;YAErB,oBACEG,IAAA,CAAC;cAAGE,SAAA,EAAW,QAAQQ,QAAA,CAASC,OAAO,CAAC,OAAO,OAAO;wBACnDd,GAAA,CAAImB,aAAa,CAACF,QAAA;eADwCC,QAAA;UAIjE;WAbE,OAAOF,GAAA,CAAIJ,EAAE,KAAK,YAAY,OAAOI,GAAA,CAAIJ,EAAE,KAAK,WAC5CQ,MAAA,CAAOJ,GAAA,CAAIJ,EAAE,IACbK,QAAA;;;;AAkBtB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare const TrashBanner: React.FC;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/TrashBanner/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAiB/B,CAAA"}
@@ -0,0 +1,37 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { getTranslation } from '@payloadcms/translations';
5
+ import React from 'react';
6
+ import { TrashIcon } from '../../icons/Trash/index.js';
7
+ import { useConfig } from '../../providers/Config/index.js';
8
+ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
9
+ import { useTranslation } from '../../providers/Translation/index.js';
10
+ import './index.scss';
11
+ const baseClass = 'trash-banner';
12
+ export const TrashBanner = () => {
13
+ const {
14
+ getEntityConfig
15
+ } = useConfig();
16
+ const {
17
+ collectionSlug
18
+ } = useDocumentInfo();
19
+ const collectionConfig = getEntityConfig({
20
+ collectionSlug
21
+ });
22
+ const {
23
+ labels
24
+ } = collectionConfig;
25
+ const {
26
+ i18n
27
+ } = useTranslation();
28
+ return _jsxs("div", {
29
+ className: baseClass,
30
+ children: [_jsx(TrashIcon, {}), _jsx("p", {
31
+ children: i18n.t("general:documentIsTrashed", {
32
+ label: `${getTranslation(labels?.singular, i18n)}`
33
+ })
34
+ })]
35
+ });
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","TrashIcon","useConfig","useDocumentInfo","useTranslation","baseClass","TrashBanner","getEntityConfig","collectionSlug","collectionConfig","labels","i18n","_jsxs","className","children","_jsx","t","label","singular"],"sources":["../../../src/elements/TrashBanner/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { TrashIcon } from '../../icons/Trash/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'trash-banner'\n\nexport const TrashBanner: React.FC = () => {\n const { getEntityConfig } = useConfig()\n const { collectionSlug } = useDocumentInfo()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { labels } = collectionConfig\n const { i18n } = useTranslation()\n return (\n <div className={baseClass}>\n <TrashIcon />\n <p>\n {i18n.t('general:documentIsTrashed', {\n label: `${getTranslation(labels?.singular, i18n)}`,\n })}\n </p>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAAwBA,CAAA;EACnC;IAAAC;EAAA,IAA4BL,SAAA;EAC5B;IAAAM;EAAA,IAA2BL,eAAA;EAC3B,MAAAM,gBAAA,GAAyBF,eAAA;IAAAC;EAAA,CAAiC;EAE1D;IAAAE;EAAA,IAAmBD,gBAAA;EACnB;IAAAE;EAAA,IAAiBP,cAAA;EAAA,OAEfQ,KAAA,CAAC;IAAAC,SAAA,EAAAR,SAAA;IAAAS,QAAA,GACCC,IAAA,CAAAd,SAAA,IAAC,GACDc,IAAA,CAAC;MAAAD,QAAA,EACEH,IAAA,CAAAK,CAAA,CAAO;QAAAC,KAAA,EACC,GAAGlB,cAAA,CAAeW,MAAA,EAAAQ,QAAA,EAAkBP,IAAA;MAAO,CACpD;IAAA,C;;CAIR","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .trash-banner {
5
+ display: flex;
6
+ align-items: center;
7
+ gap: calc(var(--base) * 0.5);
8
+ margin-bottom: var(--base);
9
+ padding: calc(var(--base) * 0.5) calc(var(--base) * 0.75);
10
+ border-radius: var(--style-radius-s);
11
+ background: var(--theme-warning-100);
12
+ color: var(--theme-warning-600);
13
+ }
14
+
15
+ html[data-theme='dark'] {
16
+ .trash-banner {
17
+ color: var(--theme-warning-800);
18
+ }
19
+ }
20
+ }
@@ -1,3 +1,4 @@
1
+ import type { Where } from 'payload';
1
2
  import React from 'react';
2
3
  import type { UnpublishManyProps } from './index.js';
3
4
  type UnpublishManyDrawerContentProps = {
@@ -5,6 +6,7 @@ type UnpublishManyDrawerContentProps = {
5
6
  ids: (number | string)[];
6
7
  onSuccess?: () => void;
7
8
  selectAll: boolean;
9
+ where?: Where;
8
10
  } & UnpublishManyProps;
9
11
  export declare function UnpublishManyDrawerContent(props: UnpublishManyDrawerContentProps): React.JSX.Element;
10
12
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAUpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;CACnB,GAAG,kBAAkB,CAAA;AAEtB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBAoJhF"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/UnpublishMany/DrawerContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,KAAsB,MAAM,OAAO,CAAA;AAG1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAUpD,KAAK,+BAA+B,GAAG;IACrC,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,kBAAkB,CAAA;AAEtB,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,+BAA+B,qBAyJhF"}