@payloadcms/ui 4.0.0-internal.5d5a2b2 → 4.0.0-internal.63f8536

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 (1067) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/css/colors.css +112 -59
  3. package/dist/css/design-tokens.css +5 -0
  4. package/dist/css/elevations.css +4 -0
  5. package/dist/css/forms.css +6 -3
  6. package/dist/css/radius.css +1 -3
  7. package/dist/css/theme.css +6 -1
  8. package/dist/css/utilities.css +7 -1
  9. package/dist/elements/APIKeyInput/index.css +92 -0
  10. package/dist/elements/APIKeyInput/index.d.ts +14 -0
  11. package/dist/elements/APIKeyInput/index.d.ts.map +1 -0
  12. package/dist/elements/APIKeyInput/index.js +86 -0
  13. package/dist/elements/APIKeyInput/index.js.map +1 -0
  14. package/dist/elements/AddNewRelation/index.css +28 -28
  15. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  16. package/dist/elements/AddNewRelation/index.js +85 -103
  17. package/dist/elements/AddNewRelation/index.js.map +1 -1
  18. package/dist/elements/AppHeader/index.d.ts +4 -1
  19. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  20. package/dist/elements/AppHeader/index.js +16 -27
  21. package/dist/elements/AppHeader/index.js.map +1 -1
  22. package/dist/elements/ArrayAction/index.js +2 -2
  23. package/dist/elements/ArrayAction/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/ActionsBar/index.css +13 -11
  25. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +1 -5
  26. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  27. package/dist/elements/BulkUpload/ActionsBar/index.js +57 -61
  28. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/AddFilesView/index.css +14 -8
  30. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -2
  31. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  32. package/dist/elements/BulkUpload/AddFilesView/index.js +41 -36
  33. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  34. package/dist/elements/BulkUpload/AddingFilesView/index.css +177 -0
  35. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +6 -2
  36. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  37. package/dist/elements/BulkUpload/AddingFilesView/index.js +135 -66
  38. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  39. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
  40. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  41. package/dist/elements/BulkUpload/EditForm/index.css +9 -0
  42. package/dist/elements/BulkUpload/EditForm/index.d.ts +2 -2
  43. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  44. package/dist/elements/BulkUpload/EditForm/index.js +17 -18
  45. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  46. package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -3
  47. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
  48. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  49. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts +1 -1
  50. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  51. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +77 -59
  52. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  53. package/dist/elements/BulkUpload/EditMany/index.css +71 -0
  54. package/dist/elements/BulkUpload/EditMany/index.d.ts +1 -1
  55. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  56. package/dist/elements/BulkUpload/EditMany/index.js +29 -11
  57. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  58. package/dist/elements/BulkUpload/FileSidebar/index.css +79 -180
  59. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  60. package/dist/elements/BulkUpload/FileSidebar/index.js +42 -165
  61. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  62. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  63. package/dist/elements/BulkUpload/FormsManager/index.js +14 -1
  64. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  65. package/dist/elements/BulkUpload/index.css +48 -0
  66. package/dist/elements/BulkUpload/index.d.ts +6 -5
  67. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  68. package/dist/elements/BulkUpload/index.js +42 -41
  69. package/dist/elements/BulkUpload/index.js.map +1 -1
  70. package/dist/elements/Button/index.css +8 -0
  71. package/dist/elements/Button/index.d.ts.map +1 -1
  72. package/dist/elements/Button/index.js +5 -0
  73. package/dist/elements/Button/index.js.map +1 -1
  74. package/dist/elements/Card/index.css +1 -1
  75. package/dist/elements/Chip/index.css +1 -1
  76. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  77. package/dist/elements/ClipboardAction/index.js +1 -0
  78. package/dist/elements/ClipboardAction/index.js.map +1 -1
  79. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  80. package/dist/elements/CodeEditor/CodeEditor.js +19 -0
  81. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  82. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  83. package/dist/elements/Collapsible/index.js +2 -0
  84. package/dist/elements/Collapsible/index.js.map +1 -1
  85. package/dist/elements/ColumnSelection/Popup.d.ts +12 -0
  86. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -0
  87. package/dist/elements/{ColumnSelector/index.js → ColumnSelection/Popup.js} +25 -18
  88. package/dist/elements/ColumnSelection/Popup.js.map +1 -0
  89. package/dist/elements/ColumnSelection/index.d.ts +10 -0
  90. package/dist/elements/ColumnSelection/index.d.ts.map +1 -0
  91. package/dist/elements/{ColumnsButton → ColumnSelection}/index.js +23 -17
  92. package/dist/elements/ColumnSelection/index.js.map +1 -0
  93. package/dist/elements/Combobox/index.css +9 -8
  94. package/dist/elements/ConfirmationModal/index.css +7 -0
  95. package/dist/elements/ConfirmationModal/index.d.ts +1 -0
  96. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  97. package/dist/elements/ConfirmationModal/index.js +7 -3
  98. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  99. package/dist/elements/CopyLocaleData/index.js +1 -1
  100. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  101. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  102. package/dist/elements/CreateDocumentButton/index.js +0 -1
  103. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  104. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  105. package/dist/elements/DatePicker/DatePicker.js +4 -2
  106. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  107. package/dist/elements/DatePicker/index.css +14 -9
  108. package/dist/elements/DatePicker/index.js +1 -1
  109. package/dist/elements/DatePicker/index.js.map +1 -1
  110. package/dist/elements/DeleteMany/index.d.ts +3 -26
  111. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  112. package/dist/elements/DeleteMany/index.js +1 -95
  113. package/dist/elements/DeleteMany/index.js.map +1 -1
  114. package/dist/elements/Dialog/DialogHeader/index.d.ts +4 -0
  115. package/dist/elements/Dialog/DialogHeader/index.d.ts.map +1 -1
  116. package/dist/elements/Dialog/DialogHeader/index.js +45 -30
  117. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  118. package/dist/elements/Dialog/DialogModal/index.d.ts +6 -1
  119. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  120. package/dist/elements/Dialog/DialogModal/index.js +58 -31
  121. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  122. package/dist/elements/Dialog/DialogTitle/index.css +9 -0
  123. package/dist/elements/Dialog/DialogTitle/index.d.ts +5 -0
  124. package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -0
  125. package/dist/elements/Dialog/DialogTitle/index.js +10 -0
  126. package/dist/elements/Dialog/DialogTitle/index.js.map +1 -0
  127. package/dist/elements/Dialog/index.css +10 -0
  128. package/dist/elements/DocumentControls/index.css +18 -2
  129. package/dist/elements/DocumentControls/index.d.ts +6 -0
  130. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  131. package/dist/elements/DocumentControls/index.js +20 -9
  132. package/dist/elements/DocumentControls/index.js.map +1 -1
  133. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  134. package/dist/elements/DocumentDrawer/DrawerContent.js +10 -6
  135. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  136. package/dist/elements/DocumentDrawer/DrawerHeader/index.css +76 -4
  137. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +7 -1
  138. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  139. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +150 -87
  140. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  141. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  142. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  143. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  144. package/dist/elements/DocumentFields/index.css +75 -4
  145. package/dist/elements/DocumentFields/index.d.ts +5 -0
  146. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  147. package/dist/elements/DocumentFields/index.js +9 -1
  148. package/dist/elements/DocumentFields/index.js.map +1 -1
  149. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts +12 -0
  150. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts.map +1 -0
  151. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +28 -0
  152. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -0
  153. package/dist/elements/DocumentHeader/index.js +2 -3
  154. package/dist/elements/DocumentHeader/index.js.map +1 -1
  155. package/dist/elements/DraggableSortable/DragOverlayPreview/index.css +1 -1
  156. package/dist/elements/DraggableSortable/index.js.map +1 -1
  157. package/dist/elements/Drawer/index.css +57 -26
  158. package/dist/elements/Drawer/index.d.ts +25 -0
  159. package/dist/elements/Drawer/index.d.ts.map +1 -1
  160. package/dist/elements/Drawer/index.js +133 -54
  161. package/dist/elements/Drawer/index.js.map +1 -1
  162. package/dist/elements/Drawer/types.d.ts +1 -0
  163. package/dist/elements/Drawer/types.d.ts.map +1 -1
  164. package/dist/elements/Drawer/types.js.map +1 -1
  165. package/dist/elements/DrawerActionHeader/index.css +1 -1
  166. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.css +7 -1
  167. package/dist/elements/DrawerHeader/index.d.ts +10 -0
  168. package/dist/elements/DrawerHeader/index.d.ts.map +1 -0
  169. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.js +16 -11
  170. package/dist/elements/DrawerHeader/index.js.map +1 -0
  171. package/dist/elements/Dropzone/index.css +5 -13
  172. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +1 -1
  173. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  174. package/dist/elements/EditMany/DrawerContent.d.ts +1 -1
  175. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  176. package/dist/elements/EditMany/DrawerContent.js +76 -71
  177. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  178. package/dist/elements/EditMany/index.css +71 -0
  179. package/dist/elements/EditMany/index.d.ts +9 -11
  180. package/dist/elements/EditMany/index.d.ts.map +1 -1
  181. package/dist/elements/EditMany/index.js +2 -40
  182. package/dist/elements/EditMany/index.js.map +1 -1
  183. package/dist/elements/EditUpload/index.css +97 -158
  184. package/dist/elements/EditUpload/index.d.ts +2 -1
  185. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  186. package/dist/elements/EditUpload/index.js +209 -231
  187. package/dist/elements/EditUpload/index.js.map +1 -1
  188. package/dist/elements/EditUpload/{library.scss → library.css} +108 -46
  189. package/dist/elements/FieldSelect/index.css +3 -0
  190. package/dist/elements/FileDetails/DraggableFileDetails/index.css +32 -0
  191. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +2 -2
  192. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  193. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -18
  194. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  195. package/dist/elements/FileDetails/FileMeta/index.css +27 -0
  196. package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
  197. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  198. package/dist/elements/FileDetails/FileMeta/index.js +1 -1
  199. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  200. package/dist/elements/FileDetails/StaticFileDetails/index.css +140 -0
  201. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +2 -2
  202. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  203. package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
  204. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  205. package/dist/elements/FileDetails/index.d.ts +1 -1
  206. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  207. package/dist/elements/FileDetails/index.js.map +1 -1
  208. package/dist/elements/FileManager/FilePreview/AudioPreview/index.css +8 -0
  209. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts +10 -0
  210. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts.map +1 -0
  211. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js +24 -0
  212. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js.map +1 -0
  213. package/dist/elements/FileManager/FilePreview/PdfPreview/index.css +9 -0
  214. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts +12 -0
  215. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts.map +1 -0
  216. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js +27 -0
  217. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js.map +1 -0
  218. package/dist/elements/FileManager/FilePreview/VideoPreview/index.css +8 -0
  219. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts +10 -0
  220. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts.map +1 -0
  221. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js +24 -0
  222. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js.map +1 -0
  223. package/dist/elements/FileManager/FilePreview/index.css +83 -0
  224. package/dist/elements/FileManager/FilePreview/index.d.ts +13 -0
  225. package/dist/elements/FileManager/FilePreview/index.d.ts.map +1 -0
  226. package/dist/elements/FileManager/FilePreview/index.js +140 -0
  227. package/dist/elements/FileManager/FilePreview/index.js.map +1 -0
  228. package/dist/elements/FileManager/FileToolbar/index.css +91 -0
  229. package/dist/elements/FileManager/FileToolbar/index.d.ts +14 -0
  230. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -0
  231. package/dist/elements/FileManager/FileToolbar/index.js +106 -0
  232. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -0
  233. package/dist/elements/FileManager/index.css +154 -0
  234. package/dist/elements/FileManager/index.d.ts +19 -0
  235. package/dist/elements/FileManager/index.d.ts.map +1 -0
  236. package/dist/elements/FileManager/index.js +424 -0
  237. package/dist/elements/FileManager/index.js.map +1 -0
  238. package/dist/elements/GroupBy/Popup.d.ts +21 -0
  239. package/dist/elements/GroupBy/Popup.d.ts.map +1 -0
  240. package/dist/elements/GroupBy/Popup.js +268 -0
  241. package/dist/elements/GroupBy/Popup.js.map +1 -0
  242. package/dist/elements/GroupBy/index.d.ts +12 -0
  243. package/dist/elements/GroupBy/index.d.ts.map +1 -0
  244. package/dist/elements/GroupBy/index.js +91 -0
  245. package/dist/elements/GroupBy/index.js.map +1 -0
  246. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +5 -3
  247. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +1 -0
  248. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +1 -1
  249. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  250. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  251. package/dist/elements/Hierarchy/DocHeaderButton/index.js +12 -12
  252. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  253. package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +36 -0
  254. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +1 -1
  255. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  256. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -1
  257. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  258. package/dist/elements/Hierarchy/Field/index.client.d.ts +1 -1
  259. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
  260. package/dist/elements/Hierarchy/Field/index.client.js +19 -16
  261. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  262. package/dist/elements/Hierarchy/Field/index.css +37 -0
  263. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -0
  264. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -0
  265. package/dist/elements/Hierarchy/Modal/index.css +88 -0
  266. package/dist/elements/Hierarchy/Modal/index.d.ts +20 -0
  267. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -0
  268. package/dist/elements/Hierarchy/{Drawer → Modal}/index.js +109 -83
  269. package/dist/elements/Hierarchy/Modal/index.js.map +1 -0
  270. package/dist/elements/Hierarchy/{Drawer → Modal}/types.d.ts +22 -18
  271. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -0
  272. package/dist/elements/Hierarchy/Modal/types.js.map +1 -0
  273. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts +30 -0
  274. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts.map +1 -0
  275. package/dist/elements/Hierarchy/{Drawer/useHierarchyDrawer.js → Modal/useHierarchyModal.js} +51 -50
  276. package/dist/elements/Hierarchy/Modal/useHierarchyModal.js.map +1 -0
  277. package/dist/elements/Hierarchy/MoveMany/index.d.ts +2 -3
  278. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  279. package/dist/elements/Hierarchy/MoveMany/index.js +9 -10
  280. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  281. package/dist/elements/Hierarchy/Tree/LoadMore/index.css +27 -0
  282. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +1 -1
  283. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -1
  284. package/dist/elements/Hierarchy/Tree/LoadMore/index.js +1 -1
  285. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -1
  286. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
  287. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +36 -16
  288. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  289. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +38 -13
  290. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  291. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +54 -43
  292. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  293. package/dist/elements/Hierarchy/Tree/index.css +1 -1
  294. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  295. package/dist/elements/Hierarchy/Tree/index.js +18 -5
  296. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  297. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  298. package/dist/elements/ListColumnSelectionButton/index.d.ts +11 -0
  299. package/dist/elements/ListColumnSelectionButton/index.d.ts.map +1 -0
  300. package/dist/elements/ListColumnSelectionButton/index.js +37 -0
  301. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -0
  302. package/dist/elements/ListControls/index.css +5 -0
  303. package/dist/elements/ListControls/index.d.ts.map +1 -1
  304. package/dist/elements/ListControls/index.js +8 -9
  305. package/dist/elements/ListControls/index.js.map +1 -1
  306. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  307. package/dist/elements/ListDrawer/DrawerContent.js +13 -7
  308. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  309. package/dist/elements/ListDrawer/Provider.d.ts +1 -1
  310. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  311. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  312. package/dist/elements/ListGroupByButton/index.d.ts +12 -0
  313. package/dist/elements/ListGroupByButton/index.d.ts.map +1 -0
  314. package/dist/elements/ListGroupByButton/index.js +55 -0
  315. package/dist/elements/ListGroupByButton/index.js.map +1 -0
  316. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  317. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +2 -0
  318. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  319. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +4 -4
  320. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  321. package/dist/elements/ListSelection/index.css +1 -1
  322. package/dist/elements/ListWhereBuilder/index.d.ts +16 -0
  323. package/dist/elements/ListWhereBuilder/index.d.ts.map +1 -0
  324. package/dist/elements/ListWhereBuilder/index.js +62 -0
  325. package/dist/elements/ListWhereBuilder/index.js.map +1 -0
  326. package/dist/elements/LivePreview/Toolbar/Controls/index.js +2 -2
  327. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  328. package/dist/elements/LivePreview/Toolbar/SizeInput/index.css +5 -44
  329. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  330. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +26 -43
  331. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  332. package/dist/elements/LivePreview/Window/index.css +6 -0
  333. package/dist/elements/LoadMoreRow/index.css +34 -0
  334. package/dist/elements/LoadMoreRow/index.d.ts +1 -1
  335. package/dist/elements/LoadMoreRow/index.d.ts.map +1 -1
  336. package/dist/elements/LoadMoreRow/index.js +4 -8
  337. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  338. package/dist/elements/Loading/index.css +28 -74
  339. package/dist/elements/Loading/index.d.ts.map +1 -1
  340. package/dist/elements/Loading/index.js +16 -60
  341. package/dist/elements/Loading/index.js.map +1 -1
  342. package/dist/elements/Localizer/index.d.ts.map +1 -1
  343. package/dist/elements/Localizer/index.js +3 -4
  344. package/dist/elements/Localizer/index.js.map +1 -1
  345. package/dist/elements/MenuSeparator/index.d.ts +4 -0
  346. package/dist/elements/MenuSeparator/index.d.ts.map +1 -0
  347. package/dist/elements/MenuSeparator/index.js +10 -0
  348. package/dist/elements/MenuSeparator/index.js.map +1 -0
  349. package/dist/elements/MiniCarousel/index.css +94 -0
  350. package/dist/elements/MiniCarousel/index.d.ts +15 -0
  351. package/dist/elements/MiniCarousel/index.d.ts.map +1 -0
  352. package/dist/elements/MiniCarousel/index.js +84 -0
  353. package/dist/elements/MiniCarousel/index.js.map +1 -0
  354. package/dist/elements/Nav/SettingsMenuButton/index.css +5 -0
  355. package/dist/elements/Nav/SettingsMenuButton/index.d.ts +1 -1
  356. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  357. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -1
  358. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  359. package/dist/elements/Nav/index.css +2 -2
  360. package/dist/elements/Nav/index.d.ts.map +1 -1
  361. package/dist/elements/Nav/index.js +4 -23
  362. package/dist/elements/Nav/index.js.map +1 -1
  363. package/dist/elements/NavGroup/index.css +1 -1
  364. package/dist/elements/Pill/index.css +1 -1
  365. package/dist/elements/PillSelector/index.css +1 -1
  366. package/dist/elements/Popup/PopupButtonList/index.css +48 -4
  367. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  368. package/dist/elements/Popup/PopupButtonList/index.js +1 -0
  369. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  370. package/dist/elements/Popup/PopupGroupLabel/index.css +19 -4
  371. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
  372. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  373. package/dist/elements/Popup/PopupTrigger/index.js +3 -0
  374. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  375. package/dist/elements/Popup/index.d.ts +14 -1
  376. package/dist/elements/Popup/index.d.ts.map +1 -1
  377. package/dist/elements/Popup/index.js +162 -63
  378. package/dist/elements/Popup/index.js.map +1 -1
  379. package/dist/elements/PreviewSizes/index.css +149 -0
  380. package/dist/elements/PreviewSizes/index.d.ts +2 -2
  381. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  382. package/dist/elements/PreviewSizes/index.js +1 -1
  383. package/dist/elements/PreviewSizes/index.js.map +1 -1
  384. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts +13 -0
  385. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts.map +1 -0
  386. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js +41 -0
  387. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js.map +1 -0
  388. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +1 -0
  389. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  390. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  391. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  392. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  393. package/dist/elements/PublishButton/index.js +4 -5
  394. package/dist/elements/PublishButton/index.js.map +1 -1
  395. package/dist/elements/PublishMany/DrawerContent.d.ts +2 -1
  396. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  397. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  398. package/dist/elements/PublishMany/index.d.ts +2 -6
  399. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  400. package/dist/elements/PublishMany/index.js +0 -38
  401. package/dist/elements/PublishMany/index.js.map +1 -1
  402. package/dist/elements/QueryPresets/cells/ColumnsCell/{index.scss → index.css} +1 -3
  403. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +1 -1
  404. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -1
  405. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -1
  406. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  407. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +1 -1
  408. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  409. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +77 -48
  410. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  411. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +1 -1
  412. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  413. package/dist/elements/QueryPresets/fields/GroupByField/index.js +12 -21
  414. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  415. package/dist/elements/QueryPresets/fields/Heading/index.css +52 -0
  416. package/dist/elements/QueryPresets/fields/Heading/index.d.ts +7 -0
  417. package/dist/elements/QueryPresets/fields/Heading/index.d.ts.map +1 -0
  418. package/dist/elements/QueryPresets/fields/Heading/index.js +31 -0
  419. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -0
  420. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +1 -1
  421. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  422. package/dist/elements/QueryPresets/fields/WhereField/index.js +24 -23
  423. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  424. package/dist/elements/QueryPresets/fields/fields.css +23 -0
  425. package/dist/elements/ReactSelect/DropdownIndicator/index.css +1 -1
  426. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  427. package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -12
  428. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  429. package/dist/elements/ReactSelect/MultiValue/index.css +1 -1
  430. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts +5 -0
  431. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -0
  432. package/dist/elements/ReactSelect/getCaptureMenuScroll.js +10 -0
  433. package/dist/elements/ReactSelect/getCaptureMenuScroll.js.map +1 -0
  434. package/dist/elements/ReactSelect/getMenuListStyles.d.ts +6 -0
  435. package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -0
  436. package/dist/elements/ReactSelect/getMenuListStyles.js +7 -0
  437. package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -0
  438. package/dist/elements/ReactSelect/index.css +54 -54
  439. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  440. package/dist/elements/ReactSelect/index.js +211 -115
  441. package/dist/elements/ReactSelect/index.js.map +1 -1
  442. package/dist/elements/ReactSelect/types.d.ts +8 -1
  443. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  444. package/dist/elements/ReactSelect/types.js.map +1 -1
  445. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  446. package/dist/elements/RelationshipTable/AddNewButton.js +1 -2
  447. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  448. package/dist/elements/RelationshipTable/index.css +1 -2
  449. package/dist/elements/RelationshipTable/index.js +2 -2
  450. package/dist/elements/RelationshipTable/index.js.map +1 -1
  451. package/dist/elements/RenderTitle/index.css +10 -0
  452. package/dist/elements/RenderTitle/index.d.ts +5 -0
  453. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  454. package/dist/elements/RenderTitle/index.js +52 -27
  455. package/dist/elements/RenderTitle/index.js.map +1 -1
  456. package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
  457. package/dist/elements/SchedulePublishButton/index.js +6 -1
  458. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  459. package/dist/elements/Search/SearchInput/index.js +1 -1
  460. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  461. package/dist/elements/SelectMany/index.js +1 -1
  462. package/dist/elements/SelectMany/index.js.map +1 -1
  463. package/dist/elements/SidebarRow/index.css +0 -2
  464. package/dist/elements/SortColumn/index.css +1 -1
  465. package/dist/elements/Spinner/index.css +16 -0
  466. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  467. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
  468. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  469. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  470. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +32 -13
  471. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  472. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  473. package/dist/elements/Table/OrderableRow.js +1 -1
  474. package/dist/elements/Table/OrderableRow.js.map +1 -1
  475. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  476. package/dist/elements/Table/RelationshipProvider/index.js +1 -0
  477. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  478. package/dist/elements/Table/index.css +44 -10
  479. package/dist/elements/Tabs/index.css +100 -0
  480. package/dist/elements/Tabs/index.d.ts +32 -0
  481. package/dist/elements/Tabs/index.d.ts.map +1 -0
  482. package/dist/elements/Tabs/index.js +62 -0
  483. package/dist/elements/Tabs/index.js.map +1 -0
  484. package/dist/elements/Thumbnail/index.css +41 -0
  485. package/dist/elements/Thumbnail/index.d.ts +3 -3
  486. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  487. package/dist/elements/Thumbnail/index.js +1 -1
  488. package/dist/elements/Thumbnail/index.js.map +1 -1
  489. package/dist/elements/TimezonePicker/index.css +58 -24
  490. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  491. package/dist/elements/TimezonePicker/index.js +31 -4
  492. package/dist/elements/TimezonePicker/index.js.map +1 -1
  493. package/dist/elements/Toasts/fieldErrors.d.ts +1 -0
  494. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  495. package/dist/elements/Toasts/fieldErrors.js +25 -9
  496. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  497. package/dist/elements/Toasts/index.css +5 -0
  498. package/dist/elements/Tooltip/index.css +20 -4
  499. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  500. package/dist/elements/Tooltip/index.js +71 -3
  501. package/dist/elements/Tooltip/index.js.map +1 -1
  502. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  503. package/dist/elements/UnpublishButton/index.js +5 -13
  504. package/dist/elements/UnpublishButton/index.js.map +1 -1
  505. package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -1
  506. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  507. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  508. package/dist/elements/UnpublishMany/index.d.ts +2 -4
  509. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  510. package/dist/elements/UnpublishMany/index.js +0 -38
  511. package/dist/elements/UnpublishMany/index.js.map +1 -1
  512. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +11 -0
  513. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -0
  514. package/dist/elements/Upload/UploadFromURLModal/index.js +88 -0
  515. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -0
  516. package/dist/elements/Upload/index.css +134 -45
  517. package/dist/elements/Upload/index.d.ts +3 -8
  518. package/dist/elements/Upload/index.d.ts.map +1 -1
  519. package/dist/elements/Upload/index.js +71 -92
  520. package/dist/elements/Upload/index.js.map +1 -1
  521. package/dist/elements/UserMenu/LanguageMenu/index.d.ts +6 -0
  522. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -0
  523. package/dist/elements/UserMenu/LanguageMenu/index.js +133 -0
  524. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -0
  525. package/dist/elements/UserMenu/SettingsMenu/index.d.ts +15 -0
  526. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -0
  527. package/dist/elements/UserMenu/SettingsMenu/index.js +119 -0
  528. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -0
  529. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts +6 -0
  530. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -0
  531. package/dist/elements/UserMenu/SubMenuHeader/index.js +34 -0
  532. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -0
  533. package/dist/elements/UserMenu/ThemeMenu/index.d.ts +6 -0
  534. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -0
  535. package/dist/elements/UserMenu/ThemeMenu/index.js +145 -0
  536. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -0
  537. package/dist/elements/UserMenu/index.css +80 -0
  538. package/dist/elements/UserMenu/index.d.ts +11 -0
  539. package/dist/elements/UserMenu/index.d.ts.map +1 -0
  540. package/dist/elements/UserMenu/index.js +205 -0
  541. package/dist/elements/UserMenu/index.js.map +1 -0
  542. package/dist/elements/WhereBuilder/Condition/index.css +1 -1
  543. package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -0
  544. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  545. package/dist/elements/WhereBuilder/Condition/index.js +20 -2
  546. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  547. package/dist/elements/WhereBuilder/index.d.ts +4 -3
  548. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  549. package/dist/elements/WhereBuilder/index.js +71 -62
  550. package/dist/elements/WhereBuilder/index.js.map +1 -1
  551. package/dist/elements/WhereBuilder/types.d.ts +6 -5
  552. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  553. package/dist/elements/WhereBuilder/types.js.map +1 -1
  554. package/dist/exports/client/index.d.ts +22 -5
  555. package/dist/exports/client/index.d.ts.map +1 -1
  556. package/dist/exports/client/index.js +1 -2
  557. package/dist/exports/client/index.js.map +4 -4
  558. package/dist/exports/rsc/index.d.ts +3 -0
  559. package/dist/exports/rsc/index.d.ts.map +1 -1
  560. package/dist/exports/rsc/index.js +3 -0
  561. package/dist/exports/rsc/index.js.map +1 -1
  562. package/dist/exports/shared/index.js +2 -2
  563. package/dist/exports/shared/index.js.map +2 -2
  564. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +2 -50
  565. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.d.ts.map +1 -1
  566. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +27 -20
  567. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  568. package/dist/fields/Blocks/BlockSelector/index.css +15 -4
  569. package/dist/fields/Blocks/BlockSelector/index.js +1 -1
  570. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  571. package/dist/fields/Blocks/SectionTitle/index.d.ts.map +1 -1
  572. package/dist/fields/Blocks/SectionTitle/index.js +1 -0
  573. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  574. package/dist/fields/Blocks/index.d.ts.map +1 -1
  575. package/dist/fields/Blocks/index.js +6 -11
  576. package/dist/fields/Blocks/index.js.map +1 -1
  577. package/dist/fields/Checkbox/index.css +2 -2
  578. package/dist/fields/ConfirmPassword/index.d.ts +4 -0
  579. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  580. package/dist/fields/ConfirmPassword/index.js +37 -33
  581. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  582. package/dist/fields/Group/index.css +5 -11
  583. package/dist/fields/Join/index.js +1 -1
  584. package/dist/fields/Join/index.js.map +1 -1
  585. package/dist/fields/Number/Input.d.ts.map +1 -1
  586. package/dist/fields/Number/Input.js +62 -46
  587. package/dist/fields/Number/Input.js.map +1 -1
  588. package/dist/fields/Number/index.css +19 -0
  589. package/dist/fields/Number/types.d.ts +10 -0
  590. package/dist/fields/Number/types.d.ts.map +1 -1
  591. package/dist/fields/Number/types.js.map +1 -1
  592. package/dist/fields/Password/input.d.ts.map +1 -1
  593. package/dist/fields/Password/input.js +33 -29
  594. package/dist/fields/Password/input.js.map +1 -1
  595. package/dist/fields/Password/types.d.ts +4 -0
  596. package/dist/fields/Password/types.d.ts.map +1 -1
  597. package/dist/fields/Password/types.js.map +1 -1
  598. package/dist/fields/RadioGroup/index.css +6 -0
  599. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  600. package/dist/fields/Relationship/Input.js +4 -0
  601. package/dist/fields/Relationship/Input.js.map +1 -1
  602. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +4 -4
  603. package/dist/fields/Relationship/types.d.ts +4 -0
  604. package/dist/fields/Relationship/types.d.ts.map +1 -1
  605. package/dist/fields/Relationship/types.js.map +1 -1
  606. package/dist/fields/Row/index.d.ts +1 -1
  607. package/dist/fields/Select/Input.d.ts +4 -0
  608. package/dist/fields/Select/Input.d.ts.map +1 -1
  609. package/dist/fields/Select/Input.js +45 -40
  610. package/dist/fields/Select/Input.js.map +1 -1
  611. package/dist/fields/Slug/index.d.ts +7 -5
  612. package/dist/fields/Slug/index.d.ts.map +1 -1
  613. package/dist/fields/Slug/index.js +6 -4
  614. package/dist/fields/Slug/index.js.map +1 -1
  615. package/dist/fields/Tabs/Tab/index.d.ts +0 -1
  616. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  617. package/dist/fields/Tabs/Tab/index.js +12 -23
  618. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  619. package/dist/fields/Tabs/index.d.ts.map +1 -1
  620. package/dist/fields/Tabs/index.js +37 -37
  621. package/dist/fields/Tabs/index.js.map +1 -1
  622. package/dist/fields/Text/Input.d.ts.map +1 -1
  623. package/dist/fields/Text/Input.js +44 -37
  624. package/dist/fields/Text/Input.js.map +1 -1
  625. package/dist/fields/Text/types.d.ts +9 -0
  626. package/dist/fields/Text/types.d.ts.map +1 -1
  627. package/dist/fields/Text/types.js.map +1 -1
  628. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  629. package/dist/fields/Textarea/Input.js +27 -23
  630. package/dist/fields/Textarea/Input.js.map +1 -1
  631. package/dist/fields/Textarea/index.css +1 -1
  632. package/dist/fields/Textarea/types.d.ts +4 -0
  633. package/dist/fields/Textarea/types.d.ts.map +1 -1
  634. package/dist/fields/Textarea/types.js.map +1 -1
  635. package/dist/fields/Upload/HasMany/index.css +4 -0
  636. package/dist/fields/Upload/Input.d.ts.map +1 -1
  637. package/dist/fields/Upload/Input.js +12 -11
  638. package/dist/fields/Upload/Input.js.map +1 -1
  639. package/dist/fields/Upload/index.js +1 -1
  640. package/dist/fields/Upload/index.js.map +1 -1
  641. package/dist/fields/index.d.ts.map +1 -1
  642. package/dist/fields/index.js +2 -0
  643. package/dist/fields/index.js.map +1 -1
  644. package/dist/forms/Form/types.d.ts +2 -2
  645. package/dist/forms/Form/types.d.ts.map +1 -1
  646. package/dist/forms/Form/types.js.map +1 -1
  647. package/dist/forms/RenderFields/RenderField.d.ts +1 -1
  648. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  649. package/dist/forms/RenderFields/RenderField.js +12 -1
  650. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  651. package/dist/forms/RenderFields/index.css +4 -4
  652. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  653. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  654. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +22 -6
  655. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  656. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -2
  657. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  658. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  659. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -2
  660. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  661. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  662. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -2
  663. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  664. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  665. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  666. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  667. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  668. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  669. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  670. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  671. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  672. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  673. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  674. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  675. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  676. package/dist/forms/useField/index.js.map +1 -1
  677. package/dist/graphics/Icon/index.js +1 -1
  678. package/dist/graphics/Icon/index.js.map +1 -1
  679. package/dist/hooks/useElementHeightVariable.d.ts +15 -0
  680. package/dist/hooks/useElementHeightVariable.d.ts.map +1 -0
  681. package/dist/hooks/useElementHeightVariable.js +53 -0
  682. package/dist/hooks/useElementHeightVariable.js.map +1 -0
  683. package/dist/icons/Check/index.css +1 -2
  684. package/dist/icons/Check/index.js +1 -1
  685. package/dist/icons/Check/index.js.map +1 -1
  686. package/dist/icons/Crop/index.css +5 -0
  687. package/dist/icons/Crop/index.d.ts +7 -0
  688. package/dist/icons/Crop/index.d.ts.map +1 -0
  689. package/dist/icons/Crop/index.js +24 -0
  690. package/dist/icons/Crop/index.js.map +1 -0
  691. package/dist/icons/Dots/index.css +4 -4
  692. package/dist/icons/Download/index.css +5 -0
  693. package/dist/icons/{ExternalLink → Download}/index.d.ts +1 -1
  694. package/dist/icons/Download/index.d.ts.map +1 -0
  695. package/dist/icons/Download/index.js +27 -0
  696. package/dist/icons/Download/index.js.map +1 -0
  697. package/dist/icons/Gear/index.d.ts.map +1 -1
  698. package/dist/icons/Gear/index.js +8 -1
  699. package/dist/icons/Gear/index.js.map +1 -1
  700. package/dist/icons/InteractionEnter/index.css +5 -0
  701. package/dist/icons/InteractionEnter/index.d.ts +11 -0
  702. package/dist/icons/InteractionEnter/index.d.ts.map +1 -0
  703. package/dist/icons/InteractionEnter/index.js +25 -0
  704. package/dist/icons/InteractionEnter/index.js.map +1 -0
  705. package/dist/icons/{Write → Key}/index.css +1 -1
  706. package/dist/icons/Key/index.d.ts +7 -0
  707. package/dist/icons/Key/index.d.ts.map +1 -0
  708. package/dist/icons/Key/index.js +24 -0
  709. package/dist/icons/Key/index.js.map +1 -0
  710. package/dist/icons/LogOut/index.js +2 -2
  711. package/dist/icons/LogOut/index.js.map +1 -1
  712. package/dist/icons/{ExternalLink → NewTab}/index.css +1 -1
  713. package/dist/icons/NewTab/index.d.ts +7 -0
  714. package/dist/icons/NewTab/index.d.ts.map +1 -0
  715. package/dist/icons/NewTab/index.js +25 -0
  716. package/dist/icons/NewTab/index.js.map +1 -0
  717. package/dist/icons/Replace/index.css +5 -0
  718. package/dist/icons/Replace/index.d.ts +6 -0
  719. package/dist/icons/Replace/index.d.ts.map +1 -0
  720. package/dist/icons/Replace/index.js +20 -0
  721. package/dist/icons/Replace/index.js.map +1 -0
  722. package/dist/icons/Reset/index.css +5 -0
  723. package/dist/icons/Reset/index.d.ts +7 -0
  724. package/dist/icons/Reset/index.d.ts.map +1 -0
  725. package/dist/icons/Reset/index.js +25 -0
  726. package/dist/icons/Reset/index.js.map +1 -0
  727. package/dist/icons/Schedule/index.d.ts.map +1 -1
  728. package/dist/icons/Schedule/index.js +38 -39
  729. package/dist/icons/Schedule/index.js.map +1 -1
  730. package/dist/icons/Swap/index.js +1 -1
  731. package/dist/icons/Swap/index.js.map +1 -1
  732. package/dist/icons/VariableColor/index.css +5 -0
  733. package/dist/icons/VariableColor/index.d.ts +7 -0
  734. package/dist/icons/VariableColor/index.d.ts.map +1 -0
  735. package/dist/icons/VariableColor/index.js +23 -0
  736. package/dist/icons/VariableColor/index.js.map +1 -0
  737. package/dist/icons/Warning/index.css +1 -7
  738. package/dist/icons/Warning/index.d.ts +1 -1
  739. package/dist/icons/Warning/index.d.ts.map +1 -1
  740. package/dist/icons/Warning/index.js +11 -16
  741. package/dist/icons/Warning/index.js.map +1 -1
  742. package/dist/icons/WarningTriangle/index.css +5 -0
  743. package/dist/icons/WarningTriangle/index.d.ts +6 -0
  744. package/dist/icons/WarningTriangle/index.d.ts.map +1 -0
  745. package/dist/icons/WarningTriangle/index.js +21 -0
  746. package/dist/icons/WarningTriangle/index.js.map +1 -0
  747. package/dist/icons/Write/index.d.ts +0 -1
  748. package/dist/icons/Write/index.d.ts.map +1 -1
  749. package/dist/icons/Write/index.js +1 -2
  750. package/dist/icons/Write/index.js.map +1 -1
  751. package/dist/providers/Auth/index.d.ts +2 -2
  752. package/dist/providers/Auth/index.d.ts.map +1 -1
  753. package/dist/providers/Auth/index.js.map +1 -1
  754. package/dist/providers/Config/index.js.map +1 -1
  755. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  756. package/dist/providers/DocumentInfo/index.js +4 -0
  757. package/dist/providers/DocumentInfo/index.js.map +1 -1
  758. package/dist/providers/DocumentInfo/types.d.ts +6 -2
  759. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  760. package/dist/providers/DocumentInfo/types.js.map +1 -1
  761. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  762. package/dist/providers/ListQuery/index.js +1 -8
  763. package/dist/providers/ListQuery/index.js.map +1 -1
  764. package/dist/providers/Root/index.d.ts +2 -2
  765. package/dist/providers/Root/index.d.ts.map +1 -1
  766. package/dist/providers/Root/index.js +27 -24
  767. package/dist/providers/Root/index.js.map +1 -1
  768. package/dist/providers/TableColumns/RenderDefaultCell/index.css +1 -0
  769. package/dist/providers/Theme/index.d.ts +17 -2
  770. package/dist/providers/Theme/index.d.ts.map +1 -1
  771. package/dist/providers/Theme/index.js +126 -75
  772. package/dist/providers/Theme/index.js.map +1 -1
  773. package/dist/providers/ToastContainer/index.css +208 -0
  774. package/dist/providers/ToastContainer/index.d.ts +1 -0
  775. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  776. package/dist/providers/ToastContainer/index.js +19 -6
  777. package/dist/providers/ToastContainer/index.js.map +1 -1
  778. package/dist/scss/app.scss +10 -4
  779. package/dist/styles.css +1369 -1
  780. package/dist/templates/Default/index.d.ts.map +1 -1
  781. package/dist/templates/Default/index.js +59 -3
  782. package/dist/templates/Default/index.js.map +1 -1
  783. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -2
  784. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  785. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -2
  786. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  787. package/dist/utilities/buildFormState.d.ts.map +1 -1
  788. package/dist/utilities/buildFormState.js +1 -0
  789. package/dist/utilities/buildFormState.js.map +1 -1
  790. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  791. package/dist/utilities/copyDataFromLocale.js +2 -1
  792. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  793. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  794. package/dist/utilities/formatDocTitle/formatDateTitle.js +1 -1
  795. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  796. package/dist/utilities/formatRelativeDate.d.ts +15 -0
  797. package/dist/utilities/formatRelativeDate.d.ts.map +1 -0
  798. package/dist/utilities/formatRelativeDate.js +62 -0
  799. package/dist/utilities/formatRelativeDate.js.map +1 -0
  800. package/dist/utilities/getDocPreferences.d.ts +2 -2
  801. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  802. package/dist/utilities/getDocPreferences.js.map +1 -1
  803. package/dist/utilities/getDocumentData.d.ts +2 -2
  804. package/dist/utilities/getDocumentData.d.ts.map +1 -1
  805. package/dist/utilities/getDocumentData.js.map +1 -1
  806. package/dist/utilities/getGlobalData.d.ts.map +1 -1
  807. package/dist/utilities/getGlobalData.js.map +1 -1
  808. package/dist/utilities/getHasScheduledPublish.d.ts +12 -0
  809. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -0
  810. package/dist/utilities/getHasScheduledPublish.js +38 -0
  811. package/dist/utilities/getHasScheduledPublish.js.map +1 -0
  812. package/dist/utilities/getIsLocked.d.ts +2 -2
  813. package/dist/utilities/getIsLocked.d.ts.map +1 -1
  814. package/dist/utilities/getIsLocked.js.map +1 -1
  815. package/dist/utilities/getVersions.d.ts +2 -2
  816. package/dist/utilities/getVersions.d.ts.map +1 -1
  817. package/dist/utilities/getVersions.js +3 -26
  818. package/dist/utilities/getVersions.js.map +1 -1
  819. package/dist/utilities/handleAuthRedirect.d.ts +2 -2
  820. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  821. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  822. package/dist/utilities/handleFormStateLocking.d.ts +2 -2
  823. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  824. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  825. package/dist/utilities/handleLivePreview.d.ts +1 -0
  826. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  827. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  828. package/dist/utilities/isURLAllowed.js +9 -3
  829. package/dist/utilities/isURLAllowed.js.map +1 -1
  830. package/dist/utilities/recentlyViewed.d.ts +16 -0
  831. package/dist/utilities/recentlyViewed.d.ts.map +1 -0
  832. package/dist/utilities/recentlyViewed.js +21 -0
  833. package/dist/utilities/recentlyViewed.js.map +1 -0
  834. package/dist/utilities/recentlyViewed.spec.js +92 -0
  835. package/dist/utilities/recentlyViewed.spec.js.map +1 -0
  836. package/dist/utilities/reduceFieldsToOptions.js +1 -1
  837. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  838. package/dist/utilities/renderTable.js +1 -1
  839. package/dist/utilities/renderTable.js.map +1 -1
  840. package/dist/utilities/slugify.d.ts +1 -1
  841. package/dist/utilities/slugify.js +1 -1
  842. package/dist/utilities/slugify.js.map +1 -1
  843. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  844. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  845. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  846. package/dist/views/API/index.client.js +2 -2
  847. package/dist/views/API/index.client.js.map +1 -1
  848. package/dist/views/Account/ResetPreferences/index.d.ts +2 -2
  849. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  850. package/dist/views/Account/ResetPreferences/index.js +1 -0
  851. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  852. package/dist/views/Account/Settings/index.css +30 -13
  853. package/dist/views/Account/Settings/index.d.ts +2 -2
  854. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  855. package/dist/views/Account/Settings/index.js.map +1 -1
  856. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  857. package/dist/views/Account/ToggleTheme/index.js +31 -47
  858. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  859. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
  860. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +27 -23
  861. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  862. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  863. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
  864. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +2 -2
  865. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  866. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -2
  867. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  868. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts +2 -2
  869. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -1
  870. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  871. package/dist/views/Document/index.d.ts.map +1 -1
  872. package/dist/views/Document/index.js +28 -2
  873. package/dist/views/Document/index.js.map +1 -1
  874. package/dist/views/Document/recordRecentlyViewed.d.ts +12 -0
  875. package/dist/views/Document/recordRecentlyViewed.d.ts.map +1 -0
  876. package/dist/views/Document/recordRecentlyViewed.js +40 -0
  877. package/dist/views/Document/recordRecentlyViewed.js.map +1 -0
  878. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  879. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  880. package/dist/views/Document/renderDocumentSlots.js +47 -1
  881. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  882. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  883. package/dist/views/Edit/Auth/APIKey.js +10 -32
  884. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  885. package/dist/views/Edit/Auth/index.css +0 -67
  886. package/dist/views/Edit/index.css +143 -6
  887. package/dist/views/Edit/index.d.ts +1 -1
  888. package/dist/views/Edit/index.d.ts.map +1 -1
  889. package/dist/views/Edit/index.js +96 -79
  890. package/dist/views/Edit/index.js.map +1 -1
  891. package/dist/views/HierarchyList/DocumentListSelection/index.js +8 -8
  892. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  893. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +2 -2
  894. package/dist/views/List/ListHeader/index.css +28 -1
  895. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  896. package/dist/views/List/ListHeader/index.js +0 -1
  897. package/dist/views/List/ListHeader/index.js.map +1 -1
  898. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  899. package/dist/views/List/ListSelection/index.js +84 -33
  900. package/dist/views/List/ListSelection/index.js.map +1 -1
  901. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  902. package/dist/views/List/handleGroupBy.js +9 -0
  903. package/dist/views/List/handleGroupBy.js.map +1 -1
  904. package/dist/views/List/index.client.d.ts.map +1 -1
  905. package/dist/views/List/index.client.js +10 -9
  906. package/dist/views/List/index.client.js.map +1 -1
  907. package/dist/views/List/index.css +15 -0
  908. package/dist/views/List/index.d.ts.map +1 -1
  909. package/dist/views/List/index.js +4 -3
  910. package/dist/views/List/index.js.map +1 -1
  911. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  912. package/dist/views/List/renderListViewSlots.js +11 -0
  913. package/dist/views/List/renderListViewSlots.js.map +1 -1
  914. package/dist/views/Logout/LogoutClient.d.ts +14 -0
  915. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  916. package/dist/views/Logout/LogoutClient.js +7 -5
  917. package/dist/views/Logout/LogoutClient.js.map +1 -1
  918. package/dist/views/Logout/index.d.ts.map +1 -1
  919. package/dist/views/Logout/index.js +7 -2
  920. package/dist/views/Logout/index.js.map +1 -1
  921. package/dist/views/Verify/index.client.d.ts +4 -0
  922. package/dist/views/Verify/index.client.d.ts.map +1 -1
  923. package/dist/views/Verify/index.client.js +81 -0
  924. package/dist/views/Verify/index.client.js.map +1 -1
  925. package/dist/views/Verify/index.css +38 -0
  926. package/dist/views/Verify/index.d.ts +1 -1
  927. package/dist/views/Verify/index.d.ts.map +1 -1
  928. package/dist/views/Verify/index.js +13 -19
  929. package/dist/views/Verify/index.js.map +1 -1
  930. package/dist/views/Version/Default/index.css +3 -5
  931. package/dist/views/Version/Default/index.d.ts.map +1 -1
  932. package/dist/views/Version/Default/index.js +7 -28
  933. package/dist/views/Version/Default/index.js.map +1 -1
  934. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
  935. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  936. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  937. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts.map +1 -1
  938. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +1 -0
  939. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  940. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  941. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +1 -0
  942. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  943. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  944. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
  945. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  946. package/dist/views/Version/Restore/index.css +2 -2
  947. package/dist/views/Version/SelectComparison/VersionDrawer/index.css +5 -0
  948. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts +1 -1
  949. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  950. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +1 -2
  951. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  952. package/dist/views/Version/SelectComparison/index.css +5 -0
  953. package/dist/views/Version/SelectComparison/index.d.ts +1 -1
  954. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  955. package/dist/views/Version/SelectComparison/index.js +2 -1
  956. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  957. package/dist/views/Version/SelectLocales/index.d.ts +1 -2
  958. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  959. package/dist/views/Version/SelectLocales/index.js +83 -32
  960. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  961. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  962. package/dist/views/Versions/fetchVersions.d.ts +4 -4
  963. package/dist/views/Versions/fetchVersions.d.ts.map +1 -1
  964. package/dist/views/Versions/fetchVersions.js.map +1 -1
  965. package/dist/views/Versions/index.css +19 -16
  966. package/dist/views/Versions/index.d.ts +1 -1
  967. package/dist/views/Versions/index.d.ts.map +1 -1
  968. package/dist/views/Versions/index.js +3 -26
  969. package/dist/views/Versions/index.js.map +1 -1
  970. package/dist/views/Versions/types.d.ts +2 -2
  971. package/dist/views/Versions/types.d.ts.map +1 -1
  972. package/dist/views/Versions/types.js.map +1 -1
  973. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  974. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -0
  975. package/dist/widgets/CollectionQuery/SortField/index.js +118 -0
  976. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -0
  977. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts +18 -0
  978. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts.map +1 -0
  979. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js +91 -0
  980. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js.map +1 -0
  981. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +100 -0
  982. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +1 -0
  983. package/dist/widgets/CollectionQuery/index.css +64 -0
  984. package/dist/widgets/CollectionQuery/index.d.ts +16 -0
  985. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -0
  986. package/dist/widgets/CollectionQuery/index.js +328 -0
  987. package/dist/widgets/CollectionQuery/index.js.map +1 -0
  988. package/dist/widgets/RecentlyViewed/CollectionsField/index.css +14 -0
  989. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +10 -0
  990. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -0
  991. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +76 -0
  992. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -0
  993. package/dist/widgets/RecentlyViewed/index.d.ts +10 -0
  994. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -0
  995. package/dist/widgets/RecentlyViewed/index.js +148 -0
  996. package/dist/widgets/RecentlyViewed/index.js.map +1 -0
  997. package/dist/widgets/WidgetCard/index.css +155 -0
  998. package/dist/widgets/WidgetCard/index.d.ts +19 -0
  999. package/dist/widgets/WidgetCard/index.d.ts.map +1 -0
  1000. package/dist/widgets/WidgetCard/index.js +49 -0
  1001. package/dist/widgets/WidgetCard/index.js.map +1 -0
  1002. package/package.json +5 -509
  1003. package/dist/elements/BulkUpload/AddingFilesView/index.scss +0 -25
  1004. package/dist/elements/BulkUpload/EditForm/index.scss +0 -11
  1005. package/dist/elements/BulkUpload/EditMany/index.scss +0 -171
  1006. package/dist/elements/BulkUpload/Header/index.d.ts +0 -9
  1007. package/dist/elements/BulkUpload/Header/index.d.ts.map +0 -1
  1008. package/dist/elements/BulkUpload/Header/index.js.map +0 -1
  1009. package/dist/elements/ColumnSelector/index.d.ts +0 -9
  1010. package/dist/elements/ColumnSelector/index.d.ts.map +0 -1
  1011. package/dist/elements/ColumnSelector/index.js.map +0 -1
  1012. package/dist/elements/ColumnsButton/index.d.ts +0 -7
  1013. package/dist/elements/ColumnsButton/index.d.ts.map +0 -1
  1014. package/dist/elements/ColumnsButton/index.js.map +0 -1
  1015. package/dist/elements/EditMany/index.scss +0 -182
  1016. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +0 -35
  1017. package/dist/elements/FileDetails/FileMeta/index.scss +0 -31
  1018. package/dist/elements/FileDetails/StaticFileDetails/index.scss +0 -134
  1019. package/dist/elements/GroupByBuilder/index.d.ts +0 -12
  1020. package/dist/elements/GroupByBuilder/index.d.ts.map +0 -1
  1021. package/dist/elements/GroupByBuilder/index.js +0 -164
  1022. package/dist/elements/GroupByBuilder/index.js.map +0 -1
  1023. package/dist/elements/GroupByBuilder/index.scss +0 -39
  1024. package/dist/elements/GroupByControl/index.d.ts +0 -9
  1025. package/dist/elements/GroupByControl/index.d.ts.map +0 -1
  1026. package/dist/elements/GroupByControl/index.js +0 -255
  1027. package/dist/elements/GroupByControl/index.js.map +0 -1
  1028. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
  1029. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
  1030. package/dist/elements/Hierarchy/Drawer/index.css +0 -108
  1031. package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
  1032. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
  1033. package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
  1034. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
  1035. package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
  1036. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
  1037. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
  1038. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
  1039. package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
  1040. package/dist/elements/Hierarchy/Field/index.scss +0 -41
  1041. package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
  1042. package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
  1043. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
  1044. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
  1045. package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
  1046. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
  1047. package/dist/elements/LoadMoreRow/index.scss +0 -45
  1048. package/dist/elements/Nav/SettingsMenuButton/index.scss +0 -11
  1049. package/dist/elements/PreviewSizes/index.scss +0 -147
  1050. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -17
  1051. package/dist/elements/QueryPresets/fields/GroupByField/index.scss +0 -17
  1052. package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
  1053. package/dist/elements/Thumbnail/index.scss +0 -53
  1054. package/dist/fields/Tabs/Tab/index.css +0 -82
  1055. package/dist/icons/ExternalLink/index.d.ts.map +0 -1
  1056. package/dist/icons/ExternalLink/index.js +0 -26
  1057. package/dist/icons/ExternalLink/index.js.map +0 -1
  1058. package/dist/scss/toasts.scss +0 -146
  1059. package/dist/views/Unauthorized/index.scss +0 -14
  1060. package/dist/views/Verify/index.scss +0 -18
  1061. package/dist/views/Version/SelectComparison/VersionDrawer/index.scss +0 -18
  1062. package/dist/views/Version/SelectComparison/index.scss +0 -9
  1063. /package/dist/elements/{ColumnSelector/index.css → ColumnSelection/Popup.css} +0 -0
  1064. /package/dist/elements/{GroupByControl/index.css → GroupBy/Popup.css} +0 -0
  1065. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.d.ts +0 -0
  1066. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.js +0 -0
  1067. /package/dist/elements/Hierarchy/{Drawer → Modal}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,MAAM,OAAO,CAAA;AAiBzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE/B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAgH1D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/Default/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EAChB,MAAM,SAAS,CAAA;AAKhB,OAAO,aAAa,CAAA;AAEpB,OAAO,KAAK,MAAM,OAAO,CAAA;AAmBzB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,mBAAmB,CAAC,EAAE,oBAAoB,CAAA;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,GAAG,CAAC,EAAE,cAAc,CAAA;IACpB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,eAAe,EAAE,eAAe,CAAA;CACjC,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAE/B,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAsL1D,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getTranslation } from '@payloadcms/translations';
