@payloadcms/ui 4.0.0-internal.f15737c → 4.0.0-internal.f2a04f7

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 (330) hide show
  1. package/dist/css/preflight.css +21 -2
  2. package/dist/elements/AppHeader/index.css +1 -1
  3. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  4. package/dist/elements/AppHeader/index.js +5 -1
  5. package/dist/elements/AppHeader/index.js.map +1 -1
  6. package/dist/elements/Autosave/index.d.ts.map +1 -1
  7. package/dist/elements/Autosave/index.js +10 -3
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.css +24 -0
  10. package/dist/elements/Button/types.d.ts +1 -1
  11. package/dist/elements/Button/types.d.ts.map +1 -1
  12. package/dist/elements/Button/types.js.map +1 -1
  13. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  14. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  15. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  16. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  17. package/dist/elements/CodeEditor/CodeEditor.js +5 -0
  18. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  19. package/dist/elements/DatePicker/DatePicker.js +6 -2
  20. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  21. package/dist/elements/DatePicker/index.css +35 -25
  22. package/dist/elements/DocumentControls/index.css +13 -10
  23. package/dist/elements/DocumentControls/index.d.ts +4 -2
  24. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentControls/index.js.map +1 -1
  26. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  27. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  29. package/dist/elements/DocumentFields/index.css +7 -7
  30. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentFields/index.js +1 -2
  32. package/dist/elements/DocumentFields/index.js.map +1 -1
  33. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  34. package/dist/elements/Drawer/types.d.ts +2 -2
  35. package/dist/elements/Drawer/types.d.ts.map +1 -1
  36. package/dist/elements/Drawer/types.js.map +1 -1
  37. package/dist/elements/EditUpload/library.css +6 -13
  38. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  39. package/dist/elements/FileManager/index.d.ts.map +1 -1
  40. package/dist/elements/FileManager/index.js +6 -1
  41. package/dist/elements/FileManager/index.js.map +1 -1
  42. package/dist/elements/Hierarchy/ActionsMenu/index.css +18 -0
  43. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts +35 -0
  44. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts.map +1 -0
  45. package/dist/elements/Hierarchy/ActionsMenu/index.js +99 -0
  46. package/dist/elements/Hierarchy/ActionsMenu/index.js.map +1 -0
  47. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +18 -16
  48. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  49. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +2 -0
  50. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  51. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  52. package/dist/elements/Hierarchy/DocHeaderButton/index.css +12 -0
  53. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  54. package/dist/elements/Hierarchy/DocHeaderButton/index.js +61 -14
  55. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  56. package/dist/elements/Hierarchy/Modal/Footer/index.css +33 -0
  57. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +21 -0
  58. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
  59. package/dist/elements/Hierarchy/Modal/Footer/index.js +122 -0
  60. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
  61. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +8 -3
  62. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  63. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +38 -12
  64. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  65. package/dist/elements/Hierarchy/Modal/index.css +0 -56
  66. package/dist/elements/Hierarchy/Modal/index.d.ts +5 -3
  67. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  68. package/dist/elements/Hierarchy/Modal/index.js +64 -65
  69. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  70. package/dist/elements/Hierarchy/Modal/types.d.ts +2 -0
  71. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  72. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  73. package/dist/elements/Hierarchy/MoveMany/index.d.ts +1 -3
  74. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  75. package/dist/elements/Hierarchy/MoveMany/index.js +62 -84
  76. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  77. package/dist/elements/ListControls/types.d.ts +0 -10
  78. package/dist/elements/ListControls/types.d.ts.map +1 -1
  79. package/dist/elements/ListControls/types.js.map +1 -1
  80. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  81. package/dist/elements/ListDrawer/DrawerContent.js +1 -2
  82. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  83. package/dist/elements/ListDrawer/Provider.d.ts +0 -6
  84. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  85. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  86. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  87. package/dist/elements/ListDrawer/index.js +1 -1
  88. package/dist/elements/ListDrawer/index.js.map +1 -1
  89. package/dist/elements/ListDrawer/types.d.ts +1 -0
  90. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  91. package/dist/elements/ListDrawer/types.js.map +1 -1
  92. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  93. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +24 -20
  94. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  95. package/dist/elements/LivePreview/Window/index.css +7 -1
  96. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  97. package/dist/elements/Nav/NavWrapper/index.js +19 -14
  98. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  99. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  100. package/dist/elements/PublishButton/index.js +71 -8
  101. package/dist/elements/PublishButton/index.js.map +1 -1
  102. package/dist/elements/PublishButton/validateAllLocales.d.ts +11 -0
  103. package/dist/elements/PublishButton/validateAllLocales.d.ts.map +1 -0
  104. package/dist/elements/PublishButton/validateAllLocales.js +263 -0
  105. package/dist/elements/PublishButton/validateAllLocales.js.map +1 -0
  106. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  107. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  108. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  109. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  110. package/dist/elements/SaveDraftButton/index.js +15 -2
  111. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  112. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  113. package/dist/elements/SegmentedControl/index.css +50 -7
  114. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  116. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +0 -9
  117. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +63 -40
  119. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/index.js +6 -1
  122. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  123. package/dist/elements/Table/index.js.map +1 -1
  124. package/dist/elements/Tabs/index.css +4 -3
  125. package/dist/elements/Upload/getEditorFileSrc.d.ts +11 -0
  126. package/dist/elements/Upload/getEditorFileSrc.d.ts.map +1 -0
  127. package/dist/elements/Upload/getEditorFileSrc.js +6 -0
  128. package/dist/elements/Upload/getEditorFileSrc.js.map +1 -0
  129. package/dist/elements/Upload/index.d.ts.map +1 -1
  130. package/dist/elements/Upload/index.js +6 -1
  131. package/dist/elements/Upload/index.js.map +1 -1
  132. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-I6PL55BF.js} +2 -2
  133. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-XAKGIULG.js} +2 -2
  134. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-36JJSMEB.js} +2 -2
  135. package/dist/exports/client/chunk-36JJSMEB.js.map +7 -0
  136. package/dist/exports/client/chunk-R7M6BG75.js +27 -0
  137. package/dist/exports/client/chunk-R7M6BG75.js.map +7 -0
  138. package/dist/exports/client/index.d.ts +3 -0
  139. package/dist/exports/client/index.d.ts.map +1 -1
  140. package/dist/exports/client/index.js +27 -27
  141. package/dist/exports/client/index.js.map +4 -4
  142. package/dist/exports/shared/index.js +2 -2
  143. package/dist/exports/shared/index.js.map +3 -3
  144. package/dist/fields/Group/index.css +3 -5
  145. package/dist/fields/Tabs/index.css +14 -14
  146. package/dist/fields/Upload/Input.d.ts.map +1 -1
  147. package/dist/fields/Upload/Input.js +3 -1
  148. package/dist/fields/Upload/Input.js.map +1 -1
  149. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  150. package/dist/forms/Form/fieldReducer.js +6 -9
  151. package/dist/forms/Form/fieldReducer.js.map +1 -1
  152. package/dist/forms/Form/index.d.ts.map +1 -1
  153. package/dist/forms/Form/index.js +0 -1
  154. package/dist/forms/Form/index.js.map +1 -1
  155. package/dist/forms/Form/types.d.ts +0 -5
  156. package/dist/forms/Form/types.d.ts.map +1 -1
  157. package/dist/forms/Form/types.js.map +1 -1
  158. package/dist/forms/RenderFields/index.css +2 -2
  159. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -2
  160. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  161. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  162. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -2
  163. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  164. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  165. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -2
  166. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  167. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  168. package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -2
  169. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  170. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  171. package/dist/forms/useField/types.d.ts +0 -4
  172. package/dist/forms/useField/types.d.ts.map +1 -1
  173. package/dist/forms/useField/types.js.map +1 -1
  174. package/dist/icons/Arrow/index.d.ts +1 -1
  175. package/dist/icons/Arrow/index.d.ts.map +1 -1
  176. package/dist/icons/Arrow/index.js +7 -1
  177. package/dist/icons/Arrow/index.js.map +1 -1
  178. package/dist/icons/Clock/index.d.ts +6 -0
  179. package/dist/icons/Clock/index.d.ts.map +1 -0
  180. package/dist/icons/Clock/index.js +18 -0
  181. package/dist/icons/Clock/index.js.map +1 -0
  182. package/dist/icons/Pin/index.d.ts +7 -0
  183. package/dist/icons/Pin/index.d.ts.map +1 -0
  184. package/dist/icons/Pin/index.js +23 -0
  185. package/dist/icons/Pin/index.js.map +1 -0
  186. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  187. package/dist/icons/Sidebar/index.js +2 -0
  188. package/dist/icons/Sidebar/index.js.map +1 -1
  189. package/dist/icons/Table/index.css +5 -1
  190. package/dist/layouts/Root/getRootLayoutData.d.ts +2 -2
  191. package/dist/layouts/Root/getRootLayoutData.d.ts.map +1 -1
  192. package/dist/layouts/Root/getRootLayoutData.js +8 -4
  193. package/dist/layouts/Root/getRootLayoutData.js.map +1 -1
  194. package/dist/layouts/Root/index.d.ts +1 -1
  195. package/dist/layouts/Root/index.d.ts.map +1 -1
  196. package/dist/layouts/Root/index.js +5 -20
  197. package/dist/layouts/Root/index.js.map +1 -1
  198. package/dist/providers/ListQuery/types.d.ts +0 -4
  199. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  200. package/dist/providers/ListQuery/types.js.map +1 -1
  201. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  202. package/dist/providers/RouteCache/index.js +37 -25
  203. package/dist/providers/RouteCache/index.js.map +1 -1
  204. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  205. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  206. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  207. package/dist/providers/TableColumns/types.d.ts +1 -34
  208. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  209. package/dist/providers/TableColumns/types.js.map +1 -1
  210. package/dist/styles.css +22 -3
  211. package/dist/templates/Default/index.css +0 -1
  212. package/dist/utilities/appendCacheTag.d.ts +1 -0
  213. package/dist/utilities/appendCacheTag.d.ts.map +1 -1
  214. package/dist/utilities/appendCacheTag.js +2 -1
  215. package/dist/utilities/appendCacheTag.js.map +1 -1
  216. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  217. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  218. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  219. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  220. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  221. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  222. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  223. package/dist/utilities/getDocumentThumbnail.d.ts +6 -0
  224. package/dist/utilities/getDocumentThumbnail.d.ts.map +1 -0
  225. package/dist/utilities/getDocumentThumbnail.js +27 -0
  226. package/dist/utilities/getDocumentThumbnail.js.map +1 -0
  227. package/dist/utilities/getDocumentThumbnailPopulate.d.ts +7 -0
  228. package/dist/utilities/getDocumentThumbnailPopulate.d.ts.map +1 -0
  229. package/dist/utilities/getDocumentThumbnailPopulate.js +23 -0
  230. package/dist/utilities/getDocumentThumbnailPopulate.js.map +1 -0
  231. package/dist/utilities/getDocumentThumbnailSelect.d.ts +7 -0
  232. package/dist/utilities/getDocumentThumbnailSelect.d.ts.map +1 -0
  233. package/dist/utilities/getDocumentThumbnailSelect.js +24 -0
  234. package/dist/utilities/getDocumentThumbnailSelect.js.map +1 -0
  235. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  236. package/dist/utilities/handleLivePreview.js.map +1 -1
  237. package/dist/utilities/hasSavePermission.js.map +1 -1
  238. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  239. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  240. package/dist/utilities/serverFunctionRegistry.js +2 -0
  241. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  242. package/dist/utilities/traverseForLocalizedFields.d.ts +7 -2
  243. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  244. package/dist/utilities/traverseForLocalizedFields.js +22 -8
  245. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  246. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  247. package/dist/views/CreateFirstUser/index.js +4 -2
  248. package/dist/views/CreateFirstUser/index.js.map +1 -1
  249. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  250. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  251. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  252. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  253. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  254. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +16 -4
  255. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  256. package/dist/views/Edit/index.css +26 -0
  257. package/dist/views/Edit/index.d.ts.map +1 -1
  258. package/dist/views/Edit/index.js +1 -1
  259. package/dist/views/Edit/index.js.map +1 -1
  260. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  261. package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -1
  262. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  263. package/dist/views/List/DocumentGrid/index.d.ts.map +1 -1
  264. package/dist/views/List/DocumentGrid/index.js +2 -37
  265. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  266. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  267. package/dist/views/List/enrichDocsWithVersionStatus.js +3 -1
  268. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  269. package/dist/views/List/index.d.ts.map +1 -1
  270. package/dist/views/List/index.js +11 -24
  271. package/dist/views/List/index.js.map +1 -1
  272. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -12
  273. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  274. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +2 -2
  275. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  276. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +2 -2
  277. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  278. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +2 -2
  279. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  280. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +2 -2
  281. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  282. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +2 -2
  283. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  284. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -2
  285. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  286. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  287. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +2 -2
  288. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  289. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -8
  290. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  291. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -2
  292. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  293. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  294. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +2 -2
  295. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  296. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  297. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +31 -5
  298. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  299. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +41 -0
  300. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +19 -0
  301. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +1 -0
  302. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +121 -0
  303. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +1 -0
  304. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +20 -0
  305. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +1 -0
  306. package/dist/widgets/RecentlyViewed/getDocuments.js +254 -0
  307. package/dist/widgets/RecentlyViewed/getDocuments.js.map +1 -0
  308. package/dist/widgets/RecentlyViewed/index.client.d.ts +41 -0
  309. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +1 -0
  310. package/dist/widgets/RecentlyViewed/index.client.js +409 -0
  311. package/dist/widgets/RecentlyViewed/index.client.js.map +1 -0
  312. package/dist/widgets/RecentlyViewed/index.css +352 -0
  313. package/dist/widgets/RecentlyViewed/index.d.ts +1 -1
  314. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  315. package/dist/widgets/RecentlyViewed/index.js +33 -134
  316. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  317. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts +18 -0
  318. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +1 -0
  319. package/dist/widgets/RecentlyViewed/pinnedPreferences.js +81 -0
  320. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +1 -0
  321. package/dist/widgets/RecentlyViewed/recents.d.ts +8 -0
  322. package/dist/widgets/RecentlyViewed/recents.d.ts.map +1 -0
  323. package/dist/widgets/RecentlyViewed/recents.js +19 -0
  324. package/dist/widgets/RecentlyViewed/recents.js.map +1 -0
  325. package/package.json +16 -16
  326. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  327. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  328. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  329. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-I6PL55BF.js.map} +0 -0
  330. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-XAKGIULG.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["React","ReactDatePickerDefaultImport","registerLocale","setDefaultLocale","createPortal","flushSync","ReactDatePicker","default","CalendarIcon","ChevronIcon","useTranslation","getFormattedLocale","hasAmbiguousYearInput","useDatePickerKeyboard","baseClass","AccessibleCalendarContainer","children","className","containerRef","dialogLabel","monthLabel","onKeyDown","yearLabel","useLayoutEffect","current","querySelector","setAttribute","_jsx","ref","role","getDateTimeFieldLabel","field","locale","Intl","DisplayNames","type","of","_error","DatePicker","props","id","displayFormat","customDisplayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","onChange","onChangeFromProps","overrides","pickerAppearance","placeholder","placeholderText","readOnly","timeFormat","timeIntervals","value","calendarRef","datePickerRef","onBlur","onCalendarClose","onCalendarKeyDown","onCalendarOpen","onChangeRaw","onKeyDownCapture","rejectedInputValueRef","useRef","undefined","modalContainer","setModalContainer","useState","setContainerRef","useCallback","element","closest","popperContainer","i18n","t","language","CustomCalendarContainer","calendarContainer","containerProps","style","display","dateFormat","incomingDate","event","newDate","inputValue","target","HTMLInputElement","date","picker","setPreSelection","calcInitialState","preSelection","Date","includes","tzOffset","getTimezoneOffset","setHours","setMilliseconds","dateTimePickerProps","customInputRef","disabled","monthsShown","Math","min","nextMonthButtonLabel","direction","nextYearButtonLabel","popperPlacement","portalId","preventOpenOnFocus","previousMonthButtonLabel","previousYearButtonLabel","selected","shouldCloseOnSelect","showMonthYearPicker","showPopperArrow","showTimeSelect","showTimeSelectOnly","onBlurCapture","input","test","resetInputValue","classes","filter","Boolean","join","useEffect","dateFNS","datepickerLocale","console","warn","_jsxs","dropdownMode","showMonthDropdown","showYearDropdown"],"sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"sourcesContent":["'use client'\nimport type { DatePickerProps } from 'react-datepicker'\n\nimport React from 'react'\nimport ReactDatePickerDefaultImport, { registerLocale, setDefaultLocale } from 'react-datepicker'\nimport { createPortal, flushSync } from 'react-dom'\nconst ReactDatePicker =\n 'default' in ReactDatePickerDefaultImport\n ? ReactDatePickerDefaultImport.default\n : ReactDatePickerDefaultImport\n\nimport type { Props } from './types.js'\n\nimport { CalendarIcon } from '../../icons/Calendar/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormattedLocale } from './getFormattedLocale.js'\nimport { hasAmbiguousYearInput } from './hasAmbiguousYearInput.js'\nimport { useDatePickerKeyboard } from './useDatePickerKeyboard.js'\nimport './index.css'\n\nconst baseClass = 'date-time-picker'\n\ntype AccessibleCalendarContainerProps = React.PropsWithChildren<{\n className?: string\n containerRef: React.RefObject<HTMLDivElement | null>\n dialogLabel: string\n monthLabel: string\n onKeyDown: React.KeyboardEventHandler<HTMLDivElement>\n yearLabel: string\n}>\n\nconst AccessibleCalendarContainer: React.FC<AccessibleCalendarContainerProps> = ({\n children,\n className,\n containerRef,\n dialogLabel,\n monthLabel,\n onKeyDown,\n yearLabel,\n}) => {\n React.useLayoutEffect(() => {\n containerRef.current\n ?.querySelector<HTMLSelectElement>('.react-datepicker__month-select')\n ?.setAttribute('aria-label', monthLabel)\n containerRef.current\n ?.querySelector<HTMLSelectElement>('.react-datepicker__year-select')\n ?.setAttribute('aria-label', yearLabel)\n })\n\n return (\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- Handle Escape bubbling from the dialog's interactive children.\n <div\n aria-label={dialogLabel}\n className={className}\n onKeyDown={onKeyDown}\n ref={containerRef}\n role=\"dialog\"\n >\n {children}\n </div>\n )\n}\n\nconst getDateTimeFieldLabel = ({ field, locale }: { field: 'month' | 'year'; locale: string }) => {\n try {\n return new Intl.DisplayNames(locale, { type: 'dateTimeField' }).of(field) || field\n } catch (_error) {\n return field\n }\n}\n\nconst DatePicker: React.FC<Props> = (props) => {\n const {\n id,\n displayFormat: customDisplayFormat,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsToShow = 1,\n onChange: onChangeFromProps,\n overrides,\n pickerAppearance = 'default',\n placeholder: placeholderText,\n readOnly,\n timeFormat = 'h:mm aa',\n timeIntervals = 30,\n value,\n } = props\n\n const {\n calendarRef,\n datePickerRef,\n onBlur,\n onCalendarClose,\n onCalendarKeyDown,\n onCalendarOpen,\n onChangeRaw,\n onKeyDown,\n onKeyDownCapture,\n } = useDatePickerKeyboard(props)\n const rejectedInputValueRef = React.useRef<string | undefined>(undefined)\n const [modalContainer, setModalContainer] = React.useState<Element | null>(null)\n const setContainerRef = React.useCallback((element: HTMLDivElement | null) => {\n setModalContainer(element?.closest('dialog, [role=\"dialog\"]') ?? null)\n }, [])\n const popperContainer = React.useCallback<React.FC<React.PropsWithChildren>>(\n ({ children }) => (modalContainer ? createPortal(children, modalContainer) : children),\n [modalContainer],\n )\n\n // Use the user's AdminUI language preference for the locale\n const { i18n, t } = useTranslation()\n const monthLabel = getDateTimeFieldLabel({ field: 'month', locale: i18n.language })\n const yearLabel = getDateTimeFieldLabel({ field: 'year', locale: i18n.language })\n const CustomCalendarContainer = overrides?.calendarContainer\n const calendarContainer = React.useCallback(\n ({ children, className, ...containerProps }) =>\n CustomCalendarContainer ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- Handle Escape bubbling from the custom calendar's interactive children.\n <div onKeyDown={onCalendarKeyDown} ref={calendarRef} style={{ display: 'contents' }}>\n <CustomCalendarContainer {...containerProps} className={className}>\n {children}\n </CustomCalendarContainer>\n </div>\n ) : (\n <AccessibleCalendarContainer\n className={className}\n containerRef={calendarRef}\n dialogLabel={`${t('general:selectValue')}: ${monthLabel}, ${yearLabel}`}\n monthLabel={monthLabel}\n onKeyDown={onCalendarKeyDown}\n yearLabel={yearLabel}\n >\n {children}\n </AccessibleCalendarContainer>\n ),\n [CustomCalendarContainer, calendarRef, monthLabel, onCalendarKeyDown, t, yearLabel],\n )\n\n let dateFormat = customDisplayFormat\n\n if (!customDisplayFormat) {\n // when no displayFormat is provided, determine format based on the picker appearance\n if (pickerAppearance === 'default') {\n dateFormat = 'MM/dd/yyyy'\n } else if (pickerAppearance === 'dayAndTime') {\n dateFormat = 'MMM d, yyy h:mm a'\n } else if (pickerAppearance === 'timeOnly') {\n dateFormat = 'h:mm a'\n } else if (pickerAppearance === 'dayOnly') {\n dateFormat = 'MMM dd'\n } else if (pickerAppearance === 'monthOnly') {\n dateFormat = 'MMMM'\n }\n }\n\n const onChange: Extract<\n DatePickerProps,\n { selectsMultiple?: false; selectsRange?: false }\n >['onChange'] = (incomingDate, event) => {\n const newDate = incomingDate\n\n const inputValue =\n event?.target instanceof HTMLInputElement\n ? event.target.value\n : !event\n ? rejectedInputValueRef.current\n : undefined\n\n if (\n hasAmbiguousYearInput({\n date: newDate,\n dateFormat: overrides?.dateFormat ?? dateFormat,\n inputValue,\n locale: overrides?.locale,\n })\n ) {\n const picker = datePickerRef.current\n\n rejectedInputValueRef.current = inputValue\n picker?.setPreSelection(picker.calcInitialState().preSelection)\n return\n }\n rejectedInputValueRef.current = undefined\n\n if (newDate instanceof Date && ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)) {\n const tzOffset = incomingDate.getTimezoneOffset() / 60\n newDate.setHours(12 - tzOffset, 0)\n }\n\n if (newDate instanceof Date && !dateFormat.includes('SSS')) {\n // Unless the dateFormat includes milliseconds, set milliseconds to 0\n // This is to ensure that the timestamp is consistent with the displayFormat\n newDate.setMilliseconds(0)\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newDate)\n }\n }\n\n const dateTimePickerProps: Extract<\n DatePickerProps,\n { selectsMultiple?: false; selectsRange?: false }\n > = {\n customInputRef: 'ref',\n dateFormat,\n disabled: readOnly,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsShown: Math.min(2, monthsToShow),\n nextMonthButtonLabel: <ChevronIcon direction=\"right\" />,\n nextYearButtonLabel: '›',\n onChange,\n placeholderText,\n popperContainer: modalContainer ? popperContainer : undefined,\n popperPlacement: 'bottom-start',\n portalId: modalContainer ? undefined : 'date-time-picker-portal',\n preventOpenOnFocus: true,\n previousMonthButtonLabel: <ChevronIcon direction=\"left\" />,\n previousYearButtonLabel: '‹',\n selected: value && new Date(value),\n shouldCloseOnSelect: false,\n showMonthYearPicker: pickerAppearance === 'monthOnly',\n showPopperArrow: false,\n showTimeSelect: pickerAppearance === 'dayAndTime' || pickerAppearance === 'timeOnly',\n showTimeSelectOnly: pickerAppearance === 'timeOnly',\n timeFormat,\n timeIntervals,\n ...(overrides as Extract<\n DatePickerProps,\n { selectsMultiple?: false; selectsRange?: false } // to satisfy TypeScript. Overrides can enable selectsMultiple or selectsRange but then it's up to the user to ensure they pass in the correct onChange\n >),\n calendarContainer,\n onBlur,\n onCalendarClose,\n onCalendarOpen,\n onChangeRaw,\n onKeyDown,\n }\n\n const onBlurCapture = (event: React.FocusEvent<HTMLDivElement>) => {\n const input = event.target\n\n if (input !== datePickerRef.current?.input || !(input instanceof HTMLInputElement)) {\n return\n }\n\n if (/[a-z0-9]/i.test(input.value) || !/[\\p{L}\\p{N}]/u.test(input.value)) {\n return\n }\n\n // react-datepicker 9.1 treats non-Latin input as an empty mask.\n // Reset raw text synchronously before its blur handler can clear the selected date.\n // eslint-disable-next-line @eslint-react/dom/no-flush-sync -- Programmatic blur also requires the reset before the upstream handler runs.\n flushSync(() => datePickerRef.current?.resetInputValue())\n }\n\n const classes = [baseClass, `${baseClass}__appearance--${pickerAppearance}`]\n .filter(Boolean)\n .join(' ')\n\n React.useEffect(() => {\n if (i18n.dateFNS) {\n try {\n const datepickerLocale = getFormattedLocale(i18n.language)\n registerLocale(datepickerLocale, i18n.dateFNS)\n setDefaultLocale(datepickerLocale)\n } catch (_error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not find DatePicker locale for ${i18n.language}`)\n }\n }\n }, [i18n.language, i18n.dateFNS])\n\n return (\n <div\n className={classes}\n id={id}\n onBlurCapture={onBlurCapture}\n onKeyDownCapture={onKeyDownCapture}\n ref={setContainerRef}\n >\n <div className={`${baseClass}__input-wrapper`}>\n <ReactDatePicker\n ref={datePickerRef}\n {...dateTimePickerProps}\n dropdownMode=\"select\"\n showMonthDropdown={pickerAppearance !== 'monthOnly'}\n showYearDropdown={pickerAppearance !== 'monthOnly'}\n />\n <CalendarIcon />\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default DatePicker\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePicker.js","names":["React","ReactDatePickerDefaultImport","registerLocale","setDefaultLocale","createPortal","flushSync","ReactDatePicker","default","CalendarIcon","ChevronIcon","useTranslation","getFormattedLocale","hasAmbiguousYearInput","useDatePickerKeyboard","baseClass","AccessibleCalendarContainer","children","className","containerRef","dialogLabel","monthLabel","onKeyDown","yearLabel","useLayoutEffect","current","querySelector","setAttribute","_jsx","ref","role","getDateTimeFieldLabel","field","locale","Intl","DisplayNames","type","of","_error","DatePicker","props","id","displayFormat","customDisplayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","onChange","onChangeFromProps","overrides","pickerAppearance","placeholder","placeholderText","readOnly","timeFormat","timeIntervals","value","calendarRef","datePickerRef","onBlur","onCalendarClose","onCalendarKeyDown","onCalendarOpen","onChangeRaw","onKeyDownCapture","rejectedInputValueRef","useRef","undefined","modalContainer","setModalContainer","useState","setContainerRef","useCallback","element","closest","popperContainer","i18n","t","language","CustomCalendarContainer","calendarContainer","containerProps","style","display","dateFormat","incomingDate","event","newDate","inputValue","target","HTMLInputElement","date","picker","setPreSelection","calcInitialState","preSelection","Date","includes","tzOffset","getTimezoneOffset","setHours","setMilliseconds","dateTimePickerProps","customInputRef","disabled","monthsShown","Math","min","nextMonthButtonLabel","direction","nextYearButtonLabel","popperPlacement","portalId","preventOpenOnFocus","previousMonthButtonLabel","previousYearButtonLabel","selected","shouldCloseOnSelect","showMonthYearPicker","showPopperArrow","showTimeSelect","showTimeSelectOnly","onBlurCapture","input","test","resetInputValue","classes","filter","Boolean","join","useEffect","dateFNS","datepickerLocale","console","warn","_jsxs","dropdownMode","showMonthDropdown","showYearDropdown"],"sources":["../../../src/elements/DatePicker/DatePicker.tsx"],"sourcesContent":["'use client'\nimport type { DatePickerProps } from 'react-datepicker'\n\nimport React from 'react'\nimport ReactDatePickerDefaultImport, { registerLocale, setDefaultLocale } from 'react-datepicker'\nimport { createPortal, flushSync } from 'react-dom'\nconst ReactDatePicker =\n 'default' in ReactDatePickerDefaultImport\n ? ReactDatePickerDefaultImport.default\n : ReactDatePickerDefaultImport\n\nimport type { Props } from './types.js'\n\nimport { CalendarIcon } from '../../icons/Calendar/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormattedLocale } from './getFormattedLocale.js'\nimport { hasAmbiguousYearInput } from './hasAmbiguousYearInput.js'\nimport { useDatePickerKeyboard } from './useDatePickerKeyboard.js'\nimport './index.css'\n\nconst baseClass = 'date-time-picker'\n\ntype AccessibleCalendarContainerProps = React.PropsWithChildren<{\n className?: string\n containerRef: React.RefObject<HTMLDivElement | null>\n dialogLabel: string\n monthLabel: string\n onKeyDown: React.KeyboardEventHandler<HTMLDivElement>\n yearLabel: string\n}>\n\nconst AccessibleCalendarContainer: React.FC<AccessibleCalendarContainerProps> = ({\n children,\n className,\n containerRef,\n dialogLabel,\n monthLabel,\n onKeyDown,\n yearLabel,\n}) => {\n React.useLayoutEffect(() => {\n containerRef.current\n ?.querySelector<HTMLSelectElement>('.react-datepicker__month-select')\n ?.setAttribute('aria-label', monthLabel)\n containerRef.current\n ?.querySelector<HTMLSelectElement>('.react-datepicker__year-select')\n ?.setAttribute('aria-label', yearLabel)\n })\n\n return (\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions -- Handle Escape bubbling from the dialog's interactive children.\n <div\n aria-label={dialogLabel}\n className={className}\n onKeyDown={onKeyDown}\n ref={containerRef}\n role=\"dialog\"\n >\n {children}\n </div>\n )\n}\n\nconst getDateTimeFieldLabel = ({ field, locale }: { field: 'month' | 'year'; locale: string }) => {\n try {\n return new Intl.DisplayNames(locale, { type: 'dateTimeField' }).of(field) || field\n } catch (_error) {\n return field\n }\n}\n\nconst DatePicker: React.FC<Props> = (props) => {\n const {\n id,\n displayFormat: customDisplayFormat,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsToShow = 1,\n onChange: onChangeFromProps,\n overrides,\n pickerAppearance = 'default',\n placeholder: placeholderText,\n readOnly,\n timeFormat = 'h:mm aa',\n timeIntervals = 30,\n value,\n } = props\n\n const {\n calendarRef,\n datePickerRef,\n onBlur,\n onCalendarClose,\n onCalendarKeyDown,\n onCalendarOpen,\n onChangeRaw,\n onKeyDown,\n onKeyDownCapture,\n } = useDatePickerKeyboard(props)\n const rejectedInputValueRef = React.useRef<string | undefined>(undefined)\n const [modalContainer, setModalContainer] = React.useState<Element | null>(null)\n const setContainerRef = React.useCallback((element: HTMLDivElement | null) => {\n setModalContainer(element?.closest('dialog, [role=\"dialog\"]') ?? null)\n }, [])\n const popperContainer = React.useCallback<React.FC<React.PropsWithChildren>>(\n ({ children }) => (modalContainer ? createPortal(children, modalContainer) : children),\n [modalContainer],\n )\n\n // Use the user's AdminUI language preference for the locale\n const { i18n, t } = useTranslation()\n const monthLabel = getDateTimeFieldLabel({ field: 'month', locale: i18n.language })\n const yearLabel = getDateTimeFieldLabel({ field: 'year', locale: i18n.language })\n const CustomCalendarContainer = overrides?.calendarContainer\n const calendarContainer = React.useCallback(\n ({ children, className, ...containerProps }) =>\n CustomCalendarContainer ? (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions -- Handle Escape bubbling from the custom calendar's interactive children.\n <div onKeyDown={onCalendarKeyDown} ref={calendarRef} style={{ display: 'contents' }}>\n <CustomCalendarContainer {...containerProps} className={className}>\n {children}\n </CustomCalendarContainer>\n </div>\n ) : (\n <AccessibleCalendarContainer\n className={className}\n containerRef={calendarRef}\n dialogLabel={`${t('general:selectValue')}: ${monthLabel}, ${yearLabel}`}\n monthLabel={monthLabel}\n onKeyDown={onCalendarKeyDown}\n yearLabel={yearLabel}\n >\n {children}\n </AccessibleCalendarContainer>\n ),\n [CustomCalendarContainer, calendarRef, monthLabel, onCalendarKeyDown, t, yearLabel],\n )\n\n let dateFormat = customDisplayFormat\n\n if (!customDisplayFormat) {\n // when no displayFormat is provided, determine format based on the picker appearance\n if (pickerAppearance === 'default') {\n dateFormat = 'MM/dd/yyyy'\n } else if (pickerAppearance === 'dayAndTime') {\n dateFormat = 'MMM d, yyy h:mm a'\n } else if (pickerAppearance === 'timeOnly') {\n dateFormat = 'h:mm a'\n } else if (pickerAppearance === 'dayOnly') {\n dateFormat = 'MMM dd'\n } else if (pickerAppearance === 'monthOnly') {\n dateFormat = 'MMMM'\n }\n }\n\n const onChange: Extract<\n DatePickerProps,\n { selectsMultiple?: false; selectsRange?: false }\n >['onChange'] = (incomingDate, event) => {\n const newDate = incomingDate\n\n const inputValue =\n event?.target instanceof HTMLInputElement\n ? event.target.value\n : !event\n ? rejectedInputValueRef.current\n : undefined\n\n if (\n hasAmbiguousYearInput({\n date: newDate,\n dateFormat: overrides?.dateFormat ?? dateFormat,\n inputValue,\n locale: overrides?.locale,\n })\n ) {\n const picker = datePickerRef.current\n\n rejectedInputValueRef.current = inputValue\n picker?.setPreSelection(picker.calcInitialState().preSelection)\n return\n }\n rejectedInputValueRef.current = undefined\n\n if (newDate instanceof Date && ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)) {\n const tzOffset = incomingDate.getTimezoneOffset() / 60\n newDate.setHours(12 - tzOffset, 0)\n }\n\n if (newDate instanceof Date && !dateFormat.includes('SSS')) {\n // Unless the dateFormat includes milliseconds, set milliseconds to 0\n // This is to ensure that the timestamp is consistent with the displayFormat\n newDate.setMilliseconds(0)\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newDate)\n }\n }\n\n const dateTimePickerProps: Extract<\n DatePickerProps,\n { selectsMultiple?: false; selectsRange?: false }\n > = {\n customInputRef: 'ref',\n dateFormat,\n disabled: readOnly,\n maxDate,\n maxTime,\n minDate,\n minTime,\n monthsShown: Math.min(2, monthsToShow),\n nextMonthButtonLabel: <ChevronIcon direction=\"right\" />,\n nextYearButtonLabel: <ChevronIcon direction=\"right\" />,\n onChange,\n placeholderText,\n popperContainer: modalContainer ? popperContainer : undefined,\n popperPlacement: 'bottom-start',\n portalId: modalContainer ? undefined : 'date-time-picker-portal',\n preventOpenOnFocus: true,\n previousMonthButtonLabel: <ChevronIcon direction=\"left\" />,\n previousYearButtonLabel: <ChevronIcon direction=\"left\" />,\n selected: value && new Date(value),\n shouldCloseOnSelect: false,\n showMonthYearPicker: pickerAppearance === 'monthOnly',\n showPopperArrow: false,\n showTimeSelect: pickerAppearance === 'dayAndTime' || pickerAppearance === 'timeOnly',\n showTimeSelectOnly: pickerAppearance === 'timeOnly',\n timeFormat,\n timeIntervals,\n ...(overrides as Extract<\n DatePickerProps,\n { selectsMultiple?: false; selectsRange?: false } // to satisfy TypeScript. Overrides can enable selectsMultiple or selectsRange but then it's up to the user to ensure they pass in the correct onChange\n >),\n calendarContainer,\n onBlur,\n onCalendarClose,\n onCalendarOpen,\n onChangeRaw,\n onKeyDown,\n }\n\n const onBlurCapture = (event: React.FocusEvent<HTMLDivElement>) => {\n const input = event.target\n\n if (input !== datePickerRef.current?.input || !(input instanceof HTMLInputElement)) {\n return\n }\n\n if (/[a-z0-9]/i.test(input.value) || !/[\\p{L}\\p{N}]/u.test(input.value)) {\n return\n }\n\n // react-datepicker 9.1 treats non-Latin input as an empty mask.\n // Reset raw text synchronously before its blur handler can clear the selected date.\n // eslint-disable-next-line @eslint-react/dom/no-flush-sync -- Programmatic blur also requires the reset before the upstream handler runs.\n flushSync(() => datePickerRef.current?.resetInputValue())\n }\n\n const classes = [baseClass, `${baseClass}__appearance--${pickerAppearance}`]\n .filter(Boolean)\n .join(' ')\n\n React.useEffect(() => {\n if (i18n.dateFNS) {\n try {\n const datepickerLocale = getFormattedLocale(i18n.language)\n registerLocale(datepickerLocale, i18n.dateFNS)\n setDefaultLocale(datepickerLocale)\n } catch (_error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not find DatePicker locale for ${i18n.language}`)\n }\n }\n }, [i18n.language, i18n.dateFNS])\n\n return (\n <div\n className={classes}\n id={id}\n onBlurCapture={onBlurCapture}\n onKeyDownCapture={onKeyDownCapture}\n ref={setContainerRef}\n >\n <div className={`${baseClass}__input-wrapper`}>\n <ReactDatePicker\n ref={datePickerRef}\n {...dateTimePickerProps}\n dropdownMode=\"select\"\n showMonthDropdown={pickerAppearance !== 'monthOnly'}\n showYearDropdown={pickerAppearance !== 'monthOnly'}\n />\n <CalendarIcon />\n </div>\n </div>\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default DatePicker\n"],"mappings":"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","ignoreList":[]}
