@payloadcms/ui 4.0.0-internal.f05c47f → 4.0.0-internal.f715c6e

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 (328) hide show
  1. package/dist/elements/AppHeader/index.css +0 -1
  2. package/dist/elements/ArrayAction/index.d.ts +0 -1
  3. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  4. package/dist/elements/ArrayAction/index.js +32 -45
  5. package/dist/elements/ArrayAction/index.js.map +1 -1
  6. package/dist/elements/Autosave/index.d.ts.map +1 -1
  7. package/dist/elements/Autosave/index.js +0 -3
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  10. package/dist/elements/BulkUpload/FormsManager/index.js +2 -6
  11. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  12. package/dist/elements/Button/index.css +2 -2
  13. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +0 -10
  14. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  15. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +0 -55
  16. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  17. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  18. package/dist/elements/ColumnSelection/Popup.js +3 -3
  19. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  20. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts +10 -0
  21. package/dist/elements/ColumnSelection/matchesColumnSearch.d.ts.map +1 -0
  22. package/dist/elements/ColumnSelection/matchesColumnSearch.js +21 -0
  23. package/dist/elements/ColumnSelection/matchesColumnSearch.js.map +1 -0
  24. package/dist/{utilities/matchesSearchQuery.spec.js → elements/ColumnSelection/matchesColumnSearch.spec.js} +29 -29
  25. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +1 -0
  26. package/dist/elements/Combobox/index.css +23 -76
  27. package/dist/elements/Combobox/index.d.ts +0 -7
  28. package/dist/elements/Combobox/index.d.ts.map +1 -1
  29. package/dist/elements/Combobox/index.js +20 -58
  30. package/dist/elements/Combobox/index.js.map +1 -1
  31. package/dist/elements/CopyToClipboard/index.d.ts +0 -1
  32. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  33. package/dist/elements/CopyToClipboard/index.js +8 -10
  34. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  35. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  36. package/dist/elements/DeleteDocument/index.js +2 -9
  37. package/dist/elements/DeleteDocument/index.js.map +1 -1
  38. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  39. package/dist/elements/DeleteMany/index.js +1 -4
  40. package/dist/elements/DeleteMany/index.js.map +1 -1
  41. package/dist/elements/Drawer/index.css +4 -10
  42. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +2 -3
  43. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  44. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  45. package/dist/elements/DuplicateDocument/index.js +1 -6
  46. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  47. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  48. package/dist/elements/EditMany/DrawerContent.js +1 -4
  49. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  50. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  51. package/dist/elements/FileManager/FileToolbar/index.js +0 -3
  52. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  53. package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
  54. package/dist/elements/Hierarchy/ColumnBrowser/index.js +1 -4
  55. package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
  56. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  57. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -4
  58. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  59. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +1 -2
  60. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  61. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +0 -2
  62. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  63. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  64. package/dist/elements/Hierarchy/Modal/index.js +0 -3
  65. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  66. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  67. package/dist/elements/Hierarchy/MoveMany/index.js +1 -4
  68. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  69. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  70. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +0 -3
  71. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  72. package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
  73. package/dist/elements/Hierarchy/Tree/useChildren.js +1 -4
  74. package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
  75. package/dist/elements/IDLabel/index.css +0 -6
  76. package/dist/elements/IDLabel/index.d.ts +1 -1
  77. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  78. package/dist/elements/IDLabel/index.js +21 -16
  79. package/dist/elements/IDLabel/index.js.map +1 -1
  80. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +7 -1
  81. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  82. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +32 -26
  83. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  84. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  85. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -6
  86. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  87. package/dist/elements/PermanentlyDeleteButton/index.d.ts.map +1 -1
  88. package/dist/elements/PermanentlyDeleteButton/index.js +1 -4
  89. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  90. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  91. package/dist/elements/Popup/index.js +1 -1
  92. package/dist/elements/Popup/index.js.map +1 -1
  93. package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
  94. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  95. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  96. package/dist/elements/PublishButton/index.js +2 -6
  97. package/dist/elements/PublishButton/index.js.map +1 -1
  98. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  99. package/dist/elements/PublishMany/DrawerContent.js +1 -4
  100. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  101. package/dist/elements/QueryPresets/QueryPresetBar/index.js +3 -1
  102. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  103. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  104. package/dist/elements/RelationshipTable/index.js +2 -5
  105. package/dist/elements/RelationshipTable/index.js.map +1 -1
  106. package/dist/elements/RestoreButton/index.d.ts.map +1 -1
  107. package/dist/elements/RestoreButton/index.js +1 -4
  108. package/dist/elements/RestoreButton/index.js.map +1 -1
  109. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  110. package/dist/elements/RestoreMany/index.js +0 -3
  111. package/dist/elements/RestoreMany/index.js.map +1 -1
  112. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  113. package/dist/elements/SortHeader/index.js +26 -29
  114. package/dist/elements/SortHeader/index.js.map +1 -1
  115. package/dist/elements/StepNav/index.css +14 -64
  116. package/dist/elements/StepNav/index.d.ts.map +1 -1
  117. package/dist/elements/StepNav/index.js +69 -145
  118. package/dist/elements/StepNav/index.js.map +1 -1
  119. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.js +11 -3
  121. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  122. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  123. package/dist/elements/Table/OrderableTable.js +1 -3
  124. package/dist/elements/Table/OrderableTable.js.map +1 -1
  125. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  126. package/dist/elements/Table/RelationshipProvider/index.js +23 -29
  127. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  128. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  129. package/dist/elements/UnpublishButton/index.js +1 -4
  130. package/dist/elements/UnpublishButton/index.js.map +1 -1
  131. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  132. package/dist/elements/UnpublishMany/DrawerContent.js +1 -4
  133. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  134. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  135. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +0 -3
  136. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  137. package/dist/exports/client/index.d.ts +1 -5
  138. package/dist/exports/client/index.d.ts.map +1 -1
  139. package/dist/exports/client/index.js +1 -1
  140. package/dist/exports/client/index.js.map +3 -3
  141. package/dist/fields/Array/ArrayRow.d.ts +0 -1
  142. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  143. package/dist/fields/Array/ArrayRow.js +0 -2
  144. package/dist/fields/Array/ArrayRow.js.map +1 -1
  145. package/dist/fields/Array/index.d.ts.map +1 -1
  146. package/dist/fields/Array/index.js +10 -38
  147. package/dist/fields/Array/index.js.map +1 -1
  148. package/dist/fields/Blocks/BlockRow.d.ts +0 -1
  149. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  150. package/dist/fields/Blocks/BlockRow.js +0 -2
  151. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  152. package/dist/fields/Blocks/RowActions.d.ts +0 -1
  153. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  154. package/dist/fields/Blocks/RowActions.js +19 -22
  155. package/dist/fields/Blocks/RowActions.js.map +1 -1
  156. package/dist/fields/Blocks/index.d.ts.map +1 -1
  157. package/dist/fields/Blocks/index.js +7 -35
  158. package/dist/fields/Blocks/index.js.map +1 -1
  159. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  160. package/dist/fields/Relationship/Input.js +1 -5
  161. package/dist/fields/Relationship/Input.js.map +1 -1
  162. package/dist/fields/Upload/Input.d.ts.map +1 -1
  163. package/dist/fields/Upload/Input.js +1 -4
  164. package/dist/fields/Upload/Input.js.map +1 -1
  165. package/dist/forms/Form/index.d.ts.map +1 -1
  166. package/dist/forms/Form/index.js +1 -4
  167. package/dist/forms/Form/index.js.map +1 -1
  168. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  169. package/dist/hooks/usePayloadAPI.js +40 -44
  170. package/dist/hooks/usePayloadAPI.js.map +1 -1
  171. package/dist/icons/Edit/index.d.ts +1 -0
  172. package/dist/icons/Edit/index.d.ts.map +1 -1
  173. package/dist/icons/Edit/index.js +4 -4
  174. package/dist/icons/Edit/index.js.map +1 -1
  175. package/dist/providers/Actions/index.d.ts +0 -1
  176. package/dist/providers/Actions/index.d.ts.map +1 -1
  177. package/dist/providers/Actions/index.js +11 -43
  178. package/dist/providers/Actions/index.js.map +1 -1
  179. package/dist/providers/Auth/index.d.ts +56 -2
  180. package/dist/providers/Auth/index.d.ts.map +1 -1
  181. package/dist/providers/Auth/index.js +135 -283
  182. package/dist/providers/Auth/index.js.map +1 -1
  183. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  184. package/dist/providers/DocumentInfo/index.js +1 -5
  185. package/dist/providers/DocumentInfo/index.js.map +1 -1
  186. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts +1 -2
  187. package/dist/providers/DocumentInfo/useGetDocPermissions.d.ts.map +1 -1
  188. package/dist/providers/DocumentInfo/useGetDocPermissions.js +1 -3
  189. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  190. package/dist/providers/FormErrorHandler/index.d.ts +1 -5
  191. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
  192. package/dist/providers/FormErrorHandler/index.js.map +1 -1
  193. package/dist/providers/Hierarchy/index.d.ts.map +1 -1
  194. package/dist/providers/Hierarchy/index.js +1 -4
  195. package/dist/providers/Hierarchy/index.js.map +1 -1
  196. package/dist/providers/Locale/index.d.ts.map +1 -1
  197. package/dist/providers/Locale/index.js +36 -41
  198. package/dist/providers/Locale/index.js.map +1 -1
  199. package/dist/providers/Root/index.js +4 -4
  200. package/dist/providers/Root/index.js.map +1 -1
  201. package/dist/providers/RouteTransition/ProgressBar/index.js +1 -4
  202. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  203. package/dist/providers/RouteTransition/index.d.ts +0 -2
  204. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  205. package/dist/providers/RouteTransition/index.js +14 -42
  206. package/dist/providers/RouteTransition/index.js.map +1 -1
  207. package/dist/styles.css +1 -1
  208. package/dist/templates/Default/index.d.ts +0 -1
  209. package/dist/templates/Default/index.d.ts.map +1 -1
  210. package/dist/templates/Default/index.js +39 -45
  211. package/dist/templates/Default/index.js.map +1 -1
  212. package/dist/utilities/filterOutUploadFields.d.ts.map +1 -1
  213. package/dist/utilities/filterOutUploadFields.js +1 -1
  214. package/dist/utilities/filterOutUploadFields.js.map +1 -1
  215. package/dist/utilities/initReq.d.ts.map +1 -1
  216. package/dist/utilities/initReq.js +0 -8
  217. package/dist/utilities/initReq.js.map +1 -1
  218. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  219. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +2 -3
  220. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  221. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  222. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  223. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  224. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  225. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +66 -104
  226. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  227. package/dist/views/Dashboard/Default/ModularDashboard/index.css +140 -33
  228. package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
  229. package/dist/views/HierarchyList/HierarchyTable/index.js +2 -6
  230. package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
  231. package/dist/views/List/ListHeader/index.d.ts +10 -1
  232. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  233. package/dist/views/List/ListHeader/index.js +3 -1
  234. package/dist/views/List/ListHeader/index.js.map +1 -1
  235. package/dist/views/List/index.client.d.ts.map +1 -1
  236. package/dist/views/List/index.client.js +14 -0
  237. package/dist/views/List/index.client.js.map +1 -1
  238. package/dist/views/List/index.css +0 -5
  239. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  240. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  241. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  242. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  243. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  244. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  245. package/dist/views/Root/index.d.ts.map +1 -1
  246. package/dist/views/Root/index.js +0 -1
  247. package/dist/views/Root/index.js.map +1 -1
  248. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  249. package/dist/views/Version/Restore/index.js +3 -6
  250. package/dist/views/Version/Restore/index.js.map +1 -1
  251. package/package.json +4 -4
  252. package/dist/elements/BranchSelector/index.css +0 -83
  253. package/dist/elements/BranchSelector/index.d.ts +0 -12
  254. package/dist/elements/BranchSelector/index.d.ts.map +0 -1
  255. package/dist/elements/BranchSelector/index.js +0 -160
  256. package/dist/elements/BranchSelector/index.js.map +0 -1
  257. package/dist/providers/Auth/AuthSessionDebug/index.css +0 -48
  258. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +0 -13
  259. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +0 -1
  260. package/dist/providers/Auth/AuthSessionDebug/index.js +0 -93
  261. package/dist/providers/Auth/AuthSessionDebug/index.js.map +0 -1
  262. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +0 -21
  263. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +0 -1
  264. package/dist/providers/Auth/AuthSessionDebug/utilities.js +0 -53
  265. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +0 -1
  266. package/dist/providers/Auth/authSessionRequests.d.ts +0 -27
  267. package/dist/providers/Auth/authSessionRequests.d.ts.map +0 -1
  268. package/dist/providers/Auth/authSessionRequests.js +0 -119
  269. package/dist/providers/Auth/authSessionRequests.js.map +0 -1
  270. package/dist/providers/Auth/authSessionRequests.spec.js +0 -121
  271. package/dist/providers/Auth/authSessionRequests.spec.js.map +0 -1
  272. package/dist/providers/Auth/sessionActivity.d.ts +0 -23
  273. package/dist/providers/Auth/sessionActivity.d.ts.map +0 -1
  274. package/dist/providers/Auth/sessionActivity.js +0 -49
  275. package/dist/providers/Auth/sessionActivity.js.map +0 -1
  276. package/dist/providers/Auth/sessionActivity.spec.js +0 -44
  277. package/dist/providers/Auth/sessionActivity.spec.js.map +0 -1
  278. package/dist/providers/Auth/sessionTiming.d.ts +0 -11
  279. package/dist/providers/Auth/sessionTiming.d.ts.map +0 -1
  280. package/dist/providers/Auth/sessionTiming.js +0 -18
  281. package/dist/providers/Auth/sessionTiming.js.map +0 -1
  282. package/dist/providers/Auth/tabSessionSync/index.d.ts +0 -17
  283. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +0 -1
  284. package/dist/providers/Auth/tabSessionSync/index.js +0 -263
  285. package/dist/providers/Auth/tabSessionSync/index.js.map +0 -1
  286. package/dist/providers/Auth/tabSessionSync/index.spec.js +0 -463
  287. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +0 -1
  288. package/dist/providers/Auth/tabSessionSync/types.d.ts +0 -107
  289. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +0 -1
  290. package/dist/providers/Auth/tabSessionSync/types.js +0 -6
  291. package/dist/providers/Auth/tabSessionSync/types.js.map +0 -1
  292. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +0 -11
  293. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +0 -1
  294. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +0 -90
  295. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +0 -1
  296. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +0 -26
  297. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +0 -1
  298. package/dist/providers/Auth/tabSessionSync/utilities.js +0 -159
  299. package/dist/providers/Auth/tabSessionSync/utilities.js.map +0 -1
  300. package/dist/providers/Auth/types.d.ts +0 -65
  301. package/dist/providers/Auth/types.d.ts.map +0 -1
  302. package/dist/providers/Auth/types.js +0 -2
  303. package/dist/providers/Auth/types.js.map +0 -1
  304. package/dist/providers/Auth/useAuthSessionTimers.d.ts +0 -26
  305. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +0 -1
  306. package/dist/providers/Auth/useAuthSessionTimers.js +0 -203
  307. package/dist/providers/Auth/useAuthSessionTimers.js.map +0 -1
  308. package/dist/providers/Auth/useAuthSessionTimers.spec.js +0 -311
  309. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +0 -1
  310. package/dist/providers/Branch/index.d.ts +0 -62
  311. package/dist/providers/Branch/index.d.ts.map +0 -1
  312. package/dist/providers/Branch/index.js +0 -192
  313. package/dist/providers/Branch/index.js.map +0 -1
  314. package/dist/providers/Branch/index.server.d.ts +0 -14
  315. package/dist/providers/Branch/index.server.d.ts.map +0 -1
  316. package/dist/providers/Branch/index.server.js +0 -80
  317. package/dist/providers/Branch/index.server.js.map +0 -1
  318. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +0 -44
  319. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +0 -1
  320. package/dist/utilities/getRequestBranch.d.ts +0 -18
  321. package/dist/utilities/getRequestBranch.d.ts.map +0 -1
  322. package/dist/utilities/getRequestBranch.js +0 -32
  323. package/dist/utilities/getRequestBranch.js.map +0 -1
  324. package/dist/utilities/matchesSearchQuery.d.ts +0 -12
  325. package/dist/utilities/matchesSearchQuery.d.ts.map +0 -1
  326. package/dist/utilities/matchesSearchQuery.js +0 -23
  327. package/dist/utilities/matchesSearchQuery.js.map +0 -1
  328. package/dist/utilities/matchesSearchQuery.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Combobox/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAkE,MAAM,OAAO,CAAA;AAEtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAMnD,OAAO,aAAa,CAAA;AAIpB;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAA;IACzD,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAA;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAwI5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Combobox/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,aAAa,CAAA;AAIpB;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,aAAa,EAAE,CAAA;IACxB,wDAAwD;IACxD,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC3B,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAA;AAE3C;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAuG5C,CAAA"}
