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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/dist/css/preflight.css +21 -2
  2. package/dist/elements/AppHeader/index.css +1 -1
  3. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  4. package/dist/elements/AppHeader/index.js +5 -1
  5. package/dist/elements/AppHeader/index.js.map +1 -1
  6. package/dist/elements/Autosave/index.d.ts.map +1 -1
  7. package/dist/elements/Autosave/index.js +10 -3
  8. package/dist/elements/Autosave/index.js.map +1 -1
  9. package/dist/elements/Button/index.css +24 -0
  10. package/dist/elements/Button/types.d.ts +1 -1
  11. package/dist/elements/Button/types.d.ts.map +1 -1
  12. package/dist/elements/Button/types.js.map +1 -1
  13. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  14. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  15. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  16. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  17. package/dist/elements/CodeEditor/CodeEditor.js +5 -0
  18. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  19. package/dist/elements/DatePicker/DatePicker.js +6 -2
  20. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  21. package/dist/elements/DatePicker/index.css +35 -25
  22. package/dist/elements/DocumentControls/index.css +13 -10
  23. package/dist/elements/DocumentControls/index.d.ts +4 -2
  24. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentControls/index.js.map +1 -1
  26. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  27. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  29. package/dist/elements/DocumentFields/index.css +7 -7
  30. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentFields/index.js +1 -2
  32. package/dist/elements/DocumentFields/index.js.map +1 -1
  33. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  34. package/dist/elements/Drawer/types.d.ts +2 -2
  35. package/dist/elements/Drawer/types.d.ts.map +1 -1
  36. package/dist/elements/Drawer/types.js.map +1 -1
  37. package/dist/elements/EditUpload/library.css +6 -13
  38. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  39. package/dist/elements/FileManager/index.d.ts.map +1 -1
  40. package/dist/elements/FileManager/index.js +6 -1
  41. package/dist/elements/FileManager/index.js.map +1 -1
  42. package/dist/elements/Hierarchy/ActionsMenu/index.css +18 -0
  43. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts +35 -0
  44. package/dist/elements/Hierarchy/ActionsMenu/index.d.ts.map +1 -0
  45. package/dist/elements/Hierarchy/ActionsMenu/index.js +99 -0
  46. package/dist/elements/Hierarchy/ActionsMenu/index.js.map +1 -0
  47. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +18 -16
  48. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  49. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +2 -0
  50. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  51. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  52. package/dist/elements/Hierarchy/DocHeaderButton/index.css +12 -0
  53. package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
  54. package/dist/elements/Hierarchy/DocHeaderButton/index.js +61 -14
  55. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  56. package/dist/elements/Hierarchy/Modal/Footer/index.css +33 -0
  57. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +21 -0
  58. package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
  59. package/dist/elements/Hierarchy/Modal/Footer/index.js +122 -0
  60. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
  61. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +8 -3
  62. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
  63. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +38 -12
  64. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
  65. package/dist/elements/Hierarchy/Modal/index.css +0 -56
  66. package/dist/elements/Hierarchy/Modal/index.d.ts +5 -3
  67. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
  68. package/dist/elements/Hierarchy/Modal/index.js +64 -65
  69. package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
  70. package/dist/elements/Hierarchy/Modal/types.d.ts +2 -0
  71. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
  72. package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
  73. package/dist/elements/Hierarchy/MoveMany/index.d.ts +1 -3
  74. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  75. package/dist/elements/Hierarchy/MoveMany/index.js +62 -84
  76. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  77. package/dist/elements/ListControls/types.d.ts +0 -10
  78. package/dist/elements/ListControls/types.d.ts.map +1 -1
  79. package/dist/elements/ListControls/types.js.map +1 -1
  80. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  81. package/dist/elements/ListDrawer/DrawerContent.js +1 -2
  82. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  83. package/dist/elements/ListDrawer/Provider.d.ts +0 -6
  84. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  85. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  86. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  87. package/dist/elements/ListDrawer/index.js +1 -1
  88. package/dist/elements/ListDrawer/index.js.map +1 -1
  89. package/dist/elements/ListDrawer/types.d.ts +1 -0
  90. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  91. package/dist/elements/ListDrawer/types.js.map +1 -1
  92. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  93. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +24 -20
  94. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  95. package/dist/elements/LivePreview/Window/index.css +7 -1
  96. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  97. package/dist/elements/Nav/NavWrapper/index.js +19 -14
  98. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  99. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  100. package/dist/elements/PublishButton/index.js +71 -8
  101. package/dist/elements/PublishButton/index.js.map +1 -1
  102. package/dist/elements/PublishButton/validateAllLocales.d.ts +11 -0
  103. package/dist/elements/PublishButton/validateAllLocales.d.ts.map +1 -0
  104. package/dist/elements/PublishButton/validateAllLocales.js +263 -0
  105. package/dist/elements/PublishButton/validateAllLocales.js.map +1 -0
  106. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  107. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  108. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  109. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  110. package/dist/elements/SaveDraftButton/index.js +15 -2
  111. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  112. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  113. package/dist/elements/SegmentedControl/index.css +50 -7
  114. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  116. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +0 -9
  117. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +63 -40
  119. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  120. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  121. package/dist/elements/Table/DefaultCell/index.js +6 -1
  122. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  123. package/dist/elements/Table/index.js.map +1 -1
  124. package/dist/elements/Tabs/index.css +4 -3
  125. package/dist/elements/Upload/getEditorFileSrc.d.ts +11 -0
  126. package/dist/elements/Upload/getEditorFileSrc.d.ts.map +1 -0
  127. package/dist/elements/Upload/getEditorFileSrc.js +6 -0
  128. package/dist/elements/Upload/getEditorFileSrc.js.map +1 -0
  129. package/dist/elements/Upload/index.d.ts.map +1 -1
  130. package/dist/elements/Upload/index.js +6 -1
  131. package/dist/elements/Upload/index.js.map +1 -1
  132. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-I6PL55BF.js} +2 -2
  133. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-XAKGIULG.js} +2 -2
  134. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-36JJSMEB.js} +2 -2
  135. package/dist/exports/client/chunk-36JJSMEB.js.map +7 -0
  136. package/dist/exports/client/chunk-R7M6BG75.js +27 -0
  137. package/dist/exports/client/chunk-R7M6BG75.js.map +7 -0
  138. package/dist/exports/client/index.d.ts +3 -0
  139. package/dist/exports/client/index.d.ts.map +1 -1
  140. package/dist/exports/client/index.js +27 -27
  141. package/dist/exports/client/index.js.map +4 -4
  142. package/dist/exports/shared/index.js +2 -2
  143. package/dist/exports/shared/index.js.map +3 -3
  144. package/dist/fields/Group/index.css +3 -5
  145. package/dist/fields/Tabs/index.css +14 -14
  146. package/dist/fields/Upload/Input.d.ts.map +1 -1
  147. package/dist/fields/Upload/Input.js +3 -1
  148. package/dist/fields/Upload/Input.js.map +1 -1
  149. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  150. package/dist/forms/Form/fieldReducer.js +6 -9
  151. package/dist/forms/Form/fieldReducer.js.map +1 -1
  152. package/dist/forms/Form/index.d.ts.map +1 -1
  153. package/dist/forms/Form/index.js +0 -1
  154. package/dist/forms/Form/index.js.map +1 -1
  155. package/dist/forms/Form/types.d.ts +0 -5
  156. package/dist/forms/Form/types.d.ts.map +1 -1
  157. package/dist/forms/Form/types.js.map +1 -1
  158. package/dist/forms/RenderFields/index.css +2 -2
  159. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -2
  160. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  161. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  162. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -2
  163. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  164. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  165. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -2
  166. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  167. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  168. package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -2
  169. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  170. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  171. package/dist/forms/useField/types.d.ts +0 -4
  172. package/dist/forms/useField/types.d.ts.map +1 -1
  173. package/dist/forms/useField/types.js.map +1 -1
  174. package/dist/icons/Arrow/index.d.ts +1 -1
  175. package/dist/icons/Arrow/index.d.ts.map +1 -1
  176. package/dist/icons/Arrow/index.js +7 -1
  177. package/dist/icons/Arrow/index.js.map +1 -1
  178. package/dist/icons/Clock/index.d.ts +6 -0
  179. package/dist/icons/Clock/index.d.ts.map +1 -0
  180. package/dist/icons/Clock/index.js +18 -0
  181. package/dist/icons/Clock/index.js.map +1 -0
  182. package/dist/icons/Pin/index.d.ts +7 -0
  183. package/dist/icons/Pin/index.d.ts.map +1 -0
  184. package/dist/icons/Pin/index.js +23 -0
  185. package/dist/icons/Pin/index.js.map +1 -0
  186. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  187. package/dist/icons/Sidebar/index.js +2 -0
  188. package/dist/icons/Sidebar/index.js.map +1 -1
  189. package/dist/icons/Table/index.css +5 -1
  190. package/dist/layouts/Root/getRootLayoutData.d.ts +2 -2
  191. package/dist/layouts/Root/getRootLayoutData.d.ts.map +1 -1
  192. package/dist/layouts/Root/getRootLayoutData.js +8 -4
  193. package/dist/layouts/Root/getRootLayoutData.js.map +1 -1
  194. package/dist/layouts/Root/index.d.ts +1 -1
  195. package/dist/layouts/Root/index.d.ts.map +1 -1
  196. package/dist/layouts/Root/index.js +5 -20
  197. package/dist/layouts/Root/index.js.map +1 -1
  198. package/dist/providers/ListQuery/types.d.ts +0 -4
  199. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  200. package/dist/providers/ListQuery/types.js.map +1 -1
  201. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  202. package/dist/providers/RouteCache/index.js +37 -25
  203. package/dist/providers/RouteCache/index.js.map +1 -1
  204. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  205. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  206. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  207. package/dist/providers/TableColumns/types.d.ts +1 -34
  208. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  209. package/dist/providers/TableColumns/types.js.map +1 -1
  210. package/dist/styles.css +22 -3
  211. package/dist/templates/Default/index.css +0 -1
  212. package/dist/utilities/appendCacheTag.d.ts +1 -0
  213. package/dist/utilities/appendCacheTag.d.ts.map +1 -1
  214. package/dist/utilities/appendCacheTag.js +2 -1
  215. package/dist/utilities/appendCacheTag.js.map +1 -1
  216. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  217. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  218. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  219. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  220. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  221. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  222. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  223. package/dist/utilities/getDocumentThumbnail.d.ts +6 -0
  224. package/dist/utilities/getDocumentThumbnail.d.ts.map +1 -0
  225. package/dist/utilities/getDocumentThumbnail.js +27 -0
  226. package/dist/utilities/getDocumentThumbnail.js.map +1 -0
  227. package/dist/utilities/getDocumentThumbnailPopulate.d.ts +7 -0
  228. package/dist/utilities/getDocumentThumbnailPopulate.d.ts.map +1 -0
  229. package/dist/utilities/getDocumentThumbnailPopulate.js +23 -0
  230. package/dist/utilities/getDocumentThumbnailPopulate.js.map +1 -0
  231. package/dist/utilities/getDocumentThumbnailSelect.d.ts +7 -0
  232. package/dist/utilities/getDocumentThumbnailSelect.d.ts.map +1 -0
  233. package/dist/utilities/getDocumentThumbnailSelect.js +24 -0
  234. package/dist/utilities/getDocumentThumbnailSelect.js.map +1 -0
  235. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  236. package/dist/utilities/handleLivePreview.js.map +1 -1
  237. package/dist/utilities/hasSavePermission.js.map +1 -1
  238. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  239. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  240. package/dist/utilities/serverFunctionRegistry.js +2 -0
  241. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  242. package/dist/utilities/traverseForLocalizedFields.d.ts +7 -2
  243. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  244. package/dist/utilities/traverseForLocalizedFields.js +22 -8
  245. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  246. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  247. package/dist/views/CreateFirstUser/index.js +4 -2
  248. package/dist/views/CreateFirstUser/index.js.map +1 -1
  249. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  250. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  251. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  252. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  253. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  254. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +16 -4
  255. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  256. package/dist/views/Edit/index.css +26 -0
  257. package/dist/views/Edit/index.d.ts.map +1 -1
  258. package/dist/views/Edit/index.js +1 -1
  259. package/dist/views/Edit/index.js.map +1 -1
  260. package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
  261. package/dist/views/HierarchyList/DocumentListSelection/index.js +0 -1
  262. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  263. package/dist/views/List/DocumentGrid/index.d.ts.map +1 -1
  264. package/dist/views/List/DocumentGrid/index.js +2 -37
  265. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  266. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  267. package/dist/views/List/enrichDocsWithVersionStatus.js +3 -1
  268. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  269. package/dist/views/List/index.d.ts.map +1 -1
  270. package/dist/views/List/index.js +11 -24
  271. package/dist/views/List/index.js.map +1 -1
  272. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -12
  273. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  274. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +2 -2
  275. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  276. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js +2 -2
  277. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  278. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +2 -2
  279. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  280. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js +2 -2
  281. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  282. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +2 -2
  283. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  284. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -2
  285. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  286. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  287. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +2 -2
  288. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  289. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js +8 -8
  290. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  291. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +2 -2
  292. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  293. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  294. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js +2 -2
  295. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  296. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  297. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +31 -5
  298. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  299. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +41 -0
  300. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +19 -0
  301. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +1 -0
  302. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +121 -0
  303. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +1 -0
  304. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +20 -0
  305. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +1 -0
  306. package/dist/widgets/RecentlyViewed/getDocuments.js +254 -0
  307. package/dist/widgets/RecentlyViewed/getDocuments.js.map +1 -0
  308. package/dist/widgets/RecentlyViewed/index.client.d.ts +41 -0
  309. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +1 -0
  310. package/dist/widgets/RecentlyViewed/index.client.js +409 -0
  311. package/dist/widgets/RecentlyViewed/index.client.js.map +1 -0
  312. package/dist/widgets/RecentlyViewed/index.css +352 -0
  313. package/dist/widgets/RecentlyViewed/index.d.ts +1 -1
  314. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  315. package/dist/widgets/RecentlyViewed/index.js +33 -134
  316. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  317. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts +18 -0
  318. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +1 -0
  319. package/dist/widgets/RecentlyViewed/pinnedPreferences.js +81 -0
  320. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +1 -0
  321. package/dist/widgets/RecentlyViewed/recents.d.ts +8 -0
  322. package/dist/widgets/RecentlyViewed/recents.d.ts.map +1 -0
  323. package/dist/widgets/RecentlyViewed/recents.js +19 -0
  324. package/dist/widgets/RecentlyViewed/recents.js.map +1 -0
  325. package/package.json +16 -16
  326. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  327. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  328. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  329. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-I6PL55BF.js.map} +0 -0
  330. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-XAKGIULG.js.map} +0 -0
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { getTranslation } from '@payloadcms/translations';
4
5
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
6
  import { toast } from 'sonner';
