@payloadcms/ui 4.0.0-internal.688c4d0 → 4.0.0-internal.bc5cf8c

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 (466) hide show
  1. package/dist/css/colors.css +6 -0
  2. package/dist/css/design-tokens.css +5 -0
  3. package/dist/css/elevations.css +4 -0
  4. package/dist/css/utilities.css +3 -2
  5. package/dist/elements/AppHeader/index.d.ts +3 -2
  6. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  7. package/dist/elements/AppHeader/index.js +9 -2
  8. package/dist/elements/AppHeader/index.js.map +1 -1
  9. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  10. package/dist/elements/ArrayAction/index.js +1 -2
  11. package/dist/elements/ArrayAction/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/ActionsBar/index.css +4 -8
  13. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +1 -5
  14. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  15. package/dist/elements/BulkUpload/ActionsBar/index.js +15 -22
  16. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.css +14 -8
  18. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -2
  19. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  20. package/dist/elements/BulkUpload/AddFilesView/index.js +41 -36
  21. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/AddingFilesView/index.css +158 -6
  23. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +5 -1
  24. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  25. package/dist/elements/BulkUpload/AddingFilesView/index.js +134 -65
  26. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
  28. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/EditForm/index.d.ts +1 -1
  30. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  31. package/dist/elements/BulkUpload/EditForm/index.js +16 -17
  32. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  33. package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -3
  34. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
  35. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  36. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  37. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +78 -64
  38. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  39. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  40. package/dist/elements/BulkUpload/EditMany/index.js +28 -10
  41. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  42. package/dist/elements/BulkUpload/FileSidebar/index.css +63 -143
  43. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  44. package/dist/elements/BulkUpload/FileSidebar/index.js +42 -175
  45. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  46. package/dist/elements/BulkUpload/FormsManager/index.js +1 -1
  47. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  48. package/dist/elements/BulkUpload/index.css +48 -0
  49. package/dist/elements/BulkUpload/index.d.ts +6 -5
  50. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  51. package/dist/elements/BulkUpload/index.js +42 -41
  52. package/dist/elements/BulkUpload/index.js.map +1 -1
  53. package/dist/elements/Card/index.css +1 -1
  54. package/dist/elements/ColumnSelection/Popup.d.ts +12 -0
  55. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -0
  56. package/dist/elements/{ColumnSelector/index.js → ColumnSelection/Popup.js} +23 -12
  57. package/dist/elements/ColumnSelection/Popup.js.map +1 -0
  58. package/dist/elements/ColumnSelection/index.d.ts +10 -0
  59. package/dist/elements/ColumnSelection/index.d.ts.map +1 -0
  60. package/dist/elements/{ColumnsButton → ColumnSelection}/index.js +23 -17
  61. package/dist/elements/ColumnSelection/index.js.map +1 -0
  62. package/dist/elements/CopyLocaleData/index.js +1 -1
  63. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  64. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  65. package/dist/elements/CreateDocumentButton/index.js +0 -1
  66. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  67. package/dist/elements/DatePicker/index.css +6 -6
  68. package/dist/elements/Dialog/DialogHeader/index.d.ts +4 -0
  69. package/dist/elements/Dialog/DialogHeader/index.d.ts.map +1 -1
  70. package/dist/elements/Dialog/DialogHeader/index.js +45 -30
  71. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  72. package/dist/elements/Dialog/DialogModal/index.d.ts +5 -0
  73. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  74. package/dist/elements/Dialog/DialogModal/index.js +58 -31
  75. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  76. package/dist/elements/Dialog/DialogTitle/index.css +9 -0
  77. package/dist/elements/Dialog/DialogTitle/index.d.ts +5 -0
  78. package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -0
  79. package/dist/elements/Dialog/DialogTitle/index.js +10 -0
  80. package/dist/elements/Dialog/DialogTitle/index.js.map +1 -0
  81. package/dist/elements/Dialog/index.css +7 -1
  82. package/dist/elements/DocumentControls/index.css +8 -2
  83. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  84. package/dist/elements/DocumentControls/index.js +12 -3
  85. package/dist/elements/DocumentControls/index.js.map +1 -1
  86. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  87. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +5 -3
  88. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  89. package/dist/elements/DocumentFields/index.css +5 -2
  90. package/dist/elements/DocumentFields/index.d.ts +5 -0
  91. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  92. package/dist/elements/DocumentFields/index.js +9 -1
  93. package/dist/elements/DocumentFields/index.js.map +1 -1
  94. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts +12 -0
  95. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts.map +1 -0
  96. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +28 -0
  97. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -0
  98. package/dist/elements/DocumentHeader/index.js +2 -3
  99. package/dist/elements/DocumentHeader/index.js.map +1 -1
  100. package/dist/elements/DrawerActionHeader/index.css +1 -1
  101. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.css +7 -1
  102. package/dist/elements/DrawerHeader/index.d.ts +10 -0
  103. package/dist/elements/DrawerHeader/index.d.ts.map +1 -0
  104. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.js +16 -11
  105. package/dist/elements/DrawerHeader/index.js.map +1 -0
  106. package/dist/elements/Dropzone/index.css +5 -13
  107. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +1 -1
  108. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  109. package/dist/elements/EditUpload/index.css +97 -158
  110. package/dist/elements/EditUpload/index.d.ts +2 -1
  111. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  112. package/dist/elements/EditUpload/index.js +205 -231
  113. package/dist/elements/EditUpload/index.js.map +1 -1
  114. package/dist/elements/EditUpload/{library.scss → library.css} +108 -46
  115. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
  116. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  117. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  118. package/dist/elements/FileDetails/FileMeta/index.css +27 -0
  119. package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
  120. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  121. package/dist/elements/FileDetails/FileMeta/index.js +1 -1
  122. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  123. package/dist/elements/FileDetails/StaticFileDetails/index.css +140 -0
  124. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +2 -2
  125. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  126. package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
  127. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  128. package/dist/elements/FileDetails/index.d.ts +1 -1
  129. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  130. package/dist/elements/FileDetails/index.js.map +1 -1
  131. package/dist/elements/FileManager/FilePreview/AudioPreview/index.css +8 -0
  132. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts +10 -0
  133. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts.map +1 -0
  134. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js +24 -0
  135. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js.map +1 -0
  136. package/dist/elements/FileManager/FilePreview/PdfPreview/index.css +9 -0
  137. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts +12 -0
  138. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts.map +1 -0
  139. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js +27 -0
  140. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js.map +1 -0
  141. package/dist/elements/FileManager/FilePreview/VideoPreview/index.css +8 -0
  142. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts +10 -0
  143. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts.map +1 -0
  144. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js +24 -0
  145. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js.map +1 -0
  146. package/dist/elements/FileManager/FilePreview/index.css +83 -0
  147. package/dist/elements/FileManager/FilePreview/index.d.ts +13 -0
  148. package/dist/elements/FileManager/FilePreview/index.d.ts.map +1 -0
  149. package/dist/elements/FileManager/FilePreview/index.js +140 -0
  150. package/dist/elements/FileManager/FilePreview/index.js.map +1 -0
  151. package/dist/elements/FileManager/FileToolbar/index.css +91 -0
  152. package/dist/elements/FileManager/FileToolbar/index.d.ts +14 -0
  153. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -0
  154. package/dist/elements/FileManager/FileToolbar/index.js +106 -0
  155. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -0
  156. package/dist/elements/FileManager/index.css +154 -0
  157. package/dist/elements/FileManager/index.d.ts +19 -0
  158. package/dist/elements/FileManager/index.d.ts.map +1 -0
  159. package/dist/elements/FileManager/index.js +424 -0
  160. package/dist/elements/FileManager/index.js.map +1 -0
  161. package/dist/elements/GroupBy/Popup.d.ts +21 -0
  162. package/dist/elements/GroupBy/Popup.d.ts.map +1 -0
  163. package/dist/elements/GroupBy/Popup.js +268 -0
  164. package/dist/elements/GroupBy/Popup.js.map +1 -0
  165. package/dist/elements/GroupBy/index.d.ts +12 -0
  166. package/dist/elements/GroupBy/index.d.ts.map +1 -0
  167. package/dist/elements/GroupBy/index.js +91 -0
  168. package/dist/elements/GroupBy/index.js.map +1 -0
  169. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +2 -2
  170. package/dist/elements/Hierarchy/Drawer/index.css +1 -1
  171. package/dist/elements/ListColumnSelectionButton/index.d.ts +11 -0
  172. package/dist/elements/ListColumnSelectionButton/index.d.ts.map +1 -0
  173. package/dist/elements/ListColumnSelectionButton/index.js +37 -0
  174. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -0
  175. package/dist/elements/ListControls/index.d.ts.map +1 -1
  176. package/dist/elements/ListControls/index.js +7 -8
  177. package/dist/elements/ListControls/index.js.map +1 -1
  178. package/dist/elements/ListDrawer/DrawerContent.js +1 -1
  179. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  180. package/dist/elements/ListDrawer/Provider.d.ts +1 -1
  181. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  182. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  183. package/dist/elements/ListGroupByButton/index.d.ts +12 -0
  184. package/dist/elements/ListGroupByButton/index.d.ts.map +1 -0
  185. package/dist/elements/ListGroupByButton/index.js +55 -0
  186. package/dist/elements/ListGroupByButton/index.js.map +1 -0
  187. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  188. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +2 -0
  189. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  190. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +4 -4
  191. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  192. package/dist/elements/ListWhereBuilder/index.d.ts +16 -0
  193. package/dist/elements/ListWhereBuilder/index.d.ts.map +1 -0
  194. package/dist/elements/ListWhereBuilder/index.js +62 -0
  195. package/dist/elements/ListWhereBuilder/index.js.map +1 -0
  196. package/dist/elements/LivePreview/Toolbar/Controls/index.js +2 -2
  197. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  198. package/dist/elements/LivePreview/Toolbar/SizeInput/index.css +5 -44
  199. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  200. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +25 -43
  201. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  202. package/dist/elements/MiniCarousel/index.css +94 -0
  203. package/dist/elements/MiniCarousel/index.d.ts +15 -0
  204. package/dist/elements/MiniCarousel/index.d.ts.map +1 -0
  205. package/dist/elements/MiniCarousel/index.js +84 -0
  206. package/dist/elements/MiniCarousel/index.js.map +1 -0
  207. package/dist/elements/Nav/index.css +2 -2
  208. package/dist/elements/NavGroup/index.css +1 -1
  209. package/dist/elements/Popup/PopupButtonList/index.css +5 -0
  210. package/dist/elements/Popup/PopupGroupLabel/index.css +8 -5
  211. package/dist/elements/Popup/index.d.ts +1 -1
  212. package/dist/elements/Popup/index.d.ts.map +1 -1
  213. package/dist/elements/Popup/index.js +43 -12
  214. package/dist/elements/Popup/index.js.map +1 -1
  215. package/dist/elements/PreviewSizes/index.css +149 -0
  216. package/dist/elements/PreviewSizes/index.d.ts +2 -2
  217. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  218. package/dist/elements/PreviewSizes/index.js +1 -1
  219. package/dist/elements/PreviewSizes/index.js.map +1 -1
  220. package/dist/elements/PublishMany/DrawerContent.d.ts +2 -1
  221. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  222. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  223. package/dist/elements/PublishMany/index.d.ts +2 -6
  224. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  225. package/dist/elements/PublishMany/index.js +0 -38
  226. package/dist/elements/PublishMany/index.js.map +1 -1
  227. package/dist/elements/QueryPresets/cells/ColumnsCell/{index.scss → index.css} +1 -3
  228. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +1 -1
  229. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -1
  230. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -1
  231. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  232. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +1 -1
  233. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  234. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +77 -48
  235. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  236. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +1 -1
  237. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  238. package/dist/elements/QueryPresets/fields/GroupByField/index.js +12 -21
  239. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  240. package/dist/elements/QueryPresets/fields/Heading/index.css +52 -0
  241. package/dist/elements/QueryPresets/fields/Heading/index.d.ts +7 -0
  242. package/dist/elements/QueryPresets/fields/Heading/index.d.ts.map +1 -0
  243. package/dist/elements/QueryPresets/fields/Heading/index.js +31 -0
  244. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -0
  245. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +1 -1
  246. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  247. package/dist/elements/QueryPresets/fields/WhereField/index.js +24 -23
  248. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  249. package/dist/elements/QueryPresets/fields/fields.css +23 -0
  250. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts +5 -0
  251. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -0
  252. package/dist/elements/ReactSelect/getCaptureMenuScroll.js +10 -0
  253. package/dist/elements/ReactSelect/getCaptureMenuScroll.js.map +1 -0
  254. package/dist/elements/ReactSelect/getMenuListStyles.d.ts +6 -0
  255. package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -0
  256. package/dist/elements/ReactSelect/getMenuListStyles.js +7 -0
  257. package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -0
  258. package/dist/elements/ReactSelect/index.css +0 -1
  259. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  260. package/dist/elements/ReactSelect/index.js +168 -148
  261. package/dist/elements/ReactSelect/index.js.map +1 -1
  262. package/dist/elements/ReactSelect/types.d.ts +1 -0
  263. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  264. package/dist/elements/ReactSelect/types.js.map +1 -1
  265. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  266. package/dist/elements/RelationshipTable/AddNewButton.js +1 -2
  267. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  268. package/dist/elements/RelationshipTable/index.js +2 -2
  269. package/dist/elements/RelationshipTable/index.js.map +1 -1
  270. package/dist/elements/SortColumn/index.css +1 -1
  271. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  272. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +21 -2
  273. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  274. package/dist/elements/Table/index.css +24 -2
  275. package/dist/elements/Thumbnail/index.css +41 -0
  276. package/dist/elements/Thumbnail/index.d.ts +3 -3
  277. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  278. package/dist/elements/Thumbnail/index.js +1 -1
  279. package/dist/elements/Thumbnail/index.js.map +1 -1
  280. package/dist/elements/Toasts/fieldErrors.d.ts +1 -0
  281. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  282. package/dist/elements/Toasts/fieldErrors.js +25 -9
  283. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  284. package/dist/elements/Toasts/index.css +5 -0
  285. package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -1
  286. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  287. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  288. package/dist/elements/UnpublishMany/index.d.ts +2 -4
  289. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  290. package/dist/elements/UnpublishMany/index.js +0 -38
  291. package/dist/elements/UnpublishMany/index.js.map +1 -1
  292. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +11 -0
  293. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -0
  294. package/dist/elements/Upload/UploadFromURLModal/index.js +88 -0
  295. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -0
  296. package/dist/elements/Upload/index.css +134 -45
  297. package/dist/elements/Upload/index.d.ts +3 -8
  298. package/dist/elements/Upload/index.d.ts.map +1 -1
  299. package/dist/elements/Upload/index.js +71 -92
  300. package/dist/elements/Upload/index.js.map +1 -1
  301. package/dist/elements/UserMenu/LanguageMenu/index.js +1 -1
  302. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  303. package/dist/elements/UserMenu/SettingsMenu/index.d.ts +6 -2
  304. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  305. package/dist/elements/UserMenu/SettingsMenu/index.js +15 -10
  306. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  307. package/dist/elements/UserMenu/ThemeMenu/index.js +1 -1
  308. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  309. package/dist/elements/UserMenu/index.d.ts +2 -1
  310. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  311. package/dist/elements/UserMenu/index.js +8 -5
  312. package/dist/elements/UserMenu/index.js.map +1 -1
  313. package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -0
  314. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  315. package/dist/elements/WhereBuilder/Condition/index.js +17 -2
  316. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  317. package/dist/elements/WhereBuilder/index.d.ts +4 -3
  318. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  319. package/dist/elements/WhereBuilder/index.js +71 -62
  320. package/dist/elements/WhereBuilder/index.js.map +1 -1
  321. package/dist/elements/WhereBuilder/types.d.ts +6 -5
  322. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  323. package/dist/elements/WhereBuilder/types.js.map +1 -1
  324. package/dist/exports/client/index.d.ts +6 -2
  325. package/dist/exports/client/index.d.ts.map +1 -1
  326. package/dist/exports/client/index.js +1 -2
  327. package/dist/exports/client/index.js.map +4 -4
  328. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +1 -1
  329. package/dist/fields/Blocks/BlockSelector/index.css +2 -5
  330. package/dist/fields/Checkbox/index.css +2 -2
  331. package/dist/fields/Group/index.css +3 -3
  332. package/dist/fields/Number/Input.d.ts.map +1 -1
  333. package/dist/fields/Number/Input.js +47 -35
  334. package/dist/fields/Number/Input.js.map +1 -1
  335. package/dist/fields/Number/index.css +19 -0
  336. package/dist/fields/Number/types.d.ts +6 -0
  337. package/dist/fields/Number/types.d.ts.map +1 -1
  338. package/dist/fields/Number/types.js.map +1 -1
  339. package/dist/fields/RadioGroup/index.css +6 -0
  340. package/dist/fields/Text/Input.d.ts.map +1 -1
  341. package/dist/fields/Text/Input.js +31 -28
  342. package/dist/fields/Text/Input.js.map +1 -1
  343. package/dist/fields/Text/types.d.ts +5 -0
  344. package/dist/fields/Text/types.d.ts.map +1 -1
  345. package/dist/fields/Text/types.js.map +1 -1
  346. package/dist/fields/Upload/Input.d.ts.map +1 -1
  347. package/dist/fields/Upload/Input.js +12 -11
  348. package/dist/fields/Upload/Input.js.map +1 -1
  349. package/dist/fields/Upload/index.js +1 -1
  350. package/dist/fields/Upload/index.js.map +1 -1
  351. package/dist/hooks/useElementHeightVariable.d.ts +15 -0
  352. package/dist/hooks/useElementHeightVariable.d.ts.map +1 -0
  353. package/dist/hooks/useElementHeightVariable.js +53 -0
  354. package/dist/hooks/useElementHeightVariable.js.map +1 -0
  355. package/dist/icons/Check/index.css +1 -2
  356. package/dist/icons/Check/index.js +1 -1
  357. package/dist/icons/Check/index.js.map +1 -1
  358. package/dist/icons/Crop/index.css +5 -0
  359. package/dist/icons/Crop/index.d.ts +7 -0
  360. package/dist/icons/Crop/index.d.ts.map +1 -0
  361. package/dist/icons/Crop/index.js +24 -0
  362. package/dist/icons/Crop/index.js.map +1 -0
  363. package/dist/icons/Download/index.css +5 -0
  364. package/dist/icons/{ExternalLink → Download}/index.d.ts +1 -1
  365. package/dist/icons/Download/index.d.ts.map +1 -0
  366. package/dist/icons/Download/index.js +27 -0
  367. package/dist/icons/Download/index.js.map +1 -0
  368. package/dist/icons/{ExternalLink → NewTab}/index.css +1 -1
  369. package/dist/icons/NewTab/index.d.ts +7 -0
  370. package/dist/icons/NewTab/index.d.ts.map +1 -0
  371. package/dist/icons/NewTab/index.js +25 -0
  372. package/dist/icons/NewTab/index.js.map +1 -0
  373. package/dist/icons/Replace/index.css +5 -0
  374. package/dist/icons/Replace/index.d.ts +6 -0
  375. package/dist/icons/Replace/index.d.ts.map +1 -0
  376. package/dist/icons/Replace/index.js +20 -0
  377. package/dist/icons/Replace/index.js.map +1 -0
  378. package/dist/icons/Reset/index.css +5 -0
  379. package/dist/icons/Reset/index.d.ts +7 -0
  380. package/dist/icons/Reset/index.d.ts.map +1 -0
  381. package/dist/icons/Reset/index.js +25 -0
  382. package/dist/icons/Reset/index.js.map +1 -0
  383. package/dist/icons/Swap/index.js +1 -1
  384. package/dist/icons/Swap/index.js.map +1 -1
  385. package/dist/icons/Warning/index.css +1 -7
  386. package/dist/icons/Warning/index.d.ts +1 -1
  387. package/dist/icons/Warning/index.d.ts.map +1 -1
  388. package/dist/icons/Warning/index.js +11 -16
  389. package/dist/icons/Warning/index.js.map +1 -1
  390. package/dist/providers/ToastContainer/index.css +208 -0
  391. package/dist/providers/ToastContainer/index.d.ts +1 -0
  392. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  393. package/dist/providers/ToastContainer/index.js +19 -6
  394. package/dist/providers/ToastContainer/index.js.map +1 -1
  395. package/dist/scss/app.scss +10 -4
  396. package/dist/styles.css +1365 -1
  397. package/dist/templates/Default/index.d.ts.map +1 -1
  398. package/dist/templates/Default/index.js +52 -10
  399. package/dist/templates/Default/index.js.map +1 -1
  400. package/dist/utilities/reduceFieldsToOptions.js +1 -1
  401. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  402. package/dist/views/API/index.client.js +2 -2
  403. package/dist/views/API/index.client.js.map +1 -1
  404. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +1 -1
  405. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  406. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -2
  407. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  408. package/dist/views/Document/index.d.ts.map +1 -1
  409. package/dist/views/Document/index.js +1 -0
  410. package/dist/views/Document/index.js.map +1 -1
  411. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  412. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  413. package/dist/views/Document/renderDocumentSlots.js +47 -1
  414. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  415. package/dist/views/Edit/index.css +143 -6
  416. package/dist/views/Edit/index.d.ts +1 -1
  417. package/dist/views/Edit/index.d.ts.map +1 -1
  418. package/dist/views/Edit/index.js +34 -31
  419. package/dist/views/Edit/index.js.map +1 -1
  420. package/dist/views/HierarchyList/DocumentListSelection/index.js +4 -4
  421. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  422. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +2 -2
  423. package/dist/views/List/ListHeader/index.css +5 -0
  424. package/dist/views/List/ListSelection/index.js +4 -4
  425. package/dist/views/List/ListSelection/index.js.map +1 -1
  426. package/dist/views/List/index.client.d.ts.map +1 -1
  427. package/dist/views/List/index.client.js +6 -6
  428. package/dist/views/List/index.client.js.map +1 -1
  429. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  430. package/dist/views/List/renderListViewSlots.js +9 -6
  431. package/dist/views/List/renderListViewSlots.js.map +1 -1
  432. package/dist/views/Logout/LogoutClient.js +1 -1
  433. package/dist/views/Logout/LogoutClient.js.map +1 -1
  434. package/dist/views/Versions/index.css +0 -4
  435. package/package.json +4 -4
  436. package/dist/elements/BulkUpload/Header/index.d.ts +0 -9
  437. package/dist/elements/BulkUpload/Header/index.d.ts.map +0 -1
  438. package/dist/elements/BulkUpload/Header/index.js.map +0 -1
  439. package/dist/elements/ColumnSelector/index.d.ts +0 -9
  440. package/dist/elements/ColumnSelector/index.d.ts.map +0 -1
  441. package/dist/elements/ColumnSelector/index.js.map +0 -1
  442. package/dist/elements/ColumnsButton/index.d.ts +0 -7
  443. package/dist/elements/ColumnsButton/index.d.ts.map +0 -1
  444. package/dist/elements/ColumnsButton/index.js.map +0 -1
  445. package/dist/elements/FileDetails/FileMeta/index.scss +0 -31
  446. package/dist/elements/FileDetails/StaticFileDetails/index.scss +0 -134
  447. package/dist/elements/GroupByBuilder/index.d.ts +0 -12
  448. package/dist/elements/GroupByBuilder/index.d.ts.map +0 -1
  449. package/dist/elements/GroupByBuilder/index.js +0 -164
  450. package/dist/elements/GroupByBuilder/index.js.map +0 -1
  451. package/dist/elements/GroupByBuilder/index.scss +0 -39
  452. package/dist/elements/GroupByControl/index.d.ts +0 -9
  453. package/dist/elements/GroupByControl/index.d.ts.map +0 -1
  454. package/dist/elements/GroupByControl/index.js +0 -254
  455. package/dist/elements/GroupByControl/index.js.map +0 -1
  456. package/dist/elements/PreviewSizes/index.scss +0 -147
  457. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -17
  458. package/dist/elements/QueryPresets/fields/GroupByField/index.scss +0 -17
  459. package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
  460. package/dist/elements/Thumbnail/index.scss +0 -53
  461. package/dist/icons/ExternalLink/index.d.ts.map +0 -1
  462. package/dist/icons/ExternalLink/index.js +0 -26
  463. package/dist/icons/ExternalLink/index.js.map +0 -1
  464. package/dist/scss/toasts.scss +0 -146
  465. /package/dist/elements/{ColumnSelector/index.css → ColumnSelection/Popup.css} +0 -0
  466. /package/dist/elements/{GroupByControl/index.css → GroupBy/Popup.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","useEffect","toast","useEffectEvent","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","setInitialFiles","setInitialForms","setOnCancel","setOnSuccess","setParentID","setSelectableCollections","setSuccessfullyUploaded","successfullyUploaded","modalState","previousModalStateRef","useRef","t0","modalState_0","previousModalState","current","currentModalState","isOpen","_temp2","_temp4","onModalStateChanged","t1","t2","t3","Header","slug","children","_temp3","_temp","Context","createContext","initialFiles","initialForms","maxFiles","onSuccess","parentID","selectableCollections","setCollectionSlug","setMaxFiles","BulkUploadProvider","drawerSlugPrefix","useState","collection","setCollection","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","Symbol","for","t4","newDocs","errorCount","t5","value","_jsxs","Fragment","use","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, type InitialForms, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const {\n drawerSlug,\n onCancel,\n setInitialFiles,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setParentID,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n } = useBulkUpload()\n const { modalState } = useModal()\n const previousModalStateRef = React.useRef(modalState)\n\n /**\n * This is used to trigger onCancel when the drawer is closed (=> forms reset, as FormsManager is unmounted)\n */\n const onModalStateChanged = useEffectEvent((modalState) => {\n const previousModalState = previousModalStateRef.current[drawerSlug]\n const currentModalState = modalState[drawerSlug]\n\n if (typeof currentModalState === 'undefined' && typeof previousModalState === 'undefined') {\n return\n }\n\n if (previousModalState?.isOpen !== currentModalState?.isOpen) {\n if (!currentModalState?.isOpen) {\n if (!successfullyUploaded) {\n // It's only cancelled if successfullyUploaded is not set. Otherwise, this would simply be a modal close after success\n // => do not call cancel, just reset everything\n if (typeof onCancel === 'function') {\n onCancel()\n }\n }\n\n // Reset everything to defaults\n setParentID(undefined)\n setInitialFiles(undefined)\n setInitialForms(undefined)\n setOnCancel(() => () => null)\n setOnSuccess(() => () => null)\n setSelectableCollections(null)\n setSuccessfullyUploaded(false)\n }\n }\n previousModalStateRef.current = modalState\n })\n\n useEffect(() => {\n onModalStateChanged(modalState)\n }, [modalState])\n\n return (\n <Drawer Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\nexport type BulkUploadContext = {\n collectionSlug: CollectionSlug\n drawerSlug: string\n initialFiles: FileList\n /**\n * Like initialFiles, but allows manually providing initial form state or the form ID for each file\n */\n initialForms: InitialForms\n maxFiles: number\n onCancel: () => void\n onSuccess: (\n uploadedForms: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }>,\n errorCount: number,\n ) => void\n parentID?: number | string\n /**\n * An array of collection slugs that can be selected in the collection dropdown (if applicable)\n * @default null - collection cannot be selected\n */\n selectableCollections?: null | string[]\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setInitialForms: (\n forms: ((forms: InitialForms | undefined) => InitialForms | undefined) | InitialForms,\n ) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n setParentID: (parentID: number | string | undefined) => void\n /**\n * Set the collections that can be selected in the collection dropdown (if applicable)\n *\n * @default null - collection cannot be selected\n */\n setSelectableCollections: (collections: null | string[]) => void\n setSuccessfullyUploaded: (successfullyUploaded: boolean) => void\n successfullyUploaded: boolean\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n initialForms: [],\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n parentID: undefined,\n selectableCollections: null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setInitialForms: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n setParentID: () => null,\n setSelectableCollections: () => null,\n setSuccessfullyUploaded: () => false,\n successfullyUploaded: false,\n})\nexport function BulkUploadProvider({\n children,\n drawerSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly drawerSlugPrefix?: string\n}) {\n const [selectableCollections, setSelectableCollections] = React.useState<null | string[]>(null)\n const [collection, setCollection] = React.useState<string>()\n const [parentID, setParentID] = React.useState<number | string | undefined>(undefined)\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [initialForms, setInitialForms] = React.useState<InitialForms>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [successfullyUploaded, setSuccessfullyUploaded] = React.useState<boolean>(false)\n\n const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ''}${useBulkUploadDrawerSlug()}`\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n const setOnCancel: BulkUploadContext['setOnCancel'] = (onCancel) => {\n setOnCancelFunction(() => onCancel)\n }\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n initialForms,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (newDocs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(newDocs, errorCount)\n }\n },\n parentID,\n selectableCollections,\n setCollectionSlug: setCollection,\n setInitialFiles,\n setInitialForms,\n setMaxFiles,\n setOnCancel,\n setOnSuccess,\n setParentID,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth + 1}`\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","useEffect","toast","useEffectEvent","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","baseModalSlug","DrawerContent","addFiles","forms","isInitializing","collectionSlug","modalSlug","useBulkUpload","getEntityConfig","t","openModal","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","BulkUploadModal","$","onCancel","setInitialFiles","setInitialForms","setOnCancel","setOnSuccess","setParentID","setSelectableCollections","setSuccessfullyUploaded","successfullyUploaded","modalState","previousModalStateRef","useRef","t0","modalState_0","previousModalState","current","currentModalState","isOpen","_temp2","_temp4","onModalStateChanged","t1","t2","t3","Symbol","for","children","_temp3","_temp","Context","createContext","initialFiles","initialForms","maxFiles","onSuccess","parentID","selectableCollections","setCollectionSlug","setMaxFiles","BulkUploadProvider","modalSlugPrefix","useState","collection","setCollection","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadModalSlug","t4","newDocs","errorCount","t5","value","_jsxs","Fragment","use","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, type InitialForms, useFormsManager } from './FormsManager/index.js'\nimport './index.css'\n\nconst baseModalSlug = 'bulk-upload-modal-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { collectionSlug, modalSlug } = useBulkUpload()\n const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n openModal(modalSlug)\n }\n },\n [addFiles, t, uploadMimeTypes, openModal, modalSlug],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n modalSlug={modalSlug}\n onDrop={onDrop}\n />\n )\n }\n\n return <AddingFilesView modalSlug={modalSlug} />\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadModal() {\n const {\n modalSlug,\n onCancel,\n setInitialFiles,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setParentID,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n } = useBulkUpload()\n const { modalState } = useModal()\n const previousModalStateRef = React.useRef(modalState)\n\n /**\n * This is used to trigger onCancel when the drawer is closed (=> forms reset, as FormsManager is unmounted)\n */\n const onModalStateChanged = useEffectEvent((modalState) => {\n const previousModalState = previousModalStateRef.current[modalSlug]\n const currentModalState = modalState[modalSlug]\n\n if (typeof currentModalState === 'undefined' && typeof previousModalState === 'undefined') {\n return\n }\n\n if (previousModalState?.isOpen !== currentModalState?.isOpen) {\n if (!currentModalState?.isOpen) {\n if (!successfullyUploaded) {\n // It's only cancelled if successfullyUploaded is not set. Otherwise, this would simply be a modal close after success\n // => do not call cancel, just reset everything\n if (typeof onCancel === 'function') {\n onCancel()\n }\n }\n\n // Reset everything to defaults\n setParentID(undefined)\n setInitialFiles(undefined)\n setInitialForms(undefined)\n setOnCancel(() => () => null)\n setOnSuccess(() => () => null)\n setSelectableCollections(null)\n setSuccessfullyUploaded(false)\n }\n }\n previousModalStateRef.current = modalState\n })\n\n useEffect(() => {\n onModalStateChanged(modalState)\n }, [modalState])\n\n // Only mount the providers (and reset forms on unmount) while the drawer is open,\n // matching the previous behavior where the Drawer lazily rendered its children.\n if (!modalState[modalSlug]?.isOpen) {\n return null\n }\n\n return (\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n )\n}\n\nexport type BulkUploadContext = {\n collectionSlug: CollectionSlug\n initialFiles: FileList\n /**\n * Like initialFiles, but allows manually providing initial form state or the form ID for each file\n */\n initialForms: InitialForms\n maxFiles: number\n modalSlug: string\n onCancel: () => void\n onSuccess: (\n uploadedForms: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }>,\n errorCount: number,\n ) => void\n parentID?: number | string\n /**\n * An array of collection slugs that can be selected in the collection dropdown (if applicable)\n * @default null - collection cannot be selected\n */\n selectableCollections?: null | string[]\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setInitialForms: (\n forms: ((forms: InitialForms | undefined) => InitialForms | undefined) | InitialForms,\n ) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n setParentID: (parentID: number | string | undefined) => void\n /**\n * Set the collections that can be selected in the collection dropdown (if applicable)\n *\n * @default null - collection cannot be selected\n */\n setSelectableCollections: (collections: null | string[]) => void\n setSuccessfullyUploaded: (successfullyUploaded: boolean) => void\n successfullyUploaded: boolean\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n initialFiles: undefined,\n initialForms: [],\n maxFiles: undefined,\n modalSlug: '',\n onCancel: () => null,\n onSuccess: () => null,\n parentID: undefined,\n selectableCollections: null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setInitialForms: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n setParentID: () => null,\n setSelectableCollections: () => null,\n setSuccessfullyUploaded: () => false,\n successfullyUploaded: false,\n})\nexport function BulkUploadProvider({\n children,\n modalSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly modalSlugPrefix?: string\n}) {\n const [selectableCollections, setSelectableCollections] = React.useState<null | string[]>(null)\n const [collection, setCollection] = React.useState<string>()\n const [parentID, setParentID] = React.useState<number | string | undefined>(undefined)\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [initialForms, setInitialForms] = React.useState<InitialForms>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [successfullyUploaded, setSuccessfullyUploaded] = React.useState<boolean>(false)\n\n const modalSlug = `${modalSlugPrefix ? `${modalSlugPrefix}-` : ''}${useBulkUploadModalSlug()}`\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n const setOnCancel: BulkUploadContext['setOnCancel'] = (onCancel) => {\n setOnCancelFunction(() => onCancel)\n }\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n initialFiles,\n initialForms,\n maxFiles,\n modalSlug,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (newDocs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(newDocs, errorCount)\n }\n },\n parentID,\n selectableCollections,\n setCollectionSlug: setCollection,\n setInitialFiles,\n setInitialForms,\n setMaxFiles,\n setOnCancel,\n setOnSuccess,\n setParentID,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadModal />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadModalSlug() {\n const depth = useDrawerDepth()\n\n return `${baseModalSlug}-${depth + 1}`\n}\n"],"mappings":"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","ignoreList":[]}
@@ -44,7 +44,7 @@
44
44
  }
45
45
  }
46
46
 
47
- .card__click {
47
+ .card .card__click {
48
48
  z-index: 1;
49
49
  inset: 0;
50
50
  position: absolute;
@@ -0,0 +1,12 @@
1
+ import type { Column, SanitizedCollectionConfig } from 'payload';
2
+ import React from 'react';
3
+ import './Popup.css';
4
+ export type ColumnSelectionPopupProps = {
5
+ readonly collectionSlug: SanitizedCollectionConfig['slug'];
6
+ readonly columns: Column[];
7
+ /** Called with the next column state whenever a column is toggled or reordered. */
8
+ readonly onChange: (columns: Column[]) => void;
9
+ readonly onClose?: () => void;
10
+ };
11
+ export declare const ColumnSelectionPopup: React.FC<ColumnSelectionPopupProps>;
12
+ //# sourceMappingURL=Popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelection/Popup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAyE,MAAM,OAAO,CAAA;AAW7F,OAAO,aAAa,CAAA;AAkDpB,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAC9B,CAAA;AAkDD,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA6NpE,CAAA"}
@@ -9,13 +9,12 @@ import { AlignJustifiedIcon } from '../../icons/AlignJustified/index.js';
9
9
  import { SearchIcon } from '../../icons/Search/index.js';
10
10
  import { XIcon } from '../../icons/X/index.js';
11
11
  import { useEditDepth } from '../../providers/EditDepth/index.js';
12
- import { useTableColumns } from '../../providers/TableColumns/index.js';
13
12
  import { useTranslation } from '../../providers/Translation/index.js';
14
13
  import { Button } from '../Button/index.js';
15
14
  import { DraggableSortable } from '../DraggableSortable/index.js';
16
15
  import { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js';
17
16
  import { Switch } from '../Switch/index.js';
18
- import './index.css';
17
+ import './Popup.css';
19
18
  const baseClass = 'column-selector';
20
19
  /**
21
20
  * Parses a nested field label and returns segments for rendering.
@@ -142,19 +141,31 @@ const ColumnItem = t0 => {
142
141
  }
143
142
  return t8;
144
143
  };
145
- export const ColumnSelector = ({
144
+ export const ColumnSelectionPopup = ({
146
145
  collectionSlug,
146
+ columns,
147
+ onChange,
147
148
  onClose
148
149
  }) => {
149
- const {
150
- columns,
151
- moveColumn,
152
- toggleColumn
153
- } = useTableColumns();
154
150
  const {
155
151
  i18n,
156
152
  t
157
153
  } = useTranslation();
154
+ const toggleColumn = useCallback(column => {
155
+ onChange(columns.map(col => col.accessor === column ? {
156
+ ...col,
157
+ active: !col.active
158
+ } : col));
159
+ }, [columns, onChange]);
160
+ const moveColumn = useCallback(({
161
+ fromIndex,
162
+ toIndex
163
+ }) => {
164
+ const next = [...columns];
165
+ const [moved] = next.splice(fromIndex, 1);
166
+ next.splice(toIndex, 0, moved);
167
+ onChange(next);
168
+ }, [columns, onChange]);
158
169
  const uuid = useId();
159
170
  const editDepth = useEditDepth();
160
171
  const [searchQuery, setSearchQuery] = useState('');
@@ -173,7 +184,7 @@ export const ColumnSelector = ({
173
184
  setLockedWidth(null);
174
185
  }
175
186
  }, [searchQuery, lockedWidth]);
176
- const filteredColumns = useMemo(() => columns?.filter(col => !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) && !isFieldDisabled(col.field, 'column')), [columns]);
187
+ const filteredColumns = useMemo(() => columns?.filter(col_0 => !(fieldIsHiddenOrDisabled(col_0.field) && !fieldIsID(col_0.field)) && !isFieldDisabled(col_0.field, 'column')), [columns]);
177
188
  const columnItems = useMemo(() => {
178
189
  if (!filteredColumns) {
179
190
  return {
@@ -182,12 +193,12 @@ export const ColumnSelector = ({
182
193
  shown: []
183
194
  };
184
195
  }
185
- const items = filteredColumns.map((col_0, i) => {
196
+ const items = filteredColumns.map((col_1, i) => {
186
197
  const {
187
198
  accessor,
188
199
  active,
189
200
  field
190
- } = col_0;
201
+ } = col_1;
191
202
  const label = 'labelWithPrefix' in field && field.labelWithPrefix !== undefined ? field.labelWithPrefix : 'label' in field && field.label !== undefined && field.label !== false ? field.label : 'name' in field && field.name !== undefined ? field.name : accessor;
192
203
  const labelText = typeof label === 'string' ? label : getTranslation(label, i18n);
193
204
  return {
@@ -319,4 +330,4 @@ export const ColumnSelector = ({
319
330
  })]
320
331
  });
321
332
  };
322
- //# sourceMappingURL=index.js.map
333
+ //# sourceMappingURL=Popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.js","names":["c","_c","getTranslation","fieldIsHiddenOrDisabled","fieldIsID","isFieldDisabled","React","useCallback","useId","useLayoutEffect","useMemo","useRef","useState","AlignJustifiedIcon","SearchIcon","XIcon","useEditDepth","useTranslation","Button","DraggableSortable","useDraggableSortable","Switch","baseClass","parseNestedLabel","label","includes","segments","split","length","NestedLabel","_jsx","_Fragment","map","segment","index","_jsxs","Fragment","className","ColumnItem","t0","$","id","active","labelText","onToggle","t","t1","attributes","isDragging","isOver","isSorting","listeners","setNodeRef","transform","t2","t3","t4","t5","filter","Boolean","t6","join","t7","undefined","t8","ref","style","children","size","checked","onChange","ColumnSelectionPopup","collectionSlug","columns","onClose","i18n","toggleColumn","column","col","accessor","moveColumn","fromIndex","toIndex","next","moved","splice","uuid","editDepth","searchQuery","setSearchQuery","containerRef","lockedWidth","setLockedWidth","current","offsetWidth","filteredColumns","field","columnItems","all","hidden","shown","items","i","labelWithPrefix","name","filtered","item","toLowerCase","handleDragEnd","moveFromIndex","moveToIndex","allItems","shownCount","fromItem","toItem","fromIsShown","toIsShown","allIds","containerStyle","buttonStyle","icon","onClick","e","target","value","placeholder","type","ids","onDragEnd"],"sources":["../../../src/elements/ColumnSelection/Popup.tsx"],"sourcesContent":["'use client'\n\nimport type { Column, SanitizedCollectionConfig, StaticLabel } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldIsHiddenOrDisabled, fieldIsID, isFieldDisabled } from 'payload/shared'\nimport React, { useCallback, useId, useLayoutEffect, useMemo, useRef, useState } from 'react'\n\nimport { AlignJustifiedIcon } from '../../icons/AlignJustified/index.js'\nimport { SearchIcon } from '../../icons/Search/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { useDraggableSortable } from '../DraggableSortable/useDraggableSortable/index.js'\nimport { Switch } from '../Switch/index.js'\nimport './Popup.css'\n\nconst baseClass = 'column-selector'\n\n/**\n * Parses a nested field label and returns segments for rendering.\n * - For deeply nested paths (more than 3 segments), truncates to [First, \"...\", Last]\n *\n * A column label isn't guaranteed to be a string — a field can supply a React\n * element (custom `Label`) or a non-string translation object — so non-strings\n * are returned as a single segment rather than crashing on `.includes`.\n */\nfunction parseNestedLabel(label: React.ReactNode): React.ReactNode[] {\n if (typeof label !== 'string' || !label.includes(' > ')) {\n return [label]\n }\n\n const segments = label.split(' > ')\n\n if (segments.length <= 3) {\n return segments\n }\n\n // For deep nesting, show: First / ... / Last\n return [segments[0], '...', segments[segments.length - 1]]\n}\n\ntype NestedLabelProps = {\n readonly label: React.ReactNode\n}\n\nconst NestedLabel: React.FC<NestedLabelProps> = ({ label }) => {\n const segments = parseNestedLabel(label)\n\n if (segments.length === 1) {\n return <>{segments[0]}</>\n }\n\n return (\n <>\n {segments.map((segment, index) => (\n <React.Fragment key={index}>\n {index > 0 && <span className={`${baseClass}__separator`}>/</span>}\n {segment}\n </React.Fragment>\n ))}\n </>\n )\n}\n\nexport type ColumnSelectionPopupProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly columns: Column[]\n /** Called with the next column state whenever a column is toggled or reordered. */\n readonly onChange: (columns: Column[]) => void\n readonly onClose?: () => void\n}\n\ntype ColumnItemProps = {\n readonly active: boolean\n readonly id: string\n readonly labelText: string\n readonly onToggle: () => void\n}\n\nconst ColumnItem: React.FC<ColumnItemProps> = ({ id, active, labelText, onToggle }) => {\n const { t } = useTranslation()\n const { attributes, isDragging, isOver, isSorting, listeners, setNodeRef, transform } =\n useDraggableSortable({\n id,\n })\n\n return (\n <div\n aria-label={labelText}\n className={[\n `${baseClass}__item`,\n !active && `${baseClass}__item--inactive`,\n isDragging && `${baseClass}__item--dragging`,\n isOver && isSorting && !isDragging && `${baseClass}__item--over`,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={setNodeRef}\n style={{\n // Keep item in place while dragging - don't apply transform\n transform: isDragging ? undefined : transform,\n ...attributes.style,\n }}\n {...attributes}\n >\n <span\n aria-label={t('general:dragToReorder')}\n className={`${baseClass}__drag-handle`}\n {...listeners}\n >\n <AlignJustifiedIcon size={16} />\n </span>\n <span className={`${baseClass}__item-label`}>\n <NestedLabel label={labelText} />\n </span>\n <Switch checked={active} onChange={onToggle} />\n </div>\n )\n}\n\nexport const ColumnSelectionPopup: React.FC<ColumnSelectionPopupProps> = ({\n collectionSlug,\n columns,\n onChange,\n onClose,\n}) => {\n const { i18n, t } = useTranslation()\n\n const toggleColumn = useCallback(\n (column: string) => {\n onChange(\n columns.map((col) => (col.accessor === column ? { ...col, active: !col.active } : col)),\n )\n },\n [columns, onChange],\n )\n\n const moveColumn = useCallback(\n ({ fromIndex, toIndex }: { fromIndex: number; toIndex: number }) => {\n const next = [...columns]\n const [moved] = next.splice(fromIndex, 1)\n next.splice(toIndex, 0, moved)\n onChange(next)\n },\n [columns, onChange],\n )\n\n const uuid = useId()\n const editDepth = useEditDepth()\n const [searchQuery, setSearchQuery] = useState('')\n const containerRef = useRef<HTMLDivElement>(null)\n const [lockedWidth, setLockedWidth] = useState<null | number>(null)\n\n // Lock the width when search starts to prevent layout shift\n useLayoutEffect(() => {\n if (!containerRef.current) {\n return\n }\n\n if (searchQuery && lockedWidth === null) {\n // Capture width when search starts\n setLockedWidth(containerRef.current.offsetWidth)\n } else if (!searchQuery && lockedWidth !== null) {\n // Release width lock when search is cleared\n setLockedWidth(null)\n }\n }, [searchQuery, lockedWidth])\n\n const filteredColumns = useMemo(\n () =>\n columns?.filter(\n (col) =>\n !(fieldIsHiddenOrDisabled(col.field) && !fieldIsID(col.field)) &&\n !isFieldDisabled(col.field, 'column'),\n ),\n [columns],\n )\n\n const columnItems = useMemo(() => {\n if (!filteredColumns) {\n return { all: [], hidden: [], shown: [] }\n }\n\n const items = filteredColumns.map((col, i) => {\n const { accessor, active, field } = col\n\n const label =\n 'labelWithPrefix' in field && field.labelWithPrefix !== undefined\n ? field.labelWithPrefix\n : 'label' in field && field.label !== undefined && field.label !== false\n ? field.label\n : 'name' in field && field.name !== undefined\n ? field.name\n : accessor\n\n const labelText =\n typeof label === 'string' ? label : getTranslation(label as StaticLabel, i18n)\n\n return {\n id: `${collectionSlug}-${accessor}-${i}${editDepth ? `-${editDepth}-` : ''}${uuid}`,\n accessor,\n active,\n index: i,\n label,\n labelText,\n }\n })\n\n // Filter by search query\n const filtered = searchQuery\n ? items.filter((item) => item.labelText.toLowerCase().includes(searchQuery.toLowerCase()))\n : items\n\n return {\n all: items,\n hidden: filtered.filter((item) => !item.active),\n shown: filtered.filter((item) => item.active),\n }\n }, [collectionSlug, editDepth, filteredColumns, i18n, searchQuery, uuid])\n\n const handleDragEnd = useCallback(\n ({ moveFromIndex, moveToIndex }: { moveFromIndex: number; moveToIndex: number }) => {\n if (moveFromIndex === moveToIndex) {\n return\n }\n\n // All shown items first, then all hidden items\n const allItems = [...columnItems.shown, ...columnItems.hidden]\n const shownCount = columnItems.shown.length\n const fromItem = allItems[moveFromIndex]\n const toItem = allItems[moveToIndex]\n\n if (!fromItem || !toItem) {\n return\n }\n\n // Determine if crossing sections\n const fromIsShown = moveFromIndex < shownCount\n const toIsShown = moveToIndex < shownCount\n\n if (fromIsShown !== toIsShown) {\n // Cross-section move: just toggle the column's active state (show/hide)\n void toggleColumn(fromItem.accessor)\n // Don't reorder when crossing sections - the toggle handles the change\n return\n }\n\n // Same-section move: perform the reorder\n void moveColumn({\n fromIndex: fromItem.index,\n toIndex: toItem.index,\n })\n },\n [columnItems.shown, columnItems.hidden, moveColumn, toggleColumn],\n )\n\n if (!filteredColumns) {\n return null\n }\n\n // Combined IDs: shown items first, then hidden items\n const allIds = [...columnItems.shown, ...columnItems.hidden].map((item) => item.id)\n\n const containerStyle = lockedWidth\n ? ({ '--column-selector-locked-width': `${lockedWidth}px` } as React.CSSProperties)\n : undefined\n\n return (\n <div\n className={baseClass}\n data-popup-prevent-close\n data-width-locked={lockedWidth ? 'true' : undefined}\n ref={containerRef}\n style={containerStyle}\n >\n <div className={`${baseClass}__header`}>\n <span className={`${baseClass}__title`}>{t('general:editColumns')}</span>\n {onClose && (\n <Button\n aria-label={t('general:close')}\n buttonStyle=\"ghost\"\n className={`${baseClass}__close`}\n icon={<XIcon size={24} />}\n onClick={onClose}\n />\n )}\n </div>\n <div className={`${baseClass}__search`}>\n <div className={`${baseClass}__search-bar`}>\n <SearchIcon size={24} />\n <input\n aria-label={t('general:searchColumns')}\n className={`${baseClass}__search-input`}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={t('general:searchColumns')}\n type=\"text\"\n value={searchQuery}\n />\n </div>\n </div>\n <div className={`${baseClass}__content`}>\n <DraggableSortable ids={allIds} onDragEnd={handleDragEnd}>\n {columnItems.shown.length === 0 && columnItems.hidden.length === 0 && searchQuery && (\n <div className={`${baseClass}__no-results`}>{t('general:noMatchesFound')}</div>\n )}\n {columnItems.shown.length > 0 && (\n <div className={`${baseClass}__section`}>\n <div className={`${baseClass}__section-header`}>{t('general:shownInTable')}</div>\n {columnItems.shown.map((item) => (\n <ColumnItem\n active={item.active}\n id={item.id}\n key={item.id}\n labelText={item.labelText}\n onToggle={() => {\n void toggleColumn(item.accessor)\n }}\n />\n ))}\n </div>\n )}\n {columnItems.hidden.length > 0 && (\n <div className={`${baseClass}__section`}>\n <div className={`${baseClass}__section-header`}>{t('general:notShownInTable')}</div>\n {columnItems.hidden.map((item) => (\n <ColumnItem\n active={item.active}\n id={item.id}\n key={item.id}\n labelText={item.labelText}\n onToggle={() => {\n void toggleColumn(item.accessor)\n }}\n />\n ))}\n </div>\n )}\n </DraggableSortable>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { Column, SanitizedCollectionConfig } from 'payload';
2
+ import React from 'react';
3
+ export type ColumnSelectionButtonProps = {
4
+ readonly collectionSlug: SanitizedCollectionConfig['slug'];
5
+ readonly columns: Column[];
6
+ /** Called with the next column state whenever a column is toggled or reordered. */
7
+ readonly onChange: (columns: Column[]) => void;
8
+ };
9
+ export declare const ColumnSelectionButton: React.FC<ColumnSelectionButtonProps>;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ColumnSelection/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAA;IAC1B,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC/C,CAAA;AAID,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAmCtE,CAAA"}
@@ -6,35 +6,41 @@ import React from 'react';
6
6
  import { ChevronIcon } from '../../icons/Chevron/index.js';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
8
8
  import { Button } from '../Button/index.js';
9
- import { ColumnSelector } from '../ColumnSelector/index.js';
10
9
  import { Popup } from '../Popup/index.js';
10
+ import { ColumnSelectionPopup } from './Popup.js';
11
11
  const baseClass = 'columns-button';
12
- export const ColumnsButton = t0 => {
13
- const $ = _c(7);
12
+ export const ColumnSelectionButton = t0 => {
13
+ const $ = _c(9);
14
14
  const {
15
- collectionSlug
15
+ collectionSlug,
16
+ columns,
17
+ onChange
16
18
  } = t0;
17
19
  const {
18
20
  t
19
21
  } = useTranslation();
20
22
  let t1;
21
- if ($[0] !== collectionSlug) {
23
+ if ($[0] !== collectionSlug || $[1] !== columns || $[2] !== onChange) {
22
24
  t1 = t2 => {
23
25
  const {
24
26
  close
25
27
  } = t2;
26
- return _jsx(ColumnSelector, {
28
+ return _jsx(ColumnSelectionPopup, {
27
29
  collectionSlug,
30
+ columns,
31
+ onChange,
28
32
  onClose: close
29
33
  });
30
34
  };
31
35
  $[0] = collectionSlug;
32
- $[1] = t1;
36
+ $[1] = columns;
37
+ $[2] = onChange;
38
+ $[3] = t1;
33
39
  } else {
34
- t1 = $[1];
40
+ t1 = $[3];
35
41
  }
36
42
  let t2;
37
- if ($[2] !== t) {
43
+ if ($[4] !== t) {
38
44
  t2 = t3 => {
39
45
  const {
40
46
  active,
@@ -53,13 +59,13 @@ export const ColumnsButton = t0 => {
53
59
  children: t("general:columns")
54
60
  });
55
61
  };
56
- $[2] = t;
57
- $[3] = t2;
62
+ $[4] = t;
63
+ $[5] = t2;
58
64
  } else {
59
- t2 = $[3];
65
+ t2 = $[5];
60
66
  }
61
67
  let t3;
62
- if ($[4] !== t1 || $[5] !== t2) {
68
+ if ($[6] !== t1 || $[7] !== t2) {
63
69
  t3 = _jsx(Popup, {
64
70
  className: baseClass,
65
71
  horizontalAlign: "right",
@@ -68,11 +74,11 @@ export const ColumnsButton = t0 => {
68
74
  theme: "auto",
69
75
  verticalAlign: "bottom"
70
76
  });
71
- $[4] = t1;
72
- $[5] = t2;
73
- $[6] = t3;
77
+ $[6] = t1;
78
+ $[7] = t2;
79
+ $[8] = t3;
74
80
  } else {
75
- t3 = $[6];
81
+ t3 = $[8];
76
82
  }
77
83
  return t3;
78
84
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","useTranslation","Button","Popup","ColumnSelectionPopup","baseClass","ColumnSelectionButton","t0","$","collectionSlug","columns","onChange","t","t1","t2","close","_jsx","onClose","t3","active","props","buttonStyle","className","icon","direction","size","children","horizontalAlign","render","verticalAlign"],"sources":["../../../src/elements/ColumnSelection/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column, SanitizedCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Popup } from '../Popup/index.js'\nimport { ColumnSelectionPopup } from './Popup.js'\n\nexport type ColumnSelectionButtonProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly columns: Column[]\n /** Called with the next column state whenever a column is toggled or reordered. */\n readonly onChange: (columns: Column[]) => void\n}\n\nconst baseClass = 'columns-button'\n\nexport const ColumnSelectionButton: React.FC<ColumnSelectionButtonProps> = ({\n collectionSlug,\n columns,\n onChange,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n className={baseClass}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <ColumnSelectionPopup\n collectionSlug={collectionSlug}\n columns={columns}\n onChange={onChange}\n onClose={close}\n />\n )}\n renderButton={({ active, ...props }) => (\n <Button\n {...props}\n buttonStyle=\"secondary\"\n className={`${baseClass}__button`}\n icon={<ChevronIcon direction={active ? 'up' : 'down'} size={16} />}\n selected={active}\n size=\"medium\"\n >\n {t('general:columns')}\n </Button>\n )}\n theme=\"auto\"\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,WAAW,QAAQ;AAC5B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,KAAK,QAAQ;AACtB,SAASC,oBAAoB,QAAQ;AASrC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,qBAAA,GAA8DC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW,cAAA;IAAAC,OAAA;IAAAC;EAAA,IAAAJ,EAI3E;EACC;IAAAK;EAAA,IAAcX,cAAA;EAAA,IAAAY,EAAA;EAAA,IAAAL,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAG,QAAA;IAMFE,EAAA,GAAAC,EAAA;MAAC;QAAAC;MAAA,IAAAD,EAAS;MAAA,OAChBE,IAAA,CAAAZ,oBAAA;QAAAK,cAAA;QAAAC,OAAA;QAAAC,QAAA;QAAAM,OAAA,EAIWF;MAAA,C;;;;;;;;;;;IAGCD,EAAA,GAAAI,EAAA;MAAC;QAAAC,MAAA;QAAA,GAAAC;MAAA,IAAAF,EAAoB;MAAA,OACjCF,IAAA,CAAAd,MAAA;QAAA,GACMkB,KAAK;QAAAC,WAAA,EACG;QAAAC,SAAA,EACD,GAAAjB,SAAA,UAAsB;QAAAkB,IAAA,EAC3BP,IAAA,CAAAhB,WAAA;UAAAwB,SAAA,EAAwBL,MAAA,GAAS,OAAO;UAAAM,IAAA;QAAA,C;kBACpCN,MAAA;QAAAM,IAAA,EACL;QAAAC,QAAA,EAEJd,CAAA,CAAE;MAAA,C;;;;;;;;;IApBTM,EAAA,GAAAF,IAAA,CAAAb,KAAA;MAAAmB,SAAA,EAAAjB,SAAA;MAAAsB,eAAA,EAEkB;MAAAC,MAAA,EACRf,E;oBAQMC,E;aAYR;MAAAe,aAAA,EACQ;IAAA,C;;;;;;;SAxBhBX,E;CA2BJ","ignoreList":[]}
@@ -17,9 +17,9 @@ import { useRouter } from '../../providers/RouterAdapter/index.js';
17
17
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
18
18
  import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
19
19
  import { useTranslation } from '../../providers/Translation/index.js';
20
- import { DrawerHeader } from '../BulkUpload/Header/index.js';
21
20
  import { Button } from '../Button/index.js';
22
21
  import { Drawer } from '../Drawer/index.js';
22
+ import { DrawerHeader } from '../DrawerHeader/index.js';
23
23
  import { PopupList } from '../Popup/index.js';
24
24
  import './index.css';
25
25
  const baseClass = 'copy-locale-data';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouter","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","errorMessage","message","translatedMessage","startsWith","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n setCopying(false)\n const errorMessage = (error as Error).message || 'error:unknown'\n const translatedMessage = errorMessage.startsWith('error:')\n ? t(errorMessage as any)\n : errorMessage\n toast.error(translatedMessage)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n admin,\n startRouteTransition,\n t,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouter","useRouteTransition","useServerFunctions","useTranslation","Button","Drawer","DrawerHeader","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","errorMessage","message","translatedMessage","startsWith","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { DrawerHeader } from '../DrawerHeader/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.css'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n setCopying(false)\n const errorMessage = (error as Error).message || 'error:unknown'\n const translatedMessage = errorMessage.startsWith('error:')\n ? t(errorMessage as any)\n : errorMessage\n toast.error(translatedMessage)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n admin,\n startRouteTransition,\n t,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CreateDocumentButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAU/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IACxC,yCAAyC;IACzC,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,mGAAmG;IACnG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,MAAM,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAA;IAC7C,kBAAkB;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EACnC,WAAoB,EACpB,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,IAAe,GAChB,EAAE,yBAAyB,qBAqG3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/CreateDocumentButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAA;AAU/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB;IACnB,WAAW,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAA;IACxC,yCAAyC;IACzC,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,mGAAmG;IACnG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,MAAM,CAAC,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAA;IAC7C,kBAAkB;IAClB,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EACnC,WAAoB,EACpB,WAAW,EACX,UAAU,EACV,KAAK,EACL,MAAM,EACN,IAAe,GAChB,EAAE,yBAAyB,qBAoG3B"}
@@ -153,7 +153,6 @@ export function CreateDocumentButton(t0) {
153
153
  buttonType: "custom",
154
154
  className: `${baseClass}__popup`,
155
155
  horizontalAlign: "right",
156
- size: "medium",
157
156
  children: _jsx(PopupList.ButtonGroup, {
158
157
  children: collections.map(t7)
159
158
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useState","useConfig","useTranslation","Button","DocumentDrawer","Popup","PopupList","baseClass","CreateDocumentButton","t0","$","buttonStyle","t1","collections","drawerSlug","label","onSave","size","t2","undefined","config","i18n","t","closeModal","openModal","selectedCollection","setSelectedCollection","length","t3","option","collectionConfig","find","slug","collectionSlug","labels","singular","getCollectionLabel","t4","collection","handleSelect","t5","args","handleSave","collection_0","t6","buttonLabel","t7","_jsxs","_Fragment","children","_jsx","className","margin","onClick","initialData","redirectAfterCreate","buttonLabel_0","collection_1","button","icon","horizontalAlign","ButtonGroup","map"],"sources":["../../../src/elements/CreateDocumentButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useState } from 'react'\n\nimport type { Props as ButtonProps } from '../Button/types.js'\nimport type { DocumentDrawerContextProps } from '../DocumentDrawer/Provider.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { DocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\n\nconst baseClass = 'create-document-button'\n\nexport type CollectionOption = {\n collectionSlug: string\n /** Initial data to populate the form when creating */\n initialData?: Record<string, unknown>\n /** Optional label override (defaults to collection's singular label) */\n label?: string\n}\n\nexport type CreateDocumentButtonProps = {\n /** Button style */\n buttonStyle?: ButtonProps['buttonStyle']\n /** Collections available for creation */\n collections: CollectionOption[]\n /** Unique slug for the drawer modal */\n drawerSlug: string\n /** Custom button label (defaults to \"Create New\" for multiple, \"Create New {label}\" for single) */\n label?: string\n /** Called when a document is successfully saved */\n onSave?: DocumentDrawerContextProps['onSave']\n /** Button size */\n size?: ButtonProps['size']\n}\n\nexport function CreateDocumentButton({\n buttonStyle = 'pill',\n collections,\n drawerSlug,\n label,\n onSave,\n size = 'medium',\n}: CreateDocumentButtonProps) {\n const { config } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n\n const [selectedCollection, setSelectedCollection] = useState<CollectionOption | null>(null)\n\n if (collections.length === 0) {\n return null\n }\n\n const getCollectionLabel = (option: CollectionOption) => {\n if (option.label) {\n return option.label\n }\n const collectionConfig = config.collections.find((c) => c.slug === option.collectionSlug)\n return getTranslation(collectionConfig?.labels?.singular, i18n) || option.collectionSlug\n }\n\n const handleSelect = (collection: CollectionOption) => {\n setSelectedCollection(collection)\n openModal(drawerSlug)\n }\n\n const handleSave: DocumentDrawerContextProps['onSave'] = (args) => {\n closeModal(drawerSlug)\n return onSave?.(args)\n }\n\n // Single collection - render simple button\n if (collections.length === 1) {\n const collection = collections[0]\n const buttonLabel = label || t('general:createNew')\n\n return (\n <>\n <Button\n buttonStyle={buttonStyle}\n className={baseClass}\n margin={false}\n onClick={() => handleSelect(collection)}\n size={size}\n >\n {buttonLabel}\n </Button>\n {selectedCollection && (\n <DocumentDrawer\n collectionSlug={selectedCollection.collectionSlug}\n drawerSlug={drawerSlug}\n initialData={selectedCollection.initialData}\n onSave={handleSave}\n redirectAfterCreate={false}\n />\n )}\n </>\n )\n }\n\n // Multiple collections - render dropdown\n const buttonLabel = label || t('general:createNew')\n\n return (\n <>\n <Popup\n button={\n <Button\n buttonStyle={buttonStyle}\n className={`${baseClass}__popup-button`}\n icon=\"chevron\"\n size={size}\n >\n {buttonLabel}\n </Button>\n }\n buttonType=\"custom\"\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"medium\"\n >\n <PopupList.ButtonGroup>\n {collections.map((collection) => (\n <PopupList.Button\n key={collection.collectionSlug}\n onClick={() => handleSelect(collection)}\n >\n {getCollectionLabel(collection)}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n {selectedCollection && (\n <DocumentDrawer\n collectionSlug={selectedCollection.collectionSlug}\n drawerSlug={drawerSlug}\n initialData={selectedCollection.initialData}\n onSave={handleSave}\n redirectAfterCreate={false}\n />\n )}\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAKhC,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AAEjC,MAAMC,SAAA,GAAY;AAyBlB,OAAO,SAAAC,qBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAA8B;IAAAe,WAAA,EAAAC,EAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,IAAA,EAAAC;EAAA,IAAAT,EAOT;EAN1B,MAAAE,WAAA,GAAAC,EAAoB,KAAAO,SAAA,GAAN,MAAM,GAApBP,EAAoB;EAKpB,MAAAK,IAAA,GAAAC,EAAe,KAAAC,SAAA,GAAR,QAAQ,GAAfD,EAAe;EAEf;IAAAE;EAAA,IAAmBnB,SAAA;EACnB;IAAAoB,IAAA;IAAAC;EAAA,IAAoBpB,cAAA;EACpB;IAAAqB,UAAA;IAAAC;EAAA,IAAkC3B,QAAA;EAElC,OAAA4B,kBAAA,EAAAC,qBAAA,IAAoD1B,QAAA,KAAkC;EAAA,IAElFa,WAAA,CAAAc,MAAA,MAAuB;IAAA;EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAU,MAAA,IAAAV,CAAA,QAAAW,IAAA;IAIAO,EAAA,GAAAC,MAAA;MAAA,IACrBA,MAAA,CAAAd,KAAA;QAAA,OACKc,MAAA,CAAAd,KAAA;MAAA;MAET,MAAAe,gBAAA,GAAyBV,MAAA,CAAAP,WAAA,CAAAkB,IAAA,CAAApC,CAAA,IAA+BA,CAAA,CAAAqC,IAAA,KAAWH,MAAA,CAAAI,cAAqB;MAAA,OACjFnC,cAAA,CAAegC,gBAAA,EAAAI,MAAA,EAAAC,QAAA,EAAoCd,IAAA,KAASQ,MAAA,CAAAI,cAAqB;IAAA;IAC1FvB,CAAA,MAAAU,MAAA;IAAAV,CAAA,MAAAW,IAAA;IAAAX,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EANA,MAAA0B,kBAAA,GAA2BR,EAM3B;EAAA,IAAAS,EAAA;EAAA,IAAA3B,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAc,SAAA;IAEqBa,EAAA,GAAAC,UAAA;MACnBZ,qBAAA,CAAsBY,UAAA;MACtBd,SAAA,CAAUV,UAAA;IAAA;IACZJ,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAc,SAAA;IAAAd,CAAA,MAAA2B,EAAA;EAAA;IAAAA,EAAA,GAAA3B,CAAA;EAAA;EAHA,MAAA6B,YAAA,GAAqBF,EAGrB;EAAA,IAAAG,EAAA;EAAA,IAAA9B,CAAA,QAAAa,UAAA,IAAAb,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAM,MAAA;IAEyDwB,EAAA,GAAAC,IAAA;MACvDlB,UAAA,CAAWT,UAAA;MAAA,OACJE,MAAA,GAASyB,IAAA;IAAA;IAClB/B,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAM,MAAA;IAAAN,CAAA,MAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAHA,MAAAgC,UAAA,GAAyDF,EAGzD;EAAA,IAGI3B,WAAA,CAAAc,MAAA,MAAuB;IACzB,MAAAgB,YAAA,GAAmB9B,WAAW;IAAG,IAAA+B,EAAA;IAAA,IAAAlC,CAAA,SAAAC,WAAA,IAAAD,CAAA,SAAAiC,YAAA,IAAAjC,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAAgC,UAAA,IAAAhC,CAAA,SAAA6B,YAAA,IAAA7B,CAAA,SAAAK,KAAA,IAAAL,CAAA,SAAAe,kBAAA,IAAAf,CAAA,SAAAO,IAAA,IAAAP,CAAA,SAAAY,CAAA;MACjC,MAAAuB,WAAA,GAAoB9B,KAAA,IAASO,CAAA,CAAE;MAAA,IAAAwB,EAAA;MAAA,IAAApC,CAAA,SAAAiC,YAAA,IAAAjC,CAAA,SAAA6B,YAAA;QAQhBO,EAAA,GAAAA,CAAA,KAAMP,YAAA,CAAaD,YAAA;QAAA5B,CAAA,OAAAiC,YAAA;QAAAjC,CAAA,OAAA6B,YAAA;QAAA7B,CAAA,OAAAoC,EAAA;MAAA;QAAAA,EAAA,GAAApC,CAAA;MAAA;MALhCkC,EAAA,GAAAG,KAAA,CAAAC,SAAA;QAAAC,QAAA,GACEC,IAAA,CAAA/C,MAAA;UAAAQ,WAAA;UAAAwC,SAAA,EAAA5C,SAAA;UAAA6C,MAAA;UAAAC,OAAA,EAIWP,EAAmB;UAAA7B,IAAA;UAAAgC,QAAA,EAG3BJ;QAAA,C,GAEFpB,kBAAA,IACCyB,IAAA,CAAA9C,cAAA;UAAA6B,cAAA,EACkBR,kBAAA,CAAAQ,cAAA;UAAAnB,UAAA;UAAAwC,WAAA,EAEH7B,kBAAA,CAAA6B,WAAA;UAAAtC,MAAA,EACL0B,UAAA;UAAAa,mBAAA;QAAA,C;;;;;;;;;;;;;;;WAfdX,E;;;;IAwBJ,MAAAY,aAAA,GAAoBzC,KAAA,IAASO,CAAA,CAAE;IAAA,IAAAwB,EAAA;IAAA,IAAApC,CAAA,SAAA0B,kBAAA,IAAA1B,CAAA,SAAA6B,YAAA;MAqBNO,EAAA,GAAAW,YAAA,IACfP,IAAA,CAAA5C,SAAA,CAAAH,MAAA;QAAAkD,OAAA,EAAAA,CAAA,KAEiBd,YAAA,CAAaD,YAAA;QAAAW,QAAA,EAE3Bb,kBAAA,CAAmBE,YAAA;MAAA,GAHfA,YAAA,CAAAL,cAAyB;MAAAvB,CAAA,OAAA0B,kBAAA;MAAA1B,CAAA,OAAA6B,YAAA;MAAA7B,CAAA,OAAAoC,EAAA;IAAA;MAAAA,EAAA,GAAApC,CAAA;IAAA;IApBxCkC,EAAA,GAAAG,KAAA,CAAAC,SAAA;MAAAC,QAAA,GACEC,IAAA,CAAA7C,KAAA;QAAAqD,MAAA,EAEIR,IAAA,CAAA/C,MAAA;UAAAQ,WAAA;UAAAwC,SAAA,EAEa,GAAA5C,SAAA,gBAA4B;UAAAoD,IAAA,EAClC;UAAA1C,IAAA;UAAAgC,QAAA,EAGJJ;QAAA,C;oBAGM;QAAAM,SAAA,EACA,GAAA5C,SAAA,SAAqB;QAAAqD,eAAA,EAChB;QAAA3C,IAAA,EACX;QAAAgC,QAAA,EAELC,IAAA,CAAA5C,SAAA,CAAAuD,WAAA;UAAAZ,QAAA,EACGpC,WAAA,CAAAiD,GAAA,CAAgBhB,EAEiB;QAAA,C;UAQrCrB,kBAAA,IACCyB,IAAA,CAAA9C,cAAA;QAAA6B,cAAA,EACkBR,kBAAA,CAAAQ,cAAA;QAAAnB,UAAA;QAAAwC,WAAA,EAEH7B,kBAAA,CAAA6B,WAAA;QAAAtC,MAAA,EACL0B,UAAA;QAAAa,mBAAA;MAAA,C;;;;;;;;;;;;;;;;SAjCdX,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useState","useConfig","useTranslation","Button","DocumentDrawer","Popup","PopupList","baseClass","CreateDocumentButton","t0","$","buttonStyle","t1","collections","drawerSlug","label","onSave","size","t2","undefined","config","i18n","t","closeModal","openModal","selectedCollection","setSelectedCollection","length","t3","option","collectionConfig","find","slug","collectionSlug","labels","singular","getCollectionLabel","t4","collection","handleSelect","t5","args","handleSave","collection_0","t6","buttonLabel","t7","_jsxs","_Fragment","children","_jsx","className","margin","onClick","initialData","redirectAfterCreate","buttonLabel_0","collection_1","button","icon","horizontalAlign","ButtonGroup","map"],"sources":["../../../src/elements/CreateDocumentButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useState } from 'react'\n\nimport type { Props as ButtonProps } from '../Button/types.js'\nimport type { DocumentDrawerContextProps } from '../DocumentDrawer/Provider.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { DocumentDrawer } from '../DocumentDrawer/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\n\nconst baseClass = 'create-document-button'\n\nexport type CollectionOption = {\n collectionSlug: string\n /** Initial data to populate the form when creating */\n initialData?: Record<string, unknown>\n /** Optional label override (defaults to collection's singular label) */\n label?: string\n}\n\nexport type CreateDocumentButtonProps = {\n /** Button style */\n buttonStyle?: ButtonProps['buttonStyle']\n /** Collections available for creation */\n collections: CollectionOption[]\n /** Unique slug for the drawer modal */\n drawerSlug: string\n /** Custom button label (defaults to \"Create New\" for multiple, \"Create New {label}\" for single) */\n label?: string\n /** Called when a document is successfully saved */\n onSave?: DocumentDrawerContextProps['onSave']\n /** Button size */\n size?: ButtonProps['size']\n}\n\nexport function CreateDocumentButton({\n buttonStyle = 'pill',\n collections,\n drawerSlug,\n label,\n onSave,\n size = 'medium',\n}: CreateDocumentButtonProps) {\n const { config } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n\n const [selectedCollection, setSelectedCollection] = useState<CollectionOption | null>(null)\n\n if (collections.length === 0) {\n return null\n }\n\n const getCollectionLabel = (option: CollectionOption) => {\n if (option.label) {\n return option.label\n }\n const collectionConfig = config.collections.find((c) => c.slug === option.collectionSlug)\n return getTranslation(collectionConfig?.labels?.singular, i18n) || option.collectionSlug\n }\n\n const handleSelect = (collection: CollectionOption) => {\n setSelectedCollection(collection)\n openModal(drawerSlug)\n }\n\n const handleSave: DocumentDrawerContextProps['onSave'] = (args) => {\n closeModal(drawerSlug)\n return onSave?.(args)\n }\n\n // Single collection - render simple button\n if (collections.length === 1) {\n const collection = collections[0]\n const buttonLabel = label || t('general:createNew')\n\n return (\n <>\n <Button\n buttonStyle={buttonStyle}\n className={baseClass}\n margin={false}\n onClick={() => handleSelect(collection)}\n size={size}\n >\n {buttonLabel}\n </Button>\n {selectedCollection && (\n <DocumentDrawer\n collectionSlug={selectedCollection.collectionSlug}\n drawerSlug={drawerSlug}\n initialData={selectedCollection.initialData}\n onSave={handleSave}\n redirectAfterCreate={false}\n />\n )}\n </>\n )\n }\n\n // Multiple collections - render dropdown\n const buttonLabel = label || t('general:createNew')\n\n return (\n <>\n <Popup\n button={\n <Button\n buttonStyle={buttonStyle}\n className={`${baseClass}__popup-button`}\n icon=\"chevron\"\n size={size}\n >\n {buttonLabel}\n </Button>\n }\n buttonType=\"custom\"\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n >\n <PopupList.ButtonGroup>\n {collections.map((collection) => (\n <PopupList.Button\n key={collection.collectionSlug}\n onClick={() => handleSelect(collection)}\n >\n {getCollectionLabel(collection)}\n </PopupList.Button>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n {selectedCollection && (\n <DocumentDrawer\n collectionSlug={selectedCollection.collectionSlug}\n drawerSlug={drawerSlug}\n initialData={selectedCollection.initialData}\n onSave={handleSave}\n redirectAfterCreate={false}\n />\n )}\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -373,7 +373,7 @@
373
373
  }
374
374
 
375
375
  .react-datepicker__monthPicker {
376
- border-top: 1px solid var(--color-border);
376
+ border-top: var(--stroke-width-small) solid var(--color-border);
377
377
  }
378
378
 
379
379
  .react-datepicker__month-text {
@@ -413,7 +413,7 @@
413
413
  background-color: transparent;
414
414
  padding: var(--spacer-2);
415
415
  padding-bottom: 0;
416
- border-top: 1px solid var(--color-border);
416
+ border-top: var(--stroke-width-small) solid var(--color-border);
417
417
  width: 100%;
418
418
  order: 3;
419
419
  }
@@ -614,13 +614,13 @@
614
614
 
615
615
  .react-datepicker__time-container {
616
616
  float: right;
617
- border-left: 1px solid var(--color-border);
617
+ border-left: var(--stroke-width-small) solid var(--color-border);
618
618
  width: var(--time-column-width);
619
619
 
620
620
  .react-datepicker__time {
621
621
  position: relative;
622
622
  background: transparent;
623
- border-top: 1px solid var(--color-border);
623
+ border-top: var(--stroke-width-small) solid var(--color-border);
624
624
  border-bottom-right-radius: var(--radius-large);
625
625
 
626
626
  .react-datepicker__time-box {
@@ -722,7 +722,7 @@
722
722
 
723
723
  .react-datepicker__today-button {
724
724
  background: var(--color-bg-secondary);
725
- border-top: 1px solid var(--color-border);
725
+ border-top: var(--stroke-width-small) solid var(--color-border);
726
726
  cursor: pointer;
727
727
  text-align: center;
728
728
  font-weight: var(--text-body-medium-strong-font-weight);
@@ -894,7 +894,7 @@
894
894
 
895
895
  .date-time-picker .react-datepicker__time-container {
896
896
  width: auto;
897
- border-top: 1px solid var(--color-border);
897
+ border-top: var(--stroke-width-small) solid var(--color-border);
898
898
  }
899
899
 
900
900
  .date-time-picker .react-datepicker__header--time {
@@ -1,6 +1,10 @@
1
1
  import React from 'react';
2
2
  export type DialogHeaderProps = {
3
3
  readonly children?: React.ReactNode;
4
+ readonly className?: string;
5
+ readonly onClose?: ({ modalSlug }: {
6
+ modalSlug: string;
7
+ }) => void;
4
8
  readonly showClose?: boolean;
5
9
  readonly title?: React.ReactNode;
6
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Dialog/DialogHeader/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4BpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Dialog/DialogHeader/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0CpD,CAAA"}