@payloadcms/ui 4.0.0-internal.5d5a2b2 → 4.0.0-internal.688c4d0

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 (493) hide show
  1. package/dist/css/colors.css +107 -60
  2. package/dist/css/radius.css +1 -3
  3. package/dist/css/theme.css +4 -0
  4. package/dist/css/utilities.css +5 -0
  5. package/dist/elements/APIKeyInput/index.css +92 -0
  6. package/dist/elements/APIKeyInput/index.d.ts +14 -0
  7. package/dist/elements/APIKeyInput/index.d.ts.map +1 -0
  8. package/dist/elements/APIKeyInput/index.js +86 -0
  9. package/dist/elements/APIKeyInput/index.js.map +1 -0
  10. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  11. package/dist/elements/AddNewRelation/index.js +85 -103
  12. package/dist/elements/AddNewRelation/index.js.map +1 -1
  13. package/dist/elements/AppHeader/index.d.ts +2 -1
  14. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  15. package/dist/elements/AppHeader/index.js +7 -27
  16. package/dist/elements/AppHeader/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/ActionsBar/index.css +10 -4
  18. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  19. package/dist/elements/BulkUpload/ActionsBar/index.js +43 -40
  20. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/AddFilesView/index.js +1 -1
  22. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/AddingFilesView/index.css +25 -0
  24. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +1 -1
  25. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  26. package/dist/elements/BulkUpload/AddingFilesView/index.js +1 -1
  27. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  28. package/dist/elements/BulkUpload/EditForm/index.css +9 -0
  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 +1 -1
  32. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  33. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts +1 -1
  34. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  35. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +59 -55
  36. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  37. package/dist/elements/BulkUpload/EditMany/index.css +71 -0
  38. package/dist/elements/BulkUpload/EditMany/index.d.ts +1 -1
  39. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  40. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  41. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  42. package/dist/elements/BulkUpload/FileSidebar/index.css +54 -75
  43. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  44. package/dist/elements/BulkUpload/FileSidebar/index.js +60 -50
  45. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  46. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  47. package/dist/elements/BulkUpload/FormsManager/index.js +13 -0
  48. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  49. package/dist/elements/Button/index.css +8 -0
  50. package/dist/elements/Chip/index.css +1 -1
  51. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  52. package/dist/elements/CodeEditor/CodeEditor.js +19 -0
  53. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  54. package/dist/elements/ColumnSelector/index.js +1 -1
  55. package/dist/elements/ColumnSelector/index.js.map +1 -1
  56. package/dist/elements/Combobox/index.css +9 -8
  57. package/dist/elements/ConfirmationModal/index.css +7 -0
  58. package/dist/elements/ConfirmationModal/index.d.ts +1 -0
  59. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  60. package/dist/elements/ConfirmationModal/index.js +7 -3
  61. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  62. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  63. package/dist/elements/DatePicker/DatePicker.js +4 -2
  64. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  65. package/dist/elements/DatePicker/index.css +5 -0
  66. package/dist/elements/DatePicker/index.js +1 -1
  67. package/dist/elements/DatePicker/index.js.map +1 -1
  68. package/dist/elements/DeleteMany/index.d.ts +3 -26
  69. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  70. package/dist/elements/DeleteMany/index.js +1 -95
  71. package/dist/elements/DeleteMany/index.js.map +1 -1
  72. package/dist/elements/Dialog/DialogModal/index.d.ts +1 -1
  73. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  74. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  75. package/dist/elements/Dialog/index.css +4 -0
  76. package/dist/elements/DocumentControls/index.css +10 -0
  77. package/dist/elements/DocumentControls/index.d.ts +6 -0
  78. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  79. package/dist/elements/DocumentControls/index.js +7 -6
  80. package/dist/elements/DocumentControls/index.js.map +1 -1
  81. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  82. package/dist/elements/DocumentDrawer/DrawerContent.js +10 -6
  83. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  84. package/dist/elements/DocumentDrawer/DrawerHeader/index.css +76 -4
  85. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +7 -1
  86. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  87. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +148 -87
  88. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  89. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  90. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  91. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  92. package/dist/elements/DocumentFields/index.css +61 -2
  93. package/dist/elements/DraggableSortable/index.js.map +1 -1
  94. package/dist/elements/Drawer/index.css +57 -26
  95. package/dist/elements/Drawer/index.d.ts +25 -0
  96. package/dist/elements/Drawer/index.d.ts.map +1 -1
  97. package/dist/elements/Drawer/index.js +133 -54
  98. package/dist/elements/Drawer/index.js.map +1 -1
  99. package/dist/elements/Drawer/types.d.ts +1 -0
  100. package/dist/elements/Drawer/types.d.ts.map +1 -1
  101. package/dist/elements/Drawer/types.js.map +1 -1
  102. package/dist/elements/EditMany/DrawerContent.d.ts +1 -1
  103. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  104. package/dist/elements/EditMany/DrawerContent.js +76 -71
  105. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  106. package/dist/elements/EditMany/index.css +71 -0
  107. package/dist/elements/EditMany/index.d.ts +9 -11
  108. package/dist/elements/EditMany/index.d.ts.map +1 -1
  109. package/dist/elements/EditMany/index.js +2 -40
  110. package/dist/elements/EditMany/index.js.map +1 -1
  111. package/dist/elements/FieldSelect/index.css +3 -0
  112. package/dist/elements/FileDetails/DraggableFileDetails/index.css +32 -0
  113. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +1 -1
  114. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  115. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -18
  116. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  117. package/dist/elements/GroupByControl/index.d.ts.map +1 -1
  118. package/dist/elements/GroupByControl/index.js +5 -6
  119. package/dist/elements/GroupByControl/index.js.map +1 -1
  120. package/dist/elements/Hierarchy/Drawer/index.css +3 -21
  121. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +1 -1
  122. package/dist/elements/Hierarchy/Drawer/index.js +5 -3
  123. package/dist/elements/Hierarchy/Drawer/index.js.map +1 -1
  124. package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +36 -0
  125. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +1 -1
  126. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  127. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -1
  128. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  129. package/dist/elements/Hierarchy/Field/index.client.d.ts +1 -1
  130. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
  131. package/dist/elements/Hierarchy/Field/index.client.js +5 -2
  132. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  133. package/dist/elements/Hierarchy/Field/index.css +37 -0
  134. package/dist/elements/Hierarchy/MoveMany/index.d.ts +0 -1
  135. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  136. package/dist/elements/Hierarchy/MoveMany/index.js +0 -1
  137. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  138. package/dist/elements/Hierarchy/Tree/LoadMore/index.css +27 -0
  139. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +1 -1
  140. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -1
  141. package/dist/elements/Hierarchy/Tree/LoadMore/index.js +1 -1
  142. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -1
  143. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
  144. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +36 -16
  145. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  146. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  147. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +20 -15
  148. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  149. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  150. package/dist/elements/ListControls/index.css +5 -0
  151. package/dist/elements/ListControls/index.d.ts.map +1 -1
  152. package/dist/elements/ListControls/index.js +1 -1
  153. package/dist/elements/ListControls/index.js.map +1 -1
  154. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  155. package/dist/elements/ListDrawer/DrawerContent.js +12 -6
  156. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  157. package/dist/elements/ListSelection/index.css +1 -1
  158. package/dist/elements/LoadMoreRow/index.css +34 -0
  159. package/dist/elements/LoadMoreRow/index.d.ts +1 -1
  160. package/dist/elements/LoadMoreRow/index.d.ts.map +1 -1
  161. package/dist/elements/LoadMoreRow/index.js +4 -8
  162. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  163. package/dist/elements/Loading/index.css +28 -74
  164. package/dist/elements/Loading/index.d.ts.map +1 -1
  165. package/dist/elements/Loading/index.js +16 -60
  166. package/dist/elements/Loading/index.js.map +1 -1
  167. package/dist/elements/Localizer/index.d.ts.map +1 -1
  168. package/dist/elements/Localizer/index.js +3 -4
  169. package/dist/elements/Localizer/index.js.map +1 -1
  170. package/dist/elements/MenuSeparator/index.d.ts +4 -0
  171. package/dist/elements/MenuSeparator/index.d.ts.map +1 -0
  172. package/dist/elements/MenuSeparator/index.js +10 -0
  173. package/dist/elements/MenuSeparator/index.js.map +1 -0
  174. package/dist/elements/Nav/index.d.ts.map +1 -1
  175. package/dist/elements/Nav/index.js +4 -23
  176. package/dist/elements/Nav/index.js.map +1 -1
  177. package/dist/elements/Pill/index.css +1 -1
  178. package/dist/elements/PillSelector/index.css +1 -1
  179. package/dist/elements/Popup/PopupButtonList/index.css +43 -4
  180. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  181. package/dist/elements/Popup/PopupButtonList/index.js +1 -0
  182. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  183. package/dist/elements/Popup/PopupGroupLabel/index.css +12 -0
  184. package/dist/elements/Popup/index.d.ts +7 -0
  185. package/dist/elements/Popup/index.d.ts.map +1 -1
  186. package/dist/elements/Popup/index.js +125 -59
  187. package/dist/elements/Popup/index.js.map +1 -1
  188. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts +13 -0
  189. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts.map +1 -0
  190. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js +41 -0
  191. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js.map +1 -0
  192. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +1 -0
  193. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  194. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  195. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  196. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  197. package/dist/elements/PublishButton/index.js +4 -5
  198. package/dist/elements/PublishButton/index.js.map +1 -1
  199. package/dist/elements/ReactSelect/MultiValue/index.css +1 -1
  200. package/dist/elements/ReactSelect/index.css +53 -52
  201. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  202. package/dist/elements/ReactSelect/index.js +87 -11
  203. package/dist/elements/ReactSelect/index.js.map +1 -1
  204. package/dist/elements/ReactSelect/types.d.ts +6 -1
  205. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  206. package/dist/elements/ReactSelect/types.js.map +1 -1
  207. package/dist/elements/RenderTitle/index.css +10 -0
  208. package/dist/elements/RenderTitle/index.d.ts +5 -0
  209. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  210. package/dist/elements/RenderTitle/index.js +52 -27
  211. package/dist/elements/RenderTitle/index.js.map +1 -1
  212. package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
  213. package/dist/elements/SchedulePublishButton/index.js +6 -1
  214. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  215. package/dist/elements/SelectMany/index.js +1 -1
  216. package/dist/elements/SelectMany/index.js.map +1 -1
  217. package/dist/elements/Spinner/index.css +16 -0
  218. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  219. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
  220. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  221. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  222. package/dist/elements/Table/OrderableRow.js +1 -1
  223. package/dist/elements/Table/OrderableRow.js.map +1 -1
  224. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  225. package/dist/elements/Table/RelationshipProvider/index.js +1 -0
  226. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  227. package/dist/elements/Table/index.css +17 -10
  228. package/dist/elements/Tabs/index.css +100 -0
  229. package/dist/elements/Tabs/index.d.ts +32 -0
  230. package/dist/elements/Tabs/index.d.ts.map +1 -0
  231. package/dist/elements/Tabs/index.js +62 -0
  232. package/dist/elements/Tabs/index.js.map +1 -0
  233. package/dist/elements/TimezonePicker/index.css +58 -24
  234. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  235. package/dist/elements/TimezonePicker/index.js +31 -4
  236. package/dist/elements/TimezonePicker/index.js.map +1 -1
  237. package/dist/elements/Tooltip/index.css +20 -4
  238. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  239. package/dist/elements/Tooltip/index.js +71 -3
  240. package/dist/elements/Tooltip/index.js.map +1 -1
  241. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  242. package/dist/elements/UnpublishButton/index.js +5 -13
  243. package/dist/elements/UnpublishButton/index.js.map +1 -1
  244. package/dist/elements/UserMenu/LanguageMenu/index.d.ts +6 -0
  245. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -0
  246. package/dist/elements/UserMenu/LanguageMenu/index.js +133 -0
  247. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -0
  248. package/dist/elements/UserMenu/SettingsMenu/index.d.ts +11 -0
  249. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -0
  250. package/dist/elements/UserMenu/SettingsMenu/index.js +114 -0
  251. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -0
  252. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts +6 -0
  253. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -0
  254. package/dist/elements/UserMenu/SubMenuHeader/index.js +34 -0
  255. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -0
  256. package/dist/elements/UserMenu/ThemeMenu/index.d.ts +6 -0
  257. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -0
  258. package/dist/elements/UserMenu/ThemeMenu/index.js +145 -0
  259. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -0
  260. package/dist/elements/UserMenu/index.css +80 -0
  261. package/dist/elements/UserMenu/index.d.ts +9 -0
  262. package/dist/elements/UserMenu/index.d.ts.map +1 -0
  263. package/dist/elements/UserMenu/index.js +201 -0
  264. package/dist/elements/UserMenu/index.js.map +1 -0
  265. package/dist/elements/WhereBuilder/Condition/index.css +1 -1
  266. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  267. package/dist/elements/WhereBuilder/Condition/index.js +3 -0
  268. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  269. package/dist/exports/client/index.d.ts +12 -1
  270. package/dist/exports/client/index.d.ts.map +1 -1
  271. package/dist/exports/client/index.js +2 -2
  272. package/dist/exports/client/index.js.map +3 -3
  273. package/dist/exports/shared/index.js +2 -2
  274. package/dist/exports/shared/index.js.map +2 -2
  275. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +1 -49
  276. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.d.ts.map +1 -1
  277. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +27 -20
  278. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  279. package/dist/fields/Blocks/BlockSelector/index.css +17 -3
  280. package/dist/fields/Blocks/BlockSelector/index.js +1 -1
  281. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  282. package/dist/fields/Blocks/index.d.ts.map +1 -1
  283. package/dist/fields/Blocks/index.js +6 -11
  284. package/dist/fields/Blocks/index.js.map +1 -1
  285. package/dist/fields/Group/index.css +1 -1
  286. package/dist/fields/Join/index.js +1 -1
  287. package/dist/fields/Join/index.js.map +1 -1
  288. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +3 -3
  289. package/dist/fields/Row/index.d.ts +1 -1
  290. package/dist/fields/Tabs/Tab/index.d.ts +0 -1
  291. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  292. package/dist/fields/Tabs/Tab/index.js +12 -23
  293. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  294. package/dist/fields/Tabs/index.d.ts.map +1 -1
  295. package/dist/fields/Tabs/index.js +37 -37
  296. package/dist/fields/Tabs/index.js.map +1 -1
  297. package/dist/fields/Upload/HasMany/index.css +4 -0
  298. package/dist/forms/RenderFields/RenderField.d.ts +1 -1
  299. package/dist/forms/RenderFields/RenderField.js +2 -1
  300. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  301. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -1
  302. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  303. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  304. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  305. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  306. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  307. package/dist/forms/useField/index.js.map +1 -1
  308. package/dist/icons/Dots/index.css +4 -4
  309. package/dist/icons/Gear/index.d.ts.map +1 -1
  310. package/dist/icons/Gear/index.js +8 -1
  311. package/dist/icons/Gear/index.js.map +1 -1
  312. package/dist/icons/InteractionEnter/index.css +5 -0
  313. package/dist/icons/InteractionEnter/index.d.ts +11 -0
  314. package/dist/icons/InteractionEnter/index.d.ts.map +1 -0
  315. package/dist/icons/InteractionEnter/index.js +25 -0
  316. package/dist/icons/InteractionEnter/index.js.map +1 -0
  317. package/dist/icons/{Write → Key}/index.css +1 -1
  318. package/dist/icons/Key/index.d.ts +7 -0
  319. package/dist/icons/Key/index.d.ts.map +1 -0
  320. package/dist/icons/Key/index.js +24 -0
  321. package/dist/icons/Key/index.js.map +1 -0
  322. package/dist/icons/LogOut/index.js +2 -2
  323. package/dist/icons/LogOut/index.js.map +1 -1
  324. package/dist/icons/Schedule/index.d.ts.map +1 -1
  325. package/dist/icons/Schedule/index.js +38 -39
  326. package/dist/icons/Schedule/index.js.map +1 -1
  327. package/dist/icons/VariableColor/index.css +5 -0
  328. package/dist/icons/VariableColor/index.d.ts +7 -0
  329. package/dist/icons/VariableColor/index.d.ts.map +1 -0
  330. package/dist/icons/VariableColor/index.js +23 -0
  331. package/dist/icons/VariableColor/index.js.map +1 -0
  332. package/dist/icons/WarningTriangle/index.css +5 -0
  333. package/dist/icons/WarningTriangle/index.d.ts +6 -0
  334. package/dist/icons/WarningTriangle/index.d.ts.map +1 -0
  335. package/dist/icons/WarningTriangle/index.js +21 -0
  336. package/dist/icons/WarningTriangle/index.js.map +1 -0
  337. package/dist/icons/Write/index.d.ts +0 -1
  338. package/dist/icons/Write/index.d.ts.map +1 -1
  339. package/dist/icons/Write/index.js +1 -2
  340. package/dist/icons/Write/index.js.map +1 -1
  341. package/dist/providers/Auth/index.d.ts +3 -1
  342. package/dist/providers/Auth/index.d.ts.map +1 -1
  343. package/dist/providers/Auth/index.js +8 -3
  344. package/dist/providers/Auth/index.js.map +1 -1
  345. package/dist/providers/Config/index.js.map +1 -1
  346. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  347. package/dist/providers/DocumentInfo/index.js +4 -0
  348. package/dist/providers/DocumentInfo/index.js.map +1 -1
  349. package/dist/providers/DocumentInfo/types.d.ts +4 -0
  350. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  351. package/dist/providers/DocumentInfo/types.js.map +1 -1
  352. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  353. package/dist/providers/ListQuery/index.js +1 -8
  354. package/dist/providers/ListQuery/index.js.map +1 -1
  355. package/dist/providers/Root/index.d.ts.map +1 -1
  356. package/dist/providers/Root/index.js +27 -24
  357. package/dist/providers/Root/index.js.map +1 -1
  358. package/dist/providers/TableColumns/RenderDefaultCell/index.css +1 -0
  359. package/dist/providers/Theme/index.d.ts +17 -2
  360. package/dist/providers/Theme/index.d.ts.map +1 -1
  361. package/dist/providers/Theme/index.js +126 -75
  362. package/dist/providers/Theme/index.js.map +1 -1
  363. package/dist/styles.css +1 -1
  364. package/dist/templates/Default/index.d.ts.map +1 -1
  365. package/dist/templates/Default/index.js +9 -1
  366. package/dist/templates/Default/index.js.map +1 -1
  367. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -2
  368. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  369. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -2
  370. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  371. package/dist/utilities/copyDataFromLocale.js +1 -1
  372. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  373. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  374. package/dist/utilities/formatDocTitle/formatDateTitle.js +1 -1
  375. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  376. package/dist/utilities/getHasScheduledPublish.d.ts +12 -0
  377. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -0
  378. package/dist/utilities/getHasScheduledPublish.js +38 -0
  379. package/dist/utilities/getHasScheduledPublish.js.map +1 -0
  380. package/dist/utilities/getVersions.d.ts.map +1 -1
  381. package/dist/utilities/getVersions.js +1 -21
  382. package/dist/utilities/getVersions.js.map +1 -1
  383. package/dist/utilities/renderTable.js +1 -1
  384. package/dist/utilities/renderTable.js.map +1 -1
  385. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  386. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  387. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  388. package/dist/views/Account/ResetPreferences/index.js +1 -0
  389. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  390. package/dist/views/Account/Settings/index.css +30 -13
  391. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  392. package/dist/views/Account/ToggleTheme/index.js +31 -47
  393. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  394. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  395. package/dist/views/Document/index.d.ts.map +1 -1
  396. package/dist/views/Document/index.js +10 -1
  397. package/dist/views/Document/index.js.map +1 -1
  398. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  399. package/dist/views/Edit/Auth/APIKey.js +10 -32
  400. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  401. package/dist/views/Edit/Auth/index.css +0 -67
  402. package/dist/views/Edit/index.d.ts.map +1 -1
  403. package/dist/views/Edit/index.js +62 -48
  404. package/dist/views/Edit/index.js.map +1 -1
  405. package/dist/views/HierarchyList/DocumentListSelection/index.js +4 -4
  406. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  407. package/dist/views/List/ListHeader/index.css +23 -1
  408. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  409. package/dist/views/List/ListHeader/index.js +0 -1
  410. package/dist/views/List/ListHeader/index.js.map +1 -1
  411. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  412. package/dist/views/List/ListSelection/index.js +80 -29
  413. package/dist/views/List/ListSelection/index.js.map +1 -1
  414. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  415. package/dist/views/List/handleGroupBy.js +9 -0
  416. package/dist/views/List/handleGroupBy.js.map +1 -1
  417. package/dist/views/List/index.client.d.ts.map +1 -1
  418. package/dist/views/List/index.client.js +4 -3
  419. package/dist/views/List/index.client.js.map +1 -1
  420. package/dist/views/List/index.css +15 -0
  421. package/dist/views/List/index.d.ts.map +1 -1
  422. package/dist/views/List/index.js +11 -4
  423. package/dist/views/List/index.js.map +1 -1
  424. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  425. package/dist/views/List/renderListViewSlots.js +8 -0
  426. package/dist/views/List/renderListViewSlots.js.map +1 -1
  427. package/dist/views/Logout/LogoutClient.d.ts +14 -0
  428. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  429. package/dist/views/Logout/LogoutClient.js +38 -32
  430. package/dist/views/Logout/LogoutClient.js.map +1 -1
  431. package/dist/views/Logout/index.d.ts.map +1 -1
  432. package/dist/views/Logout/index.js +7 -2
  433. package/dist/views/Logout/index.js.map +1 -1
  434. package/dist/views/Verify/index.client.d.ts +4 -0
  435. package/dist/views/Verify/index.client.d.ts.map +1 -1
  436. package/dist/views/Verify/index.client.js +81 -0
  437. package/dist/views/Verify/index.client.js.map +1 -1
  438. package/dist/views/Verify/index.css +38 -0
  439. package/dist/views/Verify/index.d.ts +1 -1
  440. package/dist/views/Verify/index.d.ts.map +1 -1
  441. package/dist/views/Verify/index.js +13 -19
  442. package/dist/views/Verify/index.js.map +1 -1
  443. package/dist/views/Version/Default/index.css +3 -5
  444. package/dist/views/Version/Default/index.d.ts.map +1 -1
  445. package/dist/views/Version/Default/index.js +7 -28
  446. package/dist/views/Version/Default/index.js.map +1 -1
  447. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
  448. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  449. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  450. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  451. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
  452. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  453. package/dist/views/Version/Restore/index.css +2 -2
  454. package/dist/views/Version/SelectComparison/VersionDrawer/index.css +5 -0
  455. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts +1 -1
  456. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  457. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +1 -2
  458. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  459. package/dist/views/Version/SelectComparison/index.css +5 -0
  460. package/dist/views/Version/SelectComparison/index.d.ts +1 -1
  461. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  462. package/dist/views/Version/SelectComparison/index.js +1 -1
  463. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  464. package/dist/views/Version/SelectLocales/index.d.ts +1 -2
  465. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  466. package/dist/views/Version/SelectLocales/index.js +83 -32
  467. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  468. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  469. package/dist/views/Versions/index.css +20 -13
  470. package/dist/views/Versions/index.d.ts +1 -1
  471. package/dist/views/Versions/index.d.ts.map +1 -1
  472. package/dist/views/Versions/index.js +3 -26
  473. package/dist/views/Versions/index.js.map +1 -1
  474. package/package.json +5 -5
  475. package/dist/elements/BulkUpload/AddingFilesView/index.scss +0 -25
  476. package/dist/elements/BulkUpload/EditForm/index.scss +0 -11
  477. package/dist/elements/BulkUpload/EditMany/index.scss +0 -171
  478. package/dist/elements/EditMany/index.scss +0 -182
  479. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +0 -35
  480. package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
  481. package/dist/elements/Hierarchy/Field/index.scss +0 -41
  482. package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
  483. package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
  484. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
  485. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
  486. package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
  487. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
  488. package/dist/elements/LoadMoreRow/index.scss +0 -45
  489. package/dist/fields/Tabs/Tab/index.css +0 -82
  490. package/dist/views/Unauthorized/index.scss +0 -14
  491. package/dist/views/Verify/index.scss +0 -18
  492. package/dist/views/Version/SelectComparison/VersionDrawer/index.scss +0 -18
  493. package/dist/views/Version/SelectComparison/index.scss +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","useRouter","useSearchParams","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","shouldPermanentlyDelete","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","hasDeletePermission","hasDeletePermissionFromProps","hasTrashPermission","hasTrashPermissionFromProps","modalPrefix","slug","trash","undefined","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","Boolean","delete","selectingAll","AllAvailable","ids","isTrashView","canShowDeleteButton","None","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t1","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","apiRoute","path","limit","select","permanentlyDelete","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouter, useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { shouldPermanentlyDelete } from '../../utilities/shouldPermanentlyDelete.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * Whether the user has permission to permanently delete documents.\n * If provided, uses this instead of reading from auth context.\n */\n hasDeletePermission?: boolean\n /**\n * Whether the user has permission to trash (soft delete) documents.\n * If provided, uses this instead of reading from auth context.\n */\n hasTrashPermission?: boolean\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const {\n collection: { slug, trash } = {},\n hasDeletePermission: hasDeletePermissionFromProps,\n hasTrashPermission: hasTrashPermissionFromProps,\n modalPrefix,\n } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n\n const hasDeletePermission =\n hasDeletePermissionFromProps !== undefined\n ? hasDeletePermissionFromProps\n : Boolean(collectionPermissions?.delete)\n const hasTrashPermission =\n hasTrashPermissionFromProps !== undefined ? hasTrashPermissionFromProps : hasDeletePermission\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n const isTrashView = viewType === 'trash'\n const canShowDeleteButton = isTrashView\n ? hasDeletePermission\n : hasDeletePermission || hasTrashPermission\n\n if (selectAll === SelectAllStatus.None || !canShowDeleteButton) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n hasDeletePermission={hasDeletePermission}\n hasTrashPermission={hasTrashPermission}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * Whether the user has permission to permanently delete documents.\n * When false, the \"delete permanently\" checkbox will be hidden.\n */\n hasDeletePermission?: boolean\n /**\n * Whether the user has permission to trash (soft delete) documents.\n * When false and hasDeletePermission is true, only permanent delete is available.\n */\n hasTrashPermission?: boolean\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n hasDeletePermission = false,\n hasTrashPermission = false,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const permanentlyDelete = shouldPermanentlyDelete({\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission: Boolean(collectionConfig.trash) && hasTrashPermission,\n isTrashView: viewType === 'trash',\n })\n\n const deleteManyResponse = permanentlyDelete\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (!permanentlyDelete) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || (hasDeletePermission && deletePermanently)) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission,\n locale,\n search,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash && hasTrashPermission ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && hasTrashPermission && hasDeletePermission && viewType !== 'trash' && (\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","getTranslation","formatAdminURL","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useConfig","useLocale","useTranslation","requests","shouldPermanentlyDelete","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","afterDelete","hasDeletePermission","hasTrashPermission","modalPrefix","search","selections","trash","viewType","where","t","config","collections","routes","api","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","length","result","relationTo","all","ids","entries","collectionConfig","find","slug","whereConstraint","and","Array","isArray","deletedAt","exists","id","not_equals","in","url","apiRoute","path","stringify","limit","select","addQueryPrefix","permanentlyDelete","Boolean","isTrashView","deleteManyResponse","delete","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","successKey","success","count","label","errors","error","message","description","map","join","deletedCount","doc","totalCount","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","undefined","collectionLabel","newLabel","_jsxs","Fragment","_jsx","className","onClick","elements","0","children","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { shouldPermanentlyDelete } from '../../utilities/shouldPermanentlyDelete.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\nexport type DeleteManyProps = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * Whether the user has permission to permanently delete documents.\n * When false, the \"delete permanently\" checkbox will be hidden.\n */\n hasDeletePermission?: boolean\n /**\n * Whether the user has permission to trash (soft delete) documents.\n * When false and hasDeletePermission is true, only permanent delete is available.\n */\n hasTrashPermission?: boolean\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany({\n afterDelete,\n hasDeletePermission = false,\n hasTrashPermission = false,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteManyProps) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = formatAdminURL({\n apiRoute: api,\n path: `/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n select: {},\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`,\n })\n\n const permanentlyDelete = shouldPermanentlyDelete({\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission: Boolean(collectionConfig.trash) && hasTrashPermission,\n isTrashView: viewType === 'trash',\n })\n\n const deleteManyResponse = permanentlyDelete\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (!permanentlyDelete) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || (hasDeletePermission && deletePermanently)) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n hasDeletePermission,\n hasTrashPermission,\n locale,\n search,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash && hasTrashPermission ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && hasTrashPermission && hasDeletePermission && viewType !== 'trash' && (\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@ import { Modal } from '@faceless-ui/modal';