6
7
  import { useIntersect } from '../../../../../hooks/useIntersect.js';
@@ -11,7 +12,9 @@ import { useTranslation } from '../../../../../providers/Translation/index.js';
11
12
  import { canUseDOM } from '../../../../../utilities/canUseDOM.js';
12
13
  import { formatDocTitle } from '../../../../../utilities/formatDocTitle/index.js';
13
14
  import { getEffectiveHierarchyCollections, getHierarchyCollectionRestrictions } from '../../../../../utilities/hierarchyCollectionRestrictions.js';
15
+ import { getHierarchyListURL } from '../../../../../views/HierarchyList/getHierarchyListURL.js';
14
16
  import { Button } from '../../../../Button/index.js';
17
+ import { HierarchyActionsMenu } from '../../../../Hierarchy/ActionsMenu/index.js';
15
18
  import { useHierarchyModal } from '../../../../Hierarchy/Modal/useHierarchyModal.js';
16
19
  import { useListRelationships } from '../../../RelationshipProvider/index.js';
17
20
  import './index.css';
@@ -143,32 +146,15 @@ export const HierarchyCell = ({
143
146
  setValues(formattedValues);
144
147
  }
145
148
  }, [cellDataFromProps, relationTo, isAboveViewport, getRelationships]);
146
- // Get current selection IDs for the modal
147
- const initialSelections = useMemo(() => {
148
- if (!cellDataFromProps) {
149
- return [];
150
- }
151
- const data = Array.isArray(cellDataFromProps) ? cellDataFromProps : [cellDataFromProps];
152
- return data.map(item => {
153
- if (typeof item === 'object' && 'value' in item) {
154
- return item.value;
155
- }
156
- return item;
157
- });
158
- }, [cellDataFromProps]);
159
- // Handle save from modal
160
- const handleSave = useCallback(async ({
161
- closeModal,
162
- selections
163
- }) => {
164
- // Get selected IDs
165
- const selectedIds = Array.from(selections.keys());
166
- const newValue = hasMany ? selectedIds : selectedIds[0] ?? null;
167
- // Update the document via API
149
+ // Read from local state so the picker reflects in-place moves and removes
150
+ const initialSelections = useMemo(() => values.map(({
151
+ value
152
+ }) => value), [values]);
153
+ const saveIds = useCallback(async selectedIds => {
168
154
  try {
169
155
  const response = await fetch(`${config.serverURL}${config.routes.api}/${collectionSlug}/${rowData.id}`, {
170
156
  body: JSON.stringify({
171
- [field.name]: newValue
157
+ [field.name]: hasMany ? selectedIds : selectedIds[0] ?? null
172
158
  }),
173
159
  credentials: 'include',
174
160
  headers: {
@@ -180,7 +166,7 @@ export const HierarchyCell = ({
180
166
  const responseData = await response.json().catch(() => null);
181
167
  const errorMessage = responseData?.errors?.[0]?.message || responseData?.error || responseData?.message || t('error:unknown');
182
168
  toast.error(errorMessage);
183
- return;
169
+ return false;
184
170
  }
185
171
  if (typeof relationTo === 'string') {
186
172
  // Update local state with new selection to avoid page reload
@@ -196,17 +182,25 @@ export const HierarchyCell = ({
196
182
  }
197
183
  } catch {
198
184
  toast.error(t('error:unknown'));
199
- return;
185
+ return false;
200
186
  }
201
- closeModal();
187
+ return true;
202
188
  }, [collectionSlug, config, field.name, hasMany, rowData, relationTo, getRelationships, t]);
189
+ const handleSave = useCallback(async ({
190
+ closeModal,
191
+ selections
192
+ }) => {
193
+ if (await saveIds(Array.from(selections.keys()))) {
194
+ closeModal();
195
+ }
196
+ }, [saveIds]);
203
197
  // Build display labels
204
198
  const labels = useMemo(() => {
205
199
  return values.map(({
206
200
  relationTo: rel,
207
- value
201
+ value: value_0
208
202
  }) => {
209
- const document = documents[rel]?.[value];
203
+ const document = documents[rel]?.[value_0];
210
204
  const relatedCollection = getEntityConfig({
211
205
  collectionSlug: rel
212
206
  });
@@ -214,7 +208,7 @@ export const HierarchyCell = ({
214
208
  collectionConfig: relatedCollection,
215
209
  data: document || null,
216
210
  dateFormat: config.admin.dateFormat,
217
- fallback: `${t('general:untitled')} - ID: ${value}`,
211
+ fallback: `${t('general:untitled')} - ID: ${value_0}`,
218
212
  i18n
219
213
  });
220
214
  });
@@ -222,21 +216,50 @@ export const HierarchyCell = ({
222
216
  const displayText = labels.length > 0 ? labels.join(', ') : t('general:none');
223
217
  const isLoading = values.length > 0 && values.some(({
224
218
  relationTo: rel_0,
225
- value: value_0
226
- }) => documents[rel_0]?.[value_0] === null);
219
+ value: value_1
220
+ }) => documents[rel_0]?.[value_1] === null);
221
+ const currentId = !hasMany && values.length === 1 ? values[0].value : undefined;
222
+ const hasSingleSelection = typeof currentId === 'number' || typeof currentId === 'string';
223
+ const hierarchyLabel = getTranslation(hierarchyCollectionConfig?.labels?.singular || hierarchyCollectionSlug || '', i18n) || hierarchyCollectionSlug;
224
+ const handleRemove = useCallback(() => saveIds([]), [saveIds]);
225
+ const goTo = useMemo(() => hasSingleSelection && hierarchyCollectionSlug ? {
226
+ name: displayText,
227
+ href: getHierarchyListURL({
228
+ adminRoute: config.routes.admin,
229
+ collectionSlug: hierarchyCollectionSlug,
230
+ parentFieldName: hierarchyConfig?.parentFieldName,
231
+ parentID: currentId
232
+ })
233
+ } : undefined, [config.routes.admin, currentId, displayText, hasSingleSelection, hierarchyCollectionSlug, hierarchyConfig?.parentFieldName]);
234
+ const label = isLoading ? `${t('general:loading')}...` : displayText;
227
235
  return /*#__PURE__*/_jsxs("div", {
228
236
  className: baseClass,
229
237
  ref: intersectionRef,
230
- children: [/*#__PURE__*/_jsx(Button, {
231
- buttonStyle: "secondary",
232
- className: `${baseClass}__button`,
233
- icon: displayIcon,
234
- iconPosition: "left",
235
- margin: false,
236
- onClick: handleOpenModal,
237
- size: "medium",
238
- children: isLoading ? `${t('general:loading')}...` : displayText
238
+ children: [/*#__PURE__*/_jsx(HierarchyActionsMenu, {
239
+ goTo: goTo,
240
+ hasActions: hasSingleSelection,
241
+ hierarchyLabel: hierarchyLabel,
242
+ onMove: handleOpenModal,
243
+ onRemove: handleRemove,
244
+ renderTrigger: triggerProps => /*#__PURE__*/_jsx(Button, {
245
+ "aria-label": triggerProps ? label : undefined,
246
+ buttonStyle: "secondary",
247
+ className: `${baseClass}__button`,
248
+ extraButtonProps: triggerProps?.extraButtonProps,
249
+ icon: displayIcon,
250
+ iconPosition: "left",
251
+ margin: false,
252
+ onClick: triggerProps?.onClick ?? handleOpenModal,
253
+ selected: triggerProps?.selected,
254
+ size: "medium",
255
+ tooltip: triggerProps ? displayText : undefined,
256
+ children: triggerProps ? /*#__PURE__*/_jsx("span", {
257
+ className: `${baseClass}__truncate`,
258
+ children: label
259
+ }) : label
260
+ })
239
261
  }), hierarchyCollectionSlug && hasMountedModal && /*#__PURE__*/_jsx(HierarchyModal, {
262
+ confirmLabel: t('general:confirm'),
240
263
  hasMany: hasMany,
241
264
  initialSelections: initialSelections,
242
265
  onSave: handleSave
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","toast","useIntersect","FolderIcon","TagIcon","useConfig","useTranslation","canUseDOM","formatDocTitle","getEffectiveHierarchyCollections","getHierarchyCollectionRestrictions","Button","useHierarchyModal","useListRelationships","baseClass","HierarchyCell","cellData","cellDataFromProps","collectionSlug","customCellProps","field","rowData","relationTo","undefined","hasMany","config","getEntityConfig","intersectionRef","entry","values","setValues","documents","getRelationships","hasRequestedRef","prevCellDataRef","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","hierarchyCollectionSlug","hierarchyCollectionConfig","hierarchyConfig","relatedCollectionSlugs","typeFieldName","collectionConfig","filterByCollection","allowedCollections","Array","isArray","disabledIds","id","Set","preRenderedIcon","hierarchyIcon","preRenderedSmallIcon","hierarchySmallIcon","fallbackIcon","IconComponent","allowHasMany","_jsx","drawerIcon","displayIcon","HierarchyModal","openModal","Icon","hasMountedModal","setHasMountedModal","shouldOpenAfterMountRef","handleOpenModal","current","formattedValues","arrayCellData","forEach","cell","push","value","initialSelections","data","map","item","handleSave","closeModal","selections","selectedIds","from","keys","newValue","response","fetch","serverURL","routes","api","body","JSON","stringify","name","credentials","headers","method","ok","responseData","json","catch","errorMessage","errors","message","error","newValues","length","labels","rel","document","relatedCollection","dateFormat","admin","fallback","displayText","join","isLoading","some","_jsxs","className","ref","buttonStyle","icon","iconPosition","margin","onClick","size","onSave"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Hierarchy/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, RelationshipFieldClient } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { SelectionWithPath } from '../../../../Hierarchy/Modal/types.js'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { FolderIcon } from '../../../../../icons/Folder/index.js'\nimport { TagIcon } from '../../../../../icons/Tag/index.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle/index.js'\nimport {\n getEffectiveHierarchyCollections,\n getHierarchyCollectionRestrictions,\n} from '../../../../../utilities/hierarchyCollectionRestrictions.js'\nimport { Button } from '../../../../Button/index.js'\nimport { useHierarchyModal } from '../../../../Hierarchy/Modal/useHierarchyModal.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport './index.css'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'hierarchy-cell'\n\nexport type HierarchyCellProps = DefaultCellComponentProps<RelationshipFieldClient>\n\nexport const HierarchyCell: React.FC<HierarchyCellProps> = ({\n cellData: cellDataFromProps,\n collectionSlug,\n customCellProps,\n field,\n rowData,\n}) => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n const hasMany = field.hasMany ?? false\n\n const { config, getEntityConfig } = useConfig()\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const hasRequestedRef = useRef(false)\n const prevCellDataRef = useRef<typeof cellDataFromProps>(undefined)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n // Get the hierarchy collection config\n const hierarchyCollectionSlug = typeof relationTo === 'string' ? relationTo : undefined\n const hierarchyCollectionConfig = hierarchyCollectionSlug\n ? getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n : undefined\n\n // Use pre-rendered icon from server if available, otherwise determine on client\n const { hierarchyConfig, relatedCollectionSlugs, typeFieldName } = useMemo(\n () => getHierarchyCollectionRestrictions({ collectionConfig: hierarchyCollectionConfig }),\n [hierarchyCollectionConfig],\n )\n\n const filterByCollection = useMemo(() => {\n if (!hierarchyCollectionSlug) {\n return undefined\n }\n if (collectionSlug !== hierarchyCollectionSlug) {\n return [collectionSlug]\n }\n if (!typeFieldName) {\n return undefined\n }\n const allowedCollections = rowData[typeFieldName]\n\n return getEffectiveHierarchyCollections({\n allowedCollections: Array.isArray(allowedCollections)\n ? (allowedCollections as string[])\n : undefined,\n relatedCollectionSlugs,\n })\n }, [collectionSlug, hierarchyCollectionSlug, relatedCollectionSlugs, rowData, typeFieldName])\n\n const disabledIds = useMemo(\n () =>\n collectionSlug === hierarchyCollectionSlug && rowData.id !== undefined\n ? new Set([rowData.id])\n : undefined,\n [collectionSlug, hierarchyCollectionSlug, rowData.id],\n )\n\n // Pre-rendered icons from server (supports custom icons)\n const preRenderedIcon = customCellProps?.hierarchyIcon as React.ReactNode | undefined\n const preRenderedSmallIcon = customCellProps?.hierarchySmallIcon as React.ReactNode | undefined\n\n // Fallback icon for client-side rendering\n const fallbackIcon = useMemo(() => {\n if (preRenderedIcon) {\n return null // Don't need fallback if we have pre-rendered icon\n }\n // Default based on allowHasMany: false = folder-like, true = tag-like\n const IconComponent = hierarchyConfig?.allowHasMany === false ? FolderIcon : TagIcon\n return <IconComponent />\n }, [hierarchyConfig, preRenderedIcon])\n\n // Full icon for modal subheader\n const drawerIcon = preRenderedIcon || fallbackIcon\n // Small icon for compact display\n const displayIcon = preRenderedSmallIcon ?? drawerIcon\n\n // Set up the hierarchy modal\n const [HierarchyModal, , { openModal }] = useHierarchyModal({\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug: hierarchyCollectionSlug || '',\n Icon: drawerIcon,\n })\n\n // Lazy-mount the modal so its column browser doesn't eagerly fetch root items\n // for every cell in the list view. Only mount once the user opens it.\n const [hasMountedModal, setHasMountedModal] = useState(false)\n const shouldOpenAfterMountRef = useRef(false)\n\n const handleOpenModal = useCallback(() => {\n if (hasMountedModal) {\n openModal()\n return\n }\n shouldOpenAfterMountRef.current = true\n setHasMountedModal(true)\n }, [hasMountedModal, openModal])\n\n // Open the modal once it has mounted (state update from handleOpenModal).\n useEffect(() => {\n if (hasMountedModal && shouldOpenAfterMountRef.current) {\n shouldOpenAfterMountRef.current = false\n openModal()\n }\n }, [hasMountedModal, openModal])\n\n // Fetch relationship data when visible\n useEffect(() => {\n // Reset tracking if data changed\n if (prevCellDataRef.current !== cellDataFromProps) {\n prevCellDataRef.current = cellDataFromProps\n hasRequestedRef.current = false\n }\n\n if (\n (cellDataFromProps || typeof cellDataFromProps === 'number') &&\n isAboveViewport &&\n !hasRequestedRef.current &&\n typeof relationTo === 'string'\n ) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellDataFromProps)\n ? cellDataFromProps\n : [cellDataFromProps]\n\n arrayCellData.forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (typeof cell === 'number' || typeof cell === 'string') {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n\n getRelationships(formattedValues)\n hasRequestedRef.current = true\n setValues(formattedValues)\n }\n }, [cellDataFromProps, relationTo, isAboveViewport, getRelationships])\n\n // Get current selection IDs for the modal\n const initialSelections = useMemo(() => {\n if (!cellDataFromProps) {\n return []\n }\n const data = Array.isArray(cellDataFromProps) ? cellDataFromProps : [cellDataFromProps]\n return data.map((item) => {\n if (typeof item === 'object' && 'value' in item) {\n return item.value\n }\n return item\n }) as (number | string)[]\n }, [cellDataFromProps])\n\n // Handle save from modal\n const handleSave = useCallback(\n async ({\n closeModal,\n selections,\n }: {\n closeModal: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => {\n // Get selected IDs\n const selectedIds = Array.from(selections.keys())\n const newValue = hasMany ? selectedIds : (selectedIds[0] ?? null)\n\n // Update the document via API\n try {\n const response = await fetch(\n `${config.serverURL}${config.routes.api}/${collectionSlug}/${rowData.id}`,\n {\n body: JSON.stringify({\n [field.name]: newValue,\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n\n if (!response.ok) {\n const responseData = await response.json().catch(() => null)\n const errorMessage =\n responseData?.errors?.[0]?.message ||\n responseData?.error ||\n responseData?.message ||\n t('error:unknown')\n\n toast.error(errorMessage)\n return\n }\n\n if (typeof relationTo === 'string') {\n // Update local state with new selection to avoid page reload\n const newValues: Value[] = selectedIds.map((id) => ({\n relationTo,\n value: id,\n }))\n setValues(newValues)\n\n // Request the new relationship docs to update the display\n if (newValues.length > 0) {\n getRelationships(newValues)\n }\n }\n } catch {\n toast.error(t('error:unknown'))\n return\n }\n\n closeModal()\n },\n [collectionSlug, config, field.name, hasMany, rowData, relationTo, getRelationships, t],\n )\n\n // Build display labels\n const labels = useMemo(() => {\n return values.map(({ relationTo: rel, value }) => {\n const document = documents[rel]?.[value]\n const relatedCollection = getEntityConfig({ collectionSlug: rel })\n\n return formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n })\n }, [values, documents, getEntityConfig, config.admin.dateFormat, t, i18n])\n\n const displayText = labels.length > 0 ? labels.join(', ') : t('general:none')\n const isLoading =\n values.length > 0 &&\n values.some(({ relationTo: rel, value }) => documents[rel]?.[value] === null)\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__button`}\n icon={displayIcon}\n iconPosition=\"left\"\n margin={false}\n onClick={handleOpenModal}\n size=\"medium\"\n >\n {isLoading ? `${t('general:loading')}...` : displayText}\n </Button>\n {hierarchyCollectionSlug && hasMountedModal && (\n <HierarchyModal\n hasMany={hasMany}\n initialSelections={initialSelections}\n onSave={handleSave}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useEffect","useMemo","useRef","useState","toast","useIntersect","FolderIcon","TagIcon","useConfig","useTranslation","canUseDOM","formatDocTitle","getEffectiveHierarchyCollections","getHierarchyCollectionRestrictions","getHierarchyListURL","Button","HierarchyActionsMenu","useHierarchyModal","useListRelationships","baseClass","HierarchyCell","cellData","cellDataFromProps","collectionSlug","customCellProps","field","rowData","relationTo","undefined","hasMany","config","getEntityConfig","intersectionRef","entry","values","setValues","documents","getRelationships","hasRequestedRef","prevCellDataRef","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","hierarchyCollectionSlug","hierarchyCollectionConfig","hierarchyConfig","relatedCollectionSlugs","typeFieldName","collectionConfig","filterByCollection","allowedCollections","Array","isArray","disabledIds","id","Set","preRenderedIcon","hierarchyIcon","preRenderedSmallIcon","hierarchySmallIcon","fallbackIcon","IconComponent","allowHasMany","_jsx","drawerIcon","displayIcon","HierarchyModal","openModal","Icon","hasMountedModal","setHasMountedModal","shouldOpenAfterMountRef","handleOpenModal","current","formattedValues","arrayCellData","forEach","cell","push","value","initialSelections","map","saveIds","selectedIds","response","fetch","serverURL","routes","api","body","JSON","stringify","name","credentials","headers","method","ok","responseData","json","catch","errorMessage","errors","message","error","newValues","length","handleSave","closeModal","selections","from","keys","labels","rel","document","relatedCollection","data","dateFormat","admin","fallback","displayText","join","isLoading","some","currentId","hasSingleSelection","hierarchyLabel","singular","handleRemove","goTo","href","adminRoute","parentFieldName","parentID","label","_jsxs","className","ref","hasActions","onMove","onRemove","renderTrigger","triggerProps","buttonStyle","extraButtonProps","icon","iconPosition","margin","onClick","selected","size","tooltip","confirmLabel","onSave"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Hierarchy/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, RelationshipFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { SelectionWithPath } from '../../../../Hierarchy/Modal/types.js'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { FolderIcon } from '../../../../../icons/Folder/index.js'\nimport { TagIcon } from '../../../../../icons/Tag/index.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle/index.js'\nimport {\n getEffectiveHierarchyCollections,\n getHierarchyCollectionRestrictions,\n} from '../../../../../utilities/hierarchyCollectionRestrictions.js'\nimport { getHierarchyListURL } from '../../../../../views/HierarchyList/getHierarchyListURL.js'\nimport { Button } from '../../../../Button/index.js'\nimport { HierarchyActionsMenu } from '../../../../Hierarchy/ActionsMenu/index.js'\nimport { useHierarchyModal } from '../../../../Hierarchy/Modal/useHierarchyModal.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport './index.css'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'hierarchy-cell'\n\nexport type HierarchyCellProps = DefaultCellComponentProps<RelationshipFieldClient>\n\nexport const HierarchyCell: React.FC<HierarchyCellProps> = ({\n cellData: cellDataFromProps,\n collectionSlug,\n customCellProps,\n field,\n rowData,\n}) => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n const hasMany = field.hasMany ?? false\n\n const { config, getEntityConfig } = useConfig()\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const hasRequestedRef = useRef(false)\n const prevCellDataRef = useRef<typeof cellDataFromProps>(undefined)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n // Get the hierarchy collection config\n const hierarchyCollectionSlug = typeof relationTo === 'string' ? relationTo : undefined\n const hierarchyCollectionConfig = hierarchyCollectionSlug\n ? getEntityConfig({ collectionSlug: hierarchyCollectionSlug })\n : undefined\n\n // Use pre-rendered icon from server if available, otherwise determine on client\n const { hierarchyConfig, relatedCollectionSlugs, typeFieldName } = useMemo(\n () => getHierarchyCollectionRestrictions({ collectionConfig: hierarchyCollectionConfig }),\n [hierarchyCollectionConfig],\n )\n\n const filterByCollection = useMemo(() => {\n if (!hierarchyCollectionSlug) {\n return undefined\n }\n if (collectionSlug !== hierarchyCollectionSlug) {\n return [collectionSlug]\n }\n if (!typeFieldName) {\n return undefined\n }\n const allowedCollections = rowData[typeFieldName]\n\n return getEffectiveHierarchyCollections({\n allowedCollections: Array.isArray(allowedCollections)\n ? (allowedCollections as string[])\n : undefined,\n relatedCollectionSlugs,\n })\n }, [collectionSlug, hierarchyCollectionSlug, relatedCollectionSlugs, rowData, typeFieldName])\n\n const disabledIds = useMemo(\n () =>\n collectionSlug === hierarchyCollectionSlug && rowData.id !== undefined\n ? new Set([rowData.id])\n : undefined,\n [collectionSlug, hierarchyCollectionSlug, rowData.id],\n )\n\n // Pre-rendered icons from server (supports custom icons)\n const preRenderedIcon = customCellProps?.hierarchyIcon as React.ReactNode | undefined\n const preRenderedSmallIcon = customCellProps?.hierarchySmallIcon as React.ReactNode | undefined\n\n // Fallback icon for client-side rendering\n const fallbackIcon = useMemo(() => {\n if (preRenderedIcon) {\n return null // Don't need fallback if we have pre-rendered icon\n }\n // Default based on allowHasMany: false = folder-like, true = tag-like\n const IconComponent = hierarchyConfig?.allowHasMany === false ? FolderIcon : TagIcon\n return <IconComponent />\n }, [hierarchyConfig, preRenderedIcon])\n\n // Full icon for modal subheader\n const drawerIcon = preRenderedIcon || fallbackIcon\n // Small icon for compact display\n const displayIcon = preRenderedSmallIcon ?? drawerIcon\n\n // Set up the hierarchy modal\n const [HierarchyModal, , { openModal }] = useHierarchyModal({\n disabledIds,\n filterByCollection,\n hierarchyCollectionSlug: hierarchyCollectionSlug || '',\n Icon: drawerIcon,\n })\n\n // Lazy-mount the modal so its column browser doesn't eagerly fetch root items\n // for every cell in the list view. Only mount once the user opens it.\n const [hasMountedModal, setHasMountedModal] = useState(false)\n const shouldOpenAfterMountRef = useRef(false)\n\n const handleOpenModal = useCallback(() => {\n if (hasMountedModal) {\n openModal()\n return\n }\n shouldOpenAfterMountRef.current = true\n setHasMountedModal(true)\n }, [hasMountedModal, openModal])\n\n // Open the modal once it has mounted (state update from handleOpenModal).\n useEffect(() => {\n if (hasMountedModal && shouldOpenAfterMountRef.current) {\n shouldOpenAfterMountRef.current = false\n openModal()\n }\n }, [hasMountedModal, openModal])\n\n // Fetch relationship data when visible\n useEffect(() => {\n // Reset tracking if data changed\n if (prevCellDataRef.current !== cellDataFromProps) {\n prevCellDataRef.current = cellDataFromProps\n hasRequestedRef.current = false\n }\n\n if (\n (cellDataFromProps || typeof cellDataFromProps === 'number') &&\n isAboveViewport &&\n !hasRequestedRef.current &&\n typeof relationTo === 'string'\n ) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellDataFromProps)\n ? cellDataFromProps\n : [cellDataFromProps]\n\n arrayCellData.forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (typeof cell === 'number' || typeof cell === 'string') {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n\n getRelationships(formattedValues)\n hasRequestedRef.current = true\n setValues(formattedValues)\n }\n }, [cellDataFromProps, relationTo, isAboveViewport, getRelationships])\n\n // Read from local state so the picker reflects in-place moves and removes\n const initialSelections = useMemo(() => values.map(({ value }) => value), [values])\n\n const saveIds = useCallback(\n async (selectedIds: (number | string)[]) => {\n try {\n const response = await fetch(\n `${config.serverURL}${config.routes.api}/${collectionSlug}/${rowData.id}`,\n {\n body: JSON.stringify({\n [field.name]: hasMany ? selectedIds : (selectedIds[0] ?? null),\n }),\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n\n if (!response.ok) {\n const responseData = await response.json().catch(() => null)\n const errorMessage =\n responseData?.errors?.[0]?.message ||\n responseData?.error ||\n responseData?.message ||\n t('error:unknown')\n\n toast.error(errorMessage)\n return false\n }\n\n if (typeof relationTo === 'string') {\n // Update local state with new selection to avoid page reload\n const newValues: Value[] = selectedIds.map((id) => ({\n relationTo,\n value: id,\n }))\n setValues(newValues)\n\n // Request the new relationship docs to update the display\n if (newValues.length > 0) {\n getRelationships(newValues)\n }\n }\n } catch {\n toast.error(t('error:unknown'))\n return false\n }\n\n return true\n },\n [collectionSlug, config, field.name, hasMany, rowData, relationTo, getRelationships, t],\n )\n\n const handleSave = useCallback(\n async ({\n closeModal,\n selections,\n }: {\n closeModal: () => void\n selections: Map<number | string, SelectionWithPath>\n }) => {\n if (await saveIds(Array.from(selections.keys()))) {\n closeModal()\n }\n },\n [saveIds],\n )\n\n // Build display labels\n const labels = useMemo(() => {\n return values.map(({ relationTo: rel, value }) => {\n const document = documents[rel]?.[value]\n const relatedCollection = getEntityConfig({ collectionSlug: rel })\n\n return formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n })\n }, [values, documents, getEntityConfig, config.admin.dateFormat, t, i18n])\n\n const displayText = labels.length > 0 ? labels.join(', ') : t('general:none')\n const isLoading =\n values.length > 0 &&\n values.some(({ relationTo: rel, value }) => documents[rel]?.[value] === null)\n const currentId = !hasMany && values.length === 1 ? values[0].value : undefined\n const hasSingleSelection = typeof currentId === 'number' || typeof currentId === 'string'\n const hierarchyLabel =\n getTranslation(\n hierarchyCollectionConfig?.labels?.singular || hierarchyCollectionSlug || '',\n i18n,\n ) || hierarchyCollectionSlug\n\n const handleRemove = useCallback(() => saveIds([]), [saveIds])\n\n const goTo = useMemo(\n () =>\n hasSingleSelection && hierarchyCollectionSlug\n ? {\n name: displayText,\n href: getHierarchyListURL({\n adminRoute: config.routes.admin,\n collectionSlug: hierarchyCollectionSlug,\n parentFieldName: hierarchyConfig?.parentFieldName,\n parentID: currentId,\n }),\n }\n : undefined,\n [\n config.routes.admin,\n currentId,\n displayText,\n hasSingleSelection,\n hierarchyCollectionSlug,\n hierarchyConfig?.parentFieldName,\n ],\n )\n\n const label = isLoading ? `${t('general:loading')}...` : displayText\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n <HierarchyActionsMenu\n goTo={goTo}\n hasActions={hasSingleSelection}\n hierarchyLabel={hierarchyLabel}\n onMove={handleOpenModal}\n onRemove={handleRemove}\n renderTrigger={(triggerProps) => (\n <Button\n aria-label={triggerProps ? label : undefined}\n buttonStyle=\"secondary\"\n className={`${baseClass}__button`}\n extraButtonProps={triggerProps?.extraButtonProps}\n icon={displayIcon}\n iconPosition=\"left\"\n margin={false}\n onClick={triggerProps?.onClick ?? handleOpenModal}\n selected={triggerProps?.selected}\n size=\"medium\"\n tooltip={triggerProps ? displayText : undefined}\n >\n {triggerProps ? <span className={`${baseClass}__truncate`}>{label}</span> : label}\n </Button>\n )}\n />\n {hierarchyCollectionSlug && hasMountedModal && (\n <HierarchyModal\n confirmLabel={t('general:confirm')}\n hasMany={hasMany}\n initialSelections={initialSelections}\n onSave={handleSave}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA8K3D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAmL3D,CAAA"}
@@ -91,7 +91,12 @@ export const DefaultCell = props => {
91
91
  });
92
92
  break bb0;
93
93
  }
94
- const displayedValue = getDisplayedFieldValue(cellData, field, i18n);
94
+ const displayedValue = getDisplayedFieldValue({
95
+ cellData,
96
+ collectionConfig,
97
+ field,
98
+ i18n
99
+ });
95
100
  const isHierarchyField = field.type === "relationship" && (() => {
96
101
  const relationTo = "relationTo" in field ? field.relationTo : undefined;
97
102
  if (typeof relationTo !== "string") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","formatAdminURL","React","useConfig","useTranslation","getDisplayedFieldValue","isValidReactElement","IDLabel","Link","HierarchyCell","cellComponents","StatusCell","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","displayedValue","isHierarchyField","relationTo","relatedCollection","Boolean","hierarchy","name","DefaultCellComponent","CellComponent","upload","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID, formatAdminURL } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { IDLabel } from '../../IDLabel/index.js'\nimport { Link } from '../../Link/index.js'\nimport { HierarchyCell } from './fields/Hierarchy/index.js'\nimport { cellComponents } from './fields/index.js'\nimport { StatusCell } from './fields/Status/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <IDLabel id={cellData} />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n // Check if this is a hierarchy relationship field by checking if the related collection has hierarchy config\n const isHierarchyField =\n field.type === 'relationship' &&\n (() => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n if (typeof relationTo !== 'string') {\n return false\n }\n const relatedCollection = getEntityConfig({ collectionSlug: relationTo })\n return Boolean(relatedCollection?.hierarchy)\n })()\n\n // For hierarchy fields, render the HierarchyCell directly (no wrapper needed)\n if (isHierarchyField && field.type === 'relationship') {\n return <HierarchyCell cellData={cellData} rowData={rowData} {...props} field={field} />\n }\n\n // For status fields, render the StatusCell directly\n if (field.type === 'select' && 'name' in field && field.name === '_status') {\n return (\n <WrapElement {...wrapElementProps}>\n <StatusCell cellData={cellData} rowData={rowData} {...props} field={field} />\n </WrapElement>\n )\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AAC5D,OAAOC,KAAA,MAAW,QAAO,CAAC;AAE1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,OAAO,QAAQ;AACxB,SAASC,IAAI,QAAQ;AACrB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAE3B,OAAO,MAAMC,WAAA,GAAmDC,KAAA;EAAA,MAAAC,CAAA,GAAAjB,EAAA;EAC9D;IAAAkB,QAAA;IAAAC,SAAA,EAAAC,kBAAA;IAAAC,cAAA;IAAAC,KAAA;IAAAA,KAAA,EAAAC,EAAA;IAAAC,IAAA;IAAAC,OAAA;IAAAC,OAAA,EAAAC,gBAAA;IAAAC,OAAA;IAAAC;EAAA,IAWIb,KAAA;EANK;IAAAc;EAAA,IAAAP,EAAS;EAQlB;IAAAQ;EAAA,IAAiBxB,cAAA;EAEjB;IAAAyB,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAKI5B,SAAA;EAJM;IAAA6B,MAAA,EAAAC;EAAA,IAAAH,EAEP;EADS;IAAAH,KAAA,EAAAO;EAAA,IAAAD,EAAqB;EAAA,IAAAE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAAa,KAAA,IAAAb,CAAA,QAAAoB,UAAA,IAAApB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAG,kBAAA,IAAAH,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAK,KAAA,IAAAL,CAAA,QAAAiB,eAAA,IAAAjB,CAAA,QAAAc,IAAA,IAAAd,CAAA,QAAAO,IAAA,IAAAP,CAAA,QAAAQ,OAAA,IAAAR,CAAA,SAAAU,gBAAA,IAAAV,CAAA,SAAAD,KAAA,IAAAC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAY,QAAA;IA2D7BU,EAAA,GAAAC,MAAA,CAAAC,GAAA,8B;;MAtDJ,MAAAC,gBAAA,GAAyBR,eAAA;QAAAb;MAAA,CAAiC;MAE1D,MAAAsB,0BAAA,GAAmCb,KAAA,IAAS,eAAeA,KAAA,GAAQA,KAAA,CAAAX,SAAA,GAAAyB,SAAkB;MAErF,MAAAzB,SAAA,GACEC,kBAAA,KACCE,KAAA,CAAAQ,KAAA,IAAe,eAAeR,KAAA,CAAAQ,KAAW,GAAGR,KAAA,CAAAQ,KAAA,CAAAX,SAAA,OAA2B,KACxEwB,0BAAA;MAEF,MAAAjB,OAAA,GAAgBC,gBAAA;MAEhB,IAAAkB,WAAA,GAAqD;MAErD,MAAAC,gBAAA;QAAA3B;MAAA;MAQA,IAEIK,IAAA;QACFsB,gBAAA,CAAAC,QAAA;QACAF,WAAA,CAAAA,CAAA,CAAAA,IAAA;QAAA,IAGIpB,OAAA;UACFqB,gBAAA,CAAAE,IAAA,GAAwBvB,OAAA;QAAA;UAExBqB,gBAAA,CAAAE,IAAA,GAAwBN,gBAAA,EAAAO,IAAA,GACpB7C,cAAA;YAAAiC,UAAA;YAAAa,IAAA,EAEQ,gBAAgBR,gBAAA,EAAAO,IAAA,GAAyBpB,QAAA,KAAa,UAAU,WAAW,MAAMsB,kBAAA,CAAmBvB,OAAA,CAAAwB,EAAU;UAAG,CACzH,IACA;QAAA;MAAA;MAAA,IAIJ,OAAO1B,OAAA,KAAY;QACrBmB,WAAA,CAAAA,CAAA,CAAcA,QAAA;QACdC,gBAAA,CAAAO,IAAA,GAAwB;QACxBP,gBAAA,CAAApB,OAAA;UACEA,OAAA;YAAAR,QAAA;YAAAG,cAAA,EAEkBqB,gBAAA,EAAAO,IAAA;YAAArB;UAAA,CAElB;QAAA;MAAA;MAAA,IAIAzB,SAAA,CAAUmB,KAAA;QAEViB,EAAA,GAAAe,IAAA,CAACT,WAAA;UAAA,GAAgBC,gBAAgB;UAAAS,QAAA,EAC/BD,IAAA,CAAA5C,OAAA;YAAA0C,EAAA,EAAalC;UAAA,C;;;;MAKnB,MAAAsC,cAAA,GAAuBhD,sBAAA,CAAuBU,QAAA,EAAUI,KAAA,EAAOS,IAAA;MAG/D,MAAA0B,gBAAA,GACEnC,KAAA,CAAA+B,IAAA,KAAe,kBACf;QACE,MAAAK,UAAA,GAAmB,gBAAgBpC,KAAA,GAAQA,KAAA,CAAAoC,UAAA,GAAAd,SAAmB;QAAA,IAC1D,OAAOc,UAAA,KAAe;UAAA;QAAA;QAG1B,MAAAC,iBAAA,GAA0BzB,eAAA;UAAAb,cAAA,EAAkCqC;QAAA,CAAW;QAAA,OAChEE,OAAA,CAAQD,iBAAA,EAAAE,SAAmB;MAAA,GACpC;MAAA,IAGEJ,gBAAA,IAAoBnC,KAAA,CAAA+B,IAAA,KAAe;QAC9Bd,EAAA,GAAAe,IAAA,CAAA1C,aAAA;UAAAM,QAAA;UAAAU,OAAA;UAAA,GAAyDZ,KAAK;UAAAM;QAAA,C;;;UAInEA,KAAA,CAAA+B,IAAA,KAAe,YAAY,UAAU/B,KAAA,IAASA,KAAA,CAAAwC,IAAA,KAAe;QAE7DvB,EAAA,GAAAe,IAAA,CAACT,WAAA;UAAA,GAAgBC,gBAAgB;UAAAS,QAAA,EAC/BD,IAAA,CAAAxC,UAAA;YAAAI,QAAA;YAAAU,OAAA;YAAA,GAAsDZ,KAAK;YAAAM;UAAA,C;;;;MAKjE,MAAAyC,oBAAA,GACE,OAAO7C,QAAA,KAAa,eAAAL,cAAA,CAA8BS,KAAA,CAAA+B,IAAA,CAAW;MAE/D,IAAAW,aAAA;MAAqC,IAGjCvD,mBAAA,CAAoB+C,cAAA;QACtBQ,aAAA,CAAAA,CAAA,CAAgBR,cAAA;MAAhB;QAAA,IACSO,oBAAA;UACTC,aAAA,CAAAA,CAAA,CAAgBA,KAACD,oBAAA;YAAA7C,QAAA;YAAAU,OAAA;YAAA,GAA+DZ;UAAK,C;QAArF;UAAA,KACU+C,oBAAA;YAAA,IAGRrB,gBAAA,EAAAuB,MAAA,IACA/D,gBAAA,CAAiBoB,KAAA,KACjBA,KAAA,CAAAwC,IAAA,KAAe,cACfxC,KAAA,CAAA+B,IAAA,KAAe;cAEf,MAAAa,iBAAA,GAAArD,cAAA,CAAAsD,IAAA;cAEAH,aAAA,CAAAA,CAAA,CACEA,KAACE,iBAAA;gBAAAhD,QAAA;gBAAAU,OAAA;gBAAA,GAGMZ,KAAK;gBAAA0B,gBAAA;gBAAApB;cAAA,C;YAJd;cAWEiB,EAAA,GAAA6B,KAAA,CAACvB,WAAA;gBAAA,GAAgBC,gBAAgB;gBAAAS,QAAA,GAC7B,CAAAC,cAAA,KAAmB,MACnB,OAAOA,cAAA,KAAmB,eAC1BA,cAAA,SAAsB,KACtBzB,IAAA,CAAAsC,CAAA,CAAO;kBAAAC,KAAA,EACErE,cAAA,CAAe,CAAC,WAAWqB,KAAA,GAAQA,KAAA,CAAAgD,KAAA,OAAiB,KAAM,QAAQvC,IAAA;gBAAA,CAC3E,GACD,OAAOyB,cAAA,KAAmB,YAAYA,cAAA,EACtC,OAAOA,cAAA,KAAmB,YAAYA,cAAA,EACtC,OAAOA,cAAA,KAAmB,YACzBA,cAAA,SAAmB,IACnBe,IAAA,CAAAC,SAAA,CAAehB,cAAA;cAAA,C;;;;;;UAMrB,CAAClC,KAAA,CAAA+B,IAAA,KAAe,YAAY/B,KAAA,CAAA+B,IAAA,KAAe,OAAM,KAAM/B,KAAA,CAAAmD,OAAA,CAAAC,MAAoB,IAAIxD,QAAA;QACjF,MAAAyD,OAAA,GAAgBC,KAAA,CAAAC,OAAA,CAAc3D,QAAA,IAC1BA,QAAA,CAAA4D,GAAA,CAAAC,KAA4C,EAAAC,IAAA,CAAO,OACnD,aAAa9D,QAAA,EAAU;QAE3B,MAAA+D,WAAA,GAAkB,CAACnC,gBAAA,CAAA3B,SAAA,EAA4BwD,OAAA,EAAAO,MAAA,CAAAtB,OAAgB,EAAAoB,IAAA,CAAc;QAG3EzC,EAAA,GAAAe,IAAA,CAACT,WAAA;UAAA,GAAgBC,gBAAgB;UAAA3B,SAAA,EAAaA,WAAA;UAAAoC,QAAA,EAC3CS;QAAA,C;;;MAKA1B,EAAA,GAAAgB,IAAA,CAACT,WAAA;QAAA,GAAgBC,gBAAgB;QAAAS,QAAA,EAAGS;MAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;SAApC1B,E;CACT;AA9KgE,SAAAyC,MAAAI,KAAA;EAAA,OAiKhC,aAAaA,KAAA,EAAO;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","formatAdminURL","React","useConfig","useTranslation","getDisplayedFieldValue","isValidReactElement","IDLabel","Link","HierarchyCell","cellComponents","StatusCell","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","displayedValue","isHierarchyField","relationTo","relatedCollection","Boolean","hierarchy","name","DefaultCellComponent","CellComponent","upload","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID, formatAdminURL } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { IDLabel } from '../../IDLabel/index.js'\nimport { Link } from '../../Link/index.js'\nimport { HierarchyCell } from './fields/Hierarchy/index.js'\nimport { cellComponents } from './fields/index.js'\nimport { StatusCell } from './fields/Status/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <IDLabel id={cellData} />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue({\n cellData,\n collectionConfig,\n field,\n i18n,\n })\n\n // Check if this is a hierarchy relationship field by checking if the related collection has hierarchy config\n const isHierarchyField =\n field.type === 'relationship' &&\n (() => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n if (typeof relationTo !== 'string') {\n return false\n }\n const relatedCollection = getEntityConfig({ collectionSlug: relationTo })\n return Boolean(relatedCollection?.hierarchy)\n })()\n\n // For hierarchy fields, render the HierarchyCell directly (no wrapper needed)\n if (isHierarchyField && field.type === 'relationship') {\n return <HierarchyCell cellData={cellData} rowData={rowData} {...props} field={field} />\n }\n\n // For status fields, render the StatusCell directly\n if (field.type === 'select' && 'name' in field && field.name === '_status') {\n return (\n <WrapElement {...wrapElementProps}>\n <StatusCell cellData={cellData} rowData={rowData} {...props} field={field} />\n </WrapElement>\n )\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useRef","useAuth","useSelection","useGridNavigation","TableGridContext","useTableID","useTableNavigationLabel","baseClass","Table","id","appearance","ariaLabel","BeforeTable","columns","data","navigationLabel","navigationLabelFromProps","tableID","navigationLabelFromContext","tableRef","isGrid","Boolean","selected","user","activeColumns","filter","col","active","hasRowSelection","some","column","accessor","isEnabled","length","ref","_jsx","_jsxs","className","join","value","undefined","cellPadding","cellSpacing","role","map","replace","scope","Heading","row","rowIndex","userEditing","_userEditing","isLockedByAnotherUser","_isLocked","String","get","isLinkedColumn","renderedCells"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column, User } from 'payload'\n\nimport React, { useRef } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useSelection } from '../../providers/Selection/index.js'\nimport { useGridNavigation } from './GridNavigation/useGridNavigation.js'\nimport { TableGridContext, useTableID, useTableNavigationLabel } from './TableIdentity.js'\nimport './index.css'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly ariaLabel?: string\n readonly BeforeTable?: React.ReactNode\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly id?: string\n readonly navigationLabel?: string\n}\n\nexport const Table: React.FC<Props> = ({\n id,\n appearance,\n ariaLabel,\n BeforeTable,\n columns,\n data,\n navigationLabel: navigationLabelFromProps,\n}) => {\n const tableID = useTableID(id)\n const navigationLabelFromContext = useTableNavigationLabel()\n const navigationLabel = navigationLabelFromProps ?? navigationLabelFromContext\n const tableRef = useRef<HTMLTableElement>(null)\n const isGrid = Boolean(navigationLabel)\n const { selected } = useSelection()\n const { user } = useAuth()\n\n const activeColumns = columns?.filter((col) => col?.active)\n const hasRowSelection = isGrid && activeColumns?.some((column) => column.accessor === '_select')\n\n useGridNavigation({ id, isEnabled: isGrid && Boolean(activeColumns?.length), ref: tableRef })\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <TableGridContext value={isGrid}>\n <table\n aria-label={ariaLabel ?? navigationLabel}\n aria-multiselectable={hasRowSelection || undefined}\n cellPadding=\"0\"\n cellSpacing=\"0\"\n id={tableID}\n ref={tableRef}\n role={isGrid ? 'grid' : undefined}\n >\n <thead>\n <tr role={isGrid ? 'row' : undefined}>\n {activeColumns.map((col) => (\n <th\n data-column={col.accessor}\n id={`heading-${col.accessor.replace(/\\./g, '__')}`}\n key={col.accessor}\n role={isGrid ? 'columnheader' : undefined}\n scope=\"col\"\n >\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data?.map((row, rowIndex) => {\n const userEditing = row._userEditing as undefined | User\n const isLockedByAnotherUser =\n row._isLocked && userEditing && userEditing.id !== user?.id\n\n return (\n <tr\n aria-label={isGrid ? String(rowIndex + 1) : undefined}\n aria-selected={\n hasRowSelection && !isLockedByAnotherUser\n ? Boolean(\n (typeof row.id === 'string' || typeof row.id === 'number') &&\n selected.get(row.id),\n )\n : undefined\n }\n className={`row-${rowIndex + 1}`}\n data-id={row.id}\n key={\n typeof row.id === 'string' || typeof row.id === 'number'\n ? String(row.id)\n : rowIndex\n }\n role={isGrid ? 'row' : undefined}\n >\n {activeColumns.map((col) => {\n const { accessor } = col\n\n return (\n <td\n className={[\n `cell-${accessor.replace(/\\./g, '__')}`,\n col.isLinkedColumn && 'cell--linked',\n ]\n .filter(Boolean)\n .join(' ')}\n data-column={accessor}\n key={accessor}\n role={isGrid ? 'gridcell' : undefined}\n >\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </TableGridContext>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useRef","useAuth","useSelection","useGridNavigation","TableGridContext","useTableID","useTableNavigationLabel","baseClass","Table","id","appearance","ariaLabel","BeforeTable","columns","data","navigationLabel","navigationLabelFromProps","tableID","navigationLabelFromContext","tableRef","isGrid","Boolean","selected","user","activeColumns","filter","col","active","hasRowSelection","some","column","accessor","isEnabled","length","ref","_jsx","_jsxs","className","join","value","undefined","cellPadding","cellSpacing","role","map","replace","scope","Heading","row","rowIndex","userEditing","_userEditing","isLockedByAnotherUser","_isLocked","String","get","isLinkedColumn","renderedCells"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column, User } from 'payload'\n\nimport React, { useRef } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useSelection } from '../../providers/Selection/index.js'\nimport { useGridNavigation } from './GridNavigation/useGridNavigation.js'\nimport { TableGridContext, useTableID, useTableNavigationLabel } from './TableIdentity.js'\nimport './index.css'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly ariaLabel?: string\n readonly BeforeTable?: React.ReactNode\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly id?: string\n readonly navigationLabel?: string\n}\n\nexport const Table: React.FC<Props> = ({\n id,\n appearance,\n ariaLabel,\n BeforeTable,\n columns,\n data,\n navigationLabel: navigationLabelFromProps,\n}) => {\n const tableID = useTableID(id)\n const navigationLabelFromContext = useTableNavigationLabel()\n const navigationLabel = navigationLabelFromProps ?? navigationLabelFromContext\n const tableRef = useRef<HTMLTableElement>(null)\n const isGrid = Boolean(navigationLabel)\n const { selected } = useSelection()\n const { user } = useAuth()\n\n const activeColumns = columns?.filter((col) => col?.active)\n const hasRowSelection = isGrid && activeColumns?.some((column) => column.accessor === '_select')\n\n useGridNavigation({ id, isEnabled: isGrid && Boolean(activeColumns?.length), ref: tableRef })\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <TableGridContext value={isGrid}>\n <table\n aria-label={ariaLabel ?? navigationLabel}\n aria-multiselectable={hasRowSelection || undefined}\n cellPadding=\"0\"\n cellSpacing=\"0\"\n id={tableID}\n ref={tableRef}\n role={isGrid ? 'grid' : undefined}\n >\n <thead>\n <tr role={isGrid ? 'row' : undefined}>\n {activeColumns.map((col) => (\n <th\n data-column={col.accessor}\n id={`heading-${col.accessor.replace(/\\./g, '__')}`}\n key={col.accessor}\n role={isGrid ? 'columnheader' : undefined}\n scope=\"col\"\n >\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data?.map((row, rowIndex) => {\n const userEditing = row._userEditing as undefined | User\n const isLockedByAnotherUser =\n row._isLocked && userEditing && userEditing.id !== user?.id\n\n return (\n <tr\n aria-label={isGrid ? String(rowIndex + 1) : undefined}\n aria-selected={\n hasRowSelection && !isLockedByAnotherUser\n ? Boolean(\n (typeof row.id === 'string' || typeof row.id === 'number') &&\n selected.get(row.id),\n )\n : undefined\n }\n className={`row-${rowIndex + 1}`}\n data-id={row.id}\n key={\n typeof row.id === 'string' || typeof row.id === 'number'\n ? String(row.id)\n : rowIndex\n }\n role={isGrid ? 'row' : undefined}\n >\n {activeColumns.map((col) => {\n const { accessor } = col\n\n return (\n <td\n className={[\n `cell-${accessor.replace(/\\./g, '__')}`,\n col.isLinkedColumn && 'cell--linked',\n ]\n .filter(Boolean)\n .join(' ')}\n data-column={accessor}\n key={accessor}\n role={isGrid ? 'gridcell' : undefined}\n >\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </TableGridContext>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,MAAM,QAAQ;AAE9B,SAASC,OAAO,QAAQ;AACxB,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,gBAAgB,EAAEC,UAAU,EAAEC,uBAAuB,QAAQ;AACtE,OAAO;AAEP,MAAMC,SAAA,GAAY;AAYlB,OAAO,MAAMC,KAAA,GAAyBA,CAAC;EACrCC,EAAE;EACFC,UAAU;EACVC,SAAS;EACTC,WAAW;EACXC,OAAO;EACPC,IAAI;EACJC,eAAA,EAAiBC;AAAwB,CAC1C;EACC,MAAMC,OAAA,GAAUZ,UAAA,CAAWI,EAAA;EAC3B,MAAMS,0BAAA,GAA6BZ,uBAAA;EACnC,MAAMS,eAAA,GAAkBC,wBAAA,IAA4BE,0BAAA;EACpD,MAAMC,QAAA,GAAWnB,MAAA,CAAyB;EAC1C,MAAMoB,MAAA,GAASC,OAAA,CAAQN,eAAA;EACvB,MAAM;IAAEO;EAAQ,CAAE,GAAGpB,YAAA;EACrB,MAAM;IAAEqB;EAAI,CAAE,GAAGtB,OAAA;EAEjB,MAAMuB,aAAA,GAAgBX,OAAA,EAASY,MAAA,CAAQC,GAAA,IAAQA,GAAA,EAAKC,MAAA;EACpD,MAAMC,eAAA,GAAkBR,MAAA,IAAUI,aAAA,EAAeK,IAAA,CAAMC,MAAA,IAAWA,MAAA,CAAOC,QAAQ,KAAK;EAEtF5B,iBAAA,CAAkB;IAAEM,EAAA;IAAIuB,SAAA,EAAWZ,MAAA,IAAUC,OAAA,CAAQG,aAAA,EAAeS,MAAA;IAASC,GAAA,EAAKf;EAAS;EAE3F,IAAI,CAACK,aAAA,IAAiBA,aAAA,CAAcS,MAAM,KAAK,GAAG;IAChD,oBAAOE,IAAA,CAAC;gBAAI;;EACd;EAEA,oBACEC,KAAA,CAAC;IACCC,SAAA,EAAW,CAAC9B,SAAA,EAAWG,UAAA,IAAc,GAAGH,SAAA,gBAAyBG,UAAA,EAAY,CAAC,CAC3Ee,MAAM,CAACJ,OAAA,EACPiB,IAAI,CAAC;eAEP1B,WAAA,E,aACDuB,IAAA,CAAC/B,gBAAA;MAAiBmC,KAAA,EAAOnB,MAAA;gBACvB,aAAAgB,KAAA,CAAC;QACC,cAAYzB,SAAA,IAAaI,eAAA;QACzB,wBAAsBa,eAAA,IAAmBY,SAAA;QACzCC,WAAA,EAAY;QACZC,WAAA,EAAY;QACZjC,EAAA,EAAIQ,OAAA;QACJiB,GAAA,EAAKf,QAAA;QACLwB,IAAA,EAAMvB,MAAA,GAAS,SAASoB,SAAA;gCAExBL,IAAA,CAAC;oBACC,aAAAA,IAAA,CAAC;YAAGQ,IAAA,EAAMvB,MAAA,GAAS,QAAQoB,SAAA;sBACxBhB,aAAA,CAAcoB,GAAG,CAAElB,KAAA,iBAClBS,IAAA,CAAC;cACC,eAAaT,KAAA,CAAIK,QAAQ;cACzBtB,EAAA,EAAI,WAAWiB,KAAA,CAAIK,QAAQ,CAACc,OAAO,CAAC,OAAO,OAAO;cAElDF,IAAA,EAAMvB,MAAA,GAAS,iBAAiBoB,SAAA;cAChCM,KAAA,EAAM;wBAELpB,KAAA,CAAIqB;eAJArB,KAAA,CAAIK,QAAQ;;yBASzBI,IAAA,CAAC;oBACErB,IAAA,IACCA,IAAA,EAAM8B,GAAA,CAAI,CAACI,GAAA,EAAKC,QAAA;YACd,MAAMC,WAAA,GAAcF,GAAA,CAAIG,YAAY;YACpC,MAAMC,qBAAA,GACJJ,GAAA,CAAIK,SAAS,IAAIH,WAAA,IAAeA,WAAA,CAAYzC,EAAE,KAAKc,IAAA,EAAMd,EAAA;YAE3D,oBACE0B,IAAA,CAAC;cACC,cAAYf,MAAA,GAASkC,MAAA,CAAOL,QAAA,GAAW,KAAKT,SAAA;cAC5C,iBACEZ,eAAA,IAAmB,CAACwB,qBAAA,GAChB/B,OAAA,CACE,CAAC,OAAO2B,GAAA,CAAIvC,EAAE,KAAK,YAAY,OAAOuC,GAAA,CAAIvC,EAAE,KAAK,QAAO,KACxDa,QAAA,CAASiC,GAAG,CAACP,GAAA,CAAIvC,EAAE,KAErB+B,SAAA;cAENH,SAAA,EAAW,OAAOY,QAAA,GAAW,GAAG;cAChC,WAASD,GAAA,CAAIvC,EAAE;cAMfkC,IAAA,EAAMvB,MAAA,GAAS,QAAQoB,SAAA;wBAEtBhB,aAAA,CAAcoB,GAAG,CAAElB,KAAA;gBAClB,MAAM;kBAAEK;gBAAQ,CAAE,GAAGL,KAAA;gBAErB,oBACES,IAAA,CAAC;kBACCE,SAAA,EAAW,CACT,QAAQN,QAAA,CAASc,OAAO,CAAC,OAAO,OAAO,EACvCnB,KAAA,CAAI8B,cAAc,IAAI,eACvB,CACE/B,MAAM,CAACJ,OAAA,EACPiB,IAAI,CAAC;kBACR,eAAaP,QAAA;kBAEbY,IAAA,EAAMvB,MAAA,GAAS,aAAaoB,SAAA;4BAE3Bd,KAAA,CAAI+B,aAAa,CAACR,QAAA;mBAHdlB,QAAA;cAMX;eAxBE,OAAOiB,GAAA,CAAIvC,EAAE,KAAK,YAAY,OAAOuC,GAAA,CAAIvC,EAAE,KAAK,WAC5C6C,MAAA,CAAON,GAAA,CAAIvC,EAAE,IACbwC,QAAA;UAyBZ;;;;;AAMd","ignoreList":[]}
@@ -9,6 +9,7 @@
9
9
 
10
10
  .tabs__tabs {
11
11
  display: inline-flex;
12
+ gap: var(--spacer-3);
12
13
  min-width: 100%;
13
14
  vertical-align: bottom;
14
15
  position: relative;
@@ -24,7 +25,7 @@
24
25
  align-items: center;
25
26
  justify-content: center;
26
27
  gap: var(--spacer-1);
27
- padding: var(--spacer-1) var(--spacer-2);
28
+ padding: var(--spacer-1) 0;
28
29
  margin: 0;
29
30
  margin-bottom: var(--spacer-2);
30
31
  cursor: pointer;
@@ -41,8 +42,8 @@
41
42
  .tabs__tab-button:after {
42
43
  content: '';
43
44
  position: absolute;
44
- left: var(--spacer-2);
45
- right: var(--spacer-2);
45
+ left: 0;
46
+ right: 0;
46
47
  bottom: calc(-1 * var(--spacer-2) - 1px);
47
48
  height: 3px;
48
49
  background: var(--color-icon-brand);
@@ -0,0 +1,11 @@
1
+ export declare const getEditorFileSrc: ({ data, fileSrc, hasSelectedFile, }: {
2
+ data?: {
3
+ original?: {
4
+ url?: string;
5
+ } | null;
6
+ url?: string;
7
+ };
8
+ fileSrc?: null | string;
9
+ hasSelectedFile: boolean;
10
+ }) => string;
11
+ //# sourceMappingURL=getEditorFileSrc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEditorFileSrc.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/getEditorFileSrc.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,wCAI1B;IACD,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3D,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,eAAe,EAAE,OAAO,CAAA;CACzB,KAAG,MAA2F,CAAA"}
@@ -0,0 +1,6 @@
1
+ export const getEditorFileSrc = ({
2
+ data,
3
+ fileSrc,
4
+ hasSelectedFile
5
+ }) => hasSelectedFile && fileSrc || data?.original?.url || data?.url || fileSrc || '';
6
+ //# sourceMappingURL=getEditorFileSrc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEditorFileSrc.js","names":["getEditorFileSrc","data","fileSrc","hasSelectedFile","original","url"],"sources":["../../../src/elements/Upload/getEditorFileSrc.ts"],"sourcesContent":["export const getEditorFileSrc = ({\n data,\n fileSrc,\n hasSelectedFile,\n}: {\n data?: { original?: { url?: string } | null; url?: string }\n fileSrc?: null | string\n hasSelectedFile: boolean\n}): string => (hasSelectedFile && fileSrc) || data?.original?.url || data?.url || fileSrc || ''\n"],"mappings":"AAAA,OAAO,MAAMA,gBAAA,GAAmBA,CAAC;EAC/BC,IAAI;EACJC,OAAO;EACPC;AAAe,CAKhB,KAAaA,eAAC,IAAmBD,OAAA,IAAYD,IAAA,EAAMG,QAAA,EAAUC,GAAA,IAAOJ,IAAA,EAAMI,GAAA,IAAOH,OAAA,IAAW","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAmD,MAAM,OAAO,CAAA;AAevE,OAAO,aAAa,CAAA;AAKpB,OAAO,EAAE,kBAAkB,EAAsB,MAAM,+BAA+B,CAAA;AAItF,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAG7B,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAc9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAkDnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAYxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,yBAAyB,EAAe,MAAM,SAAS,CAAA;AAIhF,OAAO,KAAmD,MAAM,OAAO,CAAA;AAevE,OAAO,aAAa,CAAA;AAMpB,OAAO,EAAE,kBAAkB,EAAsB,MAAM,+BAA+B,CAAA;AAItF,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAG7B,eAAO,MAAM,cAAc,gBAAgB,CAAA;AAC3C,eAAO,MAAM,eAAe,kBAAkB,CAAA;AAc9C,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,wEAKvB,iBAAiB,sBAkDnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAA;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,CAAA;IACtF,QAAQ,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1C,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAYxC,CAAA"}
@@ -23,6 +23,7 @@ import { EditUpload } from '../EditUpload/index.js';
23
23
  import { FileDetails } from '../FileDetails/index.js';
24
24
  import { PreviewSizes } from '../PreviewSizes/index.js';
25
25
  import { Thumbnail } from '../Thumbnail/index.js';
26
+ import { getEditorFileSrc } from './getEditorFileSrc.js';
26
27
  import { pasteURLDrawerSlug, UploadFromURLModal } from './UploadFromURLModal/index.js';
27
28
  import { usePasteFromClipboard } from './usePasteFromClipboard.js';
28
29
  import { useUploadFromUrl } from './useUploadFromUrl.js';
@@ -302,7 +303,11 @@ const UploadComponent = props => {
302
303
  children: [(value || data?.filename) && /*#__PURE__*/_jsx(EditDepthProvider, {
303
304
  children: /*#__PURE__*/_jsx(EditUpload, {
304
305
  fileName: value?.name || data?.filename,
305
- fileSrc: data?.url || fileSrc,
306
+ fileSrc: getEditorFileSrc({
307
+ data,
308
+ fileSrc,
309
+ hasSelectedFile: Boolean(value)
310
+ }),
306
311
  imageCacheTag: imageCacheTag,
307
312
  initialCrop: uploadEdits?.crop ?? undefined,
308
313
  initialFocalPoint: {