@@ -1,10 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
- import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
5
- import { SearchIcon } from '../../icons/Search/index.js';
6
- import { useTranslation } from '../../providers/Translation/index.js';
7
- import { matchesSearchQuery } from '../../utilities/matchesSearchQuery.js';
4
+ import React, { useMemo, useRef, useState } from 'react';
8
5
  import { Popup, PopupList } from '../Popup/index.js';
9
6
  import './index.css';
10
7
  const baseClass = 'combobox';
@@ -18,7 +15,6 @@ export const Combobox = props => {
18
15
  const {
19
16
  'aria-label': ariaLabel,
20
17
  entries,
21
- footer,
22
18
  minEntriesForSearch = 8,
23
19
  onSelect,
24
20
  onToggleClose,
@@ -26,33 +22,19 @@ export const Combobox = props => {
26
22
  searchPlaceholder = 'Search...',
27
23
  ...popupProps
28
24
  } = props;
29
- const {
30
- t
31
- } = useTranslation();
32
25
  const [searchValue, setSearchValue] = useState('');
33
26
  const isOpenRef = useRef(false);
34
27
  const searchInputRef = useRef(null);
35
- const contentRef = useRef(null);
36
- const filteredEntries = useMemo(() => entries.filter(entry => matchesSearchQuery({
37
- label: entry.name,
38
- query: searchValue
39
- })), [entries, searchValue]);
28
+ const filteredEntries = useMemo(() => {
29
+ if (!searchValue) {
30
+ return entries;
31
+ }
32
+ const search = searchValue.toLowerCase();
33
+ return entries.filter(entry => entry.name.toLowerCase().includes(search));
34
+ }, [entries, searchValue]);
40
35
  const showSearch = entries.length >= minEntriesForSearch;
41
36
  const hasResults = filteredEntries.length > 0;
42
- // Locking the width the moment searching begins keeps the popup from
43
- // resizing around the cursor as entries filter out from under it.
44
- const [lockedWidth, setLockedWidth] = useState(null);
45
- useLayoutEffect(() => {
46
- if (!contentRef.current) {
47
- return;
48
- }
49
- if (searchValue && lockedWidth === null) {
50
- setLockedWidth(contentRef.current.offsetWidth);
51
- } else if (!searchValue && lockedWidth !== null) {
52
- setLockedWidth(null);
53
- }
54
- }, [searchValue, lockedWidth]);
55
- const handleToggleOpen = useCallback(active => {
37
+ const handleToggleOpen = React.useCallback(active => {
56
38
  isOpenRef.current = active;
57
39
  if (active && showSearch) {
58
40
  setTimeout(() => {
@@ -61,10 +43,9 @@ export const Combobox = props => {
61
43
  }
62
44
  onToggleOpen?.(active);
63
45
  }, [showSearch, onToggleOpen]);
64
- const handleToggleClose = useCallback(() => {
46
+ const handleToggleClose = React.useCallback(() => {
65
47
  isOpenRef.current = false;
66
48
  setSearchValue('');
67
- setLockedWidth(null);
68
49
  onToggleClose?.();
69
50
  }, [onToggleClose]);
70
51
  return /*#__PURE__*/_jsx(Popup, {
@@ -76,29 +57,18 @@ export const Combobox = props => {
76
57
  close
77
58
  }) => /*#__PURE__*/_jsxs("div", {
78
59
  className: `${baseClass}__content`,
79
- "data-width-locked": lockedWidth ? 'true' : undefined,
80
- ref: contentRef,
81
- style: lockedWidth ? {
82
- '--combobox-locked-width': `${lockedWidth}px`
83
- } : undefined,
84
60
  children: [showSearch && /*#__PURE__*/_jsx("div", {
85
- className: `${baseClass}__search`,
86
- children: /*#__PURE__*/_jsxs("div", {
87
- className: `${baseClass}__search-bar`,
88
- children: [/*#__PURE__*/_jsx(SearchIcon, {
89
- size: 24
90
- }), /*#__PURE__*/_jsx("input", {
91
- "aria-label": searchPlaceholder,
92
- className: `${baseClass}__search-input`,
93
- onChange: e => setSearchValue(e.target.value),
94
- placeholder: searchPlaceholder,
95
- ref: searchInputRef,
96
- type: "text",
97
- value: searchValue
98
- })]
61
+ className: `${baseClass}__search-wrapper${!hasResults ? ` ${baseClass}__search-wrapper--no-results` : ''}`,
62
+ children: /*#__PURE__*/_jsx("input", {
63
+ "aria-label": searchPlaceholder,
64
+ className: `${baseClass}__search-input`,
65
+ onChange: e => setSearchValue(e.target.value),
66
+ placeholder: searchPlaceholder,
67
+ ref: searchInputRef,
68
+ type: "text",
69
+ value: searchValue
99
70
  })
100
- }), hasResults ? /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
101
- className: `${baseClass}__entries`,
71
+ }), /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
102
72
  children: /*#__PURE__*/_jsx("div", {
103
73
  "aria-label": ariaLabel,
104
74
  role: "menu",
@@ -125,14 +95,6 @@ export const Combobox = props => {
125
95
  }, `${entry_0.name}-${index}`);
126
96
  })
127
97
  })
128
- }) : /*#__PURE__*/_jsx("div", {
129
- className: `${baseClass}__no-results`,
130
- children: t('general:noMatchesFound')
131
- }), footer && /*#__PURE__*/_jsx("div", {
132
- className: `${baseClass}__footer`,
133
- children: footer({
134
- close
135
- })
136
98
  })]
137
99
  })
138
100
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useLayoutEffect","useMemo","useRef","useState","SearchIcon","useTranslation","matchesSearchQuery","Popup","PopupList","baseClass","Combobox","props","ariaLabel","entries","footer","minEntriesForSearch","onSelect","onToggleClose","onToggleOpen","searchPlaceholder","popupProps","t","searchValue","setSearchValue","isOpenRef","searchInputRef","contentRef","filteredEntries","filter","entry","label","name","query","showSearch","length","hasResults","lockedWidth","setLockedWidth","current","offsetWidth","handleToggleOpen","active","setTimeout","focus","handleToggleClose","_jsx","className","render","close","_jsxs","undefined","ref","style","size","onChange","e","target","value","placeholder","type","ButtonGroup","role","map","index","handleClick","onClick","onKeyDown","key","preventDefault","tabIndex","Component"],"sources":["../../../src/elements/Combobox/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport type { PopupProps } from '../Popup/index.js'\n\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { matchesSearchQuery } from '../../utilities/matchesSearchQuery.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'combobox'\n\n/**\n * @internal\n * @experimental\n */\nexport type ComboboxEntry = {\n Component: React.ReactNode\n name: string\n}\n\n/**\n * @internal\n * @experimental\n */\nexport type ComboboxProps = {\n /** Accessible label for the list of entries */\n 'aria-label'?: string\n entries: ComboboxEntry[]\n /**\n * Pinned below the entries, outside the scroll area and unaffected by search.\n * For actions that belong to the list as a whole, such as \"create new\".\n */\n footer?: (args: { close: () => void }) => React.ReactNode\n /** Minimum number of entries required to show search */\n minEntriesForSearch?: number\n onSelect?: (entry: ComboboxEntry) => void\n searchPlaceholder?: string\n} & Omit<PopupProps, 'children' | 'render'>\n\n/**\n * A wrapper on top of Popup + PopupList.ButtonGroup that adds search functionality.\n *\n * @internal - this component may be removed or receive breaking changes in minor releases.\n * @experimental\n */\nexport const Combobox: React.FC<ComboboxProps> = (props) => {\n const {\n 'aria-label': ariaLabel,\n entries,\n footer,\n minEntriesForSearch = 8,\n onSelect,\n onToggleClose,\n onToggleOpen,\n searchPlaceholder = 'Search...',\n ...popupProps\n } = props\n\n const { t } = useTranslation()\n const [searchValue, setSearchValue] = useState('')\n const isOpenRef = useRef(false)\n const searchInputRef = useRef<HTMLInputElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const filteredEntries = useMemo(\n () => entries.filter((entry) => matchesSearchQuery({ label: entry.name, query: searchValue })),\n [entries, searchValue],\n )\n\n const showSearch = entries.length >= minEntriesForSearch\n const hasResults = filteredEntries.length > 0\n\n // Locking the width the moment searching begins keeps the popup from\n // resizing around the cursor as entries filter out from under it.\n const [lockedWidth, setLockedWidth] = useState<null | number>(null)\n\n useLayoutEffect(() => {\n if (!contentRef.current) {\n return\n }\n\n if (searchValue && lockedWidth === null) {\n setLockedWidth(contentRef.current.offsetWidth)\n } else if (!searchValue && lockedWidth !== null) {\n setLockedWidth(null)\n }\n }, [searchValue, lockedWidth])\n\n const handleToggleOpen = useCallback(\n (active: boolean) => {\n isOpenRef.current = active\n if (active && showSearch) {\n setTimeout(() => {\n searchInputRef.current?.focus()\n }, 100)\n }\n onToggleOpen?.(active)\n },\n [showSearch, onToggleOpen],\n )\n\n const handleToggleClose = useCallback(() => {\n isOpenRef.current = false\n setSearchValue('')\n setLockedWidth(null)\n onToggleClose?.()\n }, [onToggleClose])\n\n return (\n <Popup\n {...popupProps}\n className={`${baseClass} ${popupProps.className || ''}`}\n onToggleClose={handleToggleClose}\n onToggleOpen={handleToggleOpen}\n render={({ close }) => (\n <div\n className={`${baseClass}__content`}\n data-width-locked={lockedWidth ? 'true' : undefined}\n ref={contentRef}\n style={\n lockedWidth\n ? ({ '--combobox-locked-width': `${lockedWidth}px` } as React.CSSProperties)\n : undefined\n }\n >\n {showSearch && (\n <div className={`${baseClass}__search`}>\n <div className={`${baseClass}__search-bar`}>\n <SearchIcon size={24} />\n <input\n aria-label={searchPlaceholder}\n className={`${baseClass}__search-input`}\n onChange={(e) => setSearchValue(e.target.value)}\n placeholder={searchPlaceholder}\n ref={searchInputRef}\n type=\"text\"\n value={searchValue}\n />\n </div>\n </div>\n )}\n {hasResults ? (\n <PopupList.ButtonGroup className={`${baseClass}__entries`}>\n <div aria-label={ariaLabel} role=\"menu\">\n {filteredEntries.map((entry, index) => {\n const handleClick = () => {\n if (onSelect) {\n onSelect(entry)\n }\n close()\n }\n\n return (\n <div\n className={`${baseClass}__entry`}\n data-popup-prevent-close\n key={`${entry.name}-${index}`}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleClick()\n }\n }}\n role=\"menuitem\"\n tabIndex={0}\n >\n {entry.Component}\n </div>\n )\n })}\n </div>\n </PopupList.ButtonGroup>\n ) : (\n <div className={`${baseClass}__no-results`}>{t('general:noMatchesFound')}</div>\n )}\n {footer && <div className={`${baseClass}__footer`}>{footer({ close })}</div>}\n </div>\n )}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useRef","useState","Popup","PopupList","baseClass","Combobox","props","ariaLabel","entries","minEntriesForSearch","onSelect","onToggleClose","onToggleOpen","searchPlaceholder","popupProps","searchValue","setSearchValue","isOpenRef","searchInputRef","filteredEntries","search","toLowerCase","filter","entry","name","includes","showSearch","length","hasResults","handleToggleOpen","useCallback","active","current","setTimeout","focus","handleToggleClose","_jsx","className","render","close","_jsxs","onChange","e","target","value","placeholder","ref","type","ButtonGroup","role","map","index","handleClick","onClick","onKeyDown","key","preventDefault","tabIndex","Component"],"sources":["../../../src/elements/Combobox/index.tsx"],"sourcesContent":["'use client'\nimport React, { useMemo, useRef, useState } from 'react'\n\nimport type { PopupProps } from '../Popup/index.js'\n\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'combobox'\n\n/**\n * @internal\n * @experimental\n */\nexport type ComboboxEntry = {\n Component: React.ReactNode\n name: string\n}\n\n/**\n * @internal\n * @experimental\n */\nexport type ComboboxProps = {\n /** Accessible label for the list of entries */\n 'aria-label'?: string\n entries: ComboboxEntry[]\n /** Minimum number of entries required to show search */\n minEntriesForSearch?: number\n onSelect?: (entry: ComboboxEntry) => void\n searchPlaceholder?: string\n} & Omit<PopupProps, 'children' | 'render'>\n\n/**\n * A wrapper on top of Popup + PopupList.ButtonGroup that adds search functionality.\n *\n * @internal - this component may be removed or receive breaking changes in minor releases.\n * @experimental\n */\nexport const Combobox: React.FC<ComboboxProps> = (props) => {\n const {\n 'aria-label': ariaLabel,\n entries,\n minEntriesForSearch = 8,\n onSelect,\n onToggleClose,\n onToggleOpen,\n searchPlaceholder = 'Search...',\n ...popupProps\n } = props\n const [searchValue, setSearchValue] = useState('')\n const isOpenRef = useRef(false)\n const searchInputRef = useRef<HTMLInputElement>(null)\n\n const filteredEntries = useMemo(() => {\n if (!searchValue) {\n return entries\n }\n const search = searchValue.toLowerCase()\n return entries.filter((entry) => entry.name.toLowerCase().includes(search))\n }, [entries, searchValue])\n\n const showSearch = entries.length >= minEntriesForSearch\n const hasResults = filteredEntries.length > 0\n\n const handleToggleOpen = React.useCallback(\n (active: boolean) => {\n isOpenRef.current = active\n if (active && showSearch) {\n setTimeout(() => {\n searchInputRef.current?.focus()\n }, 100)\n }\n onToggleOpen?.(active)\n },\n [showSearch, onToggleOpen],\n )\n\n const handleToggleClose = React.useCallback(() => {\n isOpenRef.current = false\n setSearchValue('')\n onToggleClose?.()\n }, [onToggleClose])\n\n return (\n <Popup\n {...popupProps}\n className={`${baseClass} ${popupProps.className || ''}`}\n onToggleClose={handleToggleClose}\n onToggleOpen={handleToggleOpen}\n render={({ close }) => (\n <div className={`${baseClass}__content`}>\n {showSearch && (\n <div\n className={`${baseClass}__search-wrapper${!hasResults ? ` ${baseClass}__search-wrapper--no-results` : ''}`}\n >\n <input\n aria-label={searchPlaceholder}\n className={`${baseClass}__search-input`}\n onChange={(e) => setSearchValue(e.target.value)}\n placeholder={searchPlaceholder}\n ref={searchInputRef}\n type=\"text\"\n value={searchValue}\n />\n </div>\n )}\n <PopupList.ButtonGroup>\n <div aria-label={ariaLabel} role=\"menu\">\n {filteredEntries.map((entry, index) => {\n const handleClick = () => {\n if (onSelect) {\n onSelect(entry)\n }\n close()\n }\n\n return (\n <div\n className={`${baseClass}__entry`}\n data-popup-prevent-close\n key={`${entry.name}-${index}`}\n onClick={handleClick}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleClick()\n }\n }}\n role=\"menuitem\"\n tabIndex={0}\n >\n {entry.Component}\n </div>\n )\n })}\n </div>\n </PopupList.ButtonGroup>\n </div>\n )}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import './index.css';
3
3
  export type Props = {
4
4
  defaultMessage?: string;
5
- icon?: React.ReactNode;
6
5
  successMessage?: string;
7
6
  value?: string;
8
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyToClipboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,KAAK,GAAG;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsC3C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CopyToClipboard/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,KAAK,GAAG;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiC3C,CAAA"}
@@ -9,10 +9,9 @@ import { Tooltip } from '../Tooltip/index.js';
9
9
  import './index.css';
10
10
  const baseClass = 'copy-to-clipboard';
11
11
  export const CopyToClipboard = t0 => {
12
- const $ = _c(12);
12
+ const $ = _c(11);
13
13
  const {
14
14
  defaultMessage,
15
- icon,
16
15
  successMessage,
17
16
  value
18
17
  } = t0;
@@ -51,14 +50,14 @@ export const CopyToClipboard = t0 => {
51
50
  t3 = $[3];
52
51
  }
53
52
  let t4;
54
- if ($[4] !== copied || $[5] !== defaultMessage || $[6] !== hovered || $[7] !== icon || $[8] !== successMessage || $[9] !== t || $[10] !== t1) {
53
+ if ($[4] !== copied || $[5] !== defaultMessage || $[6] !== hovered || $[7] !== successMessage || $[8] !== t || $[9] !== t1) {
55
54
  t4 = _jsxs("button", {
56
55
  className: baseClass,
57
56
  onClick: t1,
58
57
  onMouseEnter: t2,
59
58
  onMouseLeave: t3,
60
59
  type: "button",
61
- children: [icon ?? _jsx(CopyIcon, {}), _jsxs(Tooltip, {
60
+ children: [_jsx(CopyIcon, {}), _jsxs(Tooltip, {
62
61
  delay: copied ? 0 : undefined,
63
62
  show: hovered || copied,
64
63
  children: [copied && (successMessage ?? t("general:copied")), !copied && (defaultMessage ?? t("general:copy"))]
@@ -67,13 +66,12 @@ export const CopyToClipboard = t0 => {
67
66
  $[4] = copied;
68
67
  $[5] = defaultMessage;
69
68
  $[6] = hovered;
70
- $[7] = icon;
71
- $[8] = successMessage;
72
- $[9] = t;
73
- $[10] = t1;
74
- $[11] = t4;
69
+ $[7] = successMessage;
70
+ $[8] = t;
71
+ $[9] = t1;
72
+ $[10] = t4;
75
73
  } else {
76
- t4 = $[11];
74
+ t4 = $[10];
77
75
  }
78
76
  return t4;
79
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useState","CopyIcon","useTranslation","Tooltip","baseClass","CopyToClipboard","t0","$","defaultMessage","icon","successMessage","value","copied","setCopied","hovered","setHovered","t","t1","navigator","clipboard","writeText","t2","t3","Symbol","for","t4","_jsxs","className","onClick","onMouseEnter","onMouseLeave","type","children","_jsx","delay","undefined","show"],"sources":["../../../src/elements/CopyToClipboard/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.css'\n\nconst baseClass = 'copy-to-clipboard'\n\nexport type Props = {\n defaultMessage?: string\n icon?: React.ReactNode\n successMessage?: string\n value?: string\n}\n\nexport const CopyToClipboard: React.FC<Props> = ({\n defaultMessage,\n icon,\n successMessage,\n value,\n}) => {\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n const { t } = useTranslation()\n\n if (value) {\n return (\n <button\n className={baseClass}\n onClick={async () => {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n }}\n onMouseEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onMouseLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n type=\"button\"\n >\n {icon ?? <CopyIcon />}\n <Tooltip delay={copied ? 0 : undefined} show={hovered || copied}>\n {copied && (successMessage ?? t('general:copied'))}\n {!copied && (defaultMessage ?? t('general:copy'))}\n </Tooltip>\n </button>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AASlB,OAAO,MAAMC,eAAA,GAAmCC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,cAAA;IAAAC,IAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAL,EAKhD;EACC,OAAAM,MAAA,EAAAC,SAAA,IAA4Bb,QAAA,MAAS;EACrC,OAAAc,OAAA,EAAAC,UAAA,IAA8Bf,QAAA,MAAS;EACvC;IAAAgB;EAAA,IAAcd,cAAA;EAAA,IAEVS,KAAA;IAAA,IAAAM,EAAA;IAAA,IAAAV,CAAA,QAAAI,KAAA;MAIWM,EAAA,SAAAA,CAAA;QAAA,MACDC,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8BT,KAAA;QACpCE,SAAA,KAAU;MAAA;MACZN,CAAA,MAAAI,KAAA;MAAAJ,CAAA,MAAAU,EAAA;IAAA;MAAAA,EAAA,GAAAV,CAAA;IAAA;IAAA,IAAAc,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAAf,CAAA,QAAAgB,MAAA,CAAAC,GAAA;MACcH,EAAA,GAAAA,CAAA;QACZN,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEES,EAAA,GAAAA,CAAA;QACZP,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZN,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAD,EAAA,GAAAd,CAAA;MAAAe,EAAA,GAAAf,CAAA;IAAA;IAAA,IAAAkB,EAAA;IAAA,IAAAlB,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAO,OAAA,IAAAP,CAAA,QAAAE,IAAA,IAAAF,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAS,CAAA,IAAAT,CAAA,SAAAU,EAAA;MAbFQ,EAAA,GAAAC,KAAA,CAAC;QAAAC,SAAA,EAAAvB,SAAA;QAAAwB,OAAA,EAEUX,EAGT;QAAAY,YAAA,EACcR,EAGd;QAAAS,YAAA,EACcR,EAGd;QAAAS,IAAA,EACK;QAAAC,QAAA,GAEJvB,IAAA,IAAQwB,IAAA,CAAAhC,QAAA,IAAC,GACVyB,KAAA,CAAAvB,OAAA;UAAA+B,KAAA,EAAgBtB,MAAA,OAAAuB,SAAa;UAAAC,IAAA,EAAiBtB,OAAA,IAAWF,MAAA;UAAAoB,QAAA,GACtDpB,MAAA,KAAWF,cAAA,IAAkBM,CAAA,CAAE,iBAAgB,GAC/C,CAACJ,MAAA,KAAWJ,cAAA,IAAkBQ,CAAA,CAAE,eAAc;QAAA,C;;;;;;;;;;;;;WAnBnDS,E;;;CA0BN","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useState","CopyIcon","useTranslation","Tooltip","baseClass","CopyToClipboard","t0","$","defaultMessage","successMessage","value","copied","setCopied","hovered","setHovered","t","t1","navigator","clipboard","writeText","t2","t3","Symbol","for","t4","_jsxs","className","onClick","onMouseEnter","onMouseLeave","type","children","_jsx","delay","undefined","show"],"sources":["../../../src/elements/CopyToClipboard/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.css'\n\nconst baseClass = 'copy-to-clipboard'\n\nexport type Props = {\n defaultMessage?: string\n successMessage?: string\n value?: string\n}\n\nexport const CopyToClipboard: React.FC<Props> = ({ defaultMessage, successMessage, value }) => {\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n const { t } = useTranslation()\n\n if (value) {\n return (\n <button\n className={baseClass}\n onClick={async () => {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n }}\n onMouseEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onMouseLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n type=\"button\"\n >\n <CopyIcon />\n <Tooltip delay={copied ? 0 : undefined} show={hovered || copied}>\n {copied && (successMessage ?? t('general:copied'))}\n {!copied && (defaultMessage ?? t('general:copy'))}\n </Tooltip>\n </button>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAQlB,OAAO,MAAMC,eAAA,GAAmCC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,cAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAJ,EAAyC;EACxF,OAAAK,MAAA,EAAAC,SAAA,IAA4BZ,QAAA,MAAS;EACrC,OAAAa,OAAA,EAAAC,UAAA,IAA8Bd,QAAA,MAAS;EACvC;IAAAe;EAAA,IAAcb,cAAA;EAAA,IAEVQ,KAAA;IAAA,IAAAM,EAAA;IAAA,IAAAT,CAAA,QAAAG,KAAA;MAIWM,EAAA,SAAAA,CAAA;QAAA,MACDC,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8BT,KAAA;QACpCE,SAAA,KAAU;MAAA;MACZL,CAAA,MAAAG,KAAA;MAAAH,CAAA,MAAAS,EAAA;IAAA;MAAAA,EAAA,GAAAT,CAAA;IAAA;IAAA,IAAAa,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAAd,CAAA,QAAAe,MAAA,CAAAC,GAAA;MACcH,EAAA,GAAAA,CAAA;QACZN,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEES,EAAA,GAAAA,CAAA;QACZP,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZL,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;IAAA;MAAAD,EAAA,GAAAb,CAAA;MAAAc,EAAA,GAAAd,CAAA;IAAA;IAAA,IAAAiB,EAAA;IAAA,IAAAjB,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAM,OAAA,IAAAN,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAQ,CAAA,IAAAR,CAAA,QAAAS,EAAA;MAbFQ,EAAA,GAAAC,KAAA,CAAC;QAAAC,SAAA,EAAAtB,SAAA;QAAAuB,OAAA,EAEUX,EAGT;QAAAY,YAAA,EACcR,EAGd;QAAAS,YAAA,EACcR,EAGd;QAAAS,IAAA,EACK;QAAAC,QAAA,GAELC,IAAA,CAAA/B,QAAA,IAAC,GACDwB,KAAA,CAAAtB,OAAA;UAAA8B,KAAA,EAAgBtB,MAAA,OAAAuB,SAAa;UAAAC,IAAA,EAAiBtB,OAAA,IAAWF,MAAA;UAAAoB,QAAA,GACtDpB,MAAA,KAAWF,cAAA,IAAkBM,CAAA,CAAE,iBAAgB,GAC/C,CAACJ,MAAA,KAAWH,cAAA,IAAkBO,CAAA,CAAE,eAAc;QAAA,C;;;;;;;;;;;;WAnBnDS,E;;;CA0BN","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAMxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAoB9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA8L1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteDocument/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAmB9E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,yBAAyB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACtE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4L1C,CAAA"}
@@ -4,12 +4,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useModal } from '@faceless-ui/modal';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { formatAdminURL } from 'payload/shared';
7
- import * as qs from 'qs-esm';
8
7
  import React, { Fragment, useCallback, useState } from 'react';
9
8
  import { toast } from 'sonner';
10
9
  import { CheckboxInput } from '../../fields/Checkbox/Input.js';
11
10
  import { useForm } from '../../forms/Form/context.js';
12
- import { useBranchParam } from '../../providers/Branch/index.js';
13
11
  import { useConfig } from '../../providers/Config/index.js';
14
12
  import { useDocumentEvents } from '../../providers/DocumentEvents/index.js';
15
13
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
@@ -57,7 +55,6 @@ export const DeleteDocument = props => {
57
55
  i18n,
58
56
  t
59
57
  } = useTranslation();
60
- const branch = useBranchParam();
61
58
  const {
62
59
  title
63
60
  } = useDocumentTitle();
@@ -87,11 +84,7 @@ export const DeleteDocument = props => {
87
84
  try {
88
85
  const url = formatAdminURL({
89
86
  apiRoute: api,
90
- path: `/${collectionSlug}/${id}${qs.stringify({
91
- branch
92
- }, {
93
- addQueryPrefix: true
94
- })}`
87
+ path: `/${collectionSlug}/${id}`
95
88
  });
96
89
  const res = permanentlyDelete ? await requests.delete(url, {
97
90
  headers: {
@@ -147,7 +140,7 @@ export const DeleteDocument = props => {
147
140
  } catch (_err) {
148
141
  return addDefaultError();
149
142
  }
150
- }, [branch, deletePermanently, setModified, hasDeletePermission, hasTrashPermission, api, collectionSlug, id, t, singularLabel, addDefaultError, i18n, title, router, adminRoute, redirectAfterDelete, onDelete, collectionConfig, startRouteTransition, reportUpdate]);
143
+ }, [deletePermanently, setModified, hasDeletePermission, hasTrashPermission, api, collectionSlug, id, t, singularLabel, addDefaultError, i18n, title, router, adminRoute, redirectAfterDelete, onDelete, collectionConfig, startRouteTransition, reportUpdate]);
151
144
  if (id) {
152
145
  return /*#__PURE__*/_jsxs(Fragment, {
153
146
  children: [/*#__PURE__*/_jsx(PopupList.Button, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","qs","React","Fragment","useCallback","useState","toast","CheckboxInput","useForm","useBranchParam","useConfig","useDocumentEvents","useDocumentInfo","useDocumentTitle","useRouter","useRouteTransition","useTranslation","requests","shouldPermanentlyDelete","ConfirmationModal","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","getEntityConfig","collectionConfig","hasDeletePermission","hasTrashPermission","setModified","router","i18n","t","branch","startRouteTransition","openModal","reportUpdate","modalSlug","deletePermanently","setDeletePermanently","addDefaultError","error","handleDelete","permanentlyDelete","url","apiRoute","path","stringify","addQueryPrefix","res","delete","headers","language","patch","body","JSON","deletedAt","Date","toISOString","json","status","success","label","message","deleteEvent","entitySlug","operation","updatedAt","push","errors","forEach","_err","_jsxs","_jsx","Button","onClick","elements","1","children","i18nKey","trash","variables","checked","name","onToggle","e","target","className","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useBranchParam } from '../../providers/Branch/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { shouldPermanentlyDelete } from '../../utilities/shouldPermanentlyDelete.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { hasDeletePermission, hasTrashPermission } = useDocumentInfo()\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const branch = useBranchParam()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n const { reportUpdate } = useDocumentEvents()\n\n const modalSlug = `delete-${id}`\n\n const [deletePermanently, setDeletePermanently] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setModified(false)\n\n const permanentlyDelete = shouldPermanentlyDelete({\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission,\n })\n\n try {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}${qs.stringify({ branch }, { addQueryPrefix: true })}`,\n })\n const res = permanentlyDelete\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t(permanentlyDelete ? 'general:titleDeleted' : 'general:titleTrashed', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n // A trashed document also disappears from default queries, so both permanent\n // deletes and trashing report as a `delete` event.\n const deleteEvent = {\n id,\n entitySlug: collectionSlug,\n operation: 'delete' as const,\n updatedAt: new Date().toISOString(),\n }\n\n if (redirectAfterDelete) {\n // Navigating away tears this surface down, so just notify other surfaces.\n reportUpdate(deleteEvent)\n\n return startRouteTransition(() =>\n router.push(formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}` })),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n reportUpdate(deleteEvent)\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return\n } catch (_err) {\n return addDefaultError()\n }\n }, [\n branch,\n deletePermanently,\n setModified,\n hasDeletePermission,\n hasTrashPermission,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n reportUpdate,\n ])\n\n if (id) {\n return (\n <Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={\n collectionConfig.trash && hasTrashPermission\n ? 'general:aboutToTrash'\n : 'general:aboutToDelete'\n }\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig.trash && hasTrashPermission && hasDeletePermission && (\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","React","Fragment","useCallback","useState","toast","CheckboxInput","useForm","useConfig","useDocumentEvents","useDocumentInfo","useDocumentTitle","useRouter","useRouteTransition","useTranslation","requests","shouldPermanentlyDelete","ConfirmationModal","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","getEntityConfig","collectionConfig","hasDeletePermission","hasTrashPermission","setModified","router","i18n","t","startRouteTransition","openModal","reportUpdate","modalSlug","deletePermanently","setDeletePermanently","addDefaultError","error","handleDelete","permanentlyDelete","url","apiRoute","path","res","delete","headers","language","patch","body","JSON","stringify","deletedAt","Date","toISOString","json","status","success","label","message","deleteEvent","entitySlug","operation","updatedAt","push","errors","forEach","_err","_jsxs","_jsx","Button","onClick","elements","1","children","i18nKey","trash","variables","checked","name","onToggle","e","target","className","confirmingLabel","heading","onConfirm"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../providers/DocumentTitle/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { shouldPermanentlyDelete } from '../../utilities/shouldPermanentlyDelete.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { hasDeletePermission, hasTrashPermission } = useDocumentInfo()\n const { setModified } = useForm()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentTitle()\n const { startRouteTransition } = useRouteTransition()\n const { openModal } = useModal()\n const { reportUpdate } = useDocumentEvents()\n\n const modalSlug = `delete-${id}`\n\n const [deletePermanently, setDeletePermanently] = useState(false)\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n const handleDelete = useCallback(async () => {\n setModified(false)\n\n const permanentlyDelete = shouldPermanentlyDelete({\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission,\n })\n\n try {\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}/${id}`,\n })\n const res = permanentlyDelete\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n const json = await res.json()\n\n if (res.status < 400) {\n toast.success(\n t(permanentlyDelete ? 'general:titleDeleted' : 'general:titleTrashed', {\n label: getTranslation(singularLabel, i18n),\n title,\n }) || json.message,\n )\n\n // A trashed document also disappears from default queries, so both permanent\n // deletes and trashing report as a `delete` event.\n const deleteEvent = {\n id,\n entitySlug: collectionSlug,\n operation: 'delete' as const,\n updatedAt: new Date().toISOString(),\n }\n\n if (redirectAfterDelete) {\n // Navigating away tears this surface down, so just notify other surfaces.\n reportUpdate(deleteEvent)\n\n return startRouteTransition(() =>\n router.push(formatAdminURL({ adminRoute, path: `/collections/${collectionSlug}` })),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n reportUpdate(deleteEvent)\n\n return\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n\n return\n } catch (_err) {\n return addDefaultError()\n }\n }, [\n deletePermanently,\n setModified,\n hasDeletePermission,\n hasTrashPermission,\n api,\n collectionSlug,\n id,\n t,\n singularLabel,\n addDefaultError,\n i18n,\n title,\n router,\n adminRoute,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n startRouteTransition,\n reportUpdate,\n ])\n\n if (id) {\n return (\n <Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n openModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <ConfirmationModal\n body={\n <Fragment>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey={\n collectionConfig.trash && hasTrashPermission\n ? 'general:aboutToTrash'\n : 'general:aboutToDelete'\n }\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleFromProps || title || id,\n }}\n />\n {collectionConfig.trash && hasTrashPermission && hasDeletePermission && (\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n )}\n </Fragment>\n }\n className={baseClass}\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={modalSlug}\n onConfirm={handleDelete}\n />\n </Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAM/C,OAAO,KAAK,MAAM,OAAO,CAAA;AAczB,KAAK,iBAAiB,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AACD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACjD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,UAAU,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,GAAG,CAAC,EAAE,OAAO,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;YACzB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,mBAA2B,EAC3B,kBAA0B,EAC1B,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,eAAe,qBA+QjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DeleteMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAM/C,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,KAAK,iBAAiB,GAAG;IACvB,CAAC,UAAU,EAAE,MAAM,GAAG;QACpB,YAAY,EAAE,MAAM,CAAA;QACpB,MAAM,EAAE,OAAO,EAAE,CAAA;QACjB,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;QACxB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF,CAAA;AACD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACjD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,UAAU,EAAE;QACV,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,GAAG,CAAC,EAAE,OAAO,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;YACzB,UAAU,CAAC,EAAE,MAAM,CAAA;SACpB,CAAA;KACF,CAAA;IACD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,WAAW,EACX,mBAA2B,EAC3B,kBAA0B,EAC1B,WAAW,EACX,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,KAAK,GACN,EAAE,eAAe,qBA4QjB"}
@@ -8,7 +8,6 @@ import * as qs from 'qs-esm';
8
8
  import React from 'react';
9
9
  import { toast } from 'sonner';
10
10
  import { CheckboxInput } from '../../fields/Checkbox/Input.js';
11
- import { useBranchParam } from '../../providers/Branch/index.js';
12
11
  import { useConfig } from '../../providers/Config/index.js';
13
12
  import { useLocale } from '../../providers/Locale/index.js';
14
13
  import { useTranslation } from '../../providers/Translation/index.js';
@@ -47,7 +46,6 @@ export function DeleteMany({
47
46
  const {
48
47
  code: locale
49
48
  } = useLocale();
50
- const branch = useBranchParam();
51
49
  const {
52
50
  i18n
53
51
  } = useTranslation();
@@ -112,7 +110,6 @@ export function DeleteMany({
112
110
  const url = formatAdminURL({
113
111
  apiRoute: api,
114
112
  path: `/${relationTo}${qs.stringify({
115
- branch,
116
113
  limit: 0,
117
114
  locale,
118
115
  select: {},
@@ -201,7 +198,7 @@ export function DeleteMany({
201
198
  if (typeof afterDelete === 'function') {
202
199
  afterDelete(result);
203
200
  }
204
- }, [branch, selections, afterDelete, collections, deletePermanently, hasDeletePermission, hasTrashPermission, locale, search, api, i18n, viewType, where, t]);
201
+ }, [selections, afterDelete, collections, deletePermanently, hasDeletePermission, hasTrashPermission, locale, search, api, i18n, viewType, where, t]);
205
202
  const {
206
203
  label: labelString,
207
204
  labelCount: labelCount_0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useBranchParam","useConfig","useLocale","useTranslation","requests","shouldPermanentlyDelete","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","afterDelete","hasDeletePermission","hasTrashPermission","modalPrefix","search","selections","trash","viewType","where","t","config","collections","routes","api","code","locale","branch","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","length","result","relationTo","all","ids","entries","collectionConfig","find","slug","whereConstraint","and","Array","isArray","deletedAt","exists","id","not_equals","in","url","apiRoute","path","stringify","limit","select","addQueryPrefix","permanentlyDelete","Boolean","isTrashView","deleteManyResponse","delete","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","successKey","success","count","label","errors","error","message","description","map","join","deletedCount","doc","totalCount","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","undefined","collectionLabel","newLabel","_jsxs","Fragment","_jsx","className","onClick","elements","0","children","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useBranchParam } from '../../providers/Branch/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { shouldPermanentlyDelete } from '../../utilities/shouldPermanentlyDelete.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\nexport type DeleteManyProps = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * Whether the user has permission to permanently delete documents.\n * When false, the \"delete permanently\" checkbox will be hidden.\n */\n hasDeletePermission?: boolean\n /**\n * Whether the user has permission to trash (soft delete) documents.\n * When false and hasDeletePermission is true, only permanent delete is available.\n */\n hasTrashPermission?: boolean\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany({\n afterDelete,\n hasDeletePermission = false,\n hasTrashPermission = false,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteManyProps) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const branch = useBranchParam()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${relationTo}${qs.stringify(\n {\n branch,\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const permanentlyDelete = shouldPermanentlyDelete({\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission: Boolean(collectionConfig.trash) && hasTrashPermission,\n isTrashView: viewType === 'trash',\n })\n\n const deleteManyResponse = permanentlyDelete\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (!permanentlyDelete) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || (hasDeletePermission && deletePermanently)) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n branch,\n selections,\n afterDelete,\n collections,\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission,\n locale,\n search,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash && hasTrashPermission ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && hasTrashPermission && hasDeletePermission && viewType !== 'trash' && (\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useConfig","useLocale","useTranslation","requests","shouldPermanentlyDelete","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","afterDelete","hasDeletePermission","hasTrashPermission","modalPrefix","search","selections","trash","viewType","where","t","config","collections","routes","api","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","length","result","relationTo","all","ids","entries","collectionConfig","find","slug","whereConstraint","and","Array","isArray","deletedAt","exists","id","not_equals","in","url","apiRoute","path","stringify","limit","select","addQueryPrefix","permanentlyDelete","Boolean","isTrashView","deleteManyResponse","delete","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","successKey","success","count","label","errors","error","message","description","map","join","deletedCount","doc","totalCount","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","undefined","collectionLabel","newLabel","_jsxs","Fragment","_jsx","className","onClick","elements","0","children","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { shouldPermanentlyDelete } from '../../utilities/shouldPermanentlyDelete.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\nexport type DeleteManyProps = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * Whether the user has permission to permanently delete documents.\n * When false, the \"delete permanently\" checkbox will be hidden.\n */\n hasDeletePermission?: boolean\n /**\n * Whether the user has permission to trash (soft delete) documents.\n * When false and hasDeletePermission is true, only permanent delete is available.\n */\n hasTrashPermission?: boolean\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany({\n afterDelete,\n hasDeletePermission = false,\n hasTrashPermission = false,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteManyProps) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const permanentlyDelete = shouldPermanentlyDelete({\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission: Boolean(collectionConfig.trash) && hasTrashPermission,\n isTrashView: viewType === 'trash',\n })\n\n const deleteManyResponse = permanentlyDelete\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (!permanentlyDelete) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || (hasDeletePermission && deletePermanently)) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission,\n locale,\n search,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash && hasTrashPermission ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && hasTrashPermission && hasDeletePermission && viewType !== 'trash' && (\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,13 +6,13 @@
6
6
  position: fixed;
7
7
  inset: 0;
8
8
 
9
- --gutter-h: var(--spacer-3);
9
+ --gutter-h: var(--spacer-4);
10
10
  --gutter-v: var(--spacer-4);
11
11
  }
12
12
 
13
- @media (min-width: 768px) {
13
+ @media (max-width: 768px) {
14
14
  .drawer {
15
- --gutter-h: var(--spacer-4);
15
+ --gutter-h: var(--spacer-3);
16
16
  }
17
17
  }
18
18
 
@@ -33,7 +33,7 @@
33
33
  position: relative;
34
34
  z-index: 2;
35
35
  width: clamp(600px, 40vw, 1080px);
36
- max-width: calc(100vw - var(--spacer-3));
36
+ max-width: 100vw;
37
37
  background-color: var(--color-bg);
38
38
  box-shadow: var(--elevation-400-menu-panel);
39
39
  container: drawer / inline-size;
@@ -41,12 +41,6 @@
41
41
  transition: transform 100ms ease-out;
42
42
  }
43
43
 
44
- @media (min-width: 768px) {
45
- .drawer__content {
46
- max-width: 100vw;
47
- }
48
- }
49
-
50
44
  .drawer__content-children {
51
45
  position: relative;
52
46
  z-index: 1;
@@ -31,7 +31,6 @@ export const SelectLocalesDrawer = ({
31
31
  t
32
32
  } = useTranslation();
33
33
  const {
34
- closeModal,
35
34
  toggleModal
36
35
  } = useModal();
37
36
  const [selectedLocales, setSelectedLocales] = useState([]);
@@ -51,8 +50,8 @@ export const SelectLocalesDrawer = ({
51
50
  await onConfirm({
52
51
  selectedLocales
53
52
  });
54
- closeModal(slug);
55
- }, [closeModal, onConfirm, selectedLocales, slug]);
53
+ toggleModal(slug);
54
+ }, [onConfirm, selectedLocales, slug, toggleModal]);
56
55
  return /*#__PURE__*/_jsxs(Drawer, {
57
56
  className: baseClass,
58
57
  Header: /*#__PURE__*/_jsx(DrawerHeader, {