@@ -180,7 +180,7 @@
180
180
  text-align: center;
181
181
  cursor: pointer;
182
182
  top: 0;
183
- margin: var(--spacer-2);
183
+ margin: var(--spacer-2) var(--spacer-1-5);
184
184
  border: none;
185
185
  z-index: 1;
186
186
  height: var(--spacer-4);
@@ -204,6 +204,10 @@
204
204
  font-weight: 300;
205
205
  }
206
206
 
207
+ .react-datepicker:has(.react-datepicker__monthPicker) .react-datepicker__navigation {
208
+ margin-inline: var(--spacer-2);
209
+ }
210
+
207
211
  .react-datepicker__navigation-icon {
208
212
  display: flex;
209
213
  align-items: center;
@@ -235,8 +239,8 @@
235
239
  }
236
240
 
237
241
  .react-datepicker__navigation--next--with-time:not(
238
- .react-datepicker__navigation--next--with-today-button
239
- ) {
242
+ .react-datepicker__navigation--next--with-today-button
243
+ ) {
240
244
  right: var(--time-column-width);
241
245
  }
242
246
 
@@ -376,6 +380,10 @@
376
380
  position: relative;
377
381
  }
378
382
 
383
+ .react-datepicker__month-container:has(.react-datepicker__day-names) {
384
+ width: calc(var(--spacer-5) * 8);
385
+ }
386
+
379
387
  .react-datepicker__month {
380
388
  margin: 0;
381
389
  padding: var(--spacer-1);
@@ -430,13 +438,15 @@
430
438
  white-space: nowrap;
431
439
  margin-bottom: 0;
432
440
  background-color: transparent;
433
- padding: var(--spacer-2);
434
- padding-bottom: 0;
441
+ padding: var(--spacer-2) var(--spacer-1) 0;
435
442
  border-top: var(--stroke-width-small) solid var(--color-border);
436
443
  width: 100%;
437
444
  }
438
445
 
446
+ .react-datepicker__day-names,
439
447
  .react-datepicker__week {
448
+ display: flex;
449
+ justify-content: space-between;
440
450
  white-space: nowrap;
441
451
  }
442
452
 
@@ -563,29 +573,29 @@
563
573
 
564
574
  /* In-range selecting (partial selection) */
565
575
  .react-datepicker__day--in-selecting-range:not(
566
- .react-datepicker__day--in-range,
567
- .react-datepicker__month-text--in-range,
568
- .react-datepicker__quarter-text--in-range,
569
- .react-datepicker__year-text--in-range
570
- ),
576
+ .react-datepicker__day--in-range,
577
+ .react-datepicker__month-text--in-range,
578
+ .react-datepicker__quarter-text--in-range,
579
+ .react-datepicker__year-text--in-range
580
+ ),
571
581
  .react-datepicker__month-text--in-selecting-range:not(
572
- .react-datepicker__day--in-range,
573
- .react-datepicker__month-text--in-range,
574
- .react-datepicker__quarter-text--in-range,
575
- .react-datepicker__year-text--in-range
576
- ),
582
+ .react-datepicker__day--in-range,
583
+ .react-datepicker__month-text--in-range,
584
+ .react-datepicker__quarter-text--in-range,
585
+ .react-datepicker__year-text--in-range
586
+ ),
577
587
  .react-datepicker__quarter-text--in-selecting-range:not(
578
- .react-datepicker__day--in-range,
579
- .react-datepicker__month-text--in-range,
580
- .react-datepicker__quarter-text--in-range,
581
- .react-datepicker__year-text--in-range
582
- ),
588
+ .react-datepicker__day--in-range,
589
+ .react-datepicker__month-text--in-range,
590
+ .react-datepicker__quarter-text--in-range,
591
+ .react-datepicker__year-text--in-range
592
+ ),
583
593
  .react-datepicker__year-text--in-selecting-range:not(
584
- .react-datepicker__day--in-range,
585
- .react-datepicker__month-text--in-range,
586
- .react-datepicker__quarter-text--in-range,
587
- .react-datepicker__year-text--in-range
588
- ) {
594
+ .react-datepicker__day--in-range,
595
+ .react-datepicker__month-text--in-range,
596
+ .react-datepicker__quarter-text--in-range,
597
+ .react-datepicker__year-text--in-range
598
+ ) {
589
599
  background-color: var(--color-bg-selected);
590
600
  }
591
601
 
@@ -35,13 +35,14 @@
35
35
  .doc-controls__meta {
36
36
  flex-grow: 1;
37
37
  display: flex;
38
+ flex-direction: column;
38
39
  list-style: none;
39
40
  padding: 0;
40
41
  color: var(--color-text);
41
- gap: var(--spacer-2);
42
+ gap: 0;
42
43
  margin: 0;
43
- width: 100%;
44
- overflow: hidden;
44
+ width: auto;
45
+ overflow: visible;
45
46
 
46
47
  button {
47
48
  margin: 0;
@@ -142,6 +143,15 @@
142
143
  background: transparent;
143
144
  }
144
145
 
146
+ @media (width > 768px) {
147
+ .doc-controls__meta {
148
+ flex-direction: row;
149
+ width: 100%;
150
+ gap: var(--spacer-2);
151
+ overflow: hidden;
152
+ }
153
+ }
154
+
145
155
  /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
146
156
  @media (max-width: 1024px) {
147
157
  .doc-controls__controls-wrapper {
@@ -167,13 +177,6 @@
167
177
  display: none;
168
178
  }
169
179
 
170
- .doc-controls__meta {
171
- flex-direction: column;
172
- width: auto;
173
- gap: 0;
174
- overflow: visible;
175
- }
176
-
177
180
  .doc-controls__meta:has(.doc-controls__status) .doc-controls__value {
178
181
  font-size: var(--text-body-small-font-size);
179
182
  font-weight: var(--text-body-small-font-weight);
@@ -2,7 +2,7 @@ import type { Data, SanitizedCollectionConfig, SanitizedCollectionPermission, Sa
2
2
  import React from 'react';
3
3
  import type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js';
4
4
  import './index.css';
5
- export declare const DocumentControls: React.FC<{
5
+ type DocumentControlsProps = {
6
6
  readonly apiURL: string;
7
7
  readonly BeforeDocumentControls?: React.ReactNode;
8
8
  readonly BeforeDocumentMeta?: React.ReactNode;
@@ -44,5 +44,7 @@ export declare const DocumentControls: React.FC<{
44
44
  * - `drawerHeaderActions`: only the action buttons, rendered in the document drawer header.
45
45
  */
46
46
  readonly variant?: 'default' | 'drawerHeaderActions';
47
- }>;
47
+ };
48
+ export declare const DocumentControls: React.FC<DocumentControlsProps>;
49
+ export {};
48
50
  //# 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,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,IAAI,EACL,MAAM,SAAS,CAAA;AAShB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AA6B9E,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,IAAI,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAA;CACrD,CA+WA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,IAAI,EACJ,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EACzB,IAAI,EACL,MAAM,SAAS,CAAA;AAShB,OAAO,KAA6D,MAAM,OAAO,CAAA;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AA6B9E,OAAO,aAAa,CAAA;AAIpB,KAAK,qBAAqB,GAAG;IAC3B,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,IAAI,CAAA;IACpB;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAA;CACrD,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA+W5D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasDraftsEnabled","hasScheduledPublishEnabled","React","Fragment","useCallback","useEffect","useRef","useState","useFormInitializing","useFormProcessing","useElementHeightVariable","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","rootRef","i18nRef","cssVar","isEnabled","ref","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","popupType","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 Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n User,\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 { useElementHeightVariable } from '../../hooks/useElementHeightVariable.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?: User\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 rootRef = useRef<HTMLDivElement>(null)\n const i18nRef = useRef(i18n)\n\n // Only the page-level controls bar feeds the sticky layout offsets. Drawer instances\n // (variant=\"drawerHeaderActions\") must not publish the shared var or they'd clobber it.\n useElementHeightVariable({\n cssVar: '--doc-controls-height',\n isEnabled: variant === 'default',\n ref: rootRef,\n })\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 (EditMenuItems ||\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 ref={rootRef}\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 popupType=\"menu\"\n renderButton={({ active, ...buttonProps }) => (\n <Button\n {...buttonProps}\n aria-label={t('general:moreOptions')}\n buttonStyle=\"ghost\"\n className={`${baseClass}__popup-button`}\n icon={<MoreIcon />}\n selected={active}\n size=\"medium\"\n />\n )}\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 && id && (\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","useElementHeightVariable","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","rootRef","i18nRef","cssVar","isEnabled","ref","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","popupType","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 Data,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n User,\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 { useElementHeightVariable } from '../../hooks/useElementHeightVariable.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\ntype DocumentControlsProps = {\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?: User\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}\n\nexport const DocumentControls: React.FC<DocumentControlsProps> = (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 rootRef = useRef<HTMLDivElement>(null)\n const i18nRef = useRef(i18n)\n\n // Only the page-level controls bar feeds the sticky layout offsets. Drawer instances\n // (variant=\"drawerHeaderActions\") must not publish the shared var or they'd clobber it.\n useElementHeightVariable({\n cssVar: '--doc-controls-height',\n isEnabled: variant === 'default',\n ref: rootRef,\n })\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 (EditMenuItems ||\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 ref={rootRef}\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 popupType=\"menu\"\n renderButton={({ active, ...buttonProps }) => (\n <Button\n {...buttonProps}\n aria-label={t('general:moreOptions')}\n buttonStyle=\"ghost\"\n className={`${baseClass}__popup-button`}\n icon={<MoreIcon />}\n selected={active}\n size=\"medium\"\n />\n )}\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 && id && (\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,4 +1,4 @@
1
- import type { Data, DefaultDocumentIDType, FormState, Operation } from 'payload';
1
+ import type { Data, DefaultDocumentIDType, Operation } from 'payload';
2
2
  import type React from 'react';
3
3
  import type { HTMLAttributes } from 'react';
4
4
  import type { Props as DrawerProps } from '../Drawer/types.js';
@@ -18,10 +18,6 @@ export type DocumentDrawerProps = {
18
18
  */
19
19
  readonly id?: DefaultDocumentIDType | null;
20
20
  readonly initialData?: Data;
21
- /**
22
- * @deprecated
23
- */
24
- readonly initialState?: FormState;
25
21
  readonly overrideEntityVisibility?: boolean;
26
22
  readonly redirectAfterCreate?: boolean;
27
23
  readonly redirectAfterDelete?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, DefaultDocumentIDType, FormState, Operation } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n /**\n * The slug of the collection to which the document belongs.\n */\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n /**\n * The ID of the document to be edited.\n * When provided, will be fetched and displayed in the drawer.\n * If omitted, will render the \"create new\" view for the given collection.\n */\n readonly id?: DefaultDocumentIDType | null\n readonly initialData?: Data\n /**\n * @deprecated\n */\n readonly initialState?: FormState\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly buttonStyle?:\n | 'dashed'\n | 'destructive'\n | 'ghost'\n | 'link'\n | 'pill'\n | 'primary'\n | 'secondary'\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly extraButtonProps?: Record<string, any>\n readonly onClick?: () => void\n readonly operation: Operation\n readonly tooltip?: string\n} & Readonly<HTMLAttributes<HTMLButtonElement>>\n\nexport type UseDocumentDrawerContext = {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n}\n\nexport type UseDocumentDrawer = (\n args: {\n /**\n * Optional custom drawer slug. If provided, this will be used instead of auto-generating one.\n * Useful for ensuring stable slugs in contexts where component remounting can cause issues.\n */\n drawerSlug?: string\n } & Pick<DocumentDrawerProps, 'collectionSlug' | 'id' | 'overrideEntityVisibility'>,\n) => [\n // drawer\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentDrawerProps, 'collectionSlug' | 'operation'>\n >,\n // toggler\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentTogglerProps, 'collectionSlug' | 'operation'>\n >,\n // context\n UseDocumentDrawerContext,\n]\n"],"mappings":"AA+DA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/DocumentDrawer/types.ts"],"sourcesContent":["import type { Data, DefaultDocumentIDType, Operation } from 'payload'\nimport type React from 'react'\nimport type { HTMLAttributes } from 'react'\n\nimport type { Props as DrawerProps } from '../Drawer/types.js'\nimport type { DocumentDrawerContextProps } from './Provider.js'\n\nexport type DocumentDrawerProps = {\n readonly AfterFields?: React.ReactNode\n /**\n * The slug of the collection to which the document belongs.\n */\n readonly collectionSlug: string\n readonly disableActions?: boolean\n readonly drawerSlug?: string\n /**\n * The ID of the document to be edited.\n * When provided, will be fetched and displayed in the drawer.\n * If omitted, will render the \"create new\" view for the given collection.\n */\n readonly id?: DefaultDocumentIDType | null\n readonly initialData?: Data\n readonly overrideEntityVisibility?: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly redirectAfterRestore?: boolean\n} & Pick<DocumentDrawerContextProps, 'onDelete' | 'onDuplicate' | 'onSave'> &\n Pick<DrawerProps, 'Header'>\n\nexport type DocumentTogglerProps = {\n readonly buttonStyle?:\n | 'dashed'\n | 'destructive'\n | 'ghost'\n | 'link'\n | 'pill'\n | 'primary'\n | 'secondary'\n readonly children?: React.ReactNode\n readonly className?: string\n readonly collectionSlug: string\n readonly disabled?: boolean\n readonly drawerSlug?: string\n readonly extraButtonProps?: Record<string, any>\n readonly onClick?: () => void\n readonly operation: Operation\n readonly tooltip?: string\n} & Readonly<HTMLAttributes<HTMLButtonElement>>\n\nexport type UseDocumentDrawerContext = {\n closeDrawer: () => void\n drawerDepth: number\n drawerSlug: string\n isDrawerOpen: boolean\n openDrawer: () => void\n toggleDrawer: () => void\n}\n\nexport type UseDocumentDrawer = (\n args: {\n /**\n * Optional custom drawer slug. If provided, this will be used instead of auto-generating one.\n * Useful for ensuring stable slugs in contexts where component remounting can cause issues.\n */\n drawerSlug?: string\n } & Pick<DocumentDrawerProps, 'collectionSlug' | 'id' | 'overrideEntityVisibility'>,\n) => [\n // drawer\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentDrawerProps, 'collectionSlug' | 'operation'>\n >,\n // toggler\n React.FC<\n {\n children?: React.ReactNode\n } & Omit<DocumentTogglerProps, 'collectionSlug' | 'operation'>\n >,\n // context\n UseDocumentDrawerContext,\n]\n"],"mappings":"AA2DA","ignoreList":[]}
@@ -8,12 +8,12 @@
8
8
  .document-fields--has-sidebar {
9
9
  --main-width: 66.66%;
10
10
  --main-border: var(--stroke-width-small) solid var(--color-border);
11
- --main-field-margin: calc(var(--gutter-h) * -1);
11
+ --main-field-margin: calc(var(--gutter-h) * -1 * var(--field-border-bleed, 1));
12
12
  }
13
13
 
14
14
  .document-fields--has-sidebar:has(
15
- .document-fields__sidebar-wrap .document-fields__sidebar-fields > .render-fields:empty
16
- ) {
15
+ .document-fields__sidebar-wrap .document-fields__sidebar-fields > .render-fields:empty
16
+ ) {
17
17
  --main-width: 100%;
18
18
  --main-border: none;
19
19
  --main-field-margin: initial;
@@ -41,12 +41,12 @@
41
41
  }
42
42
 
43
43
  .document-fields--has-sidebar .document-fields__fields > .tabs-field {
44
- margin-right: var(--main-field-margin);
44
+ margin-inline-end: var(--main-field-margin);
45
45
  }
46
46
 
47
47
  /* Extend group border to the main/sidebar divider */
48
48
  .document-fields--has-sidebar .document-fields__fields > .group-field::before {
49
- right: calc(var(--gutter-h) * -1);
49
+ inset-inline-end: calc(var(--gutter-h) * -1 * var(--field-border-bleed, 1));
50
50
  }
51
51
 
52
52
  .document-fields__main {
@@ -155,7 +155,7 @@
155
155
  }
156
156
 
157
157
  .document-fields--has-sidebar .document-fields__fields > .tabs-field {
158
- margin-right: calc(var(--gutter-h) * -1);
158
+ margin-inline-end: calc(var(--gutter-h) * -1 * var(--field-border-bleed, 1));
159
159
  }
160
160
 
161
161
  .document-fields__main {
@@ -214,7 +214,7 @@
214
214
  }
215
215
 
216
216
  .document-fields--has-sidebar .document-fields__fields > .tabs-field {
217
- margin-right: calc(var(--gutter-h) * -1);
217
+ margin-inline-end: calc(var(--gutter-h) * -1 * var(--field-border-bleed, 1));
218
218
  }
219
219
 
220
220
  .document-fields {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAGxE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAMtC,OAAO,aAAa,CAAA;AAIpB,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAuFzC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentFields/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAA;AAGxE,OAAO,KAAkB,MAAM,OAAO,CAAA;AAKtC,OAAO,aAAa,CAAA;AAIpB,KAAK,IAAI,GAAG;IACV,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,cAAc,EAAE,4BAA4B,CAAA;IACrD,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAsFzC,CAAA"}
@@ -6,7 +6,6 @@ import React, { useMemo } from 'react';
6
6
  import { RenderFields } from '../../forms/RenderFields/index.js';
7
7
  import { Gutter } from '../Gutter/index.js';
8
8
  import { TrashBanner } from '../TrashBanner/index.js';
9
- import { RequiredFieldsInfo } from './RequiredFieldsInfo/index.js';
10
9
  import './index.css';
11
10
  const baseClass = 'document-fields';
12
11
  export const DocumentFields = ({
@@ -54,7 +53,7 @@ export const DocumentFields = ({
54
53
  className: `${baseClass}__main`,
55
54
  children: /*#__PURE__*/_jsxs(Gutter, {
56
55
  className: `${baseClass}__edit`,
57
- children: [isTrashed && /*#__PURE__*/_jsx(TrashBanner, {}), BeforeFields, !readOnly && /*#__PURE__*/_jsx(RequiredFieldsInfo, {}), /*#__PURE__*/_jsx(RenderFields, {
56
+ children: [isTrashed && /*#__PURE__*/_jsx(TrashBanner, {}), BeforeFields, /*#__PURE__*/_jsx(RenderFields, {
58
57
  className: `${baseClass}__fields`,
59
58
  fields: mainFields,
60
59
  forceRender: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["fieldIsSidebar","React","useMemo","RenderFields","Gutter","TrashBanner","RequiredFieldsInfo","baseClass","DocumentFields","AfterFields","BeforeFields","disableSidebar","docPermissions","fields","forceSidebarWrap","isTrashed","readOnly","schemaPathSegments","hasSidebarFields","mainFields","sidebarFields","reduce","acc","field","push","_jsxs","className","filter","Boolean","join","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../src/elements/DocumentFields/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedDocumentPermissions } from 'payload'\n\nimport { fieldIsSidebar } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { TrashBanner } from '../TrashBanner/index.js'\nimport { RequiredFieldsInfo } from './RequiredFieldsInfo/index.js'\nimport './index.css'\n\nconst baseClass = 'document-fields'\n\ntype Args = {\n readonly AfterFields?: React.ReactNode\n readonly BeforeFields?: React.ReactNode\n readonly Description?: React.ReactNode\n /**\n * When true, fields with `admin.position: 'sidebar'` render inline in the main column and no\n * sidebar is rendered. Used by upload collections, whose layout has no room for a field sidebar.\n */\n readonly disableSidebar?: boolean\n readonly docPermissions: SanitizedDocumentPermissions\n readonly fields: ClientField[]\n readonly forceSidebarWrap?: boolean\n readonly isTrashed?: boolean\n readonly readOnly?: boolean\n readonly schemaPathSegments: string[]\n}\n\nexport const DocumentFields: React.FC<Args> = ({\n AfterFields,\n BeforeFields,\n disableSidebar = false,\n docPermissions,\n fields,\n forceSidebarWrap,\n isTrashed = false,\n readOnly,\n schemaPathSegments,\n}) => {\n const { hasSidebarFields, mainFields, sidebarFields } = useMemo(() => {\n if (disableSidebar) {\n return {\n hasSidebarFields: false,\n mainFields: fields,\n sidebarFields: [] as ClientField[],\n }\n }\n\n return fields.reduce(\n (acc, field) => {\n if (fieldIsSidebar(field)) {\n acc.sidebarFields.push(field)\n acc.mainFields.push(null)\n acc.hasSidebarFields = true\n } else {\n acc.mainFields.push(field)\n acc.sidebarFields.push(null)\n }\n return acc\n },\n {\n hasSidebarFields: false,\n mainFields: [] as ClientField[],\n sidebarFields: [] as ClientField[],\n },\n )\n }, [disableSidebar, fields])\n\n return (\n <div\n className={[\n baseClass,\n hasSidebarFields ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`,\n forceSidebarWrap && `${baseClass}--force-sidebar-wrap`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__main`}>\n <Gutter className={`${baseClass}__edit`}>\n {isTrashed && <TrashBanner />}\n {BeforeFields}\n {!readOnly && <RequiredFieldsInfo />}\n <RenderFields\n className={`${baseClass}__fields`}\n fields={mainFields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={schemaPathSegments.join('.')}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n />\n {AfterFields}\n </Gutter>\n </div>\n {hasSidebarFields ? (\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-fields`}>\n <RenderFields\n fields={sidebarFields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={schemaPathSegments.join('.')}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n />\n </div>\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,YAAY,QAAQ;AAC7B,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,QAAQ;AAC5B,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAmBlB,OAAO,MAAMC,cAAA,GAAiCA,CAAC;EAC7CC,WAAW;EACXC,YAAY;EACZC,cAAA,GAAiB,KAAK;EACtBC,cAAc;EACdC,MAAM;EACNC,gBAAgB;EAChBC,SAAA,GAAY,KAAK;EACjBC,QAAQ;EACRC;AAAkB,CACnB;EACC,MAAM;IAAEC,gBAAgB;IAAEC,UAAU;IAAEC;EAAa,CAAE,GAAGlB,OAAA,CAAQ;IAC9D,IAAIS,cAAA,EAAgB;MAClB,OAAO;QACLO,gBAAA,EAAkB;QAClBC,UAAA,EAAYN,MAAA;QACZO,aAAA,EAAe;MACjB;IACF;IAEA,OAAOP,MAAA,CAAOQ,MAAM,CAClB,CAACC,GAAA,EAAKC,KAAA;MACJ,IAAIvB,cAAA,CAAeuB,KAAA,GAAQ;QACzBD,GAAA,CAAIF,aAAa,CAACI,IAAI,CAACD,KAAA;QACvBD,GAAA,CAAIH,UAAU,CAACK,IAAI,CAAC;QACpBF,GAAA,CAAIJ,gBAAgB,GAAG;MACzB,OAAO;QACLI,GAAA,CAAIH,UAAU,CAACK,IAAI,CAACD,KAAA;QACpBD,GAAA,CAAIF,aAAa,CAACI,IAAI,CAAC;MACzB;MACA,OAAOF,GAAA;IACT,GACA;MACEJ,gBAAA,EAAkB;MAClBC,UAAA,EAAY,EAAE;MACdC,aAAA,EAAe;IACjB;EAEJ,GAAG,CAACT,cAAA,EAAgBE,MAAA,CAAO;EAE3B,oBACEY,KAAA,CAAC;IACCC,SAAA,EAAW,CACTnB,SAAA,EACAW,gBAAA,GAAmB,GAAGX,SAAA,eAAwB,GAAG,GAAGA,SAAA,cAAuB,EAC3EO,gBAAA,IAAoB,GAAGP,SAAA,sBAA+B,CACvD,CACEoB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;4BAERC,IAAA,CAAC;MAAIJ,SAAA,EAAW,GAAGnB,SAAA,QAAiB;gBAClC,aAAAkB,KAAA,CAACrB,MAAA;QAAOsB,SAAA,EAAW,GAAGnB,SAAA,QAAiB;mBACpCQ,SAAA,iBAAae,IAAA,CAACzB,WAAA,OACdK,YAAA,EACA,CAACM,QAAA,iBAAYc,IAAA,CAACxB,kBAAA,O,aACfwB,IAAA,CAAC3B,YAAA;UACCuB,SAAA,EAAW,GAAGnB,SAAA,UAAmB;UACjCM,MAAA,EAAQM,UAAA;UACRY,WAAW;UACXC,eAAA,EAAgB;UAChBC,UAAA,EAAW;UACXC,gBAAA,EAAkBjB,kBAAA,CAAmBY,IAAI,CAAC;UAC1CM,WAAA,EAAavB,cAAA,EAAgBC,MAAA;UAC7BG,QAAA,EAAUA;YAEXP,WAAA;;QAGJS,gBAAA,gBACCY,IAAA,CAAC;MAAIJ,SAAA,EAAW,GAAGnB,SAAA,gBAAyB;gBAC1C,aAAAuB,IAAA,CAAC;QAAIJ,SAAA,EAAW,GAAGnB,SAAA,WAAoB;kBACrC,aAAAuB,IAAA,CAAC;UAAIJ,SAAA,EAAW,GAAGnB,SAAA,kBAA2B;oBAC5C,aAAAuB,IAAA,CAAC3B,YAAA;YACCU,MAAA,EAAQO,aAAA;YACRW,WAAW;YACXC,eAAA,EAAgB;YAChBC,UAAA,EAAW;YACXC,gBAAA,EAAkBjB,kBAAA,CAAmBY,IAAI,CAAC;YAC1CM,WAAA,EAAavB,cAAA,EAAgBC,MAAA;YAC7BG,QAAA,EAAUA;;;;SAKhB;;AAGV","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["fieldIsSidebar","React","useMemo","RenderFields","Gutter","TrashBanner","baseClass","DocumentFields","AfterFields","BeforeFields","disableSidebar","docPermissions","fields","forceSidebarWrap","isTrashed","readOnly","schemaPathSegments","hasSidebarFields","mainFields","sidebarFields","reduce","acc","field","push","_jsxs","className","filter","Boolean","join","_jsx","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions"],"sources":["../../../src/elements/DocumentFields/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField, SanitizedDocumentPermissions } from 'payload'\n\nimport { fieldIsSidebar } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { TrashBanner } from '../TrashBanner/index.js'\nimport './index.css'\n\nconst baseClass = 'document-fields'\n\ntype Args = {\n readonly AfterFields?: React.ReactNode\n readonly BeforeFields?: React.ReactNode\n readonly Description?: React.ReactNode\n /**\n * When true, fields with `admin.position: 'sidebar'` render inline in the main column and no\n * sidebar is rendered. Used by upload collections, whose layout has no room for a field sidebar.\n */\n readonly disableSidebar?: boolean\n readonly docPermissions: SanitizedDocumentPermissions\n readonly fields: ClientField[]\n readonly forceSidebarWrap?: boolean\n readonly isTrashed?: boolean\n readonly readOnly?: boolean\n readonly schemaPathSegments: string[]\n}\n\nexport const DocumentFields: React.FC<Args> = ({\n AfterFields,\n BeforeFields,\n disableSidebar = false,\n docPermissions,\n fields,\n forceSidebarWrap,\n isTrashed = false,\n readOnly,\n schemaPathSegments,\n}) => {\n const { hasSidebarFields, mainFields, sidebarFields } = useMemo(() => {\n if (disableSidebar) {\n return {\n hasSidebarFields: false,\n mainFields: fields,\n sidebarFields: [] as ClientField[],\n }\n }\n\n return fields.reduce(\n (acc, field) => {\n if (fieldIsSidebar(field)) {\n acc.sidebarFields.push(field)\n acc.mainFields.push(null)\n acc.hasSidebarFields = true\n } else {\n acc.mainFields.push(field)\n acc.sidebarFields.push(null)\n }\n return acc\n },\n {\n hasSidebarFields: false,\n mainFields: [] as ClientField[],\n sidebarFields: [] as ClientField[],\n },\n )\n }, [disableSidebar, fields])\n\n return (\n <div\n className={[\n baseClass,\n hasSidebarFields ? `${baseClass}--has-sidebar` : `${baseClass}--no-sidebar`,\n forceSidebarWrap && `${baseClass}--force-sidebar-wrap`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div className={`${baseClass}__main`}>\n <Gutter className={`${baseClass}__edit`}>\n {isTrashed && <TrashBanner />}\n {BeforeFields}\n <RenderFields\n className={`${baseClass}__fields`}\n fields={mainFields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={schemaPathSegments.join('.')}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n />\n {AfterFields}\n </Gutter>\n </div>\n {hasSidebarFields ? (\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-fields`}>\n <RenderFields\n fields={sidebarFields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={schemaPathSegments.join('.')}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n />\n </div>\n </div>\n </div>\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,YAAY,QAAQ;AAC7B,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAmBlB,OAAO,MAAMC,cAAA,GAAiCA,CAAC;EAC7CC,WAAW;EACXC,YAAY;EACZC,cAAA,GAAiB,KAAK;EACtBC,cAAc;EACdC,MAAM;EACNC,gBAAgB;EAChBC,SAAA,GAAY,KAAK;EACjBC,QAAQ;EACRC;AAAkB,CACnB;EACC,MAAM;IAAEC,gBAAgB;IAAEC,UAAU;IAAEC;EAAa,CAAE,GAAGjB,OAAA,CAAQ;IAC9D,IAAIQ,cAAA,EAAgB;MAClB,OAAO;QACLO,gBAAA,EAAkB;QAClBC,UAAA,EAAYN,MAAA;QACZO,aAAA,EAAe;MACjB;IACF;IAEA,OAAOP,MAAA,CAAOQ,MAAM,CAClB,CAACC,GAAA,EAAKC,KAAA;MACJ,IAAItB,cAAA,CAAesB,KAAA,GAAQ;QACzBD,GAAA,CAAIF,aAAa,CAACI,IAAI,CAACD,KAAA;QACvBD,GAAA,CAAIH,UAAU,CAACK,IAAI,CAAC;QACpBF,GAAA,CAAIJ,gBAAgB,GAAG;MACzB,OAAO;QACLI,GAAA,CAAIH,UAAU,CAACK,IAAI,CAACD,KAAA;QACpBD,GAAA,CAAIF,aAAa,CAACI,IAAI,CAAC;MACzB;MACA,OAAOF,GAAA;IACT,GACA;MACEJ,gBAAA,EAAkB;MAClBC,UAAA,EAAY,EAAE;MACdC,aAAA,EAAe;IACjB;EAEJ,GAAG,CAACT,cAAA,EAAgBE,MAAA,CAAO;EAE3B,oBACEY,KAAA,CAAC;IACCC,SAAA,EAAW,CACTnB,SAAA,EACAW,gBAAA,GAAmB,GAAGX,SAAA,eAAwB,GAAG,GAAGA,SAAA,cAAuB,EAC3EO,gBAAA,IAAoB,GAAGP,SAAA,sBAA+B,CACvD,CACEoB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;4BAERC,IAAA,CAAC;MAAIJ,SAAA,EAAW,GAAGnB,SAAA,QAAiB;gBAClC,aAAAkB,KAAA,CAACpB,MAAA;QAAOqB,SAAA,EAAW,GAAGnB,SAAA,QAAiB;mBACpCQ,SAAA,iBAAae,IAAA,CAACxB,WAAA,OACdI,YAAA,E,aACDoB,IAAA,CAAC1B,YAAA;UACCsB,SAAA,EAAW,GAAGnB,SAAA,UAAmB;UACjCM,MAAA,EAAQM,UAAA;UACRY,WAAW;UACXC,eAAA,EAAgB;UAChBC,UAAA,EAAW;UACXC,gBAAA,EAAkBjB,kBAAA,CAAmBY,IAAI,CAAC;UAC1CM,WAAA,EAAavB,cAAA,EAAgBC,MAAA;UAC7BG,QAAA,EAAUA;YAEXP,WAAA;;QAGJS,gBAAA,gBACCY,IAAA,CAAC;MAAIJ,SAAA,EAAW,GAAGnB,SAAA,gBAAyB;gBAC1C,aAAAuB,IAAA,CAAC;QAAIJ,SAAA,EAAW,GAAGnB,SAAA,WAAoB;kBACrC,aAAAuB,IAAA,CAAC;UAAIJ,SAAA,EAAW,GAAGnB,SAAA,kBAA2B;oBAC5C,aAAAuB,IAAA,CAAC1B,YAAA;YACCS,MAAA,EAAQO,aAAA;YACRW,WAAW;YACXC,eAAA,EAAgB;YAChBC,UAAA,EAAW;YACXC,gBAAA,EAAkBjB,kBAAA,CAAmBY,IAAI,CAAC;YAC1CM,WAAA,EAAavB,cAAA,EAAgBC,MAAA;YAC7BG,QAAA,EAAUA;;;;SAKhB;;AAGV","ignoreList":[]}