@payloadcms/ui 4.0.0-internal.d1cc1d3 → 4.0.0-internal.d21c039

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 (751) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/colors.css +7 -6
  3. package/dist/css/forms.css +1 -0
  4. package/dist/css/preflight.css +1 -0
  5. package/dist/css/spacing.css +18 -0
  6. package/dist/css/typography.css +158 -14
  7. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  8. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  9. package/dist/elements/APIKeyInput/index.js +27 -29
  10. package/dist/elements/APIKeyInput/index.js.map +1 -1
  11. package/dist/elements/AppHeader/EditViewWidthSettings/index.css +6 -0
  12. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts +4 -0
  13. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts.map +1 -0
  14. package/dist/elements/AppHeader/EditViewWidthSettings/index.js +96 -0
  15. package/dist/elements/AppHeader/EditViewWidthSettings/index.js.map +1 -0
  16. package/dist/elements/AppHeader/SettingsMenu/index.css +5 -0
  17. package/dist/elements/AppHeader/SettingsMenu/index.d.ts +4 -0
  18. package/dist/elements/AppHeader/SettingsMenu/index.d.ts.map +1 -0
  19. package/dist/elements/AppHeader/SettingsMenu/index.js +59 -0
  20. package/dist/elements/AppHeader/SettingsMenu/index.js.map +1 -0
  21. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts +3 -0
  22. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts.map +1 -0
  23. package/dist/elements/AppHeader/TypeSizeSettings/index.js +58 -0
  24. package/dist/elements/AppHeader/TypeSizeSettings/index.js.map +1 -0
  25. package/dist/elements/AppHeader/index.css +4 -0
  26. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  27. package/dist/elements/AppHeader/index.js +3 -2
  28. package/dist/elements/AppHeader/index.js.map +1 -1
  29. package/dist/elements/ArrayAction/index.d.ts +1 -0
  30. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  31. package/dist/elements/ArrayAction/index.js +45 -32
  32. package/dist/elements/ArrayAction/index.js.map +1 -1
  33. package/dist/elements/Autosave/index.d.ts.map +1 -1
  34. package/dist/elements/Autosave/index.js +2 -3
  35. package/dist/elements/Autosave/index.js.map +1 -1
  36. package/dist/elements/Banner/index.css +4 -0
  37. package/dist/elements/Banner/index.d.ts.map +1 -1
  38. package/dist/elements/Banner/index.js +1 -0
  39. package/dist/elements/Banner/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  41. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  42. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  43. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  44. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  45. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  46. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  47. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
  48. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  49. package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
  50. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  51. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  52. package/dist/elements/BulkUpload/FormsManager/index.js +18 -12
  53. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  54. package/dist/elements/BulkUpload/index.css +2 -0
  55. package/dist/elements/Button/index.css +2 -2
  56. package/dist/elements/Button/index.d.ts.map +1 -1
  57. package/dist/elements/Button/index.js +2 -0
  58. package/dist/elements/Button/index.js.map +1 -1
  59. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  60. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  61. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  62. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  63. package/dist/elements/Collapsible/index.css +1 -0
  64. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  65. package/dist/elements/CopyLocaleData/index.js +8 -9
  66. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  67. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  68. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  69. package/dist/elements/CopyToClipboard/index.js +10 -8
  70. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  71. package/dist/elements/DatePicker/index.css +2 -0
  72. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  73. package/dist/elements/DeleteMany/index.js +2 -3
  74. package/dist/elements/DeleteMany/index.js.map +1 -1
  75. package/dist/elements/Dialog/index.css +1 -0
  76. package/dist/elements/DocumentControls/index.css +1 -0
  77. package/dist/elements/DocumentFields/index.css +2 -0
  78. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +4 -1
  79. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -1
  80. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  81. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  82. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  83. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  84. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  85. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  86. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  87. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  88. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  89. package/dist/elements/DocumentHeader/index.css +22 -2
  90. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  91. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  92. package/dist/elements/DocumentHeader/index.js +6 -3
  93. package/dist/elements/DocumentHeader/index.js.map +1 -1
  94. package/dist/elements/Drawer/index.css +10 -4
  95. package/dist/elements/Dropzone/index.css +10 -4
  96. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  97. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  98. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  99. package/dist/elements/DuplicateDocument/index.js +2 -3
  100. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  101. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  102. package/dist/elements/EditMany/DrawerContent.js +2 -3
  103. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  104. package/dist/elements/EditUpload/index.css +1 -1
  105. package/dist/elements/FieldDiffContainer/index.css +1 -0
  106. package/dist/elements/FieldDiffLabel/index.css +1 -0
  107. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  108. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  109. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  110. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  111. package/dist/elements/FileManager/index.css +0 -30
  112. package/dist/elements/FileManager/index.d.ts.map +1 -1
  113. package/dist/elements/FileManager/index.js +379 -287
  114. package/dist/elements/FileManager/index.js.map +1 -1
  115. package/dist/elements/HTMLDiff/index.css +1 -0
  116. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  117. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  118. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  119. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  120. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  121. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  122. package/dist/elements/IDLabel/index.css +6 -0
  123. package/dist/elements/IDLabel/index.d.ts +1 -1
  124. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  125. package/dist/elements/IDLabel/index.js +16 -21
  126. package/dist/elements/IDLabel/index.js.map +1 -1
  127. package/dist/elements/ItemsDrawer/index.css +3 -0
  128. package/dist/elements/ListControls/index.css +10 -4
  129. package/dist/elements/ListControls/index.d.ts.map +1 -1
  130. package/dist/elements/ListControls/index.js +7 -1
  131. package/dist/elements/ListControls/index.js.map +1 -1
  132. package/dist/elements/ListControls/types.d.ts +3 -1
  133. package/dist/elements/ListControls/types.d.ts.map +1 -1
  134. package/dist/elements/ListControls/types.js.map +1 -1
  135. package/dist/elements/ListControlsBar/index.css +8 -3
  136. package/dist/elements/ListControlsBar/index.js +4 -1
  137. package/dist/elements/ListControlsBar/index.js.map +1 -1
  138. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  139. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  140. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  141. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  142. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  143. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  144. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  145. package/dist/elements/ListHeader/index.css +6 -1
  146. package/dist/elements/LivePreview/Window/index.css +1 -0
  147. package/dist/elements/LivePreview/Window/index.js +1 -1
  148. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  149. package/dist/elements/Localizer/index.js +1 -1
  150. package/dist/elements/Localizer/index.js.map +1 -1
  151. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +3 -2
  152. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  153. package/dist/elements/Nav/index.css +2 -0
  154. package/dist/elements/PageControls/index.css +1 -0
  155. package/dist/elements/PillSelector/index.css +1 -0
  156. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  157. package/dist/elements/Popup/index.js +1 -1
  158. package/dist/elements/Popup/index.js.map +1 -1
  159. package/dist/elements/PreviewSizes/index.css +2 -0
  160. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  161. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  162. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  163. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  164. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  165. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  166. package/dist/elements/PublishButton/index.css +1 -0
  167. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  168. package/dist/elements/PublishButton/index.js +16 -31
  169. package/dist/elements/PublishButton/index.js.map +1 -1
  170. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  171. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  172. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  173. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  174. package/dist/elements/QueryPresets/QueryPresetBar/index.js +15 -4
  175. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  176. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  177. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  178. package/dist/elements/RelationshipTable/index.js +5 -2
  179. package/dist/elements/RelationshipTable/index.js.map +1 -1
  180. package/dist/elements/RenderTitle/index.css +12 -0
  181. package/dist/elements/RenderTitle/index.d.ts +1 -0
  182. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  183. package/dist/elements/RenderTitle/index.js +30 -17
  184. package/dist/elements/RenderTitle/index.js.map +1 -1
  185. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  186. package/dist/elements/RestoreMany/index.js +2 -3
  187. package/dist/elements/RestoreMany/index.js.map +1 -1
  188. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  189. package/dist/elements/SaveDraftButton/index.js +2 -3
  190. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  191. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  192. package/dist/elements/SortHeader/index.js +29 -26
  193. package/dist/elements/SortHeader/index.js.map +1 -1
  194. package/dist/elements/Status/index.d.ts.map +1 -1
  195. package/dist/elements/Status/index.js +2 -3
  196. package/dist/elements/Status/index.js.map +1 -1
  197. package/dist/elements/StepNav/index.css +64 -14
  198. package/dist/elements/StepNav/index.d.ts.map +1 -1
  199. package/dist/elements/StepNav/index.js +143 -69
  200. package/dist/elements/StepNav/index.js.map +1 -1
  201. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  202. package/dist/elements/Table/DefaultCell/index.js +3 -11
  203. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  204. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  205. package/dist/elements/Table/OrderableTable.js +2 -3
  206. package/dist/elements/Table/OrderableTable.js.map +1 -1
  207. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  208. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  209. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  210. package/dist/elements/Table/index.css +1 -0
  211. package/dist/elements/TableSection/index.css +1 -0
  212. package/dist/elements/Tabs/index.css +1 -0
  213. package/dist/elements/Thumbnail/index.css +1 -0
  214. package/dist/elements/TimezonePicker/index.css +1 -0
  215. package/dist/elements/Tooltip/index.css +7 -0
  216. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  217. package/dist/elements/UnpublishButton/index.js +3 -4
  218. package/dist/elements/UnpublishButton/index.js.map +1 -1
  219. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  220. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  221. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  222. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  223. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  224. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  225. package/dist/elements/Upload/index.css +39 -32
  226. package/dist/elements/Upload/index.d.ts.map +1 -1
  227. package/dist/elements/Upload/index.js +37 -99
  228. package/dist/elements/Upload/index.js.map +1 -1
  229. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  230. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  231. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  232. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  233. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  234. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  235. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  236. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  237. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  238. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  239. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  240. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  241. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  242. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  243. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  244. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  245. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  246. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  247. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  248. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  249. package/dist/elements/WhereBuilder/index.css +2 -0
  250. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  251. package/dist/elements/WhereBuilder/index.js +15 -4
  252. package/dist/elements/WhereBuilder/index.js.map +1 -1
  253. package/dist/exports/client/index.d.ts +4 -1
  254. package/dist/exports/client/index.d.ts.map +1 -1
  255. package/dist/exports/client/index.js +1 -1
  256. package/dist/exports/client/index.js.map +3 -3
  257. package/dist/exports/rsc/index.d.ts +2 -0
  258. package/dist/exports/rsc/index.d.ts.map +1 -1
  259. package/dist/exports/rsc/index.js +2 -0
  260. package/dist/exports/rsc/index.js.map +1 -1
  261. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  262. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  263. package/dist/fields/Array/ArrayRow.js +2 -0
  264. package/dist/fields/Array/ArrayRow.js.map +1 -1
  265. package/dist/fields/Array/index.css +1 -0
  266. package/dist/fields/Array/index.d.ts.map +1 -1
  267. package/dist/fields/Array/index.js +40 -13
  268. package/dist/fields/Array/index.js.map +1 -1
  269. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  270. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  271. package/dist/fields/Blocks/BlockRow.js +2 -0
  272. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  273. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  274. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  275. package/dist/fields/Blocks/RowActions.js +22 -19
  276. package/dist/fields/Blocks/RowActions.js.map +1 -1
  277. package/dist/fields/Blocks/index.css +1 -0
  278. package/dist/fields/Blocks/index.d.ts.map +1 -1
  279. package/dist/fields/Blocks/index.js +37 -10
  280. package/dist/fields/Blocks/index.js.map +1 -1
  281. package/dist/fields/Checkbox/Input.d.ts +2 -2
  282. package/dist/fields/Checkbox/Input.js.map +1 -1
  283. package/dist/fields/Checkbox/index.css +48 -67
  284. package/dist/fields/FieldDescription/index.css +5 -0
  285. package/dist/fields/FieldLabel/index.css +22 -28
  286. package/dist/fields/FieldLabel/index.js +7 -8
  287. package/dist/fields/FieldLabel/index.js.map +1 -1
  288. package/dist/fields/Group/index.css +11 -4
  289. package/dist/fields/RadioGroup/Radio/index.css +42 -19
  290. package/dist/fields/RadioGroup/index.css +2 -20
  291. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  292. package/dist/fields/Relationship/Input.js +2 -3
  293. package/dist/fields/Relationship/Input.js.map +1 -1
  294. package/dist/fields/Row/index.css +2 -0
  295. package/dist/fields/Slug/index.d.ts.map +1 -1
  296. package/dist/fields/Slug/index.js +2 -3
  297. package/dist/fields/Slug/index.js.map +1 -1
  298. package/dist/fields/Tabs/index.css +9 -0
  299. package/dist/fields/Textarea/index.css +1 -1
  300. package/dist/fields/Upload/Input.d.ts.map +1 -1
  301. package/dist/fields/Upload/Input.js +46 -19
  302. package/dist/fields/Upload/Input.js.map +1 -1
  303. package/dist/fields/shared/index.d.ts +1 -1
  304. package/dist/fields/shared/index.d.ts.map +1 -1
  305. package/dist/fields/shared/index.js.map +1 -1
  306. package/dist/forms/Form/context.d.ts +3 -1
  307. package/dist/forms/Form/context.d.ts.map +1 -1
  308. package/dist/forms/Form/context.js +3 -1
  309. package/dist/forms/Form/context.js.map +1 -1
  310. package/dist/forms/Form/index.d.ts.map +1 -1
  311. package/dist/forms/Form/index.js +19 -8
  312. package/dist/forms/Form/index.js.map +1 -1
  313. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  314. package/dist/forms/NullifyField/index.js +2 -3
  315. package/dist/forms/NullifyField/index.js.map +1 -1
  316. package/dist/forms/RenderFields/index.css +1 -7
  317. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  318. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  319. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  320. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  321. package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
  322. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  323. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  324. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  325. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  326. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  327. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  328. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  329. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  330. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  331. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  332. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  333. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  334. package/dist/hooks/useControllableState.js +3 -3
  335. package/dist/hooks/useControllableState.js.map +1 -1
  336. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  337. package/dist/hooks/usePayloadAPI.js +2 -3
  338. package/dist/hooks/usePayloadAPI.js.map +1 -1
  339. package/dist/icons/Edit/index.d.ts +0 -1
  340. package/dist/icons/Edit/index.d.ts.map +1 -1
  341. package/dist/icons/Edit/index.js +4 -4
  342. package/dist/icons/Edit/index.js.map +1 -1
  343. package/dist/layouts/Root/index.d.ts.map +1 -1
  344. package/dist/layouts/Root/index.js +22 -5
  345. package/dist/layouts/Root/index.js.map +1 -1
  346. package/dist/providers/Actions/index.d.ts +1 -0
  347. package/dist/providers/Actions/index.d.ts.map +1 -1
  348. package/dist/providers/Actions/index.js +43 -11
  349. package/dist/providers/Actions/index.js.map +1 -1
  350. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  351. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  352. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  353. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  354. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  355. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  356. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  357. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  358. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  359. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  360. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  361. package/dist/providers/Auth/authSessionRequests.js +119 -0
  362. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  363. package/dist/providers/Auth/index.d.ts +2 -56
  364. package/dist/providers/Auth/index.d.ts.map +1 -1
  365. package/dist/providers/Auth/index.js +283 -135
  366. package/dist/providers/Auth/index.js.map +1 -1
  367. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  368. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  369. package/dist/providers/Auth/sessionActivity.js +49 -0
  370. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  371. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  372. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  373. package/dist/providers/Auth/sessionTiming.js +18 -0
  374. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  375. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  376. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  377. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  378. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  379. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  380. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  381. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  382. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  383. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  384. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  385. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  386. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  387. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  388. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  389. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  390. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  391. package/dist/providers/Auth/types.d.ts +65 -0
  392. package/dist/providers/Auth/types.d.ts.map +1 -0
  393. package/dist/providers/Auth/types.js +2 -0
  394. package/dist/providers/Auth/types.js.map +1 -0
  395. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  396. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  397. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  398. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  399. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  400. package/dist/providers/DocumentInfo/index.js +32 -22
  401. package/dist/providers/DocumentInfo/index.js.map +1 -1
  402. package/dist/providers/FormErrorHandler/index.d.ts +5 -1
  403. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
  404. package/dist/providers/FormErrorHandler/index.js.map +1 -1
  405. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  406. package/dist/providers/LivePreview/index.js +13 -6
  407. package/dist/providers/LivePreview/index.js.map +1 -1
  408. package/dist/providers/Locale/index.d.ts +1 -5
  409. package/dist/providers/Locale/index.d.ts.map +1 -1
  410. package/dist/providers/Locale/index.js +64 -138
  411. package/dist/providers/Locale/index.js.map +1 -1
  412. package/dist/providers/Root/index.d.ts +5 -1
  413. package/dist/providers/Root/index.d.ts.map +1 -1
  414. package/dist/providers/Root/index.js +32 -20
  415. package/dist/providers/Root/index.js.map +1 -1
  416. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  417. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  418. package/dist/providers/RouteTransition/index.d.ts +2 -0
  419. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  420. package/dist/providers/RouteTransition/index.js +42 -14
  421. package/dist/providers/RouteTransition/index.js.map +1 -1
  422. package/dist/providers/Selection/index.d.ts.map +1 -1
  423. package/dist/providers/Selection/index.js +2 -3
  424. package/dist/providers/Selection/index.js.map +1 -1
  425. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  426. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  427. package/dist/providers/ServerFunctions/index.js +15 -0
  428. package/dist/providers/ServerFunctions/index.js.map +1 -1
  429. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  430. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  431. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  432. package/dist/providers/Theme/index.d.ts +22 -1
  433. package/dist/providers/Theme/index.d.ts.map +1 -1
  434. package/dist/providers/Theme/index.js +313 -84
  435. package/dist/providers/Theme/index.js.map +1 -1
  436. package/dist/providers/Theme/shared.d.ts +8 -0
  437. package/dist/providers/Theme/shared.d.ts.map +1 -1
  438. package/dist/providers/Theme/shared.js +6 -0
  439. package/dist/providers/Theme/shared.js.map +1 -1
  440. package/dist/styles.css +186 -21
  441. package/dist/templates/Default/Wrapper/index.css +2 -0
  442. package/dist/templates/Default/index.css +1 -0
  443. package/dist/templates/Default/index.d.ts +1 -0
  444. package/dist/templates/Default/index.d.ts.map +1 -1
  445. package/dist/templates/Default/index.js +2 -0
  446. package/dist/templates/Default/index.js.map +1 -1
  447. package/dist/utilities/buildFormState.d.ts.map +1 -1
  448. package/dist/utilities/buildFormState.js +6 -2
  449. package/dist/utilities/buildFormState.js.map +1 -1
  450. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  451. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  452. package/dist/utilities/formatAbsoluteURL.js +18 -8
  453. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  454. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  455. package/dist/utilities/formatMetadata.js +0 -5
  456. package/dist/utilities/formatMetadata.js.map +1 -1
  457. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  458. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  459. package/dist/utilities/getFilesFromClipboard.js +49 -0
  460. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  461. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  462. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  463. package/dist/utilities/getHasScheduledPublish.js +2 -5
  464. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  465. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  466. package/dist/utilities/handleAuthRedirect.js +4 -1
  467. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  468. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  469. package/dist/utilities/handleServerFunctions.js +4 -2
  470. package/dist/utilities/handleServerFunctions.js.map +1 -1
  471. package/dist/utilities/initReq.d.ts.map +1 -1
  472. package/dist/utilities/initReq.js +40 -5
  473. package/dist/utilities/initReq.js.map +1 -1
  474. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  475. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  476. package/dist/utilities/isAbsoluteURL.js +15 -0
  477. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  478. package/dist/utilities/isHttpURL.d.ts +3 -0
  479. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  480. package/dist/utilities/isHttpURL.js +12 -0
  481. package/dist/utilities/isHttpURL.js.map +1 -0
  482. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  483. package/dist/utilities/isPathMatchingRoute.js +7 -5
  484. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  485. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  486. package/dist/utilities/isPublicAdminRoute.js +9 -6
  487. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  488. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  489. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  490. package/dist/utilities/schedulePublishHandler.js +72 -5
  491. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  492. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  493. package/dist/utilities/serverFunctionRegistry.js +2 -1
  494. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  495. package/dist/utilities/slugify.d.ts.map +1 -1
  496. package/dist/utilities/slugify.js +3 -0
  497. package/dist/utilities/slugify.js.map +1 -1
  498. package/dist/views/API/index.client.d.ts.map +1 -1
  499. package/dist/views/API/index.client.js +2 -3
  500. package/dist/views/API/index.client.js.map +1 -1
  501. package/dist/views/API/index.css +9 -0
  502. package/dist/views/Account/index.d.ts +1 -1
  503. package/dist/views/Account/index.d.ts.map +1 -1
  504. package/dist/views/Account/index.js +8 -5
  505. package/dist/views/Account/index.js.map +1 -1
  506. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  507. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  508. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  509. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  510. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  511. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  512. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  513. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  514. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  515. package/dist/views/Dashboard/Default/ModularDashboard/index.css +35 -140
  516. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  517. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  518. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  519. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  520. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  521. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  522. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  523. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -0
  524. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  525. package/dist/views/Dashboard/index.d.ts.map +1 -1
  526. package/dist/views/Dashboard/index.js +2 -3
  527. package/dist/views/Dashboard/index.js.map +1 -1
  528. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  529. package/dist/views/Document/handleServerFunction.js +2 -0
  530. package/dist/views/Document/handleServerFunction.js.map +1 -1
  531. package/dist/views/Document/index.d.ts +1 -1
  532. package/dist/views/Document/index.d.ts.map +1 -1
  533. package/dist/views/Document/index.js +10 -6
  534. package/dist/views/Document/index.js.map +1 -1
  535. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  536. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  537. package/dist/views/Document/renderDocumentSlots.js +7 -4
  538. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  539. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  540. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  541. package/dist/views/Edit/Auth/APIKey.js +233 -59
  542. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  543. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  544. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  545. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  546. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  547. package/dist/views/Edit/Auth/index.css +91 -0
  548. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  549. package/dist/views/Edit/Auth/index.js +10 -28
  550. package/dist/views/Edit/Auth/index.js.map +1 -1
  551. package/dist/views/Edit/Auth/types.d.ts +3 -1
  552. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  553. package/dist/views/Edit/Auth/types.js.map +1 -1
  554. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  555. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  556. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  557. package/dist/views/Edit/index.css +19 -0
  558. package/dist/views/Edit/index.d.ts.map +1 -1
  559. package/dist/views/Edit/index.js +16 -2
  560. package/dist/views/Edit/index.js.map +1 -1
  561. package/dist/views/Edit/useEditViewWidth.d.ts +8 -0
  562. package/dist/views/Edit/useEditViewWidth.d.ts.map +1 -0
  563. package/dist/views/Edit/useEditViewWidth.js +56 -0
  564. package/dist/views/Edit/useEditViewWidth.js.map +1 -0
  565. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  566. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  567. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  568. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  569. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  570. package/dist/views/ForgotPassword/index.js +2 -11
  571. package/dist/views/ForgotPassword/index.js.map +1 -1
  572. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  573. package/dist/views/HierarchyList/index.css +16 -0
  574. package/dist/views/List/ListHeader/index.css +6 -0
  575. package/dist/views/List/ListHeader/index.d.ts +1 -11
  576. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  577. package/dist/views/List/ListHeader/index.js +3 -9
  578. package/dist/views/List/ListHeader/index.js.map +1 -1
  579. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  580. package/dist/views/List/handleServerFunction.js +3 -1
  581. package/dist/views/List/handleServerFunction.js.map +1 -1
  582. package/dist/views/List/index.client.d.ts.map +1 -1
  583. package/dist/views/List/index.client.js +3 -16
  584. package/dist/views/List/index.client.js.map +1 -1
  585. package/dist/views/List/index.css +19 -0
  586. package/dist/views/List/index.d.ts.map +1 -1
  587. package/dist/views/List/index.js +2 -1
  588. package/dist/views/List/index.js.map +1 -1
  589. package/dist/views/NotFound/client.d.ts +2 -0
  590. package/dist/views/NotFound/client.d.ts.map +1 -0
  591. package/dist/views/NotFound/client.js +4 -0
  592. package/dist/views/NotFound/client.js.map +1 -0
  593. package/dist/views/NotFound/page.d.ts.map +1 -1
  594. package/dist/views/NotFound/page.js +4 -3
  595. package/dist/views/NotFound/page.js.map +1 -1
  596. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  597. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  598. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  599. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  600. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  601. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  602. package/dist/views/Root/index.d.ts.map +1 -1
  603. package/dist/views/Root/index.js +32 -22
  604. package/dist/views/Root/index.js.map +1 -1
  605. package/dist/views/Verify/index.d.ts +1 -1
  606. package/dist/views/Verify/index.d.ts.map +1 -1
  607. package/dist/views/Verify/index.js +4 -4
  608. package/dist/views/Verify/index.js.map +1 -1
  609. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  610. package/dist/views/Version/Default/SetStepNav.js +10 -13
  611. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  612. package/dist/views/Version/Default/index.css +29 -9
  613. package/dist/views/Version/Default/index.d.ts.map +1 -1
  614. package/dist/views/Version/Default/index.js +16 -13
  615. package/dist/views/Version/Default/index.js.map +1 -1
  616. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  617. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  618. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  619. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  620. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  621. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  622. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  623. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  624. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  625. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  626. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  627. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  628. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  629. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  630. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  631. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  632. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  633. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  634. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  635. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  636. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  637. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  638. package/dist/views/Version/Restore/index.js +9 -6
  639. package/dist/views/Version/Restore/index.js.map +1 -1
  640. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  641. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  642. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  643. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  644. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  645. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  646. package/dist/views/Versions/index.css +7 -0
  647. package/dist/widgets/CollectionCards/index.client.js +1 -1
  648. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  649. package/dist/widgets/CollectionCards/index.css +40 -35
  650. package/dist/widgets/CollectionCards/index.js +1 -1
  651. package/dist/widgets/CollectionCards/index.js.map +1 -1
  652. package/dist/widgets/RecentlyViewed/DocumentActivity/index.css +184 -0
  653. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts +5 -0
  654. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts.map +1 -0
  655. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js +225 -0
  656. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js.map +1 -0
  657. package/dist/widgets/RecentlyViewed/DocumentItem/index.css +180 -0
  658. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts +11 -0
  659. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts.map +1 -0
  660. package/dist/widgets/RecentlyViewed/DocumentItem/index.js +104 -0
  661. package/dist/widgets/RecentlyViewed/DocumentItem/index.js.map +1 -0
  662. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts +10 -0
  663. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts.map +1 -0
  664. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js +85 -0
  665. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js.map +1 -0
  666. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts +7 -0
  667. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts.map +1 -0
  668. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js +206 -0
  669. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js.map +1 -0
  670. package/dist/widgets/RecentlyViewed/index.d.ts +3 -5
  671. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  672. package/dist/widgets/RecentlyViewed/index.js +10 -140
  673. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  674. package/dist/widgets/RecentlyViewed/shared.d.ts +38 -0
  675. package/dist/widgets/RecentlyViewed/shared.d.ts.map +1 -0
  676. package/dist/widgets/RecentlyViewed/shared.js +70 -0
  677. package/dist/widgets/RecentlyViewed/shared.js.map +1 -0
  678. package/dist/widgets/UploadDropzone/index.client.d.ts +7 -0
  679. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -0
  680. package/dist/widgets/UploadDropzone/index.client.js +134 -0
  681. package/dist/widgets/UploadDropzone/index.client.js.map +1 -0
  682. package/dist/widgets/UploadDropzone/index.css +50 -0
  683. package/dist/widgets/UploadDropzone/index.d.ts +8 -0
  684. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -0
  685. package/dist/widgets/UploadDropzone/index.js +29 -0
  686. package/dist/widgets/UploadDropzone/index.js.map +1 -0
  687. package/dist/widgets/Welcome/index.css +13 -0
  688. package/dist/widgets/Welcome/index.d.ts +5 -0
  689. package/dist/widgets/Welcome/index.d.ts.map +1 -0
  690. package/dist/widgets/Welcome/index.js +26 -0
  691. package/dist/widgets/Welcome/index.js.map +1 -0
  692. package/dist/widgets/WidgetIcon/assets/images.svg +3 -0
  693. package/dist/widgets/WidgetIcon/assets/pin-solid.svg +3 -0
  694. package/dist/widgets/WidgetIcon/assets/pin.svg +3 -0
  695. package/dist/widgets/WidgetIcon/assets/table.svg +3 -0
  696. package/dist/widgets/WidgetIcon/index.css +23 -0
  697. package/dist/widgets/WidgetIcon/index.d.ts +6 -0
  698. package/dist/widgets/WidgetIcon/index.d.ts.map +1 -0
  699. package/dist/widgets/WidgetIcon/index.js +10 -0
  700. package/dist/widgets/WidgetIcon/index.js.map +1 -0
  701. package/package.json +11 -5
  702. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  703. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  704. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  705. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  706. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  707. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  708. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  709. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  710. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  711. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  712. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  713. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  714. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  715. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  716. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  717. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  718. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  719. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  720. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  721. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  722. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  723. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  724. package/dist/layouts/Root/index.spec.js +0 -20
  725. package/dist/layouts/Root/index.spec.js.map +0 -1
  726. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  727. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  728. package/dist/utilities/appendCacheTag.spec.js +0 -34
  729. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  730. package/dist/utilities/formatMetadata.spec.js +0 -83
  731. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  732. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  733. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  734. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  735. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  736. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  737. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  738. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  739. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  740. package/dist/utilities/recentlyViewed.spec.js +0 -92
  741. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  742. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  743. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  744. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  745. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  746. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  747. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  748. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  749. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  750. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  751. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","React","Fragment","useEffect","useRef","useState","Popup","PopupList","ChevronIcon","Dots","useListQuery","useTranslation","Button","ListColumnSelectionButton","ListGroupByButton","ListWhereBuilder","QueryPresetBar","ListSearchFilter","baseClass","ListControls","props","$","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","t0","enableFilters","t1","enableSort","t2","hasCreatePermission","isWhereOpen","isWhereOpenFromProps","listMenuItems","newDocumentURL","onWhereToggle","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","undefined","isControlled","handleSearchChange","hasActiveFilters","query","t","breakpoints","t3","s","smallBreak","searchLabelTranslated","label","split","hasWhereParam","Boolean","where","visibleDrawer","setVisibleDrawer","t4","current","t5","t6","t7","handleWhereToggle","_jsxs","className","children","_jsx","onSearchChange","searchQueryParam","search","enableQueryPresets","buttonStyle","extraButtonProps","icon","direction","size","onClick","selected","slug","fields","el","id","to","Array","isArray","length","button","ariaLabel","horizontalAlign","verticalAlign","ButtonGroup","map","_temp","collectionPluralLabel","labels","plural","onEmptyRemove","item","i"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { ListGroupByButton } from '../ListGroupByButton/index.js'\nimport { ListWhereBuilder } from '../ListWhereBuilder/index.js'\nimport { QueryPresetBar } from '../QueryPresets/QueryPresetBar/index.js'\nimport { ListSearchFilter } from '../Search/ListSearchFilter/index.js'\nimport './index.css'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableFilters = true,\n enableSort = false,\n hasCreatePermission,\n isWhereOpen: isWhereOpenFromProps,\n listMenuItems,\n newDocumentURL,\n onWhereToggle,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n } = props\n\n const isControlled = typeof onWhereToggle === 'function'\n\n const { handleSearchChange, hasActiveFilters, query } = useListQuery()\n\n const { t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n // Simplified placeholder - just \"Search\" instead of \"Search by X, Y, Z\"\n const searchLabelTranslated = t('general:searchBy', { label: '' }).split(' ')[0]\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n hasActiveFilters ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n const isWhereOpen = isControlled ? Boolean(isWhereOpenFromProps) : visibleDrawer === 'where'\n const handleWhereToggle = isControlled\n ? onWhereToggle\n : () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__search-row`}>\n <div className={`${baseClass}__left`}>\n <ListSearchFilter\n key={collectionSlug}\n label={searchLabelTranslated}\n onSearchChange={handleSearchChange}\n searchQueryParam={query?.search}\n />\n {collectionConfig?.enableQueryPresets && !disableQueryPresets && (\n <QueryPresetBar\n activePreset={activePreset}\n collectionSlug={collectionSlug}\n queryPresetPermissions={queryPresetPermissions}\n />\n )}\n </div>\n <div className={`${baseClass}__spacer`} />\n <div className={`${baseClass}__actions`}>\n {!smallBreak && beforeActions}\n {enableFilters && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-where`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-where`,\n 'aria-expanded': isWhereOpen,\n }}\n icon={<ChevronIcon direction={isWhereOpen ? 'up' : 'down'} size={16} />}\n id=\"toggle-list-filters\"\n onClick={handleWhereToggle}\n selected={isWhereOpen || hasActiveFilters}\n size=\"medium\"\n >\n {t('general:filters')}\n </Button>\n )}\n <ListGroupByButton\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig.fields}\n />\n {enableColumns && <ListColumnSelectionButton collectionSlug={collectionConfig.slug} />}\n {enableSort && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-sort`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-sort`,\n 'aria-expanded': visibleDrawer === 'sort',\n }}\n icon={<ChevronIcon size={16} />}\n id=\"toggle-list-sort\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n size=\"medium\"\n >\n {t('general:sort')}\n </Button>\n )}\n {hasCreatePermission && newDocumentURL && (\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-new`}\n el=\"link\"\n id=\"create-new-doc\"\n size=\"medium\"\n to={newDocumentURL}\n >\n {t('general:createNew')}\n </Button>\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n {!isControlled && isWhereOpen && (\n <div className={`${baseClass}__where`} id={`${baseClass}-where`}>\n <ListWhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n onEmptyRemove={() => setVisibleDrawer(undefined)}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","React","Fragment","useEffect","useRef","useState","Popup","PopupList","ChevronIcon","Dots","useListQuery","useTranslation","Button","ListColumnSelectionButton","ListGroupByButton","ListEmptyTrashButton","ListWhereBuilder","QueryPresetBar","ListSearchFilter","baseClass","ListControls","props","$","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","t0","enableFilters","t1","enableSort","t2","hasCreatePermission","hasDeletePermission","isWhereOpen","isWhereOpenFromProps","listMenuItems","newDocumentURL","onWhereToggle","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","viewType","undefined","isControlled","handleSearchChange","hasActiveFilters","query","t","breakpoints","t3","s","smallBreak","searchLabelTranslated","label","split","hasWhereParam","Boolean","where","visibleDrawer","setVisibleDrawer","t4","current","t5","t6","t7","handleWhereToggle","_jsxs","className","children","_jsx","onSearchChange","searchQueryParam","search","enableQueryPresets","buttonStyle","extraButtonProps","icon","direction","size","onClick","selected","slug","fields","el","id","to","trash","Array","isArray","length","button","ariaLabel","horizontalAlign","verticalAlign","ButtonGroup","map","_temp","collectionPluralLabel","labels","plural","onEmptyRemove","item","i"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { ListGroupByButton } from '../ListGroupByButton/index.js'\nimport { ListEmptyTrashButton } from '../ListHeader/TitleActions/index.js'\nimport { ListWhereBuilder } from '../ListWhereBuilder/index.js'\nimport { QueryPresetBar } from '../QueryPresets/QueryPresetBar/index.js'\nimport { ListSearchFilter } from '../Search/ListSearchFilter/index.js'\nimport './index.css'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableFilters = true,\n enableSort = false,\n hasCreatePermission,\n hasDeletePermission,\n isWhereOpen: isWhereOpenFromProps,\n listMenuItems,\n newDocumentURL,\n onWhereToggle,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n viewType,\n } = props\n\n const isControlled = typeof onWhereToggle === 'function'\n\n const { handleSearchChange, hasActiveFilters, query } = useListQuery()\n\n const { t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n // Simplified placeholder - just \"Search\" instead of \"Search by X, Y, Z\"\n const searchLabelTranslated = t('general:searchBy', { label: '' }).split(' ')[0]\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n hasActiveFilters ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n const isWhereOpen = isControlled ? Boolean(isWhereOpenFromProps) : visibleDrawer === 'where'\n const handleWhereToggle = isControlled\n ? onWhereToggle\n : () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__search-row`}>\n <div className={`${baseClass}__left`}>\n <ListSearchFilter\n key={collectionSlug}\n label={searchLabelTranslated}\n onSearchChange={handleSearchChange}\n searchQueryParam={query?.search}\n />\n {collectionConfig?.enableQueryPresets && !disableQueryPresets && (\n <QueryPresetBar\n activePreset={activePreset}\n collectionSlug={collectionSlug}\n queryPresetPermissions={queryPresetPermissions}\n />\n )}\n </div>\n <div className={`${baseClass}__spacer`} />\n <div className={`${baseClass}__actions`}>\n {!smallBreak && beforeActions}\n {enableFilters && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-where`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-where`,\n 'aria-expanded': isWhereOpen,\n }}\n icon={<ChevronIcon direction={isWhereOpen ? 'up' : 'down'} size={16} />}\n id=\"toggle-list-filters\"\n onClick={handleWhereToggle}\n selected={isWhereOpen || hasActiveFilters}\n size=\"medium\"\n >\n {t('general:filters')}\n </Button>\n )}\n <ListGroupByButton\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig.fields}\n />\n {enableColumns && <ListColumnSelectionButton collectionSlug={collectionConfig.slug} />}\n {enableSort && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-sort`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-sort`,\n 'aria-expanded': visibleDrawer === 'sort',\n }}\n icon={<ChevronIcon size={16} />}\n id=\"toggle-list-sort\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n size=\"medium\"\n >\n {t('general:sort')}\n </Button>\n )}\n {hasCreatePermission && newDocumentURL && (\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-new`}\n el=\"link\"\n id=\"create-new-doc\"\n size=\"medium\"\n to={newDocumentURL}\n >\n {t('general:createNew')}\n </Button>\n )}\n {hasDeletePermission && collectionConfig.trash && viewType === 'trash' && (\n <ListEmptyTrashButton\n collectionConfig={collectionConfig}\n hasDeletePermission={hasDeletePermission}\n />\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n {!isControlled && isWhereOpen && (\n <div className={`${baseClass}__where`} id={`${baseClass}-where`}>\n <ListWhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n onEmptyRemove={() => setVisibleDrawer(undefined)}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ClientCollectionConfig, QueryPreset, ResolvedFilterOptions, SanitizedCollectionPermission, Where } from 'payload';
1
+ import type { ClientCollectionConfig, QueryPreset, ResolvedFilterOptions, SanitizedCollectionPermission, ViewTypes, Where } from 'payload';
2
2
  export type ListControlsProps = {
3
3
  readonly beforeActions?: React.ReactNode[];
4
4
  readonly collectionConfig: ClientCollectionConfig;
@@ -21,6 +21,7 @@ export type ListControlsProps = {
21
21
  readonly handleSortChange?: (sort: string) => void;
22
22
  readonly handleWhereChange?: (where: Where) => void;
23
23
  readonly hasCreatePermission?: boolean;
24
+ readonly hasDeletePermission?: boolean;
24
25
  readonly isWhereOpen?: boolean;
25
26
  readonly listMenuItems?: React.ReactNode[];
26
27
  readonly newDocumentURL?: string;
@@ -29,5 +30,6 @@ export type ListControlsProps = {
29
30
  readonly queryPresetPermissions?: SanitizedCollectionPermission;
30
31
  readonly renderedFilters?: Map<string, React.ReactNode>;
31
32
  readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>;
33
+ readonly viewType?: ViewTypes;
32
34
  };
33
35
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAA;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CACpE,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,SAAS,EACT,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAA;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAC9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListControls/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n QueryPreset,\n ResolvedFilterOptions,\n SanitizedCollectionPermission,\n Where,\n} from 'payload'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkDelete?: boolean\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkEdit?: boolean\n readonly disableQueryPresets?: boolean\n readonly enableColumns?: boolean\n readonly enableFilters?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly hasCreatePermission?: boolean\n readonly isWhereOpen?: boolean\n readonly listMenuItems?: React.ReactNode[]\n readonly newDocumentURL?: string\n readonly onWhereToggle?: () => void\n readonly queryPreset?: QueryPreset\n readonly queryPresetPermissions?: SanitizedCollectionPermission\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n}\n"],"mappings":"AAQA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListControls/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n QueryPreset,\n ResolvedFilterOptions,\n SanitizedCollectionPermission,\n ViewTypes,\n Where,\n} from 'payload'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkDelete?: boolean\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkEdit?: boolean\n readonly disableQueryPresets?: boolean\n readonly enableColumns?: boolean\n readonly enableFilters?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly hasCreatePermission?: boolean\n readonly hasDeletePermission?: boolean\n readonly isWhereOpen?: boolean\n readonly listMenuItems?: React.ReactNode[]\n readonly newDocumentURL?: string\n readonly onWhereToggle?: () => void\n readonly queryPreset?: QueryPreset\n readonly queryPresetPermissions?: SanitizedCollectionPermission\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n readonly viewType?: ViewTypes\n}\n"],"mappings":"AASA","ignoreList":[]}
@@ -1,18 +1,23 @@
1
1
  @layer payload-default {
2
2
  .list-controls-bar {
3
+ padding-block: var(--spacer-2-5);
4
+ }
5
+
6
+ .list-controls-bar__inner {
3
7
  display: flex;
4
8
  align-items: center;
5
9
  gap: var(--spacer-2);
6
- padding: var(--spacer-2-5) var(--gutter-h);
10
+ padding-inline: var(--gutter-h);
7
11
  }
8
12
 
9
13
  .list-controls-bar--border {
10
14
  border-bottom: var(--stroke-width-small) solid var(--color-border);
11
15
  }
12
16
 
17
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
13
18
  @media (max-width: 768px) {
14
- .list-controls-bar {
15
- padding: var(--spacer-2-5) var(--spacer-3);
19
+ .list-controls-bar__inner {
20
+ padding-inline: var(--spacer-3);
16
21
  flex-wrap: wrap;
17
22
  row-gap: var(--spacer-2);
18
23
  }
@@ -15,7 +15,10 @@ export const ListControlsBar = ({
15
15
  }) => {
16
16
  return /*#__PURE__*/_jsx("div", {
17
17
  className: [baseClass, showBorder && `${baseClass}--border`, className].filter(Boolean).join(' '),
18
- children: children
18
+ children: /*#__PURE__*/_jsx("div", {
19
+ className: `${baseClass}__inner`,
20
+ children: children
21
+ })
19
22
  });
20
23
  };
21
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","baseClass","ListControlsBar","children","className","showBorder","_jsx","filter","Boolean","join"],"sources":["../../../src/elements/ListControlsBar/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport './index.css'\n\nconst baseClass = 'list-controls-bar'\n\nexport type ListControlsBarProps = {\n readonly children: React.ReactNode\n readonly className?: string\n /**\n * Whether to show a bottom border. Defaults to true.\n */\n readonly showBorder?: boolean\n}\n\n/**\n * A simple container for list controls (search, filters, actions).\n * Provides consistent padding and layout across list views.\n */\nexport const ListControlsBar: React.FC<ListControlsBarProps> = ({\n children,\n className,\n showBorder = true,\n}) => {\n return (\n <div\n className={[baseClass, showBorder && `${baseClass}--border`, className]\n .filter(Boolean)\n .join(' ')}\n >\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAWlB;;;;AAIA,OAAO,MAAMC,eAAA,GAAkDA,CAAC;EAC9DC,QAAQ;EACRC,SAAS;EACTC,UAAA,GAAa;AAAI,CAClB;EACC,oBACEC,IAAA,CAAC;IACCF,SAAA,EAAW,CAACH,SAAA,EAAWI,UAAA,IAAc,GAAGJ,SAAA,UAAmB,EAAEG,SAAA,CAAU,CACpEG,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cAEPN;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","baseClass","ListControlsBar","children","className","showBorder","_jsx","filter","Boolean","join"],"sources":["../../../src/elements/ListControlsBar/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport './index.css'\n\nconst baseClass = 'list-controls-bar'\n\nexport type ListControlsBarProps = {\n readonly children: React.ReactNode\n readonly className?: string\n /**\n * Whether to show a bottom border. Defaults to true.\n */\n readonly showBorder?: boolean\n}\n\n/**\n * A simple container for list controls (search, filters, actions).\n * Provides consistent padding and layout across list views.\n */\nexport const ListControlsBar: React.FC<ListControlsBarProps> = ({\n children,\n className,\n showBorder = true,\n}) => {\n return (\n <div\n className={[baseClass, showBorder && `${baseClass}--border`, className]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__inner`}>{children}</div>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAWlB;;;;AAIA,OAAO,MAAMC,eAAA,GAAkDA,CAAC;EAC9DC,QAAQ;EACRC,SAAS;EACTC,UAAA,GAAa;AAAI,CAClB;EACC,oBACEC,IAAA,CAAC;IACCF,SAAA,EAAW,CAACH,SAAA,EAAWI,UAAA,IAAc,GAAGJ,SAAA,UAAmB,EAAEG,SAAA,CAAU,CACpEG,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;cAER,aAAAH,IAAA,CAAC;MAAIF,SAAA,EAAW,GAAGH,SAAA,SAAkB;gBAAGE;;;AAG9C","ignoreList":[]}
@@ -1,15 +1,9 @@
1
1
  import type { CollectionSlug } from 'payload';
2
2
  import React from 'react';
3
- export declare function ListBulkUploadButton({ collectionSlug, hasCreatePermission, isBulkUploadEnabled, onBulkUploadSuccess, openBulkUpload: openBulkUploadFromProps, }: {
3
+ export declare function ListBulkUploadButton({ collectionSlug, hasCreatePermission, isBulkUploadEnabled, onBulkUploadSuccess, }: {
4
4
  collectionSlug: CollectionSlug;
5
5
  hasCreatePermission: boolean;
6
6
  isBulkUploadEnabled: boolean;
7
7
  onBulkUploadSuccess?: () => void;
8
- /**
9
- * @deprecated This prop will be removed in the next major version.
10
- *
11
- * Prefer using `onBulkUploadSuccess`
12
- */
13
- openBulkUpload?: () => void;
14
8
  }): React.JSX.Element;
15
9
  //# sourceMappingURL=ListBulkUploadButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListBulkUploadButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EAAE,uBAAuB,GACxC,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;CAC5B,qBAuDA"}
1
+ {"version":3,"file":"ListBulkUploadButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,wBAAgB,oBAAoB,CAAC,EACnC,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GACpB,EAAE;IACD,cAAc,EAAE,cAAc,CAAA;IAC9B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;CACjC,qBAkDA"}
@@ -10,13 +10,12 @@ import { useRouter } from '../../../providers/RouterAdapter/index.js';
10
10
  import { useTranslation } from '../../../providers/Translation/index.js';
11
11
  import { Button } from '../../Button/index.js';
12
12
  export function ListBulkUploadButton(t0) {
13
- const $ = _c(14);
13
+ const $ = _c(13);
14
14
  const {
15
15
  collectionSlug,
16
16
  hasCreatePermission,
17
17
  isBulkUploadEnabled,
18
- onBulkUploadSuccess,
19
- openBulkUpload: openBulkUploadFromProps
18
+ onBulkUploadSuccess
20
19
  } = t0;
21
20
  const {
22
21
  modalSlug: bulkUploadModalSlug,
@@ -35,43 +34,38 @@ export function ListBulkUploadButton(t0) {
35
34
  } = useModal();
36
35
  const router = useRouter();
37
36
  let t1;
38
- if ($[0] !== bulkUploadModalSlug || $[1] !== collectionSlug || $[2] !== onBulkUploadSuccess || $[3] !== openBulkUploadFromProps || $[4] !== openModal || $[5] !== parent?.id || $[6] !== router || $[7] !== setCollectionSlug || $[8] !== setOnSuccess || $[9] !== setParentID) {
37
+ if ($[0] !== bulkUploadModalSlug || $[1] !== collectionSlug || $[2] !== onBulkUploadSuccess || $[3] !== openModal || $[4] !== parent?.id || $[5] !== router || $[6] !== setCollectionSlug || $[7] !== setOnSuccess || $[8] !== setParentID) {
39
38
  t1 = () => {
40
- if (typeof openBulkUploadFromProps === "function") {
41
- openBulkUploadFromProps();
42
- } else {
43
- setCollectionSlug(collectionSlug);
44
- setParentID(parent?.id);
45
- openModal(bulkUploadModalSlug);
46
- setOnSuccess(() => {
47
- if (typeof onBulkUploadSuccess === "function") {
48
- onBulkUploadSuccess();
49
- } else {
50
- router.refresh();
51
- }
52
- });
53
- }
39
+ setCollectionSlug(collectionSlug);
40
+ setParentID(parent?.id);
41
+ openModal(bulkUploadModalSlug);
42
+ setOnSuccess(() => {
43
+ if (typeof onBulkUploadSuccess === "function") {
44
+ onBulkUploadSuccess();
45
+ } else {
46
+ router.refresh();
47
+ }
48
+ });
54
49
  };
55
50
  $[0] = bulkUploadModalSlug;
56
51
  $[1] = collectionSlug;
57
52
  $[2] = onBulkUploadSuccess;
58
- $[3] = openBulkUploadFromProps;
59
- $[4] = openModal;
60
- $[5] = parent?.id;
61
- $[6] = router;
62
- $[7] = setCollectionSlug;
63
- $[8] = setOnSuccess;
64
- $[9] = setParentID;
65
- $[10] = t1;
53
+ $[3] = openModal;
54
+ $[4] = parent?.id;
55
+ $[5] = router;
56
+ $[6] = setCollectionSlug;
57
+ $[7] = setOnSuccess;
58
+ $[8] = setParentID;
59
+ $[9] = t1;
66
60
  } else {
67
- t1 = $[10];
61
+ t1 = $[9];
68
62
  }
69
63
  const openBulkUpload = t1;
70
64
  if (!hasCreatePermission || !isBulkUploadEnabled) {
71
65
  return null;
72
66
  }
73
67
  let t2;
74
- if ($[11] !== openBulkUpload || $[12] !== t) {
68
+ if ($[10] !== openBulkUpload || $[11] !== t) {
75
69
  t2 = _jsx(Button, {
76
70
  "aria-label": t("upload:bulkUpload"),
77
71
  buttonStyle: "pill",
@@ -79,11 +73,11 @@ export function ListBulkUploadButton(t0) {
79
73
  size: "medium",
80
74
  children: t("upload:bulkUpload")
81
75
  }, "bulk-upload-button");
82
- $[11] = openBulkUpload;
83
- $[12] = t;
84
- $[13] = t2;
76
+ $[10] = openBulkUpload;
77
+ $[11] = t;
78
+ $[12] = t2;
85
79
  } else {
86
- t2 = $[13];
80
+ t2 = $[12];
87
81
  }
88
82
  return t2;
89
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ListBulkUploadButton.js","names":["c","_c","useModal","React","useBulkUpload","useHierarchy","useRouter","useTranslation","Button","ListBulkUploadButton","t0","$","collectionSlug","hasCreatePermission","isBulkUploadEnabled","onBulkUploadSuccess","openBulkUpload","openBulkUploadFromProps","modalSlug","bulkUploadModalSlug","setCollectionSlug","setOnSuccess","setParentID","parent","t","openModal","router","t1","id","refresh","t2","_jsx","buttonStyle","onClick","size","children"],"sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { useBulkUpload } from '../../../elements/BulkUpload/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter } from '../../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\n\nexport function ListBulkUploadButton({\n collectionSlug,\n hasCreatePermission,\n isBulkUploadEnabled,\n onBulkUploadSuccess,\n openBulkUpload: openBulkUploadFromProps,\n}: {\n collectionSlug: CollectionSlug\n hasCreatePermission: boolean\n isBulkUploadEnabled: boolean\n onBulkUploadSuccess?: () => void\n /**\n * @deprecated This prop will be removed in the next major version.\n *\n * Prefer using `onBulkUploadSuccess`\n */\n openBulkUpload?: () => void\n}) {\n const {\n modalSlug: bulkUploadModalSlug,\n setCollectionSlug,\n setOnSuccess,\n setParentID,\n } = useBulkUpload()\n const { parent } = useHierarchy()\n const { t } = useTranslation()\n const { openModal } = useModal()\n const router = useRouter()\n\n const openBulkUpload = React.useCallback(() => {\n if (typeof openBulkUploadFromProps === 'function') {\n openBulkUploadFromProps()\n } else {\n setCollectionSlug(collectionSlug)\n setParentID(parent?.id)\n openModal(bulkUploadModalSlug)\n setOnSuccess(() => {\n if (typeof onBulkUploadSuccess === 'function') {\n onBulkUploadSuccess()\n } else {\n router.refresh()\n }\n })\n }\n }, [\n router,\n collectionSlug,\n bulkUploadModalSlug,\n parent,\n openModal,\n setCollectionSlug,\n setParentID,\n setOnSuccess,\n onBulkUploadSuccess,\n openBulkUploadFromProps,\n ])\n\n if (!hasCreatePermission || !isBulkUploadEnabled) {\n return null\n }\n\n return (\n <Button\n aria-label={t('upload:bulkUpload')}\n buttonStyle=\"pill\"\n key=\"bulk-upload-button\"\n onClick={openBulkUpload}\n size=\"medium\"\n >\n {t('upload:bulkUpload')}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AAEvB,OAAO,SAAAC,qBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAA8B;IAAAW,cAAA;IAAAC,mBAAA;IAAAC,mBAAA;IAAAC,mBAAA;IAAAC,cAAA,EAAAC;EAAA,IAAAP,EAiBpC;EACC;IAAAQ,SAAA,EAAAC,mBAAA;IAAAC,iBAAA;IAAAC,YAAA;IAAAC;EAAA,IAKIlB,aAAA;EACJ;IAAAmB;EAAA,IAAmBlB,YAAA;EACnB;IAAAmB;EAAA,IAAcjB,cAAA;EACd;IAAAkB;EAAA,IAAsBvB,QAAA;EACtB,MAAAwB,MAAA,GAAepB,SAAA;EAAA,IAAAqB,EAAA;EAAA,IAAAhB,CAAA,QAAAQ,mBAAA,IAAAR,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAI,mBAAA,IAAAJ,CAAA,QAAAM,uBAAA,IAAAN,CAAA,QAAAc,SAAA,IAAAd,CAAA,QAAAY,MAAA,EAAAK,EAAA,IAAAjB,CAAA,QAAAe,MAAA,IAAAf,CAAA,QAAAS,iBAAA,IAAAT,CAAA,QAAAU,YAAA,IAAAV,CAAA,QAAAW,WAAA;IAE0BK,EAAA,GAAAA,CAAA;MAAA,IACnC,OAAOV,uBAAA,KAA4B;QACrCA,uBAAA;MAAA;QAEAG,iBAAA,CAAkBR,cAAA;QAClBU,WAAA,CAAYC,MAAA,EAAAK,EAAQ;QACpBH,SAAA,CAAUN,mBAAA;QACVE,YAAA;UAAA,IACM,OAAON,mBAAA,KAAwB;YACjCA,mBAAA;UAAA;YAEAW,MAAA,CAAAG,OAAA,CAAc;UAAA;QAAA,CAElB;MAAA;IAAA;IAEJlB,CAAA,MAAAQ,mBAAA;IAAAR,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAI,mBAAA;IAAAJ,CAAA,MAAAM,uBAAA;IAAAN,CAAA,MAAAc,SAAA;IAAAd,CAAA,MAAAY,MAAA,EAAAK,EAAA;IAAAjB,CAAA,MAAAe,MAAA;IAAAf,CAAA,MAAAS,iBAAA;IAAAT,CAAA,MAAAU,YAAA;IAAAV,CAAA,MAAAW,WAAA;IAAAX,CAAA,OAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAfA,MAAAK,cAAA,GAAuBW,EA0BtB;EAAA,IAEG,CAACd,mBAAA,KAAwBC,mBAAA;IAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAnB,CAAA,SAAAK,cAAA,IAAAL,CAAA,SAAAa,CAAA;IAK3BM,EAAA,GAAAC,IAAA,CAAAvB,MAAA;MAAA,cACcgB,CAAA,CAAE;MAAAQ,WAAA,EACF;MAAAC,OAAA,EAEHjB,cAAA;MAAAkB,IAAA,EACJ;MAAAC,QAAA,EAEJX,CAAA,CAAE;IAAA,GAJC;IAAAb,CAAA,OAAAK,cAAA;IAAAL,CAAA,OAAAa,CAAA;IAAAb,CAAA,OAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAAA,OAHNmB,EAGM;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"ListBulkUploadButton.js","names":["c","_c","useModal","React","useBulkUpload","useHierarchy","useRouter","useTranslation","Button","ListBulkUploadButton","t0","$","collectionSlug","hasCreatePermission","isBulkUploadEnabled","onBulkUploadSuccess","modalSlug","bulkUploadModalSlug","setCollectionSlug","setOnSuccess","setParentID","parent","t","openModal","router","t1","id","refresh","openBulkUpload","t2","_jsx","buttonStyle","onClick","size","children"],"sources":["../../../../src/elements/ListHeader/TitleActions/ListBulkUploadButton.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { useBulkUpload } from '../../../elements/BulkUpload/index.js'\nimport { useHierarchy } from '../../../providers/Hierarchy/index.js'\nimport { useRouter } from '../../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\n\nexport function ListBulkUploadButton({\n collectionSlug,\n hasCreatePermission,\n isBulkUploadEnabled,\n onBulkUploadSuccess,\n}: {\n collectionSlug: CollectionSlug\n hasCreatePermission: boolean\n isBulkUploadEnabled: boolean\n onBulkUploadSuccess?: () => void\n}) {\n const {\n modalSlug: bulkUploadModalSlug,\n setCollectionSlug,\n setOnSuccess,\n setParentID,\n } = useBulkUpload()\n const { parent } = useHierarchy()\n const { t } = useTranslation()\n const { openModal } = useModal()\n const router = useRouter()\n\n const openBulkUpload = React.useCallback(() => {\n setCollectionSlug(collectionSlug)\n setParentID(parent?.id)\n openModal(bulkUploadModalSlug)\n setOnSuccess(() => {\n if (typeof onBulkUploadSuccess === 'function') {\n onBulkUploadSuccess()\n } else {\n router.refresh()\n }\n })\n }, [\n router,\n collectionSlug,\n bulkUploadModalSlug,\n parent,\n openModal,\n setCollectionSlug,\n setParentID,\n setOnSuccess,\n onBulkUploadSuccess,\n ])\n\n if (!hasCreatePermission || !isBulkUploadEnabled) {\n return null\n }\n\n return (\n <Button\n aria-label={t('upload:bulkUpload')}\n buttonStyle=\"pill\"\n key=\"bulk-upload-button\"\n onClick={openBulkUpload}\n size=\"medium\"\n >\n {t('upload:bulkUpload')}\n </Button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,MAAW;AAElB,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AAEvB,OAAO,SAAAC,qBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAA8B;IAAAW,cAAA;IAAAC,mBAAA;IAAAC,mBAAA;IAAAC;EAAA,IAAAL,EAUpC;EACC;IAAAM,SAAA,EAAAC,mBAAA;IAAAC,iBAAA;IAAAC,YAAA;IAAAC;EAAA,IAKIhB,aAAA;EACJ;IAAAiB;EAAA,IAAmBhB,YAAA;EACnB;IAAAiB;EAAA,IAAcf,cAAA;EACd;IAAAgB;EAAA,IAAsBrB,QAAA;EACtB,MAAAsB,MAAA,GAAelB,SAAA;EAAA,IAAAmB,EAAA;EAAA,IAAAd,CAAA,QAAAM,mBAAA,IAAAN,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAI,mBAAA,IAAAJ,CAAA,QAAAY,SAAA,IAAAZ,CAAA,QAAAU,MAAA,EAAAK,EAAA,IAAAf,CAAA,QAAAa,MAAA,IAAAb,CAAA,QAAAO,iBAAA,IAAAP,CAAA,QAAAQ,YAAA,IAAAR,CAAA,QAAAS,WAAA;IAE0BK,EAAA,GAAAA,CAAA;MACvCP,iBAAA,CAAkBN,cAAA;MAClBQ,WAAA,CAAYC,MAAA,EAAAK,EAAQ;MACpBH,SAAA,CAAUN,mBAAA;MACVE,YAAA;QAAA,IACM,OAAOJ,mBAAA,KAAwB;UACjCA,mBAAA;QAAA;UAEAS,MAAA,CAAAG,OAAA,CAAc;QAAA;MAAA,CAElB;IAAA;IACFhB,CAAA,MAAAM,mBAAA;IAAAN,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAI,mBAAA;IAAAJ,CAAA,MAAAY,SAAA;IAAAZ,CAAA,MAAAU,MAAA,EAAAK,EAAA;IAAAf,CAAA,MAAAa,MAAA;IAAAb,CAAA,MAAAO,iBAAA;IAAAP,CAAA,MAAAQ,YAAA;IAAAR,CAAA,MAAAS,WAAA;IAAAT,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAXA,MAAAiB,cAAA,GAAuBH,EAqBtB;EAAA,IAEG,CAACZ,mBAAA,KAAwBC,mBAAA;IAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAlB,CAAA,SAAAiB,cAAA,IAAAjB,CAAA,SAAAW,CAAA;IAK3BO,EAAA,GAAAC,IAAA,CAAAtB,MAAA;MAAA,cACcc,CAAA,CAAE;MAAAS,WAAA,EACF;MAAAC,OAAA,EAEHJ,cAAA;MAAAK,IAAA,EACJ;MAAAC,QAAA,EAEJZ,CAAA,CAAE;IAAA,GAJC;IAAAX,CAAA,OAAAiB,cAAA;IAAAjB,CAAA,OAAAW,CAAA;IAAAX,CAAA,OAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAAA,OAHNkB,EAGM;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ListEmptyTrashButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListEmptyTrashButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,wBAAgB,oBAAoB,CAAC,EACnC,gBAAgB,EAChB,mBAAmB,GACpB,EAAE;IACD,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,mBAAmB,EAAE,OAAO,CAAA;CAC7B,qBA+KA"}
1
+ {"version":3,"file":"ListEmptyTrashButton.d.ts","sourceRoot":"","sources":["../../../../src/elements/ListHeader/TitleActions/ListEmptyTrashButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,OAAO,KAAK,MAAM,OAAO,CAAA;AAezB,wBAAgB,oBAAoB,CAAC,EACnC,gBAAgB,EAChB,mBAAmB,GACpB,EAAE;IACD,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,mBAAmB,EAAE,OAAO,CAAA;CAC7B,qBAgLA"}
@@ -25,9 +25,8 @@ export function ListEmptyTrashButton({
25
25
  i18n,
26
26
  t
27
27
  } = useTranslation();
28
- const {
29
- code: locale
30
- } = useLocale();
28
+ const currentLocale = useLocale();
29
+ const locale = currentLocale?.code;
31
30
  const {
32
31
  config
33
32
  } = useConfig();
@@ -132,7 +131,7 @@ export function ListEmptyTrashButton({
132
131
  "aria-label": t('general:emptyTrashLabel', {
133
132
  label: getTranslation(collectionConfig?.labels?.plural, i18n)
134
133
  }),
135
- buttonStyle: "pill",
134
+ buttonStyle: "secondary",
136
135
  disabled: trashCount === 0,
137
136
  id: "empty-trash-button",
138
137
  onClick: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ListEmptyTrashButton.js","names":["useModal","getTranslation","formatAdminURL","qs","React","toast","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","useTranslation","requests","Button","ConfirmationModal","Translation","confirmEmptyTrashSlug","ListEmptyTrashButton","collectionConfig","hasDeletePermission","i18n","t","code","locale","config","openModal","router","searchParams","clearRouteCache","trashCount","setTrashCount","useState","useEffect","fetchTrashCount","queryString","stringify","depth","limit","trash","where","deletedAt","exists","addQueryPrefix","res","get","apiRoute","routes","api","path","slug","headers","language","json","totalDocs","handleEmptyTrash","useCallback","labels","delete","deletedCount","docs","length","status","success","count","label","plural","errors","error","message","description","map","err","join","replace","Object","fromEntries","entries","page","_jsxs","Fragment","_jsx","buttonStyle","disabled","id","onClick","size","body","elements","0","children","1","i18nKey","variables","singular","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/elements/ListHeader/TitleActions/ListEmptyTrashButton.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } 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 from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Button } from '../../Button/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { Translation } from '../../Translation/index.js'\n\nconst confirmEmptyTrashSlug = 'confirm-empty-trash'\n\nexport function ListEmptyTrashButton({\n collectionConfig,\n hasDeletePermission,\n}: {\n collectionConfig: ClientCollectionConfig\n hasDeletePermission: boolean\n}) {\n const { i18n, t } = useTranslation()\n const { code: locale } = useLocale()\n const { config } = useConfig()\n const { openModal } = useModal()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const [trashCount, setTrashCount] = React.useState<null | number>(null)\n\n React.useEffect(() => {\n const fetchTrashCount = async () => {\n const queryString = qs.stringify(\n {\n depth: 0,\n limit: 0,\n locale,\n trash: true,\n where: {\n deletedAt: {\n exists: true,\n },\n },\n },\n { addQueryPrefix: true },\n )\n\n try {\n const res = await requests.get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collectionConfig.slug}${queryString}`,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n const json = await res.json()\n setTrashCount(json?.totalDocs ?? 0)\n } catch {\n setTrashCount(0)\n }\n }\n\n void fetchTrashCount()\n }, [collectionConfig.slug, config, i18n.language, locale])\n\n const handleEmptyTrash = React.useCallback(async () => {\n if (!hasDeletePermission) {\n return\n }\n\n const { slug, labels } = collectionConfig\n\n const queryString = qs.stringify(\n {\n limit: 0,\n locale,\n trash: true,\n where: {\n deletedAt: {\n exists: true,\n },\n },\n },\n { addQueryPrefix: true },\n )\n\n const res = await requests.delete(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${slug}${queryString}`,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n try {\n const json = await res.json()\n const deletedCount = json?.docs?.length || 0\n\n if (res.status < 400) {\n toast.success(\n t('general:permanentlyDeletedCountSuccessfully', {\n count: deletedCount,\n label: getTranslation(labels?.plural, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((err) => err.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...Object.fromEntries(searchParams.entries()),\n page: '1',\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n } catch {\n toast.error(t('error:unknown'))\n }\n }, [\n collectionConfig,\n config,\n hasDeletePermission,\n i18n,\n t,\n locale,\n searchParams,\n router,\n clearRouteCache,\n ])\n\n return (\n <React.Fragment>\n <Button\n aria-label={t('general:emptyTrashLabel', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n buttonStyle=\"pill\"\n disabled={trashCount === 0}\n id=\"empty-trash-button\"\n key=\"empty-trash-button\"\n onClick={() => {\n openModal(confirmEmptyTrashSlug)\n }}\n size=\"medium\"\n >\n {t('general:emptyTrash')}\n </Button>\n <ConfirmationModal\n body={\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: trashCount ?? 0,\n label: getTranslation(\n trashCount === 1\n ? collectionConfig.labels?.singular\n : collectionConfig.labels?.plural,\n i18n,\n ),\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmEmptyTrashSlug}\n onConfirm={handleEmptyTrash}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ListEmptyTrashButton.js","names":["useModal","getTranslation","formatAdminURL","qs","React","toast","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","useTranslation","requests","Button","ConfirmationModal","Translation","confirmEmptyTrashSlug","ListEmptyTrashButton","collectionConfig","hasDeletePermission","i18n","t","currentLocale","locale","code","config","openModal","router","searchParams","clearRouteCache","trashCount","setTrashCount","useState","useEffect","fetchTrashCount","queryString","stringify","depth","limit","trash","where","deletedAt","exists","addQueryPrefix","res","get","apiRoute","routes","api","path","slug","headers","language","json","totalDocs","handleEmptyTrash","useCallback","labels","delete","deletedCount","docs","length","status","success","count","label","plural","errors","error","message","description","map","err","join","replace","Object","fromEntries","entries","page","_jsxs","Fragment","_jsx","buttonStyle","disabled","id","onClick","size","body","elements","0","children","1","i18nKey","variables","singular","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../../src/elements/ListHeader/TitleActions/ListEmptyTrashButton.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } 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 from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useRouteCache } from '../../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Button } from '../../Button/index.js'\nimport { ConfirmationModal } from '../../ConfirmationModal/index.js'\nimport { Translation } from '../../Translation/index.js'\n\nconst confirmEmptyTrashSlug = 'confirm-empty-trash'\n\nexport function ListEmptyTrashButton({\n collectionConfig,\n hasDeletePermission,\n}: {\n collectionConfig: ClientCollectionConfig\n hasDeletePermission: boolean\n}) {\n const { i18n, t } = useTranslation()\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const { config } = useConfig()\n const { openModal } = useModal()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const [trashCount, setTrashCount] = React.useState<null | number>(null)\n\n React.useEffect(() => {\n const fetchTrashCount = async () => {\n const queryString = qs.stringify(\n {\n depth: 0,\n limit: 0,\n locale,\n trash: true,\n where: {\n deletedAt: {\n exists: true,\n },\n },\n },\n { addQueryPrefix: true },\n )\n\n try {\n const res = await requests.get(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${collectionConfig.slug}${queryString}`,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n const json = await res.json()\n setTrashCount(json?.totalDocs ?? 0)\n } catch {\n setTrashCount(0)\n }\n }\n\n void fetchTrashCount()\n }, [collectionConfig.slug, config, i18n.language, locale])\n\n const handleEmptyTrash = React.useCallback(async () => {\n if (!hasDeletePermission) {\n return\n }\n\n const { slug, labels } = collectionConfig\n\n const queryString = qs.stringify(\n {\n limit: 0,\n locale,\n trash: true,\n where: {\n deletedAt: {\n exists: true,\n },\n },\n },\n { addQueryPrefix: true },\n )\n\n const res = await requests.delete(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${slug}${queryString}`,\n }),\n {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n\n try {\n const json = await res.json()\n const deletedCount = json?.docs?.length || 0\n\n if (res.status < 400) {\n toast.success(\n t('general:permanentlyDeletedCountSuccessfully', {\n count: deletedCount,\n label: getTranslation(labels?.plural, i18n),\n }),\n )\n }\n\n if (json?.errors?.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((err) => err.message).join('\\n'),\n })\n }\n\n router.replace(\n qs.stringify(\n {\n ...Object.fromEntries(searchParams.entries()),\n page: '1',\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n } catch {\n toast.error(t('error:unknown'))\n }\n }, [\n collectionConfig,\n config,\n hasDeletePermission,\n i18n,\n t,\n locale,\n searchParams,\n router,\n clearRouteCache,\n ])\n\n return (\n <React.Fragment>\n <Button\n aria-label={t('general:emptyTrashLabel', {\n label: getTranslation(collectionConfig?.labels?.plural, i18n),\n })}\n buttonStyle=\"secondary\"\n disabled={trashCount === 0}\n id=\"empty-trash-button\"\n key=\"empty-trash-button\"\n onClick={() => {\n openModal(confirmEmptyTrashSlug)\n }}\n size=\"medium\"\n >\n {t('general:emptyTrash')}\n </Button>\n <ConfirmationModal\n body={\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: trashCount ?? 0,\n label: getTranslation(\n trashCount === 1\n ? collectionConfig.labels?.singular\n : collectionConfig.labels?.plural,\n i18n,\n ),\n }}\n />\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmEmptyTrashSlug}\n onConfirm={handleEmptyTrash}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,10 +3,15 @@
3
3
  display: flex;
4
4
  align-items: flex-end;
5
5
  flex-wrap: wrap;
6
- padding: var(--spacer-2-5) var(--gutter-h);
6
+ padding-block: var(--spacer-2-5);
7
7
  border-bottom: var(--stroke-width-small) solid var(--color-border);
8
8
  }
9
9
 
10
+ .list-header__content,
11
+ .list-header__after-header-content {
12
+ padding-inline: var(--gutter-h);
13
+ }
14
+
10
15
  .list-header__content {
11
16
  display: grid;
12
17
  grid-template-columns: 1fr auto;
@@ -48,6 +48,7 @@
48
48
  padding: var(--spacer-3);
49
49
  }
50
50
 
51
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
51
52
  @media (max-width: 1024px) {
52
53
  .live-preview-window {
53
54
  width: 100%;
@@ -67,7 +67,7 @@ export const LivePreviewWindow = props => {
67
67
  data: values,
68
68
  externallyUpdatedRelationship: mostRecentUpdate,
69
69
  globalSlug,
70
- locale: locale.code
70
+ locale: locale?.code
71
71
  });
72
72
  }, [formState, collectionSlug, globalSlug, id, appIsReady, mostRecentUpdate, locale, hasActiveTarget, loadedURL, lastReadyAt, postMessageToTargets]);
73
73
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["reduceFieldsToValues","React","useCallback","useEffect","useAllFormFields","useDocumentEvents","useDocumentInfo","useLivePreviewContext","useLocale","IframeLoader","DeviceContainer","LivePreviewToolbar","baseClass","LivePreviewWindow","props","appIsReady","breakpoint","iframeRef","isExpanded","isLivePreviewing","lastReadyAt","loadedURL","popupRef","setLoadedURL","shouldRenderIframe","url","zoom","locale","mostRecentUpdate","formState","id","collectionSlug","globalSlug","postMessageToTargets","message","current","closed","postMessage","contentWindow","hasActiveTarget","values","type","data","externallyUpdatedRelationship","code","_jsx","className","filter","Boolean","join","_jsxs","onLoad","ref","src","style","transform","undefined"],"sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useAllFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useLivePreviewContext } from '../../../providers/LivePreview/context.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { IframeLoader } from '../../IframeLoader/index.js'\nimport { DeviceContainer } from '../Device/index.js'\nimport { LivePreviewToolbar } from '../Toolbar/index.js'\nimport './index.css'\n\nconst baseClass = 'live-preview-window'\n\nexport const LivePreviewWindow: React.FC<EditViewProps> = (props) => {\n const {\n appIsReady,\n breakpoint,\n iframeRef,\n isExpanded,\n isLivePreviewing,\n lastReadyAt,\n loadedURL,\n popupRef,\n setLoadedURL,\n shouldRenderIframe,\n url,\n zoom,\n } = useLivePreviewContext()\n\n const locale = useLocale()\n\n const { mostRecentUpdate } = useDocumentEvents()\n\n const [formState] = useAllFormFields()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const postMessageToTargets = useCallback(\n (message: object) => {\n if (popupRef.current && !popupRef.current.closed) {\n popupRef.current.postMessage(message, url)\n }\n\n if (iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n },\n [iframeRef, popupRef, url],\n )\n\n const hasActiveTarget = isLivePreviewing || (popupRef.current && !popupRef.current.closed)\n\n /**\n * For client-side apps, send data through `window.postMessage`\n * The preview could either be an iframe embedded on the page\n * Or it could be a separate popup window\n * Also fires when a preview signals ready (lastReadyAt) to sync initial state\n */\n useEffect(() => {\n if (!hasActiveTarget || !appIsReady || !formState) {\n return\n }\n\n const values = reduceFieldsToValues(formState, true)\n\n if (!values.id) {\n values.id = id\n }\n\n postMessageToTargets({\n type: 'payload-live-preview',\n collectionSlug,\n data: values,\n externallyUpdatedRelationship: mostRecentUpdate,\n globalSlug,\n locale: locale.code,\n })\n }, [\n formState,\n collectionSlug,\n globalSlug,\n id,\n appIsReady,\n mostRecentUpdate,\n locale,\n hasActiveTarget,\n loadedURL,\n lastReadyAt,\n postMessageToTargets,\n ])\n\n /**\n * To support SSR, we transmit a `window.postMessage` event without a payload\n * This is because the event will ultimately trigger a server-side roundtrip\n * i.e., save, save draft, autosave, etc. will fire `router.refresh()`\n */\n useEffect(() => {\n if (!hasActiveTarget || !appIsReady) {\n return\n }\n\n postMessageToTargets({ type: 'payload-document-event' })\n }, [mostRecentUpdate, hasActiveTarget, appIsReady, postMessageToTargets])\n\n return (\n <div\n className={[\n baseClass,\n isLivePreviewing && `${baseClass}--is-live-previewing`,\n isExpanded && `${baseClass}--is-expanded`,\n breakpoint &&\n breakpoint !== 'responsive' &&\n breakpoint !== 'custom' &&\n `${baseClass}--has-breakpoint`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__wrapper`}>\n <LivePreviewToolbar {...props} />\n <div className={`${baseClass}__main`}>\n <DeviceContainer>\n {shouldRenderIframe && (\n <IframeLoader\n className=\"live-preview-iframe\"\n id=\"live-preview-iframe\"\n onLoad={() => {\n setLoadedURL(url)\n }}\n ref={iframeRef}\n src={url}\n style={{\n transform: typeof zoom === 'number' ? `scale(${zoom}) ` : undefined,\n }}\n />\n )}\n </DeviceContainer>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["reduceFieldsToValues","React","useCallback","useEffect","useAllFormFields","useDocumentEvents","useDocumentInfo","useLivePreviewContext","useLocale","IframeLoader","DeviceContainer","LivePreviewToolbar","baseClass","LivePreviewWindow","props","appIsReady","breakpoint","iframeRef","isExpanded","isLivePreviewing","lastReadyAt","loadedURL","popupRef","setLoadedURL","shouldRenderIframe","url","zoom","locale","mostRecentUpdate","formState","id","collectionSlug","globalSlug","postMessageToTargets","message","current","closed","postMessage","contentWindow","hasActiveTarget","values","type","data","externallyUpdatedRelationship","code","_jsx","className","filter","Boolean","join","_jsxs","onLoad","ref","src","style","transform","undefined"],"sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useAllFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useLivePreviewContext } from '../../../providers/LivePreview/context.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { IframeLoader } from '../../IframeLoader/index.js'\nimport { DeviceContainer } from '../Device/index.js'\nimport { LivePreviewToolbar } from '../Toolbar/index.js'\nimport './index.css'\n\nconst baseClass = 'live-preview-window'\n\nexport const LivePreviewWindow: React.FC<EditViewProps> = (props) => {\n const {\n appIsReady,\n breakpoint,\n iframeRef,\n isExpanded,\n isLivePreviewing,\n lastReadyAt,\n loadedURL,\n popupRef,\n setLoadedURL,\n shouldRenderIframe,\n url,\n zoom,\n } = useLivePreviewContext()\n\n const locale = useLocale()\n\n const { mostRecentUpdate } = useDocumentEvents()\n\n const [formState] = useAllFormFields()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n\n const postMessageToTargets = useCallback(\n (message: object) => {\n if (popupRef.current && !popupRef.current.closed) {\n popupRef.current.postMessage(message, url)\n }\n\n if (iframeRef.current) {\n iframeRef.current.contentWindow?.postMessage(message, url)\n }\n },\n [iframeRef, popupRef, url],\n )\n\n const hasActiveTarget = isLivePreviewing || (popupRef.current && !popupRef.current.closed)\n\n /**\n * For client-side apps, send data through `window.postMessage`\n * The preview could either be an iframe embedded on the page\n * Or it could be a separate popup window\n * Also fires when a preview signals ready (lastReadyAt) to sync initial state\n */\n useEffect(() => {\n if (!hasActiveTarget || !appIsReady || !formState) {\n return\n }\n\n const values = reduceFieldsToValues(formState, true)\n\n if (!values.id) {\n values.id = id\n }\n\n postMessageToTargets({\n type: 'payload-live-preview',\n collectionSlug,\n data: values,\n externallyUpdatedRelationship: mostRecentUpdate,\n globalSlug,\n locale: locale?.code,\n })\n }, [\n formState,\n collectionSlug,\n globalSlug,\n id,\n appIsReady,\n mostRecentUpdate,\n locale,\n hasActiveTarget,\n loadedURL,\n lastReadyAt,\n postMessageToTargets,\n ])\n\n /**\n * To support SSR, we transmit a `window.postMessage` event without a payload\n * This is because the event will ultimately trigger a server-side roundtrip\n * i.e., save, save draft, autosave, etc. will fire `router.refresh()`\n */\n useEffect(() => {\n if (!hasActiveTarget || !appIsReady) {\n return\n }\n\n postMessageToTargets({ type: 'payload-document-event' })\n }, [mostRecentUpdate, hasActiveTarget, appIsReady, postMessageToTargets])\n\n return (\n <div\n className={[\n baseClass,\n isLivePreviewing && `${baseClass}--is-live-previewing`,\n isExpanded && `${baseClass}--is-expanded`,\n breakpoint &&\n breakpoint !== 'responsive' &&\n breakpoint !== 'custom' &&\n `${baseClass}--has-breakpoint`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__wrapper`}>\n <LivePreviewToolbar {...props} />\n <div className={`${baseClass}__main`}>\n <DeviceContainer>\n {shouldRenderIframe && (\n <IframeLoader\n className=\"live-preview-iframe\"\n id=\"live-preview-iframe\"\n onLoad={() => {\n setLoadedURL(url)\n }}\n ref={iframeRef}\n src={url}\n style={{\n transform: typeof zoom === 'number' ? `scale(${zoom}) ` : undefined,\n }}\n />\n )}\n </DeviceContainer>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -40,7 +40,7 @@ export const Localizer = props => {
40
40
  t
41
41
  } = useTranslation();
42
42
  const locale = useLocale();
43
- if (localization) {
43
+ if (localization && locale) {
44
44
  const {
45
45
  locales
46
46
  } = localization;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","qs","React","Fragment","ChevronIcon","LanguageIcon","useConfig","useLocale","useLocaleLoading","useRouter","useRouteTransition","useTranslation","Button","Popup","PopupList","baseClass","Localizer","props","$","className","renderButton","config","t0","localization","router","startRouteTransition","setLocaleIsLoading","i18n","t","locale","locales","t1","filter","Boolean","t2","join","t3","t4","close","_jsx","RadioGroup","children","map","localeOption","localeOptionLabel","label","RadioGroupItem","active","code","disabled","onClick","searchParams","URLSearchParams","window","location","search","url","stringify","parse","toString","depth","ignoreQueryPrefix","addQueryPrefix","push","_jsxs","t5","_active","onKeyDown","ariaProps","buttonStyle","extraButtonProps","icon","size","horizontalAlign","render","showScrollbar"],"sources":["../../../src/elements/Localizer/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport * as qs from 'qs-esm'\nimport React, { Fragment } from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { LanguageIcon } from '../../icons/Language/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale, useLocaleLoading } from '../../providers/Locale/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'localizer'\n\nexport const Localizer: React.FC<{\n className?: string\n renderButton?: (props: {\n active: boolean\n 'aria-expanded': boolean\n 'aria-haspopup': true\n onClick: React.MouseEventHandler\n onKeyDown: React.KeyboardEventHandler\n }) => React.ReactNode\n}> = (props) => {\n const { className, renderButton } = props\n const {\n config: { localization },\n } = useConfig()\n\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const { setLocaleIsLoading } = useLocaleLoading()\n\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n if (localization) {\n const { locales } = localization\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Popup\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.RadioGroup>\n {locales.map((localeOption) => {\n const localeOptionLabel = getTranslation(localeOption.label, i18n)\n\n return (\n <PopupList.RadioGroupItem\n active={locale.code === localeOption.code}\n disabled={locale.code === localeOption.code}\n key={localeOption.code}\n onClick={() => {\n setLocaleIsLoading(true)\n close()\n\n // can't use `useSearchParams` here because it is stale due to `window.history.pushState` in `ListQueryProvider`\n const searchParams = new URLSearchParams(window.location.search)\n\n const url = qs.stringify(\n {\n ...qs.parse(searchParams.toString(), {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n locale: localeOption.code,\n },\n { addQueryPrefix: true },\n )\n\n startRouteTransition(() => {\n router.push(url)\n })\n }}\n >\n {localeOptionLabel !== localeOption.code ? (\n <Fragment>\n {localeOptionLabel}\n &nbsp;\n <span\n className={`${baseClass}__locale-code`}\n data-locale={localeOption.code}\n >\n {`(${localeOption.code})`}\n </span>\n </Fragment>\n ) : (\n <span className={`${baseClass}__locale-code`} data-locale={localeOption.code}>\n {localeOptionLabel}\n </span>\n )}\n </PopupList.RadioGroupItem>\n )\n })}\n </PopupList.RadioGroup>\n )}\n renderButton={\n renderButton ??\n (({ active: _active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:locale')}\n buttonStyle=\"secondary\"\n extraButtonProps={{ onKeyDown }}\n icon={<LanguageIcon size={24} />}\n iconPosition=\"left\"\n onClick={onClick}\n {...ariaProps}\n >\n <div className={`${baseClass}__button-content`}>\n {locale.code}\n <ChevronIcon size={16} />\n </div>\n </Button>\n ))\n }\n showScrollbar\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","qs","React","Fragment","ChevronIcon","LanguageIcon","useConfig","useLocale","useLocaleLoading","useRouter","useRouteTransition","useTranslation","Button","Popup","PopupList","baseClass","Localizer","props","$","className","renderButton","config","t0","localization","router","startRouteTransition","setLocaleIsLoading","i18n","t","locale","locales","t1","filter","Boolean","t2","join","t3","t4","close","_jsx","RadioGroup","children","map","localeOption","localeOptionLabel","label","RadioGroupItem","active","code","disabled","onClick","searchParams","URLSearchParams","window","location","search","url","stringify","parse","toString","depth","ignoreQueryPrefix","addQueryPrefix","push","_jsxs","t5","_active","onKeyDown","ariaProps","buttonStyle","extraButtonProps","icon","size","horizontalAlign","render","showScrollbar"],"sources":["../../../src/elements/Localizer/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport * as qs from 'qs-esm'\nimport React, { Fragment } from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { LanguageIcon } from '../../icons/Language/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale, useLocaleLoading } from '../../providers/Locale/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'localizer'\n\nexport const Localizer: React.FC<{\n className?: string\n renderButton?: (props: {\n active: boolean\n 'aria-expanded': boolean\n 'aria-haspopup': true\n onClick: React.MouseEventHandler\n onKeyDown: React.KeyboardEventHandler\n }) => React.ReactNode\n}> = (props) => {\n const { className, renderButton } = props\n const {\n config: { localization },\n } = useConfig()\n\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const { setLocaleIsLoading } = useLocaleLoading()\n\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n if (localization && locale) {\n const { locales } = localization\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n <Popup\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.RadioGroup>\n {locales.map((localeOption) => {\n const localeOptionLabel = getTranslation(localeOption.label, i18n)\n\n return (\n <PopupList.RadioGroupItem\n active={locale.code === localeOption.code}\n disabled={locale.code === localeOption.code}\n key={localeOption.code}\n onClick={() => {\n setLocaleIsLoading(true)\n close()\n\n // can't use `useSearchParams` here because it is stale due to `window.history.pushState` in `ListQueryProvider`\n const searchParams = new URLSearchParams(window.location.search)\n\n const url = qs.stringify(\n {\n ...qs.parse(searchParams.toString(), {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n locale: localeOption.code,\n },\n { addQueryPrefix: true },\n )\n\n startRouteTransition(() => {\n router.push(url)\n })\n }}\n >\n {localeOptionLabel !== localeOption.code ? (\n <Fragment>\n {localeOptionLabel}\n &nbsp;\n <span\n className={`${baseClass}__locale-code`}\n data-locale={localeOption.code}\n >\n {`(${localeOption.code})`}\n </span>\n </Fragment>\n ) : (\n <span className={`${baseClass}__locale-code`} data-locale={localeOption.code}>\n {localeOptionLabel}\n </span>\n )}\n </PopupList.RadioGroupItem>\n )\n })}\n </PopupList.RadioGroup>\n )}\n renderButton={\n renderButton ??\n (({ active: _active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:locale')}\n buttonStyle=\"secondary\"\n extraButtonProps={{ onKeyDown }}\n icon={<LanguageIcon size={24} />}\n iconPosition=\"left\"\n onClick={onClick}\n {...ariaProps}\n >\n <div className={`${baseClass}__button-content`}>\n {locale.code}\n <ChevronIcon size={16} />\n </div>\n </Button>\n ))\n }\n showScrollbar\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,8 @@ import { RenderServerComponent } from '../../RenderServerComponent/index.js';
2
2
  export const renderTabHandler = ({
3
3
  req,
4
4
  searchParams,
5
- tabSlug
5
+ tabSlug,
6
+ user
6
7
  }) => {
7
8
  if (!req.user) {
8
9
  throw new Error('Unauthorized');
@@ -35,7 +36,7 @@ export const renderTabHandler = ({
35
36
  payload: req.payload,
36
37
  req,
37
38
  searchParams: searchParams ?? req.query,
38
- user: req.user
39
+ user
39
40
  }
40
41
  });
41
42
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"renderTabServerFn.js","names":["RenderServerComponent","renderTabHandler","req","searchParams","tabSlug","user","Error","importMap","payload","tabs","config","admin","components","sidebar","component","tabConfig","find","tab","slug","Component","Content","serverProps","i18n","locale","params","routeParams","query","error","errorMessage","message","String","logger","err","msg"],"sources":["../../../../src/elements/Nav/SidebarTabs/renderTabServerFn.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\nimport type React from 'react'\n\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\n\nexport type RenderTabServerFnArgs = {\n searchParams?: Record<string, unknown>\n tabSlug: string\n}\n\nexport type RenderTabServerFnReturnType = {\n component: React.ReactNode\n}\n\nexport const renderTabHandler: ServerFunction<\n RenderTabServerFnArgs,\n RenderTabServerFnReturnType\n> = ({ req, searchParams, tabSlug }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { importMap } = req.payload\n const { tabs } = req.payload.config.admin.components?.sidebar || {}\n\n if (!tabs) {\n return { component: null }\n }\n\n const tabConfig = tabs.find((tab) => tab.slug === tabSlug)\n\n if (!tabConfig) {\n return { component: null }\n }\n\n try {\n const component = RenderServerComponent({\n Component: tabConfig.components.Content,\n importMap,\n serverProps: {\n i18n: req.i18n,\n locale: req.locale,\n params: req.routeParams,\n payload: req.payload,\n req,\n searchParams: searchParams ?? req.query,\n user: req.user,\n },\n })\n\n return { component }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n req.payload.logger.error({\n err: error,\n msg: `Error rendering tab \"${tabSlug}\": ${errorMessage}`,\n })\n\n return { component: null }\n }\n}\n"],"mappings":"AAGA,SAASA,qBAAqB,QAAQ;AAWtC,OAAO,MAAMC,gBAAA,GAGTA,CAAC;EAAEC,GAAG;EAAEC,YAAY;EAAEC;AAAO,CAAE;EACjC,IAAI,CAACF,GAAA,CAAIG,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAS,CAAE,GAAGL,GAAA,CAAIM,OAAO;EACjC,MAAM;IAAEC;EAAI,CAAE,GAAGP,GAAA,CAAIM,OAAO,CAACE,MAAM,CAACC,KAAK,CAACC,UAAU,EAAEC,OAAA,IAAW,CAAC;EAElE,IAAI,CAACJ,IAAA,EAAM;IACT,OAAO;MAAEK,SAAA,EAAW;IAAK;EAC3B;EAEA,MAAMC,SAAA,GAAYN,IAAA,CAAKO,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,KAAKd,OAAA;EAElD,IAAI,CAACW,SAAA,EAAW;IACd,OAAO;MAAED,SAAA,EAAW;IAAK;EAC3B;EAEA,IAAI;IACF,MAAMA,SAAA,GAAYd,qBAAA,CAAsB;MACtCmB,SAAA,EAAWJ,SAAA,CAAUH,UAAU,CAACQ,OAAO;MACvCb,SAAA;MACAc,WAAA,EAAa;QACXC,IAAA,EAAMpB,GAAA,CAAIoB,IAAI;QACdC,MAAA,EAAQrB,GAAA,CAAIqB,MAAM;QAClBC,MAAA,EAAQtB,GAAA,CAAIuB,WAAW;QACvBjB,OAAA,EAASN,GAAA,CAAIM,OAAO;QACpBN,GAAA;QACAC,YAAA,EAAcA,YAAA,IAAgBD,GAAA,CAAIwB,KAAK;QACvCrB,IAAA,EAAMH,GAAA,CAAIG;MACZ;IACF;IAEA,OAAO;MAAES;IAAU;EACrB,EAAE,OAAOa,KAAA,EAAO;IACd,MAAMC,YAAA,GAAeD,KAAA,YAAiBrB,KAAA,GAAQqB,KAAA,CAAME,OAAO,GAAGC,MAAA,CAAOH,KAAA;IAErEzB,GAAA,CAAIM,OAAO,CAACuB,MAAM,CAACJ,KAAK,CAAC;MACvBK,GAAA,EAAKL,KAAA;MACLM,GAAA,EAAK,wBAAwB7B,OAAA,MAAawB,YAAA;IAC5C;IAEA,OAAO;MAAEd,SAAA,EAAW;IAAK;EAC3B;AACF","ignoreList":[]}
1
+ {"version":3,"file":"renderTabServerFn.js","names":["RenderServerComponent","renderTabHandler","req","searchParams","tabSlug","user","Error","importMap","payload","tabs","config","admin","components","sidebar","component","tabConfig","find","tab","slug","Component","Content","serverProps","i18n","locale","params","routeParams","query","error","errorMessage","message","String","logger","err","msg"],"sources":["../../../../src/elements/Nav/SidebarTabs/renderTabServerFn.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\nimport type React from 'react'\n\nimport { RenderServerComponent } from '../../RenderServerComponent/index.js'\n\nexport type RenderTabServerFnArgs = {\n searchParams?: Record<string, unknown>\n tabSlug: string\n}\n\nexport type RenderTabServerFnReturnType = {\n component: React.ReactNode\n}\n\nexport const renderTabHandler: ServerFunction<\n RenderTabServerFnArgs,\n RenderTabServerFnReturnType\n> = ({ req, searchParams, tabSlug, user }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { importMap } = req.payload\n const { tabs } = req.payload.config.admin.components?.sidebar || {}\n\n if (!tabs) {\n return { component: null }\n }\n\n const tabConfig = tabs.find((tab) => tab.slug === tabSlug)\n\n if (!tabConfig) {\n return { component: null }\n }\n\n try {\n const component = RenderServerComponent({\n Component: tabConfig.components.Content,\n importMap,\n serverProps: {\n i18n: req.i18n,\n locale: req.locale,\n params: req.routeParams,\n payload: req.payload,\n req,\n searchParams: searchParams ?? req.query,\n user,\n },\n })\n\n return { component }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n req.payload.logger.error({\n err: error,\n msg: `Error rendering tab \"${tabSlug}\": ${errorMessage}`,\n })\n\n return { component: null }\n }\n}\n"],"mappings":"AAGA,SAASA,qBAAqB,QAAQ;AAWtC,OAAO,MAAMC,gBAAA,GAGTA,CAAC;EAAEC,GAAG;EAAEC,YAAY;EAAEC,OAAO;EAAEC;AAAI,CAAE;EACvC,IAAI,CAACH,GAAA,CAAIG,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAS,CAAE,GAAGL,GAAA,CAAIM,OAAO;EACjC,MAAM;IAAEC;EAAI,CAAE,GAAGP,GAAA,CAAIM,OAAO,CAACE,MAAM,CAACC,KAAK,CAACC,UAAU,EAAEC,OAAA,IAAW,CAAC;EAElE,IAAI,CAACJ,IAAA,EAAM;IACT,OAAO;MAAEK,SAAA,EAAW;IAAK;EAC3B;EAEA,MAAMC,SAAA,GAAYN,IAAA,CAAKO,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,IAAI,KAAKd,OAAA;EAElD,IAAI,CAACW,SAAA,EAAW;IACd,OAAO;MAAED,SAAA,EAAW;IAAK;EAC3B;EAEA,IAAI;IACF,MAAMA,SAAA,GAAYd,qBAAA,CAAsB;MACtCmB,SAAA,EAAWJ,SAAA,CAAUH,UAAU,CAACQ,OAAO;MACvCb,SAAA;MACAc,WAAA,EAAa;QACXC,IAAA,EAAMpB,GAAA,CAAIoB,IAAI;QACdC,MAAA,EAAQrB,GAAA,CAAIqB,MAAM;QAClBC,MAAA,EAAQtB,GAAA,CAAIuB,WAAW;QACvBjB,OAAA,EAASN,GAAA,CAAIM,OAAO;QACpBN,GAAA;QACAC,YAAA,EAAcA,YAAA,IAAgBD,GAAA,CAAIwB,KAAK;QACvCrB;MACF;IACF;IAEA,OAAO;MAAES;IAAU;EACrB,EAAE,OAAOa,KAAA,EAAO;IACd,MAAMC,YAAA,GAAeD,KAAA,YAAiBrB,KAAA,GAAQqB,KAAA,CAAME,OAAO,GAAGC,MAAA,CAAOH,KAAA;IAErEzB,GAAA,CAAIM,OAAO,CAACuB,MAAM,CAACJ,KAAK,CAAC;MACvBK,GAAA,EAAKL,KAAA;MACLM,GAAA,EAAK,wBAAwB7B,OAAA,MAAawB,YAAA;IAC5C;IAEA,OAAO;MAAEd,SAAA,EAAW;IAAK;EAC3B;AACF","ignoreList":[]}
@@ -106,6 +106,7 @@
106
106
  background: var(--color-bg-selected);
107
107
  }
108
108
 
109
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
109
110
  @media (max-width: 1024px) {
110
111
  .nav__scroll {
111
112
  --nav-padding-inline-start: var(--spacer-2);
@@ -113,6 +114,7 @@
113
114
  }
114
115
  }
115
116
 
117
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
116
118
  @media (max-width: 768px) {
117
119
  .nav__scroll {
118
120
  --nav-padding-inline-start: var(--gutter-h);