3
3
  import React from 'react';
4
4
  import '../index.css';
5
5
  type FocusTrapOptions = ComponentProps<typeof Modal>['focusTrapOptions'];
6
- export type DialogSize = 'medium' | 'small';
6
+ export type DialogSize = 'large' | 'medium' | 'small';
7
7
  export type DialogModalProps = {
8
8
  readonly children?: React.ReactNode;
9
9
  readonly className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Dialog/DialogModal/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAA8B,MAAM,OAAO,CAAA;AAIlD,OAAO,cAAc,CAAA;AAErB,KAAK,gBAAgB,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAIxE,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8ClD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Dialog/DialogModal/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,KAA8B,MAAM,OAAO,CAAA;AAIlD,OAAO,cAAc,CAAA;AAErB,KAAK,gBAAgB,GAAG,cAAc,CAAC,OAAO,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAA;AAIxE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AAErD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAC5C,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8ClD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","React","useEffect","useState","drawerZBase","useDrawerDepth","DialogContext","baseClass","DialogModal","t0","$","slug","children","className","closeOnBlur","t1","closeOnEsc","t2","focusTrapOptions","size","t3","undefined","isConfirming","setConfirming","drawerDepth","t4","t5","handler","_temp","document","addEventListener","removeEventListener","t6","t7","t8","filter","Boolean","_jsx","value","style","zIndex","join","role","e","key","stopImmediatePropagation","preventDefault"],"sources":["../../../../src/elements/Dialog/DialogModal/index.tsx"],"sourcesContent":["'use client'\nimport type { ComponentProps } from 'react'\n\nimport { Modal } from '@faceless-ui/modal'\nimport React, { useEffect, useState } from 'react'\n\nimport { drawerZBase, useDrawerDepth } from '../../Drawer/index.js'\nimport { DialogContext } from '../context.js'\nimport '../index.css'\n\ntype FocusTrapOptions = ComponentProps<typeof Modal>['focusTrapOptions']\n\nconst baseClass = 'dialog'\n\nexport type DialogSize = 'medium' | 'small'\n\nexport type DialogModalProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly closeOnBlur?: boolean\n readonly closeOnEsc?: boolean\n readonly focusTrapOptions?: FocusTrapOptions\n readonly size?: DialogSize\n readonly slug: string\n}\n\nexport const DialogModal: React.FC<DialogModalProps> = ({\n slug,\n children,\n className,\n closeOnBlur = false,\n closeOnEsc = true,\n focusTrapOptions,\n size = 'small',\n}) => {\n const [isConfirming, setConfirming] = useState(false)\n const drawerDepth = useDrawerDepth()\n\n useEffect(() => {\n if (closeOnEsc) {\n return\n }\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopImmediatePropagation()\n e.preventDefault()\n }\n }\n\n // Capture phase fires before ModalProvider's bubble-phase listener\n document.addEventListener('keydown', handler, true)\n return () => document.removeEventListener('keydown', handler, true)\n }, [closeOnEsc])\n\n return (\n <DialogContext value={{ slug, isConfirming, setConfirming }}>\n <Modal\n closeOnBlur={closeOnBlur}\n focusTrapOptions={focusTrapOptions}\n slug={slug}\n style={{ zIndex: drawerZBase + drawerDepth + 1 }}\n >\n <div\n className={[baseClass, `${baseClass}--${size}`, className].filter(Boolean).join(' ')}\n role=\"document\"\n >\n {children}\n </div>\n </Modal>\n </DialogContext>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,KAAK,QAAQ;AACtB,OAAOC,KAAA,IAASC,SAAS,EAAEC,QAAQ,QAAQ;AAE3C,SAASC,WAAW,EAAEC,cAAc,QAAQ;AAC5C,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAIP,MAAMC,SAAA,GAAY;AAclB,OAAO,MAAMC,WAAA,GAA0CC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,IAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,WAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,gBAAA;IAAAC,IAAA,EAAAC;EAAA,IAAAX,EAQvD;EAJC,MAAAK,WAAA,GAAAC,EAAmB,KAAAM,SAAA,WAAnBN,EAAmB;EACnB,MAAAC,UAAA,GAAAC,EAAiB,KAAAI,SAAA,UAAjBJ,EAAiB;EAEjB,MAAAE,IAAA,GAAAC,EAAc,KAAAC,SAAA,GAAP,OAAO,GAAdD,EAAc;EAEd,OAAAE,YAAA,EAAAC,aAAA,IAAsCpB,QAAA,MAAS;EAC/C,MAAAqB,WAAA,GAAoBnB,cAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAM,UAAA;IAEVS,EAAA,GAAAA,CAAA;MAAA,IACJT,UAAA;QAAA;MAAA;MAIJ,MAAAW,OAAA,GAAAC,KAAA;MAQAC,QAAA,CAAAC,gBAAA,CAA0B,WAAWH,OAAA,MAAS;MAAA,aACjCE,QAAA,CAAAE,mBAAA,CAA6B,WAAWJ,OAAA,MAAS;IAAA;IAC7DD,EAAA,IAACV,UAAA;IAAWN,CAAA,MAAAM,UAAA;IAAAN,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAD,EAAA,GAAAf,CAAA;IAAAgB,EAAA,GAAAhB,CAAA;EAAA;EAffR,SAAA,CAAUuB,EAeV,EAAGC,EAAY;EAAA,IAAAM,EAAA;EAAA,IAAAtB,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAI,WAAA,IAAAJ,CAAA,QAAAc,WAAA,IAAAd,CAAA,QAAAQ,gBAAA,IAAAR,CAAA,QAAAY,YAAA,IAAAZ,CAAA,QAAAS,IAAA,IAAAT,CAAA,SAAAC,IAAA;IAWgB,MAAAsB,EAAA,MAAA1B,SAAA,KAAiBY,IAAA,EAAM;IAAA,IAAAe,EAAA;IAAA,IAAAxB,CAAA,SAAAG,SAAA,IAAAH,CAAA,SAAAuB,EAAA;MAAnCC,EAAA,IAAA3B,SAAA,EAAY0B,EAAuB,EAAEpB,SAAA,EAAAsB,MAAA,CAAAC,OAAkB;MAAA1B,CAAA,OAAAG,SAAA;MAAAH,CAAA,OAAAuB,EAAA;MAAAvB,CAAA,OAAAwB,EAAA;IAAA;MAAAA,EAAA,GAAAxB,CAAA;IAAA;IARxEsB,EAAA,GAAAK,IAAA,CAAA/B,aAAA;MAAAgC,KAAA;QAAA3B,IAAA;QAAAW,YAAA;QAAAC;MAAA;MAAAX,QAAA,EACEyB,IAAA,CAAArC,KAAA;QAAAc,WAAA;QAAAI,gBAAA;QAAAP,IAAA;QAAA4B,KAAA;UAAAC,MAAA,EAImBpC,WAAA,GAAcoB,WAAA;QAAc;QAAAZ,QAAA,EAE7CyB,IAAA,CAAC;UAAAxB,SAAA,EACYqB,EAAuD,CAAAO,IAAA,CAAc;UAAAC,IAAA,EAC3E;UAAA9B;QAAA,C;;;;;;;;;;;;;;;SATXoB,E;CAgBJ;AA9CuD,SAAAJ,MAAAe,CAAA;EAAA,IAkB7CA,CAAA,CAAAC,GAAA,KAAU;IACZD,CAAA,CAAAE,wBAAA,CAA0B;IAC1BF,CAAA,CAAAG,cAAA,CAAgB;EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Modal","React","useEffect","useState","drawerZBase","useDrawerDepth","DialogContext","baseClass","DialogModal","t0","$","slug","children","className","closeOnBlur","t1","closeOnEsc","t2","focusTrapOptions","size","t3","undefined","isConfirming","setConfirming","drawerDepth","t4","t5","handler","_temp","document","addEventListener","removeEventListener","t6","t7","t8","filter","Boolean","_jsx","value","style","zIndex","join","role","e","key","stopImmediatePropagation","preventDefault"],"sources":["../../../../src/elements/Dialog/DialogModal/index.tsx"],"sourcesContent":["'use client'\nimport type { ComponentProps } from 'react'\n\nimport { Modal } from '@faceless-ui/modal'\nimport React, { useEffect, useState } from 'react'\n\nimport { drawerZBase, useDrawerDepth } from '../../Drawer/index.js'\nimport { DialogContext } from '../context.js'\nimport '../index.css'\n\ntype FocusTrapOptions = ComponentProps<typeof Modal>['focusTrapOptions']\n\nconst baseClass = 'dialog'\n\nexport type DialogSize = 'large' | 'medium' | 'small'\n\nexport type DialogModalProps = {\n readonly children?: React.ReactNode\n readonly className?: string\n readonly closeOnBlur?: boolean\n readonly closeOnEsc?: boolean\n readonly focusTrapOptions?: FocusTrapOptions\n readonly size?: DialogSize\n readonly slug: string\n}\n\nexport const DialogModal: React.FC<DialogModalProps> = ({\n slug,\n children,\n className,\n closeOnBlur = false,\n closeOnEsc = true,\n focusTrapOptions,\n size = 'small',\n}) => {\n const [isConfirming, setConfirming] = useState(false)\n const drawerDepth = useDrawerDepth()\n\n useEffect(() => {\n if (closeOnEsc) {\n return\n }\n\n const handler = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.stopImmediatePropagation()\n e.preventDefault()\n }\n }\n\n // Capture phase fires before ModalProvider's bubble-phase listener\n document.addEventListener('keydown', handler, true)\n return () => document.removeEventListener('keydown', handler, true)\n }, [closeOnEsc])\n\n return (\n <DialogContext value={{ slug, isConfirming, setConfirming }}>\n <Modal\n closeOnBlur={closeOnBlur}\n focusTrapOptions={focusTrapOptions}\n slug={slug}\n style={{ zIndex: drawerZBase + drawerDepth + 1 }}\n >\n <div\n className={[baseClass, `${baseClass}--${size}`, className].filter(Boolean).join(' ')}\n role=\"document\"\n >\n {children}\n </div>\n </Modal>\n </DialogContext>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,KAAK,QAAQ;AACtB,OAAOC,KAAA,IAASC,SAAS,EAAEC,QAAQ,QAAQ;AAE3C,SAASC,WAAW,EAAEC,cAAc,QAAQ;AAC5C,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAIP,MAAMC,SAAA,GAAY;AAclB,OAAO,MAAMC,WAAA,GAA0CC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,IAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,WAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,gBAAA;IAAAC,IAAA,EAAAC;EAAA,IAAAX,EAQvD;EAJC,MAAAK,WAAA,GAAAC,EAAmB,KAAAM,SAAA,WAAnBN,EAAmB;EACnB,MAAAC,UAAA,GAAAC,EAAiB,KAAAI,SAAA,UAAjBJ,EAAiB;EAEjB,MAAAE,IAAA,GAAAC,EAAc,KAAAC,SAAA,GAAP,OAAO,GAAdD,EAAc;EAEd,OAAAE,YAAA,EAAAC,aAAA,IAAsCpB,QAAA,MAAS;EAC/C,MAAAqB,WAAA,GAAoBnB,cAAA;EAAA,IAAAoB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAM,UAAA;IAEVS,EAAA,GAAAA,CAAA;MAAA,IACJT,UAAA;QAAA;MAAA;MAIJ,MAAAW,OAAA,GAAAC,KAAA;MAQAC,QAAA,CAAAC,gBAAA,CAA0B,WAAWH,OAAA,MAAS;MAAA,aACjCE,QAAA,CAAAE,mBAAA,CAA6B,WAAWJ,OAAA,MAAS;IAAA;IAC7DD,EAAA,IAACV,UAAA;IAAWN,CAAA,MAAAM,UAAA;IAAAN,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAD,EAAA,GAAAf,CAAA;IAAAgB,EAAA,GAAAhB,CAAA;EAAA;EAffR,SAAA,CAAUuB,EAeV,EAAGC,EAAY;EAAA,IAAAM,EAAA;EAAA,IAAAtB,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAI,WAAA,IAAAJ,CAAA,QAAAc,WAAA,IAAAd,CAAA,QAAAQ,gBAAA,IAAAR,CAAA,QAAAY,YAAA,IAAAZ,CAAA,QAAAS,IAAA,IAAAT,CAAA,SAAAC,IAAA;IAWgB,MAAAsB,EAAA,MAAA1B,SAAA,KAAiBY,IAAA,EAAM;IAAA,IAAAe,EAAA;IAAA,IAAAxB,CAAA,SAAAG,SAAA,IAAAH,CAAA,SAAAuB,EAAA;MAAnCC,EAAA,IAAA3B,SAAA,EAAY0B,EAAuB,EAAEpB,SAAA,EAAAsB,MAAA,CAAAC,OAAkB;MAAA1B,CAAA,OAAAG,SAAA;MAAAH,CAAA,OAAAuB,EAAA;MAAAvB,CAAA,OAAAwB,EAAA;IAAA;MAAAA,EAAA,GAAAxB,CAAA;IAAA;IARxEsB,EAAA,GAAAK,IAAA,CAAA/B,aAAA;MAAAgC,KAAA;QAAA3B,IAAA;QAAAW,YAAA;QAAAC;MAAA;MAAAX,QAAA,EACEyB,IAAA,CAAArC,KAAA;QAAAc,WAAA;QAAAI,gBAAA;QAAAP,IAAA;QAAA4B,KAAA;UAAAC,MAAA,EAImBpC,WAAA,GAAcoB,WAAA;QAAc;QAAAZ,QAAA,EAE7CyB,IAAA,CAAC;UAAAxB,SAAA,EACYqB,EAAuD,CAAAO,IAAA,CAAc;UAAAC,IAAA,EAC3E;UAAA9B;QAAA,C;;;;;;;;;;;;;;;SATXoB,E;CAgBJ;AA9CuD,SAAAJ,MAAAe,CAAA;EAAA,IAkB7CA,CAAA,CAAAC,GAAA,KAAU;IACZD,CAAA,CAAAE,wBAAA,CAA0B;IAC1BF,CAAA,CAAAG,cAAA,CAAgB;EAAA;AAAA","ignoreList":[]}
@@ -37,6 +37,10 @@
37
37
  --dialog-width: 480px;
38
38
  }
39
39
 
40
+ .dialog--large {
41
+ --dialog-width: 640px;
42
+ }
43
+
40
44
  .dialog__header {
41
45
  display: flex;
42
46
  align-items: center;
@@ -134,6 +134,16 @@
134
134
  display: none;
135
135
  }
136
136
 
137
+ /* Action buttons rendered inside the document drawer header */
138
+ .doc-controls--drawerHeaderActions {
139
+ position: static;
140
+ width: auto;
141
+ padding: 0;
142
+ gap: 0;
143
+ border-bottom: 0;
144
+ background: transparent;
145
+ }
146
+
137
147
  @media (max-width: 1024px) {
138
148
  .doc-controls__controls-wrapper {
139
149
  margin-left: auto;
@@ -38,5 +38,11 @@ export declare const DocumentControls: React.FC<{
38
38
  readonly redirectAfterRestore?: boolean;
39
39
  readonly slug: SanitizedCollectionConfig['slug'];
40
40
  readonly user?: ClientUser;
41
+ /**
42
+ * Controls how the document controls render.
43
+ * - `default`: full controls bar (meta + actions), used on the edit page.
44
+ * - `drawerHeaderActions`: only the action buttons, rendered in the document drawer header.
45
+ */
46
+ readonly variant?: 'default' | 'drawerHeaderActions';
41
47
  }>;
42
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAShB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AA4B9E,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAwVA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAShB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AA4B9E,OAAO,aAAa,CAAA;AAIpB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7C,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAA;IACpB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,CAAA;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAA;CACrD,CAmWA,CAAA"}
@@ -65,7 +65,8 @@ export const DocumentControls = props => {
65
65
  redirectAfterDelete,
66
66
  redirectAfterDuplicate,
67
67
  redirectAfterRestore,
68
- user
68
+ user,
69
+ variant = 'default'
69
70
  } = props;
70
71
  const {
71
72
  i18n,
@@ -150,8 +151,8 @@ export const DocumentControls = props => {
150
151
  const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale;
151
152
  const showLockedMetaIcon = user && readOnlyForIncomingUser;
152
153
  return /*#__PURE__*/_jsxs("div", {
153
- className: baseClass,
154
- children: [/*#__PURE__*/_jsxs("div", {
154
+ className: [baseClass, variant !== 'default' && `${baseClass}--${variant}`].filter(Boolean).join(' '),
155
+ children: [variant === 'default' && /*#__PURE__*/_jsxs("div", {
155
156
  className: `${baseClass}__content`,
156
157
  children: [Boolean(showLockedMetaIcon || BeforeDocumentMeta) && /*#__PURE__*/_jsxs("div", {
157
158
  className: `${baseClass}__before-meta`,
@@ -185,14 +186,14 @@ export const DocumentControls = props => {
185
186
  publishedDocUpdatedAt: data?.createdAt
186
187
  })
187
188
  })]
188
- }), collectionConfig?.timestamps && (isEditing || isAccountView) && relativeTime && /*#__PURE__*/_jsx("li", {
189
+ }), collectionConfig?.timestamps && (isEditing || isAccountView) && (data?.updatedAt || data?.createdAt) && /*#__PURE__*/_jsx("li", {
189
190
  className: `${baseClass}__list-item ${baseClass}__value-wrap`,
190
191
  title: updatedAt || createdAt || undefined,
191
192
  children: /*#__PURE__*/_jsx("p", {
192
193
  className: `${baseClass}__value`,
193
- children: t(isTrashed ? 'general:deletedAgo' : 'general:updatedAgo', {
194
+ children: relativeTime ? t(isTrashed ? 'general:deletedAgo' : 'general:updatedAgo', {
194
195
  distance: relativeTime
195
- })
196
+ }) : `${t('general:loading')}...`
196
197
  })
197
198
  })]
198
199
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","hasScheduledPublishEnabled","React","Fragment","useCallback","useEffect","useRef","useState","useFormInitializing","useFormProcessing","MoreIcon","useConfig","useDocumentInfo","useEditDepth","useLivePreviewContext","useTranslation","formatDate","formatTimeToNow","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","SchedulePublishButton","Status","UnpublishButton","baseClass","DocumentControls","props","id","slug","BeforeDocumentControls","BeforeDocumentMeta","customComponents","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","CustomStatus","CustomUnpublishButton","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","hasDeletePermission","docHasDeletePermission","hasTrashPermission","docHasTrashPermission","admin","dateFormat","localization","routes","adminRoute","updatedAt","setUpdatedAt","createdAt","setCreatedAt","relativeTime","setRelativeTime","processing","initializing","i18nRef","current","updateRelativeTime","date","pattern","interval","setInterval","clearInterval","hasCreatePermission","create","collectionDeletePermission","delete","trash","unsavedDraftWithValidations","versions","drafts","validate","globalHasDraftsEnabled","collectionHasDraftsEnabled","showDotMenu","Boolean","collectionAutosaveEnabled","globalAutosaveEnabled","autosaveEnabled","showSaveDraftButton","autosave","showCopyToLocale","disableCopyToLocale","showLockedMetaIcon","_jsxs","className","_jsx","label","labels","singular","CustomComponent","Fallback","collection","global","publishedDocUpdatedAt","timestamps","title","undefined","distance","preview","disabled","buttonId","toString","singularLabel","buttonStyle","onClick","size","type","buttonClassName","caret","horizontalAlign","renderButton","active","buttonProps","icon","selected","verticalAlign","ButtonGroup","href","path","disableDuplicate","_Fragment","selectLocales","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatAdminURL,\n hasAutosaveEnabled,\n hasDraftsEnabled,\n hasScheduledPublishEnabled,\n} from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate, formatTimeToNow } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { SchedulePublishButton } from '../SchedulePublishButton/index.js'\nimport { Status } from '../Status/index.js'\nimport { UnpublishButton } from '../UnpublishButton/index.js'\nimport './index.css'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly BeforeDocumentMeta?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n readonly Status?: React.ReactNode\n readonly UnpublishButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n BeforeDocumentMeta,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n Status: CustomStatus,\n UnpublishButton: CustomUnpublishButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const { hasDeletePermission: docHasDeletePermission, hasTrashPermission: docHasTrashPermission } =\n useDocumentInfo()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n const [relativeTime, setRelativeTime] = useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n const i18nRef = useRef(i18n)\n i18nRef.current = i18n\n\n const updateRelativeTime = useCallback(() => {\n const date = data?.updatedAt || data?.createdAt\n if (date) {\n setRelativeTime(formatTimeToNow({ date, i18n: i18nRef.current }))\n }\n }, [data?.updatedAt, data?.createdAt])\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n updateRelativeTime()\n }, [data, i18n, dateFormat, updateRelativeTime])\n\n useEffect(() => {\n const interval = setInterval(updateRelativeTime, 60000)\n return () => clearInterval(interval)\n }, [updateRelativeTime])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const collectionDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const hasDeletePermission = collectionConfig?.trash\n ? docHasTrashPermission || docHasDeletePermission\n : collectionDeletePermission\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const globalHasDraftsEnabled = hasDraftsEnabled(globalConfig)\n const collectionHasDraftsEnabled = hasDraftsEnabled(collectionConfig)\n\n const showDotMenu = Boolean(\n !disableActions &&\n ((collectionConfig && id && (hasCreatePermission || hasDeletePermission)) ||\n (globalConfig && (globalHasDraftsEnabled || localization))),\n )\n const collectionAutosaveEnabled = hasAutosaveEnabled(collectionConfig)\n const globalAutosaveEnabled = hasAutosaveEnabled(globalConfig)\n const autosaveEnabled = collectionAutosaveEnabled || globalAutosaveEnabled\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfig.versions.drafts.autosave !== false &&\n collectionConfig.versions.drafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfig.versions.drafts.autosave !== false &&\n globalConfig.versions.drafts.autosave.showSaveDraftButton === true)\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__content`}>\n {Boolean(showLockedMetaIcon || BeforeDocumentMeta) && (\n <div className={`${baseClass}__before-meta`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {BeforeDocumentMeta}\n </div>\n )}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__creating-new`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionHasDraftsEnabled || globalHasDraftsEnabled) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li className={`${baseClass}__status ${baseClass}__list-item`}>\n <RenderCustomComponent CustomComponent={CustomStatus} Fallback={<Status />} />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && relativeTime && (\n <li\n className={`${baseClass}__list-item ${baseClass}__value-wrap`}\n title={updatedAt || createdAt || undefined}\n >\n <p className={`${baseClass}__value`}>\n {t(isTrashed ? 'general:deletedAgo' : 'general:updatedAgo', {\n distance: relativeTime,\n })}\n </p>\n </li>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n <div className={`${baseClass}__icon-buttons`}>\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasScheduledPublishEnabled(collectionConfig || globalConfig) && !isTrashed && (\n <SchedulePublishButton disabled={readOnlyForIncomingUser} />\n )}\n </div>\n {hasSavePermission && !isTrashed && !readOnlyForIncomingUser && (\n <Fragment>\n {collectionHasDraftsEnabled || globalHasDraftsEnabled ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {docHasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n buttonClassName={`${baseClass}__popup-button`}\n caret={false}\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n renderButton={({ active, ...buttonProps }) => (\n <Button\n {...buttonProps}\n buttonStyle=\"ghost\"\n className={`${baseClass}__popup-button`}\n icon={<MoreIcon />}\n selected={active}\n size=\"medium\"\n />\n )}\n size=\"medium\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <>\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n {localization && (\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n selectLocales={true}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </>\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomUnpublishButton}\n Fallback={<UnpublishButton />}\n />\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","hasScheduledPublishEnabled","React","Fragment","useCallback","useEffect","useRef","useState","useFormInitializing","useFormProcessing","MoreIcon","useConfig","useDocumentInfo","useEditDepth","useLivePreviewContext","useTranslation","formatDate","formatTimeToNow","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","LivePreviewToggler","Locked","PermanentlyDeleteButton","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","RestoreButton","SaveButton","SaveDraftButton","SchedulePublishButton","Status","UnpublishButton","baseClass","DocumentControls","props","id","slug","BeforeDocumentControls","BeforeDocumentMeta","customComponents","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","CustomStatus","CustomUnpublishButton","data","disableActions","disableCreate","EditMenuItems","hasSavePermission","isAccountView","isEditing","isInDrawer","isTrashed","onDelete","onDrawerCreateNew","onDuplicate","onRestore","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","user","variant","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","isLivePreviewEnabled","hasDeletePermission","docHasDeletePermission","hasTrashPermission","docHasTrashPermission","admin","dateFormat","localization","routes","adminRoute","updatedAt","setUpdatedAt","createdAt","setCreatedAt","relativeTime","setRelativeTime","processing","initializing","i18nRef","current","updateRelativeTime","date","pattern","interval","setInterval","clearInterval","hasCreatePermission","create","collectionDeletePermission","delete","trash","unsavedDraftWithValidations","versions","drafts","validate","globalHasDraftsEnabled","collectionHasDraftsEnabled","showDotMenu","Boolean","collectionAutosaveEnabled","globalAutosaveEnabled","autosaveEnabled","showSaveDraftButton","autosave","showCopyToLocale","disableCopyToLocale","showLockedMetaIcon","_jsxs","className","filter","join","_jsx","label","labels","singular","CustomComponent","Fallback","collection","global","publishedDocUpdatedAt","timestamps","title","undefined","distance","preview","disabled","buttonId","toString","singularLabel","buttonStyle","onClick","size","type","buttonClassName","caret","horizontalAlign","renderButton","active","buttonProps","icon","selected","verticalAlign","ButtonGroup","href","path","disableDuplicate","_Fragment","selectLocales","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport {\n formatAdminURL,\n hasAutosaveEnabled,\n hasDraftsEnabled,\n hasScheduledPublishEnabled,\n} from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLivePreviewContext } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate, formatTimeToNow } from '../../utilities/formatDocTitle/formatDateTitle.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { LivePreviewToggler } from '../LivePreview/Toggler/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { PermanentlyDeleteButton } from '../PermanentlyDeleteButton/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { RestoreButton } from '../RestoreButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { SchedulePublishButton } from '../SchedulePublishButton/index.js'\nimport { Status } from '../Status/index.js'\nimport { UnpublishButton } from '../UnpublishButton/index.js'\nimport './index.css'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly BeforeDocumentControls?: React.ReactNode\n readonly BeforeDocumentMeta?: React.ReactNode\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n readonly Status?: React.ReactNode\n readonly UnpublishButton?: React.ReactNode\n }\n readonly data?: Data\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly EditMenuItems?: React.ReactNode\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly isInDrawer?: boolean\n readonly isTrashed?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onRestore?: DocumentDrawerContextType['onRestore']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n /**\n * Controls how the document controls render.\n * - `default`: full controls bar (meta + actions), used on the edit page.\n * - `drawerHeaderActions`: only the action buttons, rendered in the document drawer header.\n */\n readonly variant?: 'default' | 'drawerHeaderActions'\n}> = (props) => {\n const {\n id,\n slug,\n BeforeDocumentControls,\n BeforeDocumentMeta,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n Status: CustomStatus,\n UnpublishButton: CustomUnpublishButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n EditMenuItems,\n hasSavePermission,\n isAccountView,\n isEditing,\n isInDrawer,\n isTrashed,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onRestore,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n user,\n variant = 'default',\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const { isLivePreviewEnabled } = useLivePreviewContext()\n\n const { hasDeletePermission: docHasDeletePermission, hasTrashPermission: docHasTrashPermission } =\n useDocumentInfo()\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n const [relativeTime, setRelativeTime] = useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n const i18nRef = useRef(i18n)\n i18nRef.current = i18n\n\n const updateRelativeTime = useCallback(() => {\n const date = data?.updatedAt || data?.createdAt\n if (date) {\n setRelativeTime(formatTimeToNow({ date, i18n: i18nRef.current }))\n }\n }, [data?.updatedAt, data?.createdAt])\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n updateRelativeTime()\n }, [data, i18n, dateFormat, updateRelativeTime])\n\n useEffect(() => {\n const interval = setInterval(updateRelativeTime, 60000)\n return () => clearInterval(interval)\n }, [updateRelativeTime])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const collectionDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const hasDeletePermission = collectionConfig?.trash\n ? docHasTrashPermission || docHasDeletePermission\n : collectionDeletePermission\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const globalHasDraftsEnabled = hasDraftsEnabled(globalConfig)\n const collectionHasDraftsEnabled = hasDraftsEnabled(collectionConfig)\n\n const showDotMenu = Boolean(\n !disableActions &&\n ((collectionConfig && id && (hasCreatePermission || hasDeletePermission)) ||\n (globalConfig && (globalHasDraftsEnabled || localization))),\n )\n const collectionAutosaveEnabled = hasAutosaveEnabled(collectionConfig)\n const globalAutosaveEnabled = hasAutosaveEnabled(globalConfig)\n const autosaveEnabled = collectionAutosaveEnabled || globalAutosaveEnabled\n\n const showSaveDraftButton =\n (collectionAutosaveEnabled &&\n collectionConfig.versions.drafts.autosave !== false &&\n collectionConfig.versions.drafts.autosave.showSaveDraftButton === true) ||\n (globalAutosaveEnabled &&\n globalConfig.versions.drafts.autosave !== false &&\n globalConfig.versions.drafts.autosave.showSaveDraftButton === true)\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n const showLockedMetaIcon = user && readOnlyForIncomingUser\n\n return (\n <div\n className={[baseClass, variant !== 'default' && `${baseClass}--${variant}`]\n .filter(Boolean)\n .join(' ')}\n >\n {variant === 'default' && (\n <div className={`${baseClass}__content`}>\n {Boolean(showLockedMetaIcon || BeforeDocumentMeta) && (\n <div className={`${baseClass}__before-meta`}>\n {showLockedMetaIcon && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {BeforeDocumentMeta}\n </div>\n )}\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__creating-new`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionHasDraftsEnabled || globalHasDraftsEnabled) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li className={`${baseClass}__status ${baseClass}__list-item`}>\n <RenderCustomComponent CustomComponent={CustomStatus} Fallback={<Status />} />\n </li>\n )}\n {hasSavePermission &&\n autosaveEnabled &&\n !unsavedDraftWithValidations &&\n !isTrashed && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps &&\n (isEditing || isAccountView) &&\n (data?.updatedAt || data?.createdAt) && (\n <li\n className={`${baseClass}__list-item ${baseClass}__value-wrap`}\n title={updatedAt || createdAt || undefined}\n >\n <p className={`${baseClass}__value`}>\n {relativeTime\n ? t(isTrashed ? 'general:deletedAgo' : 'general:updatedAgo', {\n distance: relativeTime,\n })\n : `${t('general:loading')}...`}\n </p>\n </li>\n )}\n </ul>\n </div>\n )}\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {BeforeDocumentControls}\n <div className={`${baseClass}__icon-buttons`}>\n {isLivePreviewEnabled && !isInDrawer && <LivePreviewToggler />}\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasScheduledPublishEnabled(collectionConfig || globalConfig) && !isTrashed && (\n <SchedulePublishButton disabled={readOnlyForIncomingUser} />\n )}\n </div>\n {hasSavePermission && !isTrashed && !readOnlyForIncomingUser && (\n <Fragment>\n {collectionHasDraftsEnabled || globalHasDraftsEnabled ? (\n <Fragment>\n {(unsavedDraftWithValidations ||\n !autosaveEnabled ||\n (autosaveEnabled && showSaveDraftButton)) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {docHasDeletePermission && isTrashed && (\n <PermanentlyDeleteButton\n buttonId=\"action-permanently-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {hasSavePermission && isTrashed && (\n <RestoreButton\n buttonId=\"action-restore\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onRestore={onRestore}\n redirectAfterRestore={redirectAfterRestore}\n singularLabel={collectionConfig?.labels?.singular}\n />\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n buttonClassName={`${baseClass}__popup-button`}\n caret={false}\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n renderButton={({ active, ...buttonProps }) => (\n <Button\n {...buttonProps}\n buttonStyle=\"ghost\"\n className={`${baseClass}__popup-button`}\n icon={<MoreIcon />}\n selected={active}\n size=\"medium\"\n />\n )}\n size=\"medium\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <>\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n {localization && (\n <DuplicateDocument\n id={id}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n selectLocales={true}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </>\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomUnpublishButton}\n Fallback={<UnpublishButton />}\n />\n {EditMenuItems}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqK/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAkK/D,CAAA"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import { useModal } from '@faceless-ui/modal';
5
5
  import React, { useCallback, useEffect, useRef, useState } from 'react';
6
6
  import { toast } from 'sonner';
@@ -121,16 +121,20 @@ export const DocumentDrawerContent = ({
121
121
  abortAndIgnore(abortGetDocumentView);
122
122
  };
123
123
  }, []);
124
- if (isLoading) {
125
- return /*#__PURE__*/_jsx(LoadingOverlay, {});
126
- }
127
- return /*#__PURE__*/_jsx(DocumentDrawerContextProvider, {
124
+ return /*#__PURE__*/_jsxs(DocumentDrawerContextProvider, {
128
125
  clearDoc: clearDoc,
129
126
  drawerSlug: drawerSlug,
130
127
  onDelete: onDelete,
131
128
  onDuplicate: onDuplicate,
132
129
  onSave: onSave,
133
- children: DocumentView
130
+ children: [!isLoading && /*#__PURE__*/_jsx("div", {
131
+ className: "drawer__fade-in",
132
+ children: DocumentView
133
+ }), /*#__PURE__*/_jsx(LoadingOverlay, {
134
+ animationDuration: "200ms",
135
+ overlayType: "drawer",
136
+ show: isLoading
137
+ })]
134
138
  });
135
139
  };
136
140
  //# sourceMappingURL=DrawerContent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","docID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","operation","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: docID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: DocumentDrawerProps['id'], showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n if (args.operation === 'create') {\n getDocumentView(args.doc.id)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(docID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, docID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","docID","collectionSlug","disableActions","drawerSlug","initialData","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","redirectAfterRestore","getEntityConfig","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasInitialized","getDocumentView","showLoadingIndicator","controller","fetchDocumentView","result","signal","Document","error","message","current","args","operation","doc","clearDoc","abortGetDocumentView","_jsxs","_jsx","className","animationDuration","overlayType","show"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: docID,\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n}) => {\n const { getEntityConfig } = useConfig()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const hasInitialized = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: DocumentDrawerProps['id'], showLoadingIndicator: boolean = false) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n if (showLoadingIndicator) {\n setIsLoading(true)\n }\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n overrideEntityVisibility,\n redirectAfterCreate,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n redirectAfterRestore: redirectAfterRestore !== undefined ? redirectAfterRestore : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n redirectAfterRestore,\n renderDocument,\n redirectAfterCreate,\n closeModal,\n overrideEntityVisibility,\n t,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n if (args.operation === 'create') {\n getDocumentView(args.doc.id)\n }\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView(undefined, true)\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasInitialized.current) {\n getDocumentView(docID, true)\n hasInitialized.current = true\n }\n }, [DocumentView, getDocumentView, docID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {!isLoading && <div className=\"drawer__fade-in\">{DocumentView}</div>}\n <LoadingOverlay animationDuration=\"200ms\" overlayType=\"drawer\" show={isLoading} />\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,20 +3,92 @@
3
3
  width: 100%;
4
4
  display: flex;
5
5
  flex-direction: column;
6
- gap: var(--spacer-2);
7
- border-bottom: 1px solid var(--color-border);
8
- padding: var(--spacer-2-5);
9
6
  }
10
7
 
11
- .doc-drawer__header-content {
8
+ .doc-drawer__header-bar {
9
+ position: sticky;
10
+ top: 0;
11
+ z-index: 2;
12
12
  display: flex;
13
13
  align-items: center;
14
14
  gap: var(--spacer-2);
15
15
  width: 100%;
16
+ padding: var(--spacer-2-5) var(--spacer-3) var(--spacer-2-5) var(--spacer-2);
17
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
18
+ background: var(--color-bg);
19
+ }
20
+
21
+ .doc-drawer__header-content {
22
+ display: flex;
23
+ align-items: center;
24
+ gap: var(--spacer-1);
25
+ flex: 1 1 auto;
26
+ min-width: 0;
27
+ }
28
+
29
+ .doc-drawer__header-actions {
30
+ display: flex;
31
+ align-items: center;
32
+ flex-shrink: 0;
16
33
  }
17
34
 
18
35
  .doc-drawer__header-text {
19
36
  margin: 0;
37
+ min-width: 0;
38
+ overflow: hidden;
39
+ white-space: nowrap;
40
+ text-overflow: ellipsis;
41
+ color: var(--color-text);
42
+ font-family: var(--text-body-medium-strong-font-family);
43
+ font-size: var(--text-body-medium-strong-font-size);
44
+ font-weight: var(--text-body-medium-strong-font-weight);
45
+ line-height: var(--text-body-medium-strong-line-height);
46
+ letter-spacing: var(--text-body-medium-strong-letter-spacing);
47
+ }
48
+
49
+ .doc-drawer__title-bar {
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: var(--spacer-2);
53
+ padding: var(--spacer-3) var(--gutter-h);
54
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
55
+ }
56
+
57
+ .doc-drawer__title {
58
+ margin: 0;
59
+ color: var(--color-text);
60
+ font-family: var(--text-heading-medium-font-family);
61
+ font-size: var(--text-heading-medium-font-size);
62
+ font-weight: var(--text-heading-medium-font-weight);
63
+ line-height: var(--text-heading-medium-line-height);
64
+ letter-spacing: var(--text-heading-medium-letter-spacing);
65
+ }
66
+
67
+ .doc-drawer__meta {
68
+ display: flex;
69
+ align-items: center;
70
+ flex-wrap: wrap;
71
+ gap: var(--spacer-2);
72
+ }
73
+
74
+ .doc-drawer__meta:has(.autosave) .doc-drawer__updated-at {
75
+ display: none;
76
+ }
77
+
78
+ .doc-drawer__before-meta {
79
+ display: flex;
80
+ align-items: center;
81
+ gap: var(--spacer-2);
82
+ flex-shrink: 0;
83
+ }
84
+
85
+ .doc-drawer__updated-at {
86
+ color: var(--color-text-secondary);
87
+ font-family: var(--text-body-medium-font-family);
88
+ font-size: var(--text-body-medium-font-size);
89
+ font-weight: var(--text-body-medium-font-weight);
90
+ line-height: var(--text-body-medium-line-height);
91
+ letter-spacing: var(--text-body-medium-letter-spacing);
20
92
  }
21
93
 
22
94
  .doc-drawer__header-toggler {