3
+ import { isUserMenuSettingsGroup } from 'payload/shared';
2
4
  import './index.css';
3
5
  import React from 'react';
4
6
  /* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary */
5
7
  import { ActionsProvider, AppHeader, BulkUploadProvider, CommandPalette, EntityVisibilityProvider, DefaultTemplateWrapper as Wrapper } from '../../exports/client/index.js';
6
- /* eslint-enable payload/no-imports-from-exports-dir */
7
8
  import { DefaultNav } from '../../elements/Nav/index.js';
8
9
  import { RenderServerComponent } from '../../elements/RenderServerComponent/index.js';
9
10
  const baseClass = 'template-default';
@@ -71,6 +72,54 @@ export const DefaultTemplate = ({
71
72
  serverProps
72
73
  });
73
74
  }
75
+ const settingsItemGroups = [];
76
+ if (components?.userMenuSettingsItems && Array.isArray(components.userMenuSettingsItems)) {
77
+ const groupedItemsByLabel = new Map();
78
+ const groupLabels = [];
79
+ const ungroupedItems = [];
80
+ for (const [itemIndex, userMenuSettingsItem] of components.userMenuSettingsItems.entries()) {
81
+ // Ungrouped items are collected as orphans rendered at the bottom
82
+ if (!isUserMenuSettingsGroup(userMenuSettingsItem)) {
83
+ ungroupedItems.push(RenderServerComponent({
84
+ clientProps,
85
+ Component: userMenuSettingsItem,
86
+ importMap: payload.importMap,
87
+ key: `user-menu-settings-ungrouped-${itemIndex}`,
88
+ serverProps
89
+ }));
90
+ continue;
91
+ }
92
+ const groupLabel = getTranslation(userMenuSettingsItem.group, i18n);
93
+ const existingItems = groupedItemsByLabel.get(groupLabel);
94
+ const renderedItems = userMenuSettingsItem.items.map((groupedItem, groupedItemIndex) => RenderServerComponent({
95
+ clientProps,
96
+ Component: groupedItem,
97
+ importMap: payload.importMap,
98
+ key: `user-menu-settings-group-${groupLabel}-${itemIndex}-${groupedItemIndex}`,
99
+ serverProps
100
+ }));
101
+ if (existingItems) {
102
+ existingItems.push(...renderedItems);
103
+ } else if (renderedItems.length > 0) {
104
+ groupedItemsByLabel.set(groupLabel, renderedItems);
105
+ groupLabels.push(groupLabel);
106
+ }
107
+ }
108
+ for (const groupLabel of groupLabels) {
109
+ const items = groupedItemsByLabel.get(groupLabel);
110
+ if (items?.length) {
111
+ settingsItemGroups.push({
112
+ group: groupLabel,
113
+ items
114
+ });
115
+ }
116
+ }
117
+ if (ungroupedItems.length > 0) {
118
+ settingsItemGroups.push({
119
+ items: ungroupedItems
120
+ });
121
+ }
122
+ }
74
123
  const NavComponent = RenderServerComponent({
75
124
  clientProps,
76
125
  Component: CustomNav,
@@ -81,7 +130,7 @@ export const DefaultTemplate = ({
81
130
  return /*#__PURE__*/_jsxs(EntityVisibilityProvider, {
82
131
  visibleEntities: visibleEntities,
83
132
  children: [/*#__PURE__*/_jsx(CommandPalette, {}), /*#__PURE__*/_jsx(BulkUploadProvider, {
84
- drawerSlugPrefix: collectionSlug,
133
+ modalSlugPrefix: collectionSlug,
85
134
  children: /*#__PURE__*/_jsxs(ActionsProvider, {
86
135
  Actions: Actions,
87
136
  children: [RenderServerComponent({
@@ -103,7 +152,14 @@ export const DefaultTemplate = ({
103
152
  Component: avatar.Component,
104
153
  importMap: payload.importMap,
105
154
  serverProps
106
- }) : undefined
155
+ }) : undefined,
156
+ CustomLogoutButton: components?.logout?.Button ? RenderServerComponent({
157
+ clientProps,
158
+ Component: components.logout.Button,
159
+ importMap: payload.importMap,
160
+ serverProps
161
+ }) : undefined,
162
+ settingsItemGroups: settingsItemGroups
107
163
  }), children]
108
164
  })]
109
165
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","ActionsProvider","AppHeader","BulkUploadProvider","CommandPalette","EntityVisibilityProvider","DefaultTemplateWrapper","Wrapper","DefaultNav","RenderServerComponent","baseClass","DefaultTemplate","children","className","collectionSlug","docID","documentSubViewType","globalSlug","i18n","locale","params","payload","permissions","req","searchParams","user","viewActions","viewType","visibleEntities","admin","avatar","components","header","CustomHeader","Nav","CustomNav","undefined","config","clientProps","serverProps","server","Actions","action","key","path","Component","importMap","NavComponent","Fallback","_jsxs","_jsx","drawerSlugPrefix","style","position","CustomAvatar"],"sources":["../../../src/templates/Default/index.tsx"],"sourcesContent":["import type {\n CustomComponent,\n DocumentSubViewTypes,\n PayloadRequest,\n ServerProps,\n ViewTypes,\n VisibleEntities,\n} from 'payload'\n\nimport './index.css'\n\nimport React from 'react'\n\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary */\nimport {\n ActionsProvider,\n AppHeader,\n BulkUploadProvider,\n CommandPalette,\n EntityVisibilityProvider,\n DefaultTemplateWrapper as Wrapper,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport { DefaultNav } from '../../elements/Nav/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\nconst baseClass = 'template-default'\n\nexport type DefaultTemplateProps = {\n children?: React.ReactNode\n className?: string\n collectionSlug?: string\n docID?: number | string\n documentSubViewType?: DocumentSubViewTypes\n globalSlug?: string\n req?: PayloadRequest\n viewActions?: CustomComponent[]\n viewType?: ViewTypes\n visibleEntities: VisibleEntities\n} & Omit<ServerProps, 'server'>\n\nexport const DefaultTemplate: React.FC<DefaultTemplateProps> = ({\n children,\n className,\n collectionSlug,\n docID,\n documentSubViewType,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n user,\n viewActions,\n viewType,\n visibleEntities,\n}) => {\n const {\n admin: {\n avatar,\n components,\n components: { header: CustomHeader, Nav: CustomNav } = {\n header: undefined,\n Nav: undefined,\n },\n } = {},\n } = payload.config || {}\n\n const clientProps = {\n documentSubViewType,\n viewType,\n visibleEntities,\n }\n\n const serverProps: {\n collectionSlug: string\n docID: number | string\n globalSlug: string\n req: PayloadRequest\n } & ServerProps = {\n collectionSlug,\n docID,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n server: req?.server,\n user,\n }\n\n const Actions: Record<string, React.ReactNode> = {}\n for (const action of viewActions ?? []) {\n if (!action) {\n continue\n }\n const key = typeof action === 'object' ? action.path : action\n Actions[key] = RenderServerComponent({\n clientProps,\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n }\n\n const NavComponent = RenderServerComponent({\n clientProps,\n Component: CustomNav,\n Fallback: DefaultNav,\n importMap: payload.importMap,\n serverProps,\n })\n\n return (\n <EntityVisibilityProvider visibleEntities={visibleEntities}>\n <CommandPalette />\n <BulkUploadProvider drawerSlugPrefix={collectionSlug}>\n <ActionsProvider Actions={Actions}>\n {RenderServerComponent({\n clientProps,\n Component: CustomHeader,\n importMap: payload.importMap,\n serverProps,\n })}\n <div style={{ position: 'relative' }}>\n <Wrapper baseClass={baseClass} className={className}>\n {NavComponent}\n <div className={`${baseClass}__wrap`}>\n <AppHeader\n CustomAvatar={\n avatar !== 'gravatar' && avatar !== 'default'\n ? RenderServerComponent({\n Component: avatar.Component,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n />\n {children}\n </div>\n </Wrapper>\n </div>\n </ActionsProvider>\n </BulkUploadProvider>\n </EntityVisibilityProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","isUserMenuSettingsGroup","React","ActionsProvider","AppHeader","BulkUploadProvider","CommandPalette","EntityVisibilityProvider","DefaultTemplateWrapper","Wrapper","DefaultNav","RenderServerComponent","baseClass","DefaultTemplate","children","className","collectionSlug","docID","documentSubViewType","globalSlug","i18n","locale","params","payload","permissions","req","searchParams","user","viewActions","viewType","visibleEntities","admin","avatar","components","header","CustomHeader","Nav","CustomNav","undefined","config","clientProps","serverProps","server","Actions","action","key","path","Component","importMap","settingsItemGroups","userMenuSettingsItems","Array","isArray","groupedItemsByLabel","Map","groupLabels","ungroupedItems","itemIndex","userMenuSettingsItem","entries","push","groupLabel","group","existingItems","get","renderedItems","items","map","groupedItem","groupedItemIndex","length","set","NavComponent","Fallback","_jsxs","_jsx","modalSlugPrefix","style","position","CustomAvatar","CustomLogoutButton","logout","Button"],"sources":["../../../src/templates/Default/index.tsx"],"sourcesContent":["import type {\n CustomComponent,\n DocumentSubViewTypes,\n PayloadRequest,\n ServerProps,\n ViewTypes,\n VisibleEntities,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isUserMenuSettingsGroup } from 'payload/shared'\n\nimport './index.css'\n\nimport React from 'react'\n\n/* eslint-disable payload/no-imports-from-exports-dir -- Server component must reference exports dir for proper client boundary */\nimport {\n ActionsProvider,\n AppHeader,\n BulkUploadProvider,\n CommandPalette,\n EntityVisibilityProvider,\n DefaultTemplateWrapper as Wrapper,\n} from '../../exports/client/index.js'\n/* eslint-enable payload/no-imports-from-exports-dir */\nimport type { UserMenuSettingsGroup } from '../../elements/UserMenu/SettingsMenu/index.js'\n\nimport { DefaultNav } from '../../elements/Nav/index.js'\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n\nconst baseClass = 'template-default'\n\nexport type DefaultTemplateProps = {\n children?: React.ReactNode\n className?: string\n collectionSlug?: string\n docID?: number | string\n documentSubViewType?: DocumentSubViewTypes\n globalSlug?: string\n req?: PayloadRequest\n viewActions?: CustomComponent[]\n viewType?: ViewTypes\n visibleEntities: VisibleEntities\n} & Omit<ServerProps, 'server'>\n\nexport const DefaultTemplate: React.FC<DefaultTemplateProps> = ({\n children,\n className,\n collectionSlug,\n docID,\n documentSubViewType,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n user,\n viewActions,\n viewType,\n visibleEntities,\n}) => {\n const {\n admin: {\n avatar,\n components,\n components: { header: CustomHeader, Nav: CustomNav } = {\n header: undefined,\n Nav: undefined,\n },\n } = {},\n } = payload.config || {}\n\n const clientProps = {\n documentSubViewType,\n viewType,\n visibleEntities,\n }\n\n const serverProps: {\n collectionSlug: string\n docID: number | string\n globalSlug: string\n req: PayloadRequest\n } & ServerProps = {\n collectionSlug,\n docID,\n globalSlug,\n i18n,\n locale,\n params,\n payload,\n permissions,\n req,\n searchParams,\n server: req?.server,\n user,\n }\n\n const Actions: Record<string, React.ReactNode> = {}\n for (const action of viewActions ?? []) {\n if (!action) {\n continue\n }\n const key = typeof action === 'object' ? action.path : action\n Actions[key] = RenderServerComponent({\n clientProps,\n Component: action,\n importMap: payload.importMap,\n serverProps,\n })\n }\n\n const settingsItemGroups: UserMenuSettingsGroup[] = []\n if (components?.userMenuSettingsItems && Array.isArray(components.userMenuSettingsItems)) {\n const groupedItemsByLabel = new Map<string, React.ReactNode[]>()\n const groupLabels: string[] = []\n const ungroupedItems: React.ReactNode[] = []\n\n for (const [itemIndex, userMenuSettingsItem] of components.userMenuSettingsItems.entries()) {\n // Ungrouped items are collected as orphans rendered at the bottom\n if (!isUserMenuSettingsGroup(userMenuSettingsItem)) {\n ungroupedItems.push(\n RenderServerComponent({\n clientProps,\n Component: userMenuSettingsItem,\n importMap: payload.importMap,\n key: `user-menu-settings-ungrouped-${itemIndex}`,\n serverProps,\n }),\n )\n\n continue\n }\n\n const groupLabel = getTranslation(userMenuSettingsItem.group, i18n)\n const existingItems = groupedItemsByLabel.get(groupLabel)\n const renderedItems = userMenuSettingsItem.items.map((groupedItem, groupedItemIndex) =>\n RenderServerComponent({\n clientProps,\n Component: groupedItem,\n importMap: payload.importMap,\n key: `user-menu-settings-group-${groupLabel}-${itemIndex}-${groupedItemIndex}`,\n serverProps,\n }),\n )\n\n if (existingItems) {\n existingItems.push(...renderedItems)\n } else if (renderedItems.length > 0) {\n groupedItemsByLabel.set(groupLabel, renderedItems)\n groupLabels.push(groupLabel)\n }\n }\n\n for (const groupLabel of groupLabels) {\n const items = groupedItemsByLabel.get(groupLabel)\n if (items?.length) {\n settingsItemGroups.push({\n group: groupLabel,\n items,\n })\n }\n }\n\n if (ungroupedItems.length > 0) {\n settingsItemGroups.push({\n items: ungroupedItems,\n })\n }\n }\n\n const NavComponent = RenderServerComponent({\n clientProps,\n Component: CustomNav,\n Fallback: DefaultNav,\n importMap: payload.importMap,\n serverProps,\n })\n\n return (\n <EntityVisibilityProvider visibleEntities={visibleEntities}>\n <CommandPalette />\n <BulkUploadProvider modalSlugPrefix={collectionSlug}>\n <ActionsProvider Actions={Actions}>\n {RenderServerComponent({\n clientProps,\n Component: CustomHeader,\n importMap: payload.importMap,\n serverProps,\n })}\n <div style={{ position: 'relative' }}>\n <Wrapper baseClass={baseClass} className={className}>\n {NavComponent}\n <div className={`${baseClass}__wrap`}>\n <AppHeader\n CustomAvatar={\n avatar !== 'gravatar' && avatar !== 'default'\n ? RenderServerComponent({\n Component: avatar.Component,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n CustomLogoutButton={\n components?.logout?.Button\n ? RenderServerComponent({\n clientProps,\n Component: components.logout.Button,\n importMap: payload.importMap,\n serverProps,\n })\n : undefined\n }\n settingsItemGroups={settingsItemGroups}\n />\n {children}\n </div>\n </Wrapper>\n </div>\n </ActionsProvider>\n </BulkUploadProvider>\n </EntityVisibilityProvider>\n )\n}\n"],"mappings":";AASA,SAASA,cAAc,QAAQ;AAC/B,SAASC,uBAAuB,QAAQ;AAExC,OAAO;AAEP,OAAOC,KAAA,MAAW;AAElB;AACA,SACEC,eAAe,EACfC,SAAS,EACTC,kBAAkB,EAClBC,cAAc,EACdC,wBAAwB,EACxBC,sBAAA,IAA0BC,OAAO,QAC5B;AAIP,SAASC,UAAU,QAAQ;AAC3B,SAASC,qBAAqB,QAAQ;AAEtC,MAAMC,SAAA,GAAY;AAelB,OAAO,MAAMC,eAAA,GAAkDA,CAAC;EAC9DC,QAAQ;EACRC,SAAS;EACTC,cAAc;EACdC,KAAK;EACLC,mBAAmB;EACnBC,UAAU;EACVC,IAAI;EACJC,MAAM;EACNC,MAAM;EACNC,OAAO;EACPC,WAAW;EACXC,GAAG;EACHC,YAAY;EACZC,IAAI;EACJC,WAAW;EACXC,QAAQ;EACRC;AAAe,CAChB;EACC,MAAM;IACJC,KAAA,EAAO;MACLC,MAAM;MACNC,UAAU;MACVA,UAAA,EAAY;QAAEC,MAAA,EAAQC,YAAY;QAAEC,GAAA,EAAKC;MAAS,CAAE,GAAG;QACrDH,MAAA,EAAQI,SAAA;QACRF,GAAA,EAAKE;MACP;IAAC,CACF,GAAG,CAAC;EAAC,CACP,GAAGf,OAAA,CAAQgB,MAAM,IAAI,CAAC;EAEvB,MAAMC,WAAA,GAAc;IAClBtB,mBAAA;IACAW,QAAA;IACAC;EACF;EAEA,MAAMW,WAAA,GAKY;IAChBzB,cAAA;IACAC,KAAA;IACAE,UAAA;IACAC,IAAA;IACAC,MAAA;IACAC,MAAA;IACAC,OAAA;IACAC,WAAA;IACAC,GAAA;IACAC,YAAA;IACAgB,MAAA,EAAQjB,GAAA,EAAKiB,MAAA;IACbf;EACF;EAEA,MAAMgB,OAAA,GAA2C,CAAC;EAClD,KAAK,MAAMC,MAAA,IAAUhB,WAAA,IAAe,EAAE,EAAE;IACtC,IAAI,CAACgB,MAAA,EAAQ;MACX;IACF;IACA,MAAMC,GAAA,GAAM,OAAOD,MAAA,KAAW,WAAWA,MAAA,CAAOE,IAAI,GAAGF,MAAA;IACvDD,OAAO,CAACE,GAAA,CAAI,GAAGlC,qBAAA,CAAsB;MACnC6B,WAAA;MACAO,SAAA,EAAWH,MAAA;MACXI,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;MAC5BP;IACF;EACF;EAEA,MAAMQ,kBAAA,GAA8C,EAAE;EACtD,IAAIhB,UAAA,EAAYiB,qBAAA,IAAyBC,KAAA,CAAMC,OAAO,CAACnB,UAAA,CAAWiB,qBAAqB,GAAG;IACxF,MAAMG,mBAAA,GAAsB,IAAIC,GAAA;IAChC,MAAMC,WAAA,GAAwB,EAAE;IAChC,MAAMC,cAAA,GAAoC,EAAE;IAE5C,KAAK,MAAM,CAACC,SAAA,EAAWC,oBAAA,CAAqB,IAAIzB,UAAA,CAAWiB,qBAAqB,CAACS,OAAO,IAAI;MAC1F;MACA,IAAI,CAAC1D,uBAAA,CAAwByD,oBAAA,GAAuB;QAClDF,cAAA,CAAeI,IAAI,CACjBjD,qBAAA,CAAsB;UACpB6B,WAAA;UACAO,SAAA,EAAWW,oBAAA;UACXV,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;UAC5BH,GAAA,EAAK,gCAAgCY,SAAA,EAAW;UAChDhB;QACF;QAGF;MACF;MAEA,MAAMoB,UAAA,GAAa7D,cAAA,CAAe0D,oBAAA,CAAqBI,KAAK,EAAE1C,IAAA;MAC9D,MAAM2C,aAAA,GAAgBV,mBAAA,CAAoBW,GAAG,CAACH,UAAA;MAC9C,MAAMI,aAAA,GAAgBP,oBAAA,CAAqBQ,KAAK,CAACC,GAAG,CAAC,CAACC,WAAA,EAAaC,gBAAA,KACjE1D,qBAAA,CAAsB;QACpB6B,WAAA;QACAO,SAAA,EAAWqB,WAAA;QACXpB,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;QAC5BH,GAAA,EAAK,4BAA4BgB,UAAA,IAAcJ,SAAA,IAAaY,gBAAA,EAAkB;QAC9E5B;MACF;MAGF,IAAIsB,aAAA,EAAe;QACjBA,aAAA,CAAcH,IAAI,IAAIK,aAAA;MACxB,OAAO,IAAIA,aAAA,CAAcK,MAAM,GAAG,GAAG;QACnCjB,mBAAA,CAAoBkB,GAAG,CAACV,UAAA,EAAYI,aAAA;QACpCV,WAAA,CAAYK,IAAI,CAACC,UAAA;MACnB;IACF;IAEA,KAAK,MAAMA,UAAA,IAAcN,WAAA,EAAa;MACpC,MAAMW,KAAA,GAAQb,mBAAA,CAAoBW,GAAG,CAACH,UAAA;MACtC,IAAIK,KAAA,EAAOI,MAAA,EAAQ;QACjBrB,kBAAA,CAAmBW,IAAI,CAAC;UACtBE,KAAA,EAAOD,UAAA;UACPK;QACF;MACF;IACF;IAEA,IAAIV,cAAA,CAAec,MAAM,GAAG,GAAG;MAC7BrB,kBAAA,CAAmBW,IAAI,CAAC;QACtBM,KAAA,EAAOV;MACT;IACF;EACF;EAEA,MAAMgB,YAAA,GAAe7D,qBAAA,CAAsB;IACzC6B,WAAA;IACAO,SAAA,EAAWV,SAAA;IACXoC,QAAA,EAAU/D,UAAA;IACVsC,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;IAC5BP;EACF;EAEA,oBACEiC,KAAA,CAACnE,wBAAA;IAAyBuB,eAAA,EAAiBA,eAAA;4BACzC6C,IAAA,CAACrE,cAAA,O,aACDqE,IAAA,CAACtE,kBAAA;MAAmBuE,eAAA,EAAiB5D,cAAA;gBACnC,aAAA0D,KAAA,CAACvE,eAAA;QAAgBwC,OAAA,EAASA,OAAA;mBACvBhC,qBAAA,CAAsB;UACrB6B,WAAA;UACAO,SAAA,EAAWZ,YAAA;UACXa,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;UAC5BP;QACF,I,aACAkC,IAAA,CAAC;UAAIE,KAAA,EAAO;YAAEC,QAAA,EAAU;UAAW;oBACjC,aAAAJ,KAAA,CAACjE,OAAA;YAAQG,SAAA,EAAWA,SAAA;YAAWG,SAAA,EAAWA,SAAA;uBACvCyD,YAAA,E,aACDE,KAAA,CAAC;cAAI3D,SAAA,EAAW,GAAGH,SAAA,QAAiB;sCAClC+D,IAAA,CAACvE,SAAA;gBACC2E,YAAA,EACE/C,MAAA,KAAW,cAAcA,MAAA,KAAW,YAChCrB,qBAAA,CAAsB;kBACpBoC,SAAA,EAAWf,MAAA,CAAOe,SAAS;kBAC3BC,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;kBAC5BP;gBACF,KACAH,SAAA;gBAEN0C,kBAAA,EACE/C,UAAA,EAAYgD,MAAA,EAAQC,MAAA,GAChBvE,qBAAA,CAAsB;kBACpB6B,WAAA;kBACAO,SAAA,EAAWd,UAAA,CAAWgD,MAAM,CAACC,MAAM;kBACnClC,SAAA,EAAWzB,OAAA,CAAQyB,SAAS;kBAC5BP;gBACF,KACAH,SAAA;gBAENW,kBAAA,EAAoBA;kBAErBnC,QAAA;;;;;;;AAQjB","ignoreList":[]}
@@ -37,8 +37,7 @@ export const traverseFields = ({
37
37
  break;
38
38
  }
39
39
  case 'blocks':
40
- ;
41
- (field.blockReferences ?? field.blocks).map(_block => {
40
+ field.blocks.map(_block => {
42
41
  const block = typeof _block === 'string' ? config.blocksMap ? config.blocksMap[_block] : config.blocks.find(block => typeof block !== 'string' && block.slug === _block) : _block;
43
42
  const blockSchemaPath = `${schemaPath}.${block.slug}`;
44
43
  clientSchemaMap.set(blockSchemaPath, block);
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.js","names":["createClientBlocks","createClientFields","fieldAffectsData","getFieldPaths","tabHasName","traverseFields","clientSchemaMap","config","fields","i18n","parentIndexPath","parentSchemaPath","payload","schemaMap","index","field","entries","indexPath","schemaPath","set","type","blockReferences","blocks","map","_block","block","blocksMap","find","slug","blockSchemaPath","richTextFieldSchemaMap","Map","path","subField","startsWith","clientBlocks","defaultIDType","db","importMap","clientFields","disableAddingID","isNamedTab","tabs","tab"],"sources":["../../../src/utilities/buildClientFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n ClientBlock,\n ClientConfig,\n ClientField,\n ClientFieldSchemaMap,\n FieldSchemaMap,\n Payload,\n TabAsFieldClient,\n} from 'payload'\n\nimport { createClientBlocks, createClientFields } from 'payload'\nimport { fieldAffectsData, getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n clientSchemaMap: ClientFieldSchemaMap\n config: ClientConfig\n fields: (ClientField | TabAsFieldClient)[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n payload: Payload\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n clientSchemaMap,\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n payload,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath,\n parentSchemaPath,\n })\n\n clientSchemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array': {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n }\n\n case 'blocks':\n ;(field.blockReferences ?? field.blocks).map((_block) => {\n const block =\n typeof _block === 'string'\n ? config.blocksMap\n ? config.blocksMap[_block]\n : config.blocks.find((block) => typeof block !== 'string' && block.slug === _block)\n : _block\n\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n clientSchemaMap.set(blockSchemaPath, block)\n traverseFields({\n clientSchemaMap,\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath + '.' + block.slug,\n payload,\n schemaMap,\n })\n })\n\n break\n\n case 'collapsible':\n case 'row': {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n break\n }\n\n case 'group': {\n if (fieldAffectsData(field)) {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n } else {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n }\n break\n }\n\n case 'richText': {\n // richText sub-fields are not part of the ClientConfig or the Config.\n // They only exist in the field schema map.\n // Thus, we need to\n // 1. get them from the field schema map\n // 2. convert them to client fields\n // 3. add them to the client schema map\n\n // So these would basically be all fields that are not part of the client config already\n const richTextFieldSchemaMap: FieldSchemaMap = new Map()\n for (const [path, subField] of schemaMap.entries()) {\n if (path.startsWith(`${schemaPath}.`)) {\n richTextFieldSchemaMap.set(path, subField)\n }\n }\n\n // Now loop through them, convert each entry to a client field and add it to the client schema map.\n // Schema map values are a union: Block | Field | Tab | { fields: Field[] }.\n // Each variant needs different conversion to strip server-only properties.\n for (const [path, subField] of richTextFieldSchemaMap.entries()) {\n if ('slug' in subField) {\n const clientBlocks = createClientBlocks({\n blocks: [subField],\n defaultIDType: payload.config.db.defaultIDType,\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(path, clientBlocks[0] as ClientBlock)\n continue\n }\n\n if ('type' in subField) {\n const clientFields = createClientFields({\n defaultIDType: payload.config.db.defaultIDType,\n disableAddingID: true,\n fields: [subField],\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(path, clientFields[0])\n continue\n }\n\n if ('fields' in subField) {\n const clientFields = createClientFields({\n defaultIDType: payload.config.db.defaultIDType,\n disableAddingID: true,\n fields: subField.fields,\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(path, { fields: clientFields })\n continue\n }\n\n subField satisfies never\n }\n break\n }\n\n case 'tab': {\n const isNamedTab = tabHasName(field)\n\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"traverseFields.js","names":["createClientBlocks","createClientFields","fieldAffectsData","getFieldPaths","tabHasName","traverseFields","clientSchemaMap","config","fields","i18n","parentIndexPath","parentSchemaPath","payload","schemaMap","index","field","entries","indexPath","schemaPath","set","type","blocks","map","_block","block","blocksMap","find","slug","blockSchemaPath","richTextFieldSchemaMap","Map","path","subField","startsWith","clientBlocks","defaultIDType","db","importMap","clientFields","disableAddingID","isNamedTab","tabs","tab"],"sources":["../../../src/utilities/buildClientFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type {\n ClientBlock,\n ClientConfig,\n ClientField,\n ClientFieldSchemaMap,\n FieldSchemaMap,\n Payload,\n TabAsFieldClient,\n} from 'payload'\n\nimport { createClientBlocks, createClientFields } from 'payload'\nimport { fieldAffectsData, getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n clientSchemaMap: ClientFieldSchemaMap\n config: ClientConfig\n fields: (ClientField | TabAsFieldClient)[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n payload: Payload\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n clientSchemaMap,\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n payload,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath,\n parentSchemaPath,\n })\n\n clientSchemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array': {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n }\n\n case 'blocks':\n field.blocks.map((_block) => {\n const block =\n typeof _block === 'string'\n ? config.blocksMap\n ? config.blocksMap[_block]\n : config.blocks.find((block) => typeof block !== 'string' && block.slug === _block)\n : _block\n\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n clientSchemaMap.set(blockSchemaPath, block)\n traverseFields({\n clientSchemaMap,\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath + '.' + block.slug,\n payload,\n schemaMap,\n })\n })\n\n break\n\n case 'collapsible':\n case 'row': {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n break\n }\n\n case 'group': {\n if (fieldAffectsData(field)) {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n } else {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n }\n break\n }\n\n case 'richText': {\n // richText sub-fields are not part of the ClientConfig or the Config.\n // They only exist in the field schema map.\n // Thus, we need to\n // 1. get them from the field schema map\n // 2. convert them to client fields\n // 3. add them to the client schema map\n\n // So these would basically be all fields that are not part of the client config already\n const richTextFieldSchemaMap: FieldSchemaMap = new Map()\n for (const [path, subField] of schemaMap.entries()) {\n if (path.startsWith(`${schemaPath}.`)) {\n richTextFieldSchemaMap.set(path, subField)\n }\n }\n\n // Now loop through them, convert each entry to a client field and add it to the client schema map.\n // Schema map values are a union: Block | Field | Tab | { fields: Field[] }.\n // Each variant needs different conversion to strip server-only properties.\n for (const [path, subField] of richTextFieldSchemaMap.entries()) {\n if ('slug' in subField) {\n const clientBlocks = createClientBlocks({\n blocks: [subField],\n defaultIDType: payload.config.db.defaultIDType,\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(path, clientBlocks[0] as ClientBlock)\n continue\n }\n\n if ('type' in subField) {\n const clientFields = createClientFields({\n defaultIDType: payload.config.db.defaultIDType,\n disableAddingID: true,\n fields: [subField],\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(path, clientFields[0])\n continue\n }\n\n if ('fields' in subField) {\n const clientFields = createClientFields({\n defaultIDType: payload.config.db.defaultIDType,\n disableAddingID: true,\n fields: subField.fields,\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(path, { fields: clientFields })\n continue\n }\n\n subField satisfies never\n }\n break\n }\n\n case 'tab': {\n const isNamedTab = tabHasName(field)\n\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -31,8 +31,7 @@ export const traverseFields = ({
31
31
  });
32
32
  break;
33
33
  case 'blocks':
34
- ;
35
- (field.blockReferences ?? field.blocks).map(_block => {
34
+ field.blocks.map(_block => {
36
35
  // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks
37
36
  const block = typeof _block === 'string' ? config.blocks.find(b => b.slug === _block) : _block;
38
37
  const blockSchemaPath = `${schemaPath}.${block.slug}`;
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.js","names":["MissingEditorProp","fieldAffectsData","getFieldPaths","tabHasName","traverseFields","config","fields","i18n","parentIndexPath","parentSchemaPath","schemaMap","index","field","entries","indexPath","schemaPath","set","type","blockReferences","blocks","map","_block","block","find","b","slug","blockSchemaPath","editor","Error","generateSchemaMap","isNamedTab","tabs","tab"],"sources":["../../../src/utilities/buildFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Field, FieldSchemaMap, SanitizedConfig, TabAsField } from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport { fieldAffectsData, getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n config: SanitizedConfig\n fields: (Field | TabAsField)[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath,\n parentSchemaPath,\n })\n\n schemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n\n case 'blocks':\n ;(field.blockReferences ?? field.blocks).map((_block) => {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n schemaMap.set(blockSchemaPath, block)\n traverseFields({\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath + '.' + block.slug,\n schemaMap,\n })\n })\n\n break\n\n case 'collapsible':\n case 'row':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n\n case 'group':\n if (fieldAffectsData(field)) {\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n } else {\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n }\n\n break\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (typeof field.editor.generateSchemaMap === 'function') {\n field.editor.generateSchemaMap({\n config,\n field,\n i18n,\n schemaMap,\n schemaPath,\n })\n }\n\n break\n }\n\n case 'tab': {\n const isNamedTab = tabHasName(field)\n\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n config,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n }\n }\n }\n}\n"],"mappings":"AAGA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,gBAAgB,EAAEC,aAAa,EAAEC,UAAU,QAAQ;AAW5D,OAAO,MAAMC,cAAA,GAAiBA,CAAC;EAC7BC,MAAM;EACNC,MAAM;EACNC,IAAI;EACJC,eAAe;EACfC,gBAAgB;EAChBC;AAAS,CACJ;EACL,KAAK,MAAM,CAACC,KAAA,EAAOC,KAAA,CAAM,IAAIN,MAAA,CAAOO,OAAO,IAAI;IAC7C,MAAM;MAAEC,SAAS;MAAEC;IAAU,CAAE,GAAGb,aAAA,CAAc;MAC9CU,KAAA;MACAD,KAAA;MACAH,eAAA;MACAC;IACF;IAEAC,SAAA,CAAUM,GAAG,CAACD,UAAA,EAAYH,KAAA;IAE1B,QAAQA,KAAA,CAAMK,IAAI;MAChB,KAAK;QACHb,cAAA,CAAe;UACbC,MAAA;UACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;UACpBC,IAAA;UACAC,eAAA,EAAiB;UACjBC,gBAAA,EAAkBM,UAAA;UAClBL;QACF;QAEA;MAEF,KAAK;;QACD,CAAAE,KAAA,CAAMM,eAAe,IAAIN,KAAA,CAAMO,MAAM,EAAEC,GAAG,CAAEC,MAAA;UAC5C;UACA,MAAMC,KAAA,GACJ,OAAOD,MAAA,KAAW,WAAWhB,MAAA,CAAOc,MAAM,CAACI,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKJ,MAAA,IAAUA,MAAA;UAE9E,MAAMK,eAAA,GAAkB,GAAGX,UAAA,IAAcO,KAAA,CAAMG,IAAI,EAAE;UAErDf,SAAA,CAAUM,GAAG,CAACU,eAAA,EAAiBJ,KAAA;UAC/BlB,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQgB,KAAA,CAAMhB,MAAM;YACpBC,IAAA;YACAC,eAAA,EAAiB;YACjBC,gBAAA,EAAkBM,UAAA,GAAa,MAAMO,KAAA,CAAMG,IAAI;YAC/Cf;UACF;QACF;QAEA;MAEF,KAAK;MACL,KAAK;QACHN,cAAA,CAAe;UACbC,MAAA;UACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;UACpBC,IAAA;UACAC,eAAA,EAAiBM,SAAA;UACjBL,gBAAA,EAAkBM,UAAA;UAClBL;QACF;QAEA;MAEF,KAAK;QACH,IAAIT,gBAAA,CAAiBW,KAAA,GAAQ;UAC3BR,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;YACpBC,IAAA;YACAC,eAAA,EAAiB;YACjBC,gBAAA,EAAkBM,UAAA;YAClBL;UACF;QACF,OAAO;UACLN,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;YACpBC,IAAA;YACAC,eAAA,EAAiBM,SAAA;YACjBL,gBAAA,EAAkBM,UAAA;YAClBL;UACF;QACF;QAEA;MAEF,KAAK;QAAY;UACf,IAAI,CAACE,KAAA,EAAOe,MAAA,EAAQ;YAClB,MAAM,IAAI3B,iBAAA,CAAkBY,KAAA,EAAO;AAAA;UACrC;UAEA,IAAI,OAAOA,KAAA,CAAMe,MAAM,KAAK,YAAY;YACtC,MAAM,IAAIC,KAAA,CAAM;UAClB;UAEA,IAAI,OAAOhB,KAAA,CAAMe,MAAM,CAACE,iBAAiB,KAAK,YAAY;YACxDjB,KAAA,CAAMe,MAAM,CAACE,iBAAiB,CAAC;cAC7BxB,MAAA;cACAO,KAAA;cACAL,IAAA;cACAG,SAAA;cACAK;YACF;UACF;UAEA;QACF;MAEA,KAAK;QAAO;UACV,MAAMe,UAAA,GAAa3B,UAAA,CAAWS,KAAA;UAE9BR,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;YACpBC,IAAA;YACAC,eAAA,EAAiBsB,UAAA,GAAa,KAAKhB,SAAA;YACnCL,gBAAA,EAAkBM,UAAA;YAClBL;UACF;UAEA;QACF;MAEA,KAAK;QAAQ;UACXN,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQM,KAAA,CAAMmB,IAAI,CAACX,GAAG,CAAEY,GAAA,KAAS;cAAE,GAAGA,GAAG;cAAEf,IAAA,EAAM;YAAM;YACvDV,IAAA;YACAC,eAAA,EAAiBM,SAAA;YACjBL,gBAAA,EAAkBM,UAAA;YAClBL;UACF;UAEA;QACF;IACF;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"traverseFields.js","names":["MissingEditorProp","fieldAffectsData","getFieldPaths","tabHasName","traverseFields","config","fields","i18n","parentIndexPath","parentSchemaPath","schemaMap","index","field","entries","indexPath","schemaPath","set","type","blocks","map","_block","block","find","b","slug","blockSchemaPath","editor","Error","generateSchemaMap","isNamedTab","tabs","tab"],"sources":["../../../src/utilities/buildFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Field, FieldSchemaMap, SanitizedConfig, TabAsField } from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport { fieldAffectsData, getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n config: SanitizedConfig\n fields: (Field | TabAsField)[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath,\n parentSchemaPath,\n })\n\n schemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n\n case 'blocks':\n field.blocks.map((_block) => {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n schemaMap.set(blockSchemaPath, block)\n traverseFields({\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath + '.' + block.slug,\n schemaMap,\n })\n })\n\n break\n\n case 'collapsible':\n case 'row':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n\n case 'group':\n if (fieldAffectsData(field)) {\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n } else {\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n }\n\n break\n\n case 'richText': {\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (typeof field.editor.generateSchemaMap === 'function') {\n field.editor.generateSchemaMap({\n config,\n field,\n i18n,\n schemaMap,\n schemaPath,\n })\n }\n\n break\n }\n\n case 'tab': {\n const isNamedTab = tabHasName(field)\n\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n }\n\n case 'tabs': {\n traverseFields({\n config,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAehB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAwB9B,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,MAAM,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CAsNrC,CAAA"}
1
+ {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAehB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACpC,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,cAAc,CAAC,EAAE,KAAK,CAAA;IACtB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAwB9B,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,MAAM,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CAuNrC,CAAA"}
@@ -138,6 +138,7 @@ export const buildFormState = async args => {
138
138
  documentData,
139
139
  fields,
140
140
  fieldSchemaMap: schemaMap,
141
+ globalSlug,
141
142
  initialBlockData: blockData,
142
143
  mockRSCs,
143
144
  operation,
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.js","names":["canAccessAdmin","formatErrors","UnauthorizedError","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","handleLivePreview","handlePreview","handleStaleDataCheck","buildFormStateHandler","args","req","res","buildFormState","err","payload","logger","error","msg","message","id","idFromArgs","checkForStaleData","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","originalUpdatedAt","readOnly","renderAllFields","i18n","config","returnLivePreviewURL","returnLockStatus","returnPreviewURL","widgetSlug","schemaPath","select","skipClientConfigAuth","skipValidation","updateLastEdited","selectMode","undefined","Error","schemaMap","clientSchemaMap","importMap","user","fieldOrEntityConfig","get","fields","length","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","collections","upload","file","lockedStateResult","staleDataStateResult","lockedState","staleDataState","state","livePreviewURL","previewURL"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { canAccessAdmin, formatErrors, UnauthorizedError } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\nimport { handleLivePreview } from './handleLivePreview.js'\nimport { handlePreview } from './handlePreview.js'\nimport { handleStaleDataCheck } from './handleStaleDataCheck.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user?: ClientUser | number | string\n}\n\nexport type StaleDataState = {\n currentUpdatedAt: string\n isStale: boolean\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n livePreviewURL?: string\n lockedState?: LockedState\n previewURL?: string\n staleDataState?: StaleDataState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n livePreviewURL?: never\n lockedState?: never\n previewURL?: never\n staleDataState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n try {\n await canAccessAdmin({ req })\n const res = await buildFormState(args)\n\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new UnauthorizedError()\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n checkForStaleData,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n originalUpdatedAt,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLivePreviewURL,\n returnLockStatus,\n returnPreviewURL,\n widgetSlug,\n schemaPath = collectionSlug || globalSlug || widgetSlug,\n select,\n skipClientConfigAuth,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n if (!collectionSlug && !globalSlug && !widgetSlug) {\n throw new Error('Either collectionSlug, globalSlug, or widgetSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n widgetSlug,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n user: skipClientConfigAuth ? true : req.user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n widgetSlug,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult: LockedState | undefined\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n let staleDataStateResult: StaleDataState | undefined\n\n if (checkForStaleData && originalUpdatedAt && ((collectionSlug && id) || globalSlug)) {\n staleDataStateResult = await handleStaleDataCheck({\n id,\n collectionSlug,\n globalSlug,\n originalUpdatedAt,\n req,\n })\n }\n\n const res: BuildFormStateSuccessResult = {\n lockedState: lockedStateResult,\n staleDataState: staleDataStateResult,\n state: formStateResult,\n }\n\n if (returnLivePreviewURL) {\n const { livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data,\n globalSlug,\n req,\n })\n\n // Important: only set this when not undefined,\n // Otherwise it will travel through the network as `$undefined`\n if (livePreviewURL) {\n res.livePreviewURL = livePreviewURL\n }\n }\n\n if (returnPreviewURL) {\n const { previewURL } = await handlePreview({\n collectionSlug,\n config,\n data,\n globalSlug,\n req,\n })\n\n // Important: only set this when not undefined,\n // Otherwise it will travel through the network as `$undefined`\n if (previewURL) {\n res.previewURL = previewURL\n }\n }\n\n return res\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildFormState.js","names":["canAccessAdmin","formatErrors","UnauthorizedError","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","handleLivePreview","handlePreview","handleStaleDataCheck","buildFormStateHandler","args","req","res","buildFormState","err","payload","logger","error","msg","message","id","idFromArgs","checkForStaleData","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","originalUpdatedAt","readOnly","renderAllFields","i18n","config","returnLivePreviewURL","returnLockStatus","returnPreviewURL","widgetSlug","schemaPath","select","skipClientConfigAuth","skipValidation","updateLastEdited","selectMode","undefined","Error","schemaMap","clientSchemaMap","importMap","user","fieldOrEntityConfig","get","fields","length","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","collections","upload","file","lockedStateResult","staleDataStateResult","lockedState","staleDataState","state","livePreviewURL","previewURL"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { canAccessAdmin, formatErrors, UnauthorizedError } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\nimport { handleLivePreview } from './handleLivePreview.js'\nimport { handlePreview } from './handlePreview.js'\nimport { handleStaleDataCheck } from './handleStaleDataCheck.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user?: ClientUser | number | string\n}\n\nexport type StaleDataState = {\n currentUpdatedAt: string\n isStale: boolean\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n livePreviewURL?: string\n lockedState?: LockedState\n previewURL?: string\n staleDataState?: StaleDataState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n livePreviewURL?: never\n lockedState?: never\n previewURL?: never\n staleDataState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n try {\n await canAccessAdmin({ req })\n const res = await buildFormState(args)\n\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new UnauthorizedError()\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n checkForStaleData,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n originalUpdatedAt,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLivePreviewURL,\n returnLockStatus,\n returnPreviewURL,\n widgetSlug,\n schemaPath = collectionSlug || globalSlug || widgetSlug,\n select,\n skipClientConfigAuth,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n if (!collectionSlug && !globalSlug && !widgetSlug) {\n throw new Error('Either collectionSlug, globalSlug, or widgetSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n widgetSlug,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({\n config,\n i18n,\n importMap: req.payload.importMap,\n user: skipClientConfigAuth ? true : req.user,\n }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n widgetSlug,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n globalSlug,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult: LockedState | undefined\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n let staleDataStateResult: StaleDataState | undefined\n\n if (checkForStaleData && originalUpdatedAt && ((collectionSlug && id) || globalSlug)) {\n staleDataStateResult = await handleStaleDataCheck({\n id,\n collectionSlug,\n globalSlug,\n originalUpdatedAt,\n req,\n })\n }\n\n const res: BuildFormStateSuccessResult = {\n lockedState: lockedStateResult,\n staleDataState: staleDataStateResult,\n state: formStateResult,\n }\n\n if (returnLivePreviewURL) {\n const { livePreviewURL } = await handleLivePreview({\n collectionSlug,\n config,\n data,\n globalSlug,\n req,\n })\n\n // Important: only set this when not undefined,\n // Otherwise it will travel through the network as `$undefined`\n if (livePreviewURL) {\n res.livePreviewURL = livePreviewURL\n }\n }\n\n if (returnPreviewURL) {\n const { previewURL } = await handlePreview({\n collectionSlug,\n config,\n data,\n globalSlug,\n req,\n })\n\n // Important: only set this when not undefined,\n // Otherwise it will travel through the network as `$undefined`\n if (previewURL) {\n res.previewURL = previewURL\n }\n }\n\n return res\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"copyDataFromLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/copyDataFromLocale.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EAInB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,SAAS,CAAA;AAKhB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AA6LD,eAAO,MAAM,yBAAyB,EAAE,cAAc,CAAC,sBAAsB,CAc5E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,MAAM,sBAAsB,0CAwGpE,CAAA"}
1
+ {"version":3,"file":"copyDataFromLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/copyDataFromLocale.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,cAAc,EAInB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,SAAS,CAAA;AAKhB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AA8LD,eAAO,MAAM,yBAAyB,EAAE,cAAc,CAAC,sBAAsB,CAc5E,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAU,MAAM,sBAAsB,0CAwGpE,CAAA"}
@@ -41,7 +41,7 @@ function iterateFields(fields, fromLocaleData, toLocaleData, req, parentIsLocali
41
41
  // if the field has a value - loop over the data from target
42
42
  if (field.name in toLocaleData) {
43
43
  toLocaleData[field.name].map((blockData, index) => {
44
- const block = req.payload.blocks[blockData.blockType] ?? (field.blockReferences ?? field.blocks).find(block => typeof block !== 'string' && block.slug === blockData.blockType);
44
+ const block = req.payload.blocks[blockData.blockType] ?? field.blocks.find(block => typeof block !== 'string' && block.slug === blockData.blockType);
45
45
  // Generate new IDs if the field is localized to prevent errors with relational DBs.
46
46
  if (fieldShouldBeLocalized({
47
47
  field,
@@ -66,6 +66,7 @@ function iterateFields(fields, fromLocaleData, toLocaleData, req, parentIsLocali
66
66
  case 'relationship':
67
67
  case 'richText':
68
68
  case 'select':
69
+ case 'slug':
69
70
  case 'text':
70
71
  case 'textarea':
71
72
  case 'upload':
@@ -1 +1 @@
1
- {"version":3,"file":"copyDataFromLocale.js","names":["ObjectIdImport","canAccessAdmin","traverseFields","fieldAffectsData","fieldShouldBeLocalized","tabHasName","ObjectId","default","iterateFields","fields","fromLocaleData","toLocaleData","req","parentIsLocalized","map","field","type","name","undefined","includes","item","index","id","toHexString","localized","Array","isArray","length","blockData","block","payload","blocks","blockType","blockReferences","find","slug","tabs","tab","mergeData","removeIdIfParentIsLocalized","data","callback","ref","fillEmpty","copyDataFromLocaleHandler","args","copyDataFromLocale","err","logger","error","msg","fromLocale","toLocale","collectionSlug","docID","globalSlug","overrideData","collections","globals","user","Promise","allSettled","findGlobal","depth","draft","locale","overrideAccess","findByID","collection","joins","status","Error","config","fromLocaleDataWithoutID","value","toLocaleDataWithoutID","dataWithID","updateGlobal","update"],"sources":["../../src/utilities/copyDataFromLocale.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\nimport {\n canAccessAdmin,\n type CollectionSlug,\n type Data,\n type Field,\n type FlattenedBlock,\n type PayloadRequest,\n type ServerFunction,\n traverseFields,\n} from 'payload'\nimport { fieldAffectsData, fieldShouldBeLocalized, tabHasName } from 'payload/shared'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type CopyDataFromLocaleArgs = {\n collectionSlug?: CollectionSlug\n docID?: number | string\n fromLocale: string\n globalSlug?: string\n overrideData?: boolean\n req: PayloadRequest\n toLocale: string\n}\n\nfunction iterateFields(\n fields: Field[],\n fromLocaleData: Data,\n toLocaleData: Data,\n req: PayloadRequest,\n parentIsLocalized: boolean,\n): void {\n fields.map((field) => {\n if (fieldAffectsData(field)) {\n switch (field.type) {\n case 'array':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((item: Data, index: number) => {\n if (fromLocaleData[field.name]?.[index]) {\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n iterateFields(\n field.fields,\n fromLocaleData[field.name][index],\n item,\n req,\n parentIsLocalized || field.localized,\n )\n }\n })\n }\n break\n\n case 'blocks':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null, undefined, or empty array\n ([null, undefined].includes(toLocaleData[field.name]) ||\n (Array.isArray(toLocaleData[field.name]) && toLocaleData[field.name].length === 0)) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((blockData: Data, index: number) => {\n const block =\n req.payload.blocks[blockData.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockData.blockType,\n ) as FlattenedBlock | undefined)\n\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n if (block?.fields?.length) {\n iterateFields(\n block?.fields,\n fromLocaleData[field.name][index],\n blockData,\n req,\n parentIsLocalized || field.localized,\n )\n }\n })\n }\n\n break\n\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload':\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n }\n break\n\n case 'group': {\n if (\n fieldAffectsData(field) &&\n field.name in toLocaleData &&\n fromLocaleData?.[field.name] !== undefined\n ) {\n iterateFields(\n field.fields,\n fromLocaleData[field.name],\n toLocaleData[field.name],\n req,\n parentIsLocalized || field.localized,\n )\n } else {\n iterateFields(field.fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n }\n break\n }\n }\n } else {\n switch (field.type) {\n case 'collapsible':\n case 'row':\n iterateFields(field.fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n break\n\n case 'tabs':\n field.tabs.map((tab) => {\n if (tabHasName(tab)) {\n if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {\n iterateFields(\n tab.fields,\n fromLocaleData[tab.name],\n toLocaleData[tab.name],\n req,\n parentIsLocalized,\n )\n }\n } else {\n iterateFields(tab.fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n }\n })\n break\n }\n }\n })\n}\n\nfunction mergeData(\n fromLocaleData: Data,\n toLocaleData: Data,\n fields: Field[],\n req: PayloadRequest,\n parentIsLocalized: boolean,\n): Data {\n iterateFields(fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n\n return toLocaleData\n}\n\n/**\n * We don't have to recursively remove all ids,\n * just the ones from the fields inside a localized array or block.\n */\nfunction removeIdIfParentIsLocalized(data: Data, fields: Field[]): Data {\n traverseFields({\n callback: ({ parentIsLocalized, ref }) => {\n if (parentIsLocalized) {\n delete (ref as { id: unknown }).id\n }\n },\n fields,\n fillEmpty: false,\n ref: data,\n })\n\n return data\n}\n\nexport const copyDataFromLocaleHandler: ServerFunction<CopyDataFromLocaleArgs> = async (args) => {\n const { req } = args\n\n try {\n return await copyDataFromLocale(args)\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error copying data from \"${args.fromLocale}\" to \"${args.toLocale}\"`,\n })\n\n // Re-throw the error so it can be caught by the client\n throw err\n }\n}\n\nexport const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => {\n const {\n collectionSlug,\n docID,\n fromLocale,\n globalSlug,\n overrideData = false,\n req: {\n payload,\n payload: { collections, globals },\n user,\n },\n req,\n toLocale,\n } = args\n\n await canAccessAdmin({ req })\n\n const [fromLocaleData, toLocaleData] = await Promise.allSettled([\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n joins: false,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n joins: false,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n ])\n\n if (fromLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${fromLocale}\"`)\n }\n\n if (toLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${toLocale}\"`)\n }\n\n const fields = globalSlug\n ? globals[globalSlug].config.fields\n : collections[collectionSlug].config.fields\n\n const fromLocaleDataWithoutID = fromLocaleData.value\n const toLocaleDataWithoutID = toLocaleData.value\n\n const dataWithID = overrideData\n ? fromLocaleDataWithoutID\n : mergeData(fromLocaleDataWithoutID, toLocaleDataWithoutID, fields, req, false)\n\n const data = removeIdIfParentIsLocalized(dataWithID, fields)\n\n return globalSlug\n ? await payload.updateGlobal({\n slug: globalSlug,\n data,\n draft: true,\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n : await payload.update({\n id: docID,\n collection: collectionSlug,\n data,\n draft: true,\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"copyDataFromLocale.js","names":["ObjectIdImport","canAccessAdmin","traverseFields","fieldAffectsData","fieldShouldBeLocalized","tabHasName","ObjectId","default","iterateFields","fields","fromLocaleData","toLocaleData","req","parentIsLocalized","map","field","type","name","undefined","includes","item","index","id","toHexString","localized","Array","isArray","length","blockData","block","payload","blocks","blockType","find","slug","tabs","tab","mergeData","removeIdIfParentIsLocalized","data","callback","ref","fillEmpty","copyDataFromLocaleHandler","args","copyDataFromLocale","err","logger","error","msg","fromLocale","toLocale","collectionSlug","docID","globalSlug","overrideData","collections","globals","user","Promise","allSettled","findGlobal","depth","draft","locale","overrideAccess","findByID","collection","joins","status","Error","config","fromLocaleDataWithoutID","value","toLocaleDataWithoutID","dataWithID","updateGlobal","update"],"sources":["../../src/utilities/copyDataFromLocale.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\nimport {\n canAccessAdmin,\n type CollectionSlug,\n type Data,\n type Field,\n type FlattenedBlock,\n type PayloadRequest,\n type ServerFunction,\n traverseFields,\n} from 'payload'\nimport { fieldAffectsData, fieldShouldBeLocalized, tabHasName } from 'payload/shared'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type CopyDataFromLocaleArgs = {\n collectionSlug?: CollectionSlug\n docID?: number | string\n fromLocale: string\n globalSlug?: string\n overrideData?: boolean\n req: PayloadRequest\n toLocale: string\n}\n\nfunction iterateFields(\n fields: Field[],\n fromLocaleData: Data,\n toLocaleData: Data,\n req: PayloadRequest,\n parentIsLocalized: boolean,\n): void {\n fields.map((field) => {\n if (fieldAffectsData(field)) {\n switch (field.type) {\n case 'array':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((item: Data, index: number) => {\n if (fromLocaleData[field.name]?.[index]) {\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n iterateFields(\n field.fields,\n fromLocaleData[field.name][index],\n item,\n req,\n parentIsLocalized || field.localized,\n )\n }\n })\n }\n break\n\n case 'blocks':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null, undefined, or empty array\n ([null, undefined].includes(toLocaleData[field.name]) ||\n (Array.isArray(toLocaleData[field.name]) && toLocaleData[field.name].length === 0)) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((blockData: Data, index: number) => {\n const block =\n req.payload.blocks[blockData.blockType] ??\n (field.blocks.find(\n (block) => typeof block !== 'string' && block.slug === blockData.blockType,\n ) as FlattenedBlock | undefined)\n\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n if (block?.fields?.length) {\n iterateFields(\n block?.fields,\n fromLocaleData[field.name][index],\n blockData,\n req,\n parentIsLocalized || field.localized,\n )\n }\n })\n }\n\n break\n\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'slug':\n case 'text':\n case 'textarea':\n case 'upload':\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n }\n break\n\n case 'group': {\n if (\n fieldAffectsData(field) &&\n field.name in toLocaleData &&\n fromLocaleData?.[field.name] !== undefined\n ) {\n iterateFields(\n field.fields,\n fromLocaleData[field.name],\n toLocaleData[field.name],\n req,\n parentIsLocalized || field.localized,\n )\n } else {\n iterateFields(field.fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n }\n break\n }\n }\n } else {\n switch (field.type) {\n case 'collapsible':\n case 'row':\n iterateFields(field.fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n break\n\n case 'tabs':\n field.tabs.map((tab) => {\n if (tabHasName(tab)) {\n if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {\n iterateFields(\n tab.fields,\n fromLocaleData[tab.name],\n toLocaleData[tab.name],\n req,\n parentIsLocalized,\n )\n }\n } else {\n iterateFields(tab.fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n }\n })\n break\n }\n }\n })\n}\n\nfunction mergeData(\n fromLocaleData: Data,\n toLocaleData: Data,\n fields: Field[],\n req: PayloadRequest,\n parentIsLocalized: boolean,\n): Data {\n iterateFields(fields, fromLocaleData, toLocaleData, req, parentIsLocalized)\n\n return toLocaleData\n}\n\n/**\n * We don't have to recursively remove all ids,\n * just the ones from the fields inside a localized array or block.\n */\nfunction removeIdIfParentIsLocalized(data: Data, fields: Field[]): Data {\n traverseFields({\n callback: ({ parentIsLocalized, ref }) => {\n if (parentIsLocalized) {\n delete (ref as { id: unknown }).id\n }\n },\n fields,\n fillEmpty: false,\n ref: data,\n })\n\n return data\n}\n\nexport const copyDataFromLocaleHandler: ServerFunction<CopyDataFromLocaleArgs> = async (args) => {\n const { req } = args\n\n try {\n return await copyDataFromLocale(args)\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error copying data from \"${args.fromLocale}\" to \"${args.toLocale}\"`,\n })\n\n // Re-throw the error so it can be caught by the client\n throw err\n }\n}\n\nexport const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => {\n const {\n collectionSlug,\n docID,\n fromLocale,\n globalSlug,\n overrideData = false,\n req: {\n payload,\n payload: { collections, globals },\n user,\n },\n req,\n toLocale,\n } = args\n\n await canAccessAdmin({ req })\n\n const [fromLocaleData, toLocaleData] = await Promise.allSettled([\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n joins: false,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n draft: true,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n draft: true,\n joins: false,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n ])\n\n if (fromLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${fromLocale}\"`)\n }\n\n if (toLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${toLocale}\"`)\n }\n\n const fields = globalSlug\n ? globals[globalSlug].config.fields\n : collections[collectionSlug].config.fields\n\n const fromLocaleDataWithoutID = fromLocaleData.value\n const toLocaleDataWithoutID = toLocaleData.value\n\n const dataWithID = overrideData\n ? fromLocaleDataWithoutID\n : mergeData(fromLocaleDataWithoutID, toLocaleDataWithoutID, fields, req, false)\n\n const data = removeIdIfParentIsLocalized(dataWithID, fields)\n\n return globalSlug\n ? await payload.updateGlobal({\n slug: globalSlug,\n data,\n draft: true,\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n : await payload.update({\n id: docID,\n collection: collectionSlug,\n data,\n draft: true,\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"formatDateTitle.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mCAAmC,cAAc,KAAG,MAoB9E,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,gBAAgB,mBAAmB,KAAG,MAKrE,CAAA"}
1
+ {"version":3,"file":"formatDateTitle.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,mCAAmC,cAAc,KAAG,MAoB9E,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,gBAAgB,mBAAmB,KAAG,MAGrE,CAAA"}
@@ -28,6 +28,6 @@ export const formatTimeToNow = ({
28
28
  const theDate = typeof date === 'string' ? new Date(date) : date;
29
29
  return i18n?.dateFNS ? formatDistanceToNow(theDate, {
30
30
  locale: i18n.dateFNS
31
- }) : `${i18n.t('general:loading')}...`;
31
+ }) : '';
32
32
  };
33
33
  //# sourceMappingURL=formatDateTitle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatDateTitle.js","names":["TZDateMini","TZDate","format","formatDistanceToNow","transpose","formatDate","date","i18n","pattern","timezone","theDate","Date","DateWithOriginalTz","tz","modifiedDate","withTimeZone","dateWithTimezone","dateFNS","locale","t","formatTimeToNow"],"sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { format, formatDistanceToNow, transpose } from 'date-fns'\n\nexport type FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown> | I18nClient<unknown>\n pattern: string\n timezone?: string\n}\n\nexport const formatDate = ({ date, i18n, pattern, timezone }: FormatDateArgs): string => {\n const theDate = new TZDate(new Date(date))\n\n if (timezone) {\n const DateWithOriginalTz = TZDate.tz(timezone)\n\n const modifiedDate = theDate.withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n return i18n.dateFNS\n ? format(dateWithTimezone, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n }\n\n return i18n.dateFNS\n ? format(theDate, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown> | I18nClient<unknown>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = typeof date === 'string' ? new Date(date) : date\n return i18n?.dateFNS\n ? formatDistanceToNow(theDate, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n"],"mappings":"AAEA,SAASA,UAAA,IAAcC,MAAM,QAAQ;AACrC,SAASC,MAAM,EAAEC,mBAAmB,EAAEC,SAAS,QAAQ;AASvD,OAAO,MAAMC,UAAA,GAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,OAAO;EAAEC;AAAQ,CAAkB;EAC1E,MAAMC,OAAA,GAAU,IAAIT,MAAA,CAAO,IAAIU,IAAA,CAAKL,IAAA;EAEpC,IAAIG,QAAA,EAAU;IACZ,MAAMG,kBAAA,GAAqBX,MAAA,CAAOY,EAAE,CAACJ,QAAA;IAErC,MAAMK,YAAA,GAAeJ,OAAA,CAAQK,YAAY,CAACN,QAAA;IAE1C;IACA,MAAMO,gBAAA,GAAmBZ,SAAA,CAAUU,YAAA,EAAcF,kBAAA;IAEjD;IACA,OAAOL,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOc,gBAAA,EAAkBR,OAAA,EAAS;MAAEU,MAAA,EAAQX,IAAA,CAAKU;IAAQ,KACzD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;EACvC;EAEA,OAAOZ,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOQ,OAAA,EAASF,OAAA,EAAS;IAAEU,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KAChD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC;AAOA,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEd,IAAI;EAAEC;AAAI,CAAuB;EACjE,MAAMG,OAAA,GAAU,OAAOJ,IAAA,KAAS,WAAW,IAAIK,IAAA,CAAKL,IAAA,IAAQA,IAAA;EAC5D,OAAOC,IAAA,EAAMU,OAAA,GACTd,mBAAA,CAAoBO,OAAA,EAAS;IAAEQ,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KACpD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC","ignoreList":[]}
1
+ {"version":3,"file":"formatDateTitle.js","names":["TZDateMini","TZDate","format","formatDistanceToNow","transpose","formatDate","date","i18n","pattern","timezone","theDate","Date","DateWithOriginalTz","tz","modifiedDate","withTimeZone","dateWithTimezone","dateFNS","locale","t","formatTimeToNow"],"sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { format, formatDistanceToNow, transpose } from 'date-fns'\n\nexport type FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown> | I18nClient<unknown>\n pattern: string\n timezone?: string\n}\n\nexport const formatDate = ({ date, i18n, pattern, timezone }: FormatDateArgs): string => {\n const theDate = new TZDate(new Date(date))\n\n if (timezone) {\n const DateWithOriginalTz = TZDate.tz(timezone)\n\n const modifiedDate = theDate.withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n return i18n.dateFNS\n ? format(dateWithTimezone, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n }\n\n return i18n.dateFNS\n ? format(theDate, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown> | I18nClient<unknown>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = typeof date === 'string' ? new Date(date) : date\n return i18n?.dateFNS ? formatDistanceToNow(theDate, { locale: i18n.dateFNS }) : ''\n}\n"],"mappings":"AAEA,SAASA,UAAA,IAAcC,MAAM,QAAQ;AACrC,SAASC,MAAM,EAAEC,mBAAmB,EAAEC,SAAS,QAAQ;AASvD,OAAO,MAAMC,UAAA,GAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,OAAO;EAAEC;AAAQ,CAAkB;EAC1E,MAAMC,OAAA,GAAU,IAAIT,MAAA,CAAO,IAAIU,IAAA,CAAKL,IAAA;EAEpC,IAAIG,QAAA,EAAU;IACZ,MAAMG,kBAAA,GAAqBX,MAAA,CAAOY,EAAE,CAACJ,QAAA;IAErC,MAAMK,YAAA,GAAeJ,OAAA,CAAQK,YAAY,CAACN,QAAA;IAE1C;IACA,MAAMO,gBAAA,GAAmBZ,SAAA,CAAUU,YAAA,EAAcF,kBAAA;IAEjD;IACA,OAAOL,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOc,gBAAA,EAAkBR,OAAA,EAAS;MAAEU,MAAA,EAAQX,IAAA,CAAKU;IAAQ,KACzD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;EACvC;EAEA,OAAOZ,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOQ,OAAA,EAASF,OAAA,EAAS;IAAEU,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KAChD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC;AAOA,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEd,IAAI;EAAEC;AAAI,CAAuB;EACjE,MAAMG,OAAA,GAAU,OAAOJ,IAAA,KAAS,WAAW,IAAIK,IAAA,CAAKL,IAAA,IAAQA,IAAA;EAC5D,OAAOC,IAAA,EAAMU,OAAA,GAAUd,mBAAA,CAAoBO,OAAA,EAAS;IAAEQ,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KAAK;AAClF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Returns an `Intl.RelativeTimeFormat` for the given language, falling back to English on
3
+ * unsupported locales. Create it once and reuse it across rows. Shared by dashboard widgets so
4
+ * their relative timestamps render identically.
5
+ */
6
+ export declare function getRelativeTimeFormat(language: string): Intl.RelativeTimeFormat;
7
+ /**
8
+ * Formats an ISO date string as a locale-aware relative time (e.g. "5m ago", "in 2d"). Returns the
9
+ * original value unchanged when it is not a parseable date.
10
+ */
11
+ export declare function formatRelativeDate({ relativeTimeFormat, value, }: {
12
+ relativeTimeFormat: Intl.RelativeTimeFormat;
13
+ value: string;
14
+ }): string;
15
+ //# sourceMappingURL=formatRelativeDate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatRelativeDate.d.ts","sourceRoot":"","sources":["../../src/utilities/formatRelativeDate.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAM/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,kBAAkB,EAClB,KAAK,GACN,EAAE;IACD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAA;IAC3C,KAAK,EAAE,MAAM,CAAA;CACd,GAAG,MAAM,CAkBT"}
@@ -0,0 +1,62 @@
1
+ const relativeTimeDivisions = [{
2
+ amount: 60,
3
+ unit: 'seconds'
4
+ }, {
5
+ amount: 60,
6
+ unit: 'minutes'
7
+ }, {
8
+ amount: 24,
9
+ unit: 'hours'
10
+ }, {
11
+ amount: 7,
12
+ unit: 'days'
13
+ }, {
14
+ amount: 4.34524,
15
+ unit: 'weeks'
16
+ }, {
17
+ amount: 12,
18
+ unit: 'months'
19
+ }, {
20
+ amount: Number.POSITIVE_INFINITY,
21
+ unit: 'years'
22
+ }];
23
+ /**
24
+ * Returns an `Intl.RelativeTimeFormat` for the given language, falling back to English on
25
+ * unsupported locales. Create it once and reuse it across rows. Shared by dashboard widgets so
26
+ * their relative timestamps render identically.
27
+ */
28
+ export function getRelativeTimeFormat(language) {
29
+ try {
30
+ return new Intl.RelativeTimeFormat(language, {
31
+ numeric: 'auto',
32
+ style: 'narrow'
33
+ });
34
+ } catch {
35
+ return new Intl.RelativeTimeFormat('en', {
36
+ numeric: 'auto',
37
+ style: 'narrow'
38
+ });
39
+ }
40
+ }
41
+ /**
42
+ * Formats an ISO date string as a locale-aware relative time (e.g. "5m ago", "in 2d"). Returns the
43
+ * original value unchanged when it is not a parseable date.
44
+ */
45
+ export function formatRelativeDate({
46
+ relativeTimeFormat,
47
+ value
48
+ }) {
49
+ const date = new Date(value);
50
+ if (Number.isNaN(date.getTime())) {
51
+ return value;
52
+ }
53
+ let duration = (date.getTime() - Date.now()) / 1000;
54
+ for (const division of relativeTimeDivisions) {
55
+ if (Math.abs(duration) < division.amount) {
56
+ return relativeTimeFormat.format(Math.round(duration), division.unit);
57
+ }
58
+ duration /= division.amount;
59
+ }
60
+ return relativeTimeFormat.format(Math.round(duration), 'years');
61
+ }
62
+ //# sourceMappingURL=formatRelativeDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatRelativeDate.js","names":["relativeTimeDivisions","amount","unit","Number","POSITIVE_INFINITY","getRelativeTimeFormat","language","Intl","RelativeTimeFormat","numeric","style","formatRelativeDate","relativeTimeFormat","value","date","Date","isNaN","getTime","duration","now","division","Math","abs","format","round"],"sources":["../../src/utilities/formatRelativeDate.ts"],"sourcesContent":["const relativeTimeDivisions: { amount: number; unit: Intl.RelativeTimeFormatUnit }[] = [\n { amount: 60, unit: 'seconds' },\n { amount: 60, unit: 'minutes' },\n { amount: 24, unit: 'hours' },\n { amount: 7, unit: 'days' },\n { amount: 4.34524, unit: 'weeks' },\n { amount: 12, unit: 'months' },\n { amount: Number.POSITIVE_INFINITY, unit: 'years' },\n]\n\n/**\n * Returns an `Intl.RelativeTimeFormat` for the given language, falling back to English on\n * unsupported locales. Create it once and reuse it across rows. Shared by dashboard widgets so\n * their relative timestamps render identically.\n */\nexport function getRelativeTimeFormat(language: string): Intl.RelativeTimeFormat {\n try {\n return new Intl.RelativeTimeFormat(language, { numeric: 'auto', style: 'narrow' })\n } catch {\n return new Intl.RelativeTimeFormat('en', { numeric: 'auto', style: 'narrow' })\n }\n}\n\n/**\n * Formats an ISO date string as a locale-aware relative time (e.g. \"5m ago\", \"in 2d\"). Returns the\n * original value unchanged when it is not a parseable date.\n */\nexport function formatRelativeDate({\n relativeTimeFormat,\n value,\n}: {\n relativeTimeFormat: Intl.RelativeTimeFormat\n value: string\n}): string {\n const date = new Date(value)\n\n if (Number.isNaN(date.getTime())) {\n return value\n }\n\n let duration = (date.getTime() - Date.now()) / 1000\n\n for (const division of relativeTimeDivisions) {\n if (Math.abs(duration) < division.amount) {\n return relativeTimeFormat.format(Math.round(duration), division.unit)\n }\n\n duration /= division.amount\n }\n\n return relativeTimeFormat.format(Math.round(duration), 'years')\n}\n"],"mappings":"AAAA,MAAMA,qBAAA,GAAiF,CACrF;EAAEC,MAAA,EAAQ;EAAIC,IAAA,EAAM;AAAU,GAC9B;EAAED,MAAA,EAAQ;EAAIC,IAAA,EAAM;AAAU,GAC9B;EAAED,MAAA,EAAQ;EAAIC,IAAA,EAAM;AAAQ,GAC5B;EAAED,MAAA,EAAQ;EAAGC,IAAA,EAAM;AAAO,GAC1B;EAAED,MAAA,EAAQ;EAASC,IAAA,EAAM;AAAQ,GACjC;EAAED,MAAA,EAAQ;EAAIC,IAAA,EAAM;AAAS,GAC7B;EAAED,MAAA,EAAQE,MAAA,CAAOC,iBAAiB;EAAEF,IAAA,EAAM;AAAQ,EACnD;AAED;;;;;AAKA,OAAO,SAASG,sBAAsBC,QAAgB;EACpD,IAAI;IACF,OAAO,IAAIC,IAAA,CAAKC,kBAAkB,CAACF,QAAA,EAAU;MAAEG,OAAA,EAAS;MAAQC,KAAA,EAAO;IAAS;EAClF,EAAE,MAAM;IACN,OAAO,IAAIH,IAAA,CAAKC,kBAAkB,CAAC,MAAM;MAAEC,OAAA,EAAS;MAAQC,KAAA,EAAO;IAAS;EAC9E;AACF;AAEA;;;;AAIA,OAAO,SAASC,mBAAmB;EACjCC,kBAAkB;EAClBC;AAAK,CAIN;EACC,MAAMC,IAAA,GAAO,IAAIC,IAAA,CAAKF,KAAA;EAEtB,IAAIV,MAAA,CAAOa,KAAK,CAACF,IAAA,CAAKG,OAAO,KAAK;IAChC,OAAOJ,KAAA;EACT;EAEA,IAAIK,QAAA,GAAW,CAACJ,IAAA,CAAKG,OAAO,KAAKF,IAAA,CAAKI,GAAG,EAAC,IAAK;EAE/C,KAAK,MAAMC,QAAA,IAAYpB,qBAAA,EAAuB;IAC5C,IAAIqB,IAAA,CAAKC,GAAG,CAACJ,QAAA,IAAYE,QAAA,CAASnB,MAAM,EAAE;MACxC,OAAOW,kBAAA,CAAmBW,MAAM,CAACF,IAAA,CAAKG,KAAK,CAACN,QAAA,GAAWE,QAAA,CAASlB,IAAI;IACtE;IAEAgB,QAAA,IAAYE,QAAA,CAASnB,MAAM;EAC7B;EAEA,OAAOW,kBAAA,CAAmBW,MAAM,CAACF,IAAA,CAAKG,KAAK,CAACN,QAAA,GAAW;AACzD","ignoreList":[]}