@payloadcms/ui 4.0.0-internal.d3909a9 → 4.0.0-internal.d7d662c

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 (761) hide show
  1. package/dist/css/app.css +2 -2
  2. package/dist/css/colors.css +65 -0
  3. package/dist/elements/APIKeyInput/index.js +22 -23
  4. package/dist/elements/APIKeyInput/index.js.map +1 -1
  5. package/dist/elements/AddNewRelation/index.js +17 -19
  6. package/dist/elements/AddNewRelation/index.js.map +1 -1
  7. package/dist/elements/ArrayAction/index.js +39 -30
  8. package/dist/elements/ArrayAction/index.js.map +1 -1
  9. package/dist/elements/Autosave/index.js +234 -142
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  12. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  13. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  16. package/dist/elements/BulkUpload/EditMany/index.js +29 -21
  17. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  18. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/index.js +63 -23
  20. package/dist/elements/BulkUpload/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
  22. package/dist/elements/Button/index.css +3 -3
  23. package/dist/elements/Button/index.d.ts.map +1 -1
  24. package/dist/elements/Button/index.js +2 -1
  25. package/dist/elements/Button/index.js.map +1 -1
  26. package/dist/elements/Button/types.d.ts +1 -0
  27. package/dist/elements/Button/types.d.ts.map +1 -1
  28. package/dist/elements/Button/types.js.map +1 -1
  29. package/dist/elements/CardGrid/index.css +0 -1
  30. package/dist/elements/Chip/index.js.map +1 -1
  31. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  32. package/dist/elements/ClipboardAction/index.js +213 -88
  33. package/dist/elements/ClipboardAction/index.js.map +1 -1
  34. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  35. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  36. package/dist/elements/CodeEditor/CodeEditor.js +95 -56
  37. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  38. package/dist/elements/CollapseAllToggle/index.js +47 -32
  39. package/dist/elements/CollapseAllToggle/index.js.map +1 -1
  40. package/dist/elements/Collapsible/index.css +15 -4
  41. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  42. package/dist/elements/Collapsible/index.js +46 -38
  43. package/dist/elements/Collapsible/index.js.map +1 -1
  44. package/dist/elements/Collapsible/provider.js +37 -14
  45. package/dist/elements/Collapsible/provider.js.map +1 -1
  46. package/dist/elements/ColumnSelection/Popup.css +4 -0
  47. package/dist/elements/ColumnSelection/Popup.js +10 -2
  48. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  49. package/dist/elements/ColumnSelection/index.js.map +1 -1
  50. package/dist/elements/CommandPalette/index.css +8 -0
  51. package/dist/elements/ConfirmationModal/index.d.ts +3 -0
  52. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  53. package/dist/elements/ConfirmationModal/index.js +2 -0
  54. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  55. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  56. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  57. package/dist/elements/CreateDocumentButton/index.js +45 -43
  58. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  59. package/dist/elements/DatePicker/index.css +5 -0
  60. package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
  61. package/dist/elements/DefaultListViewTabs/index.css +4 -0
  62. package/dist/elements/DefaultListViewTabs/index.js +47 -37
  63. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  64. package/dist/elements/DelayedSpinner/index.js.map +1 -1
  65. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  66. package/dist/elements/DeleteDocument/index.js +1 -3
  67. package/dist/elements/DeleteDocument/index.js.map +1 -1
  68. package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
  69. package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
  70. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  71. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  72. package/dist/elements/DocumentCard/index.d.ts +2 -0
  73. package/dist/elements/DocumentCard/index.d.ts.map +1 -1
  74. package/dist/elements/DocumentCard/index.js +2 -0
  75. package/dist/elements/DocumentCard/index.js.map +1 -1
  76. package/dist/elements/DocumentControls/index.js +1 -1
  77. package/dist/elements/DocumentControls/index.js.map +1 -1
  78. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  79. package/dist/elements/DocumentFields/index.js +125 -64
  80. package/dist/elements/DocumentFields/index.js.map +1 -1
  81. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  82. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  83. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
  84. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  85. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
  86. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  87. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  88. package/dist/elements/DocumentLocked/index.js +1 -0
  89. package/dist/elements/DocumentLocked/index.js.map +1 -1
  90. package/dist/elements/DocumentStaleData/index.js.map +1 -1
  91. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  92. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
  93. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
  94. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  95. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
  96. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  97. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
  98. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  99. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  100. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  101. package/dist/elements/DraggableSortable/index.js +104 -170
  102. package/dist/elements/DraggableSortable/index.js.map +1 -1
  103. package/dist/elements/DraggableSortable/types.d.ts +1 -0
  104. package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
  105. package/dist/elements/DraggableSortable/types.js.map +1 -1
  106. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  107. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
  108. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
  109. package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
  110. package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
  111. package/dist/elements/Drawer/index.js +138 -81
  112. package/dist/elements/Drawer/index.js.map +1 -1
  113. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  114. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  115. package/dist/elements/DrawerHeader/index.js.map +1 -1
  116. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
  117. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  118. package/dist/elements/EditMany/DrawerContent.js +1 -1
  119. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  120. package/dist/elements/EditMany/index.js.map +1 -1
  121. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
  122. package/dist/elements/FieldDiffContainer/index.js +7 -1
  123. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  124. package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
  125. package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
  126. package/dist/elements/FieldDiffLabel/index.js +2 -0
  127. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  128. package/dist/elements/FieldSelect/index.js +23 -14
  129. package/dist/elements/FieldSelect/index.js.map +1 -1
  130. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  131. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  132. package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
  133. package/dist/elements/FileManager/index.js.map +1 -1
  134. package/dist/elements/FullscreenModal/index.js.map +1 -1
  135. package/dist/elements/GenerateConfirmation/index.js +21 -21
  136. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  137. package/dist/elements/GroupBy/Popup.js.map +1 -1
  138. package/dist/elements/GroupBy/index.js +120 -66
  139. package/dist/elements/GroupBy/index.js.map +1 -1
  140. package/dist/elements/HTMLDiff/colors.css +7 -0
  141. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  142. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
  143. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  144. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
  145. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  146. package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
  147. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
  148. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
  149. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
  150. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
  151. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
  152. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  153. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  154. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  155. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  156. package/dist/elements/Hierarchy/Tree/index.js +10 -5
  157. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  158. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  159. package/dist/elements/HydratePreferences/index.js.map +1 -1
  160. package/dist/elements/IDLabel/index.js.map +1 -1
  161. package/dist/elements/InputStepper/index.js.map +1 -1
  162. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
  163. package/dist/elements/ItemsDrawer/index.js +186 -105
  164. package/dist/elements/ItemsDrawer/index.js.map +1 -1
  165. package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
  166. package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
  167. package/dist/elements/LayoutToggle/index.js.map +1 -1
  168. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  169. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
  170. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  171. package/dist/elements/Link/index.js +1 -1
  172. package/dist/elements/Link/index.js.map +1 -1
  173. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
  174. package/dist/elements/ListControls/index.js.map +1 -1
  175. package/dist/elements/ListDrawer/DrawerContent.js +1 -1
  176. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  177. package/dist/elements/ListDrawer/Provider.d.ts +3 -2
  178. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  179. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  180. package/dist/elements/ListDrawer/index.js.map +1 -1
  181. package/dist/elements/ListGroupByButton/index.js.map +1 -1
  182. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  183. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
  184. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  185. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  186. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
  187. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  188. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  189. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  190. package/dist/elements/ListSelection/index.js.map +1 -1
  191. package/dist/elements/ListWhereBuilder/index.js.map +1 -1
  192. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  193. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  194. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  195. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  196. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  197. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  198. package/dist/elements/LivePreview/Window/index.js +6 -1
  199. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  200. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  201. package/dist/elements/Loading/index.js +62 -18
  202. package/dist/elements/Loading/index.js.map +1 -1
  203. package/dist/elements/LoadingOverlay/index.js +93 -49
  204. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  205. package/dist/elements/Localizer/index.js +133 -108
  206. package/dist/elements/Localizer/index.js.map +1 -1
  207. package/dist/elements/Locked/index.js +54 -37
  208. package/dist/elements/Locked/index.js.map +1 -1
  209. package/dist/elements/Logout/index.js.map +1 -1
  210. package/dist/elements/MiniCarousel/index.js +102 -38
  211. package/dist/elements/MiniCarousel/index.js.map +1 -1
  212. package/dist/elements/Modal/index.d.ts.map +1 -1
  213. package/dist/elements/Modal/index.js +13 -1
  214. package/dist/elements/Modal/index.js.map +1 -1
  215. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  216. package/dist/elements/Nav/NavWrapper/index.js +13 -14
  217. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  218. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  219. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
  220. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  221. package/dist/elements/Nav/SidebarTabs/index.client.js +31 -20
  222. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  223. package/dist/elements/Nav/index.client.js.map +1 -1
  224. package/dist/elements/Nav/index.css +5 -0
  225. package/dist/elements/NavGroup/index.css +27 -3
  226. package/dist/elements/NavGroup/index.js +31 -38
  227. package/dist/elements/NavGroup/index.js.map +1 -1
  228. package/dist/elements/NoListResults/index.css +1 -0
  229. package/dist/elements/NoListResults/index.js +1 -1
  230. package/dist/elements/NoListResults/index.js.map +1 -1
  231. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  232. package/dist/elements/PageControls/index.js.map +1 -1
  233. package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
  234. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  235. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  236. package/dist/elements/Pagination/index.js +36 -37
  237. package/dist/elements/Pagination/index.js.map +1 -1
  238. package/dist/elements/PerPage/index.js.map +1 -1
  239. package/dist/elements/Pill/index.js.map +1 -1
  240. package/dist/elements/Popup/index.d.ts.map +1 -1
  241. package/dist/elements/Popup/index.js +19 -3
  242. package/dist/elements/Popup/index.js.map +1 -1
  243. package/dist/elements/PreviewButton/index.js.map +1 -1
  244. package/dist/elements/PreviewSizes/index.js +141 -70
  245. package/dist/elements/PreviewSizes/index.js.map +1 -1
  246. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  247. package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
  248. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  249. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  250. package/dist/elements/PublishButton/index.js +1 -0
  251. package/dist/elements/PublishButton/index.js.map +1 -1
  252. package/dist/elements/PublishMany/DrawerContent.js +1 -1
  253. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  254. package/dist/elements/PublishMany/index.js +32 -24
  255. package/dist/elements/PublishMany/index.js.map +1 -1
  256. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
  257. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  258. package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
  259. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  260. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
  261. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  262. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  263. package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
  264. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  265. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  266. package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
  267. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  268. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  269. package/dist/elements/ReactSelect/index.css +4 -0
  270. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  271. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  272. package/dist/elements/RelationshipTable/index.js +1 -1
  273. package/dist/elements/RelationshipTable/index.js.map +1 -1
  274. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  275. package/dist/elements/RenderTitle/index.js.map +1 -1
  276. package/dist/elements/RestoreMany/index.js +1 -1
  277. package/dist/elements/RestoreMany/index.js.map +1 -1
  278. package/dist/elements/SchedulePublishButton/index.js +111 -39
  279. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  280. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  281. package/dist/elements/SegmentedControl/index.js.map +1 -1
  282. package/dist/elements/SelectAll/index.js.map +1 -1
  283. package/dist/elements/SelectRow/index.js +31 -21
  284. package/dist/elements/SelectRow/index.js.map +1 -1
  285. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  286. package/dist/elements/SidebarToggle/index.js.map +1 -1
  287. package/dist/elements/SkipToContent/index.js.map +1 -1
  288. package/dist/elements/SortHeader/index.js.map +1 -1
  289. package/dist/elements/SortRow/index.js.map +1 -1
  290. package/dist/elements/Spinner/index.js.map +1 -1
  291. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  292. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  293. package/dist/elements/StepNav/context.js.map +1 -1
  294. package/dist/elements/Switch/index.css +2 -2
  295. package/dist/elements/Switch/index.js.map +1 -1
  296. package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
  297. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  298. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
  299. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  300. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
  301. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  302. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  303. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  304. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
  305. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  306. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  307. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  308. package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
  309. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  310. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
  311. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  312. package/dist/elements/Table/TableIdentity.js +32 -16
  313. package/dist/elements/Table/TableIdentity.js.map +1 -1
  314. package/dist/elements/Table/useAriaSort.js.map +1 -1
  315. package/dist/elements/Thumbnail/index.js +133 -53
  316. package/dist/elements/Thumbnail/index.js.map +1 -1
  317. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  318. package/dist/elements/TimezonePicker/index.js +113 -54
  319. package/dist/elements/TimezonePicker/index.js.map +1 -1
  320. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  321. package/dist/elements/Tooltip/index.js.map +1 -1
  322. package/dist/elements/TrashBanner/index.js.map +1 -1
  323. package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
  324. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  325. package/dist/elements/UnpublishMany/index.js +32 -24
  326. package/dist/elements/UnpublishMany/index.js.map +1 -1
  327. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  328. package/dist/elements/Upload/index.js.map +1 -1
  329. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
  330. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
  331. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  332. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  333. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  334. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  335. package/dist/elements/UserMenu/index.js +2 -1
  336. package/dist/elements/UserMenu/index.js.map +1 -1
  337. package/dist/elements/ViewDescription/index.js.map +1 -1
  338. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  339. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  340. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  341. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  342. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  343. package/dist/elements/WhereBuilder/Condition/index.js +1 -0
  344. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  345. package/dist/exports/client/{CodeEditor-I6PL55BF.js → CodeEditor-23ZGBN6S.js} +2 -2
  346. package/dist/exports/client/{DatePicker-RFCB5VGD.js → DatePicker-AZBZPMY6.js} +2 -2
  347. package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
  348. package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
  349. package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
  350. package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
  351. package/dist/exports/client/{chunk-O2RR6XEH.js → chunk-ZP2PB6M4.js} +2 -2
  352. package/dist/exports/client/{chunk-O2RR6XEH.js.map → chunk-ZP2PB6M4.js.map} +1 -1
  353. package/dist/exports/client/index.d.ts +2 -2
  354. package/dist/exports/client/index.d.ts.map +1 -1
  355. package/dist/exports/client/index.js +27 -27
  356. package/dist/exports/client/index.js.map +4 -4
  357. package/dist/exports/rsc/index.d.ts +1 -1
  358. package/dist/exports/rsc/index.d.ts.map +1 -1
  359. package/dist/exports/rsc/index.js +1 -1
  360. package/dist/exports/rsc/index.js.map +1 -1
  361. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  362. package/dist/fields/Array/ArrayRow.js +207 -99
  363. package/dist/fields/Array/ArrayRow.js.map +1 -1
  364. package/dist/fields/Array/index.d.ts.map +1 -1
  365. package/dist/fields/Array/index.js +521 -308
  366. package/dist/fields/Array/index.js.map +1 -1
  367. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  368. package/dist/fields/Blocks/BlockRow.js +224 -136
  369. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  370. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  371. package/dist/fields/Blocks/BlockSelector/index.js +114 -74
  372. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  373. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  374. package/dist/fields/Blocks/RowActions.js +75 -55
  375. package/dist/fields/Blocks/RowActions.js.map +1 -1
  376. package/dist/fields/Blocks/SectionTitle/index.css +4 -0
  377. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  378. package/dist/fields/Blocks/index.d.ts.map +1 -1
  379. package/dist/fields/Blocks/index.js +1 -0
  380. package/dist/fields/Blocks/index.js.map +1 -1
  381. package/dist/fields/Checkbox/index.css +3 -3
  382. package/dist/fields/Code/index.d.ts.map +1 -1
  383. package/dist/fields/Code/index.js +3 -2
  384. package/dist/fields/Code/index.js.map +1 -1
  385. package/dist/fields/Collapsible/index.js +114 -73
  386. package/dist/fields/Collapsible/index.js.map +1 -1
  387. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  388. package/dist/fields/DateTime/index.js +215 -121
  389. package/dist/fields/DateTime/index.js.map +1 -1
  390. package/dist/fields/FieldDescription/index.js +29 -21
  391. package/dist/fields/FieldDescription/index.js.map +1 -1
  392. package/dist/fields/FieldError/index.js.map +1 -1
  393. package/dist/fields/FieldLabel/index.js.map +1 -1
  394. package/dist/fields/Group/index.js +75 -46
  395. package/dist/fields/Group/index.js.map +1 -1
  396. package/dist/fields/Hidden/index.js +23 -15
  397. package/dist/fields/Hidden/index.js.map +1 -1
  398. package/dist/fields/JSON/index.d.ts.map +1 -1
  399. package/dist/fields/JSON/index.js +3 -2
  400. package/dist/fields/JSON/index.js.map +1 -1
  401. package/dist/fields/Number/Input.js.map +1 -1
  402. package/dist/fields/Password/input.js +46 -27
  403. package/dist/fields/Password/input.js.map +1 -1
  404. package/dist/fields/RadioGroup/Radio/index.js +35 -35
  405. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  406. package/dist/fields/Relationship/Input.js +14 -14
  407. package/dist/fields/Relationship/Input.js.map +1 -1
  408. package/dist/fields/Relationship/index.js +216 -111
  409. package/dist/fields/Relationship/index.js.map +1 -1
  410. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  411. package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
  412. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  413. package/dist/fields/Select/Input.js +26 -10
  414. package/dist/fields/Select/Input.js.map +1 -1
  415. package/dist/fields/Select/index.js +158 -77
  416. package/dist/fields/Select/index.js.map +1 -1
  417. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  418. package/dist/fields/Tabs/index.css +11 -15
  419. package/dist/fields/Tabs/index.js +120 -112
  420. package/dist/fields/Tabs/index.js.map +1 -1
  421. package/dist/fields/Text/Input.d.ts.map +1 -1
  422. package/dist/fields/Text/Input.js +2 -2
  423. package/dist/fields/Text/Input.js.map +1 -1
  424. package/dist/fields/Text/index.js +172 -95
  425. package/dist/fields/Text/index.js.map +1 -1
  426. package/dist/fields/Text/types.d.ts +2 -1
  427. package/dist/fields/Text/types.d.ts.map +1 -1
  428. package/dist/fields/Text/types.js.map +1 -1
  429. package/dist/fields/Textarea/Input.js +58 -28
  430. package/dist/fields/Textarea/Input.js.map +1 -1
  431. package/dist/fields/Textarea/index.js +97 -55
  432. package/dist/fields/Textarea/index.js.map +1 -1
  433. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  434. package/dist/fields/Upload/Input.d.ts.map +1 -1
  435. package/dist/fields/Upload/Input.js +16 -7
  436. package/dist/fields/Upload/Input.js.map +1 -1
  437. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  438. package/dist/fields/Upload/index.css +9 -0
  439. package/dist/fields/Upload/index.js +101 -63
  440. package/dist/fields/Upload/index.js.map +1 -1
  441. package/dist/fields/shared/useRowFocus.js.map +1 -1
  442. package/dist/forms/Form/context.js.map +1 -1
  443. package/dist/forms/Form/index.d.ts.map +1 -1
  444. package/dist/forms/Form/index.js +27 -8
  445. package/dist/forms/Form/index.js.map +1 -1
  446. package/dist/forms/Form/types.d.ts +1 -1
  447. package/dist/forms/Form/types.d.ts.map +1 -1
  448. package/dist/forms/Form/types.js.map +1 -1
  449. package/dist/forms/NullifyField/index.js.map +1 -1
  450. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  451. package/dist/forms/RenderFields/context.js +3 -2
  452. package/dist/forms/RenderFields/context.js.map +1 -1
  453. package/dist/forms/RenderFields/index.js.map +1 -1
  454. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  455. package/dist/forms/RowLabel/Context/index.js +58 -18
  456. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  457. package/dist/forms/Submit/index.js +12 -13
  458. package/dist/forms/Submit/index.js.map +1 -1
  459. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  460. package/dist/forms/useField/index.js +1 -1
  461. package/dist/forms/useField/index.js.map +1 -1
  462. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  463. package/dist/graphics/Account/Gravatar/index.js +32 -17
  464. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  465. package/dist/graphics/Account/index.js +27 -18
  466. package/dist/graphics/Account/index.js.map +1 -1
  467. package/dist/hooks/useControllableState.js.map +1 -1
  468. package/dist/hooks/useDebounce.js.map +1 -1
  469. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  470. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  471. package/dist/hooks/useDelay.js.map +1 -1
  472. package/dist/hooks/useDelayedRender.js.map +1 -1
  473. package/dist/hooks/useElementHeightVariable.js.map +1 -1
  474. package/dist/hooks/useHotkey.js.map +1 -1
  475. package/dist/hooks/useIntersect.js.map +1 -1
  476. package/dist/hooks/usePayloadAPI.js.map +1 -1
  477. package/dist/hooks/usePopupWindow.js.map +1 -1
  478. package/dist/hooks/useRelatedCollections.js.map +1 -1
  479. package/dist/hooks/useResize.js.map +1 -1
  480. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  481. package/dist/hooks/useThrottledEffect.js +21 -24
  482. package/dist/hooks/useThrottledEffect.js.map +1 -1
  483. package/dist/hooks/useUseAsTitle.js.map +1 -1
  484. package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
  485. package/dist/layouts/Root/RootProviders.js +31 -28
  486. package/dist/layouts/Root/RootProviders.js.map +1 -1
  487. package/dist/providers/Actions/index.js.map +1 -1
  488. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
  489. package/dist/providers/Auth/index.js +2 -2
  490. package/dist/providers/Auth/index.js.map +1 -1
  491. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
  492. package/dist/providers/ClientFunction/index.js.map +1 -1
  493. package/dist/providers/Config/index.js +65 -32
  494. package/dist/providers/Config/index.js.map +1 -1
  495. package/dist/providers/DocumentEvents/index.js.map +1 -1
  496. package/dist/providers/EditDepth/index.js.map +1 -1
  497. package/dist/providers/Embed/index.js.map +1 -1
  498. package/dist/providers/EntityVisibility/index.js.map +1 -1
  499. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  500. package/dist/providers/ListQuery/index.js +5 -5
  501. package/dist/providers/ListQuery/index.js.map +1 -1
  502. package/dist/providers/ListQuery/types.d.ts +6 -1
  503. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  504. package/dist/providers/ListQuery/types.js.map +1 -1
  505. package/dist/providers/ModalAccessibility/index.js.map +1 -1
  506. package/dist/providers/ModalFocus/index.d.ts +15 -0
  507. package/dist/providers/ModalFocus/index.d.ts.map +1 -0
  508. package/dist/providers/ModalFocus/index.js +70 -0
  509. package/dist/providers/ModalFocus/index.js.map +1 -0
  510. package/dist/providers/RouteCache/index.js.map +1 -1
  511. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  512. package/dist/providers/RouteTransition/index.d.ts +3 -2
  513. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  514. package/dist/providers/RouteTransition/index.js +78 -105
  515. package/dist/providers/RouteTransition/index.js.map +1 -1
  516. package/dist/providers/RouterAdapter/index.js.map +1 -1
  517. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  518. package/dist/providers/TableColumns/index.d.ts.map +1 -1
  519. package/dist/providers/TableColumns/index.js +18 -35
  520. package/dist/providers/TableColumns/index.js.map +1 -1
  521. package/dist/providers/Theme/index.js.map +1 -1
  522. package/dist/providers/ToastContainer/index.js.map +1 -1
  523. package/dist/providers/Translation/index.js.map +1 -1
  524. package/dist/providers/UploadControls/index.js.map +1 -1
  525. package/dist/providers/UploadEdits/index.js.map +1 -1
  526. package/dist/providers/UploadHandlers/index.js.map +1 -1
  527. package/dist/styles.css +66 -1
  528. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  529. package/dist/utilities/serverFunctionRegistry.js +2 -2
  530. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  531. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  532. package/dist/views/API/index.client.d.ts.map +1 -1
  533. package/dist/views/API/index.client.js +1 -0
  534. package/dist/views/API/index.client.js.map +1 -1
  535. package/dist/views/Account/ResetPreferences/index.js +17 -17
  536. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  537. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  538. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
  539. package/dist/views/Account/ToggleTheme/index.js +106 -27
  540. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  541. package/dist/views/Account/index.client.js.map +1 -1
  542. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  543. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  544. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  545. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
  546. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  547. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  548. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  549. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +2 -1
  550. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  551. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
  552. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  553. package/dist/views/Edit/Auth/index.js +13 -11
  554. package/dist/views/Edit/Auth/index.js.map +1 -1
  555. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  556. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  557. package/dist/views/Edit/index.d.ts.map +1 -1
  558. package/dist/views/Edit/index.js +27 -16
  559. package/dist/views/Edit/index.js.map +1 -1
  560. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  561. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
  562. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  563. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  564. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  565. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  566. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
  567. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
  568. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
  569. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  570. package/dist/views/HierarchyList/index.js +2 -2
  571. package/dist/views/HierarchyList/index.js.map +1 -1
  572. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  573. package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
  574. package/dist/views/List/ListSelection/index.js.map +1 -1
  575. package/dist/views/Login/LoginField/index.js.map +1 -1
  576. package/dist/views/Login/LoginForm/index.js.map +1 -1
  577. package/dist/views/Logout/LogoutClient.js.map +1 -1
  578. package/dist/views/NotFound/index.client.js.map +1 -1
  579. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  580. package/dist/views/Verify/index.client.js.map +1 -1
  581. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  582. package/dist/views/Version/Default/index.js +321 -181
  583. package/dist/views/Version/Default/index.js.map +1 -1
  584. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  585. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  586. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
  587. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  588. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  589. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
  590. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  591. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  592. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  593. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
  594. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  595. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  596. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  597. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  598. package/dist/views/Version/Restore/index.js +176 -77
  599. package/dist/views/Version/Restore/index.js.map +1 -1
  600. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  601. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  602. package/dist/views/Version/SelectComparison/index.js +113 -33
  603. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  604. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  605. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  606. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  607. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  608. package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
  609. package/dist/views/Versions/index.client.js +9 -11
  610. package/dist/views/Versions/index.client.js.map +1 -1
  611. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
  612. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
  613. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
  614. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
  615. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
  616. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
  617. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
  618. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
  619. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
  620. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
  621. package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
  622. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
  623. package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
  624. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
  625. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
  626. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
  627. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
  628. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
  629. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
  630. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
  631. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
  632. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
  633. package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
  634. package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
  635. package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
  636. package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
  637. package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
  638. package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
  639. package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
  640. package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
  641. package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
  642. package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
  643. package/dist/widgets/Activity/components/Pagination/index.css +42 -0
  644. package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
  645. package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
  646. package/dist/widgets/Activity/components/Pagination/index.js +125 -0
  647. package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
  648. package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
  649. package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
  650. package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
  651. package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
  652. package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
  653. package/dist/widgets/Activity/index.client.d.ts +15 -0
  654. package/dist/widgets/Activity/index.client.d.ts.map +1 -0
  655. package/dist/widgets/Activity/index.client.js +186 -0
  656. package/dist/widgets/Activity/index.client.js.map +1 -0
  657. package/dist/widgets/Activity/index.css +320 -0
  658. package/dist/widgets/Activity/index.d.ts +13 -0
  659. package/dist/widgets/Activity/index.d.ts.map +1 -0
  660. package/dist/widgets/Activity/index.js +100 -0
  661. package/dist/widgets/Activity/index.js.map +1 -0
  662. package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +5 -13
  663. package/dist/widgets/Activity/types.d.ts.map +1 -0
  664. package/dist/widgets/Activity/types.js +2 -0
  665. package/dist/widgets/Activity/types.js.map +1 -0
  666. package/dist/widgets/Activity/utils/cache.d.ts +33 -0
  667. package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
  668. package/dist/widgets/Activity/utils/cache.js +72 -0
  669. package/dist/widgets/Activity/utils/cache.js.map +1 -0
  670. package/dist/widgets/Activity/utils/constants.d.ts +5 -0
  671. package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
  672. package/dist/widgets/Activity/utils/constants.js +4 -0
  673. package/dist/widgets/Activity/utils/constants.js.map +1 -0
  674. package/dist/widgets/Activity/utils/documents.d.ts +11 -0
  675. package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
  676. package/dist/widgets/Activity/utils/documents.js +38 -0
  677. package/dist/widgets/Activity/utils/documents.js.map +1 -0
  678. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
  679. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
  680. package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +18 -19
  681. package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
  682. package/dist/widgets/Activity/utils/state.d.ts +44 -0
  683. package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
  684. package/dist/widgets/Activity/utils/state.js +80 -0
  685. package/dist/widgets/Activity/utils/state.js.map +1 -0
  686. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
  687. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
  688. package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
  689. package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
  690. package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
  691. package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
  692. package/dist/widgets/Activity/utils/usePageSize.js +35 -0
  693. package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
  694. package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
  695. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
  696. package/dist/widgets/CollectionCards/index.client.js +3 -0
  697. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  698. package/dist/widgets/CollectionCards/index.d.ts +3 -0
  699. package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
  700. package/dist/widgets/CollectionCards/index.js +3 -0
  701. package/dist/widgets/CollectionCards/index.js.map +1 -1
  702. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  703. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  704. package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
  705. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  706. package/dist/widgets/CollectionQuery/index.d.ts +3 -0
  707. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
  708. package/dist/widgets/CollectionQuery/index.js +3 -0
  709. package/dist/widgets/CollectionQuery/index.js.map +1 -1
  710. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
  711. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
  712. package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
  713. package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
  714. package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
  715. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
  716. package/dist/widgets/UploadDropzone/index.client.js +3 -0
  717. package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
  718. package/dist/widgets/UploadDropzone/index.d.ts +3 -0
  719. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
  720. package/dist/widgets/UploadDropzone/index.js +3 -0
  721. package/dist/widgets/UploadDropzone/index.js.map +1 -1
  722. package/dist/widgets/Welcome/index.d.ts +3 -0
  723. package/dist/widgets/Welcome/index.d.ts.map +1 -1
  724. package/dist/widgets/Welcome/index.js +3 -0
  725. package/dist/widgets/Welcome/index.js.map +1 -1
  726. package/dist/widgets/WidgetCard/index.css +0 -20
  727. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
  728. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
  729. package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
  730. package/dist/widgets/shared/CollectionFilter/index.js +170 -0
  731. package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
  732. package/package.json +8 -7
  733. package/dist/exports/client/chunk-R7M6BG75.js +0 -27
  734. package/dist/exports/client/chunk-R7M6BG75.js.map +0 -7
  735. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
  736. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
  737. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
  738. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -41
  739. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
  740. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
  741. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -121
  742. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
  743. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
  744. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
  745. package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
  746. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
  747. package/dist/widgets/RecentlyViewed/index.client.js +0 -409
  748. package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
  749. package/dist/widgets/RecentlyViewed/index.css +0 -352
  750. package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
  751. package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
  752. package/dist/widgets/RecentlyViewed/index.js +0 -47
  753. package/dist/widgets/RecentlyViewed/index.js.map +0 -1
  754. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
  755. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
  756. package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
  757. package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
  758. package/dist/widgets/RecentlyViewed/recents.js +0 -19
  759. package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
  760. /package/dist/exports/client/{CodeEditor-I6PL55BF.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
  761. /package/dist/exports/client/{DatePicker-RFCB5VGD.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
@@ -2,9 +2,10 @@
2
2
 
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import { transformColumnsToSearchParams } from 'payload/shared';
5
- import React, { startTransition, useCallback, useEffect, useRef } from 'react';
5
+ import React, { useCallback, useRef } from 'react';
6
6
  import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useListQuery } from '../../providers/ListQuery/index.js';
8
+ import { useRouteTransition } from '../RouteTransition/index.js';
8
9
  import { TableColumnContext } from './context.js';
9
10
  export { useTableColumns } from './context.js';
10
11
  export const TableColumnsProvider = ({
@@ -20,6 +21,9 @@ export const TableColumnsProvider = ({
20
21
  query: currentQuery,
21
22
  refineListData
22
23
  } = useListQuery();
24
+ const {
25
+ startRouteTransition
26
+ } = useRouteTransition();
23
27
  const {
24
28
  admin: {
25
29
  defaultColumns
@@ -27,19 +31,16 @@ export const TableColumnsProvider = ({
27
31
  } = getEntityConfig({
28
32
  collectionSlug
29
33
  });
30
- const [columnState, setOptimisticColumnState] = React.useOptimistic(columnStateFromProps, (state, action) => action);
31
- // Sync optimistic state when props change (e.g., after preset reset)
32
- const prevPropsRef = useRef(columnStateFromProps);
33
- useEffect(() => {
34
- if (columnStateFromProps !== prevPropsRef.current) {
35
- prevPropsRef.current = columnStateFromProps;
36
- // Force optimistic state to sync with new props by triggering a transition
37
- startTransition(() => {
38
- setOptimisticColumnState(columnStateFromProps);
39
- });
40
- }
41
- }, [columnStateFromProps, setOptimisticColumnState]);
34
+ const [columnState, setOptimisticColumnState] = React.useOptimistic(columnStateFromProps);
42
35
  const contextRef = useRef({});
36
+ const setColumns = useCallback(async newColumns => {
37
+ await startRouteTransition(async () => {
38
+ setOptimisticColumnState(newColumns);
39
+ await refineListData({
40
+ columns: transformColumnsToSearchParams(newColumns)
41
+ });
42
+ });
43
+ }, [refineListData, setOptimisticColumnState, startRouteTransition]);
43
44
  const toggleColumn = useCallback(async column => {
44
45
  const currentColumns = columnState || [];
45
46
  const columnIndex = currentColumns.findIndex(col => col.accessor === column);
@@ -56,13 +57,8 @@ export const TableColumnsProvider = ({
56
57
  }
57
58
  return col_0;
58
59
  });
59
- startTransition(() => {
60
- setOptimisticColumnState(newColumnState);
61
- });
62
- await refineListData({
63
- columns: transformColumnsToSearchParams(newColumnState)
64
- });
65
- }, [refineListData, columnState, setOptimisticColumnState]);
60
+ await setColumns(newColumnState);
61
+ }, [columnState, setColumns]);
66
62
  const moveColumn = useCallback(async args => {
67
63
  const {
68
64
  fromIndex,
@@ -71,13 +67,8 @@ export const TableColumnsProvider = ({
71
67
  const newColumnState_0 = [...(columnState || [])];
72
68
  const [columnToMove] = newColumnState_0.splice(fromIndex, 1);
73
69
  newColumnState_0.splice(toIndex, 0, columnToMove);
74
- startTransition(() => {
75
- setOptimisticColumnState(newColumnState_0);
76
- });
77
- await refineListData({
78
- columns: transformColumnsToSearchParams(newColumnState_0)
79
- });
80
- }, [columnState, refineListData, setOptimisticColumnState]);
70
+ await setColumns(newColumnState_0);
71
+ }, [columnState, setColumns]);
81
72
  const setActiveColumns = useCallback(async columns => {
82
73
  const newColumnState_1 = currentQuery.columns;
83
74
  columns.forEach(colName => {
@@ -96,14 +87,6 @@ export const TableColumnsProvider = ({
96
87
  columns: defaultColumns || []
97
88
  });
98
89
  }, [defaultColumns, refineListData]);
99
- const setColumns = useCallback(async newColumns => {
100
- startTransition(() => {
101
- setOptimisticColumnState(newColumns);
102
- });
103
- await refineListData({
104
- columns: transformColumnsToSearchParams(newColumns)
105
- });
106
- }, [refineListData, setOptimisticColumnState]);
107
90
  return /*#__PURE__*/_jsx(TableColumnContext, {
108
91
  value: {
109
92
  columns: columnState,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["transformColumnsToSearchParams","React","startTransition","useCallback","useEffect","useRef","useConfig","useListQuery","TableColumnContext","useTableColumns","TableColumnsProvider","children","collectionSlug","columnState","columnStateFromProps","LinkedCellOverride","getEntityConfig","query","currentQuery","refineListData","admin","defaultColumns","setOptimisticColumnState","useOptimistic","state","action","prevPropsRef","current","contextRef","toggleColumn","column","currentColumns","columnIndex","findIndex","col","accessor","newColumnState","map","active","columns","moveColumn","args","fromIndex","toIndex","columnToMove","splice","setActiveColumns","forEach","colName","colIndex","c","undefined","slice","resetColumnsState","setColumns","newColumns","_jsx","value"],"sources":["../../../src/providers/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport { type Column } from 'payload'\nimport { transformColumnsToSearchParams } from 'payload/shared'\nimport React, { startTransition, useCallback, useEffect, useRef } from 'react'\n\nimport type { ITableColumns, TableColumnsProviderProps } from './types.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { TableColumnContext } from './context.js'\n\nexport { useTableColumns } from './context.js'\n\nexport const TableColumnsProvider: React.FC<TableColumnsProviderProps> = ({\n children,\n collectionSlug,\n columnState: columnStateFromProps,\n LinkedCellOverride,\n}) => {\n const { getEntityConfig } = useConfig()\n const { query: currentQuery, refineListData } = useListQuery()\n\n const { admin: { defaultColumns } = {} } = getEntityConfig({\n collectionSlug,\n })\n\n const [columnState, setOptimisticColumnState] = React.useOptimistic(\n columnStateFromProps,\n (state, action: Column[]) => action,\n )\n\n // Sync optimistic state when props change (e.g., after preset reset)\n const prevPropsRef = useRef(columnStateFromProps)\n useEffect(() => {\n if (columnStateFromProps !== prevPropsRef.current) {\n prevPropsRef.current = columnStateFromProps\n // Force optimistic state to sync with new props by triggering a transition\n startTransition(() => {\n setOptimisticColumnState(columnStateFromProps)\n })\n }\n }, [columnStateFromProps, setOptimisticColumnState])\n\n const contextRef = useRef({} as ITableColumns)\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const currentColumns = columnState || []\n const columnIndex = currentColumns.findIndex((col) => col.accessor === column)\n\n if (columnIndex === -1) {\n return\n }\n\n // Toggle the column's active state in place, preserving its position\n const newColumnState = currentColumns.map((col) => {\n if (col.accessor === column) {\n return { ...col, active: !col.active }\n }\n return col\n })\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [refineListData, columnState, setOptimisticColumnState],\n )\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const newColumnState = [...(columnState || [])]\n const [columnToMove] = newColumnState.splice(fromIndex, 1)\n newColumnState.splice(toIndex, 0, columnToMove)\n\n startTransition(() => {\n setOptimisticColumnState(newColumnState)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumnState),\n })\n },\n [columnState, refineListData, setOptimisticColumnState],\n )\n\n const setActiveColumns = useCallback(\n async (columns: string[]) => {\n const newColumnState = currentQuery.columns\n\n columns.forEach((colName) => {\n const colIndex = newColumnState.findIndex((c) => colName === c)\n\n // ensure the name does not begin with a `-` which denotes an inactive column\n if (colIndex !== undefined && newColumnState[colIndex][0] === '-') {\n newColumnState[colIndex] = colName.slice(1)\n }\n })\n\n await refineListData({ columns: newColumnState })\n },\n [currentQuery, refineListData],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await refineListData({ columns: defaultColumns || [] })\n }, [defaultColumns, refineListData])\n\n const setColumns = useCallback(\n async (newColumns: Column[]) => {\n startTransition(() => {\n setOptimisticColumnState(newColumns)\n })\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumns),\n })\n },\n [refineListData, setOptimisticColumnState],\n )\n\n return (\n <TableColumnContext\n value={{\n columns: columnState,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n setColumns,\n toggleColumn,\n ...contextRef.current,\n }}\n >\n {children}\n </TableColumnContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["transformColumnsToSearchParams","React","useCallback","useRef","useConfig","useListQuery","useRouteTransition","TableColumnContext","useTableColumns","TableColumnsProvider","children","collectionSlug","columnState","columnStateFromProps","LinkedCellOverride","getEntityConfig","query","currentQuery","refineListData","startRouteTransition","admin","defaultColumns","setOptimisticColumnState","useOptimistic","contextRef","setColumns","newColumns","columns","toggleColumn","column","currentColumns","columnIndex","findIndex","col","accessor","newColumnState","map","active","moveColumn","args","fromIndex","toIndex","columnToMove","splice","setActiveColumns","forEach","colName","colIndex","c","undefined","slice","resetColumnsState","_jsx","value","current"],"sources":["../../../src/providers/TableColumns/index.tsx"],"sourcesContent":["'use client'\nimport { type Column } from 'payload'\nimport { transformColumnsToSearchParams } from 'payload/shared'\nimport React, { useCallback, useRef } from 'react'\n\nimport type { ITableColumns, TableColumnsProviderProps } from './types.js'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { TableColumnContext } from './context.js'\n\nexport { useTableColumns } from './context.js'\n\nexport const TableColumnsProvider: React.FC<TableColumnsProviderProps> = ({\n children,\n collectionSlug,\n columnState: columnStateFromProps,\n LinkedCellOverride,\n}) => {\n const { getEntityConfig } = useConfig()\n const { query: currentQuery, refineListData } = useListQuery()\n const { startRouteTransition } = useRouteTransition()\n\n const { admin: { defaultColumns } = {} } = getEntityConfig({\n collectionSlug,\n })\n\n const [columnState, setOptimisticColumnState] = React.useOptimistic(columnStateFromProps)\n\n const contextRef = useRef({} as ITableColumns)\n\n const setColumns = useCallback(\n async (newColumns: Column[]) => {\n await startRouteTransition(async () => {\n setOptimisticColumnState(newColumns)\n\n await refineListData({\n columns: transformColumnsToSearchParams(newColumns),\n })\n })\n },\n [refineListData, setOptimisticColumnState, startRouteTransition],\n )\n\n const toggleColumn = useCallback(\n async (column: string) => {\n const currentColumns = columnState || []\n const columnIndex = currentColumns.findIndex((col) => col.accessor === column)\n\n if (columnIndex === -1) {\n return\n }\n\n // Toggle the column's active state in place, preserving its position\n const newColumnState = currentColumns.map((col) => {\n if (col.accessor === column) {\n return { ...col, active: !col.active }\n }\n return col\n })\n\n await setColumns(newColumnState)\n },\n [columnState, setColumns],\n )\n\n const moveColumn = useCallback(\n async (args: { fromIndex: number; toIndex: number }) => {\n const { fromIndex, toIndex } = args\n const newColumnState = [...(columnState || [])]\n const [columnToMove] = newColumnState.splice(fromIndex, 1)\n newColumnState.splice(toIndex, 0, columnToMove)\n\n await setColumns(newColumnState)\n },\n [columnState, setColumns],\n )\n\n const setActiveColumns = useCallback(\n async (columns: string[]) => {\n const newColumnState = currentQuery.columns\n\n columns.forEach((colName) => {\n const colIndex = newColumnState.findIndex((c) => colName === c)\n\n // ensure the name does not begin with a `-` which denotes an inactive column\n if (colIndex !== undefined && newColumnState[colIndex][0] === '-') {\n newColumnState[colIndex] = colName.slice(1)\n }\n })\n\n await refineListData({ columns: newColumnState })\n },\n [currentQuery, refineListData],\n )\n\n const resetColumnsState = React.useCallback(async () => {\n await refineListData({ columns: defaultColumns || [] })\n }, [defaultColumns, refineListData])\n\n return (\n <TableColumnContext\n value={{\n columns: columnState,\n LinkedCellOverride,\n moveColumn,\n resetColumnsState,\n setActiveColumns,\n setColumns,\n toggleColumn,\n ...contextRef.current,\n }}\n >\n {children}\n </TableColumnContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useState","useConfig","useSearchParams","defaultTheme","initialContext","autoMode","highContrastMode","setHighContrastMode","setTheme","theme","Context","undefined","setCookie","cname","cvalue","exdays","d","Date","setTime","getTime","expires","toUTCString","document","cookie","detectTheme","cookieKey","fromCookie","window","split","find","row","startsWith","matchMedia","matches","documentElement","setAttribute","isAutoMode","detectHighContrastMode","isHighContrast","removeAttribute","isValidThemeParam","value","ThemeProvider","t0","$","children","initialHighContrastMode","themeOverride","outerContext","isScoped","config","preselectedTheme","admin","themeCookieKey","cookiePrefix","contrastCookieKey","themeParam","get","toLowerCase","setThemeState","setAutoMode","setHighContrastModeState","t1","themeToSet","options","scoped","resolvedTheme","t2","options_0","String","t3","t4","t5","t6","t7","detectedTheme","t8","t9","t10","t11","t12","_jsx","useTheme"],"sources":["../../../src/providers/Theme/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use, useCallback, useEffect, useState } from 'react'\n\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\nimport { defaultTheme, type Theme } from './shared.js'\n\nexport { defaultTheme, type Theme }\n\nexport type ThemeContext = {\n autoMode: boolean\n highContrastMode: boolean\n setHighContrastMode: (isHighContrast: boolean, options?: { scoped?: boolean }) => void\n setTheme: (theme: 'auto' | Theme, options?: { scoped?: boolean }) => void\n theme: Theme\n}\n\nconst initialContext: ThemeContext = {\n autoMode: true,\n highContrastMode: false,\n setHighContrastMode: () => null,\n setTheme: () => null,\n theme: 'light',\n}\n\nconst Context = createContext<ThemeContext | undefined>(undefined)\n\nfunction setCookie(cname: string, cvalue: string, exdays: number) {\n const d = new Date()\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000)\n const expires = 'expires=' + d.toUTCString()\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/'\n}\n\nconst detectTheme = (cookieKey: string): { isAutoMode: boolean; theme: Theme } => {\n const fromCookie = window.document.cookie\n .split('; ')\n .find((row) => row.startsWith(`${cookieKey}=`))\n ?.split('=')[1]\n\n const theme: Theme =\n fromCookie === 'light' || fromCookie === 'dark'\n ? fromCookie\n : window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n\n document.documentElement.setAttribute('data-theme', theme)\n\n return { isAutoMode: fromCookie !== 'light' && fromCookie !== 'dark', theme }\n}\n\nconst detectHighContrastMode = (cookieKey: string): boolean => {\n const fromCookie =\n window.document.cookie\n .split('; ')\n .find((row) => row.startsWith(`${cookieKey}=`))\n ?.split('=')[1] ?? null\n\n const isHighContrast =\n fromCookie === 'true'\n ? true\n : fromCookie === 'false'\n ? false\n : !!(window.matchMedia && window.matchMedia('(prefers-contrast: more)').matches)\n\n if (isHighContrast) {\n document.documentElement.setAttribute('data-enhanced-contrast', '')\n } else {\n document.documentElement.removeAttribute('data-enhanced-contrast')\n }\n\n return isHighContrast\n}\n\nconst isValidThemeParam = (value: null | string): value is 'auto' | Theme =>\n value === 'auto' || value === 'light' || value === 'dark'\n\n/**\n * Provides theme context to its children.\n *\n * At the root (no parent ThemeProvider): reads/writes cookies, responds to\n * OS preference, owns setTheme and setHighContrastMode.\n *\n * When nested inside another ThemeProvider (e.g. inside a Popup): acts as a\n * scoped visual the `theme` prop sets the local theme, but setThemeoverride\n * and setHighContrastMode bubble up through each level to the root provider so\n * mutations always affect the global user preference.\n *\n * The ThemeProvider also reads the `?theme=light|dark|auto` query parameter and\n * persists it to the theme cookie using the same mechanism as manual theme selection.\n */\nexport const ThemeProvider: React.FC<{\n children?: React.ReactNode\n highContrastMode?: boolean\n theme?: Theme\n}> = ({ children, highContrastMode: initialHighContrastMode, theme: themeOverride }) => {\n const outerContext = use(Context)\n const isScoped = outerContext !== undefined\n\n const { config } = useConfig()\n const preselectedTheme = config.admin.theme\n const themeCookieKey = `${config.cookiePrefix || 'payload'}-theme`\n const contrastCookieKey = `${config.cookiePrefix || 'payload'}-high-contrast-mode`\n\n const themeParam = useSearchParams().get('theme')?.toLowerCase()\n\n const [theme, setThemeState] = useState<Theme>(themeOverride ?? defaultTheme)\n const [autoMode, setAutoMode] = useState<boolean>(!isScoped)\n const [highContrastMode, setHighContrastModeState] = useState<boolean>(\n isScoped ? (outerContext.highContrastMode ?? false) : (initialHighContrastMode ?? false),\n )\n\n // Setters bubble up to the root provider by default. Pass { scoped: true }\n // to update only the local (scoped) theme without affecting global state.\n const setTheme = useCallback(\n (themeToSet: 'auto' | Theme, options?: { scoped?: boolean }) => {\n if (isScoped && !options?.scoped) {\n outerContext.setTheme(themeToSet, options)\n return\n }\n const resolvedTheme: Theme =\n themeToSet === 'auto'\n ? window.matchMedia?.('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n : themeToSet\n\n setThemeState(resolvedTheme)\n setAutoMode(themeToSet === 'auto')\n\n if (!isScoped) {\n setCookie(themeCookieKey, themeToSet, themeToSet === 'auto' ? -1 : 365)\n document.documentElement.setAttribute('data-theme', resolvedTheme)\n }\n },\n [isScoped, outerContext, themeCookieKey],\n )\n\n const setHighContrastMode = useCallback(\n (isHighContrast: boolean, options?: { scoped?: boolean }) => {\n if (isScoped && !options?.scoped) {\n outerContext.setHighContrastMode(isHighContrast, options)\n return\n }\n setHighContrastModeState(isHighContrast)\n if (!isScoped) {\n setCookie(contrastCookieKey, String(isHighContrast), 365)\n if (isHighContrast) {\n document.documentElement.setAttribute('data-enhanced-contrast', '')\n } else {\n document.documentElement.removeAttribute('data-enhanced-contrast')\n }\n }\n },\n [isScoped, outerContext, contrastCookieKey],\n )\n\n // Keep highContrastMode in sync with the outer provider when scoped.\n useEffect(() => {\n if (isScoped) {\n setHighContrastModeState(outerContext.highContrastMode)\n }\n }, [isScoped, outerContext?.highContrastMode])\n\n // Resolve the root theme: a valid `?theme` param wins (applied via setTheme so\n // it persists to the theme cookie exactly like a manual selection; otherwise\n // fall back to the cookie or OS preference.\n useEffect(() => {\n if (isScoped || preselectedTheme !== 'all') {\n return\n }\n if (isValidThemeParam(themeParam)) {\n setTheme(themeParam)\n return\n }\n const { isAutoMode, theme: detectedTheme } = detectTheme(themeCookieKey)\n setThemeState(detectedTheme)\n setAutoMode(isAutoMode)\n }, [isScoped, preselectedTheme, themeCookieKey, themeParam, setTheme])\n\n useEffect(() => {\n if (isScoped) {\n return\n }\n setHighContrastModeState(detectHighContrastMode(contrastCookieKey))\n }, [isScoped, contrastCookieKey])\n\n return (\n <Context\n value={{\n autoMode: isScoped ? outerContext.autoMode : autoMode,\n highContrastMode,\n setHighContrastMode,\n setTheme,\n theme: isScoped ? outerContext.theme : theme,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport const useTheme = (): ThemeContext => use(Context) ?? initialContext\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useState","useConfig","useSearchParams","defaultTheme","initialContext","autoMode","highContrastMode","setHighContrastMode","setTheme","theme","Context","undefined","setCookie","cname","cvalue","exdays","d","Date","setTime","getTime","expires","toUTCString","document","cookie","detectTheme","cookieKey","fromCookie","window","split","find","row","startsWith","matchMedia","matches","documentElement","setAttribute","isAutoMode","detectHighContrastMode","isHighContrast","removeAttribute","isValidThemeParam","value","ThemeProvider","t0","$","children","initialHighContrastMode","themeOverride","outerContext","isScoped","config","preselectedTheme","admin","themeCookieKey","cookiePrefix","contrastCookieKey","themeParam","get","toLowerCase","setThemeState","setAutoMode","setHighContrastModeState","t1","themeToSet","options","scoped","resolvedTheme","t2","options_0","String","t3","t4","t5","t6","t7","detectedTheme","t8","t9","t10","t11","t12","_jsx","useTheme"],"sources":["../../../src/providers/Theme/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use, useCallback, useEffect, useState } from 'react'\n\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\nimport { defaultTheme, type Theme } from './shared.js'\n\nexport { defaultTheme, type Theme }\n\nexport type ThemeContext = {\n autoMode: boolean\n highContrastMode: boolean\n setHighContrastMode: (isHighContrast: boolean, options?: { scoped?: boolean }) => void\n setTheme: (theme: 'auto' | Theme, options?: { scoped?: boolean }) => void\n theme: Theme\n}\n\nconst initialContext: ThemeContext = {\n autoMode: true,\n highContrastMode: false,\n setHighContrastMode: () => null,\n setTheme: () => null,\n theme: 'light',\n}\n\nconst Context = createContext<ThemeContext | undefined>(undefined)\n\nfunction setCookie(cname: string, cvalue: string, exdays: number) {\n const d = new Date()\n d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000)\n const expires = 'expires=' + d.toUTCString()\n document.cookie = cname + '=' + cvalue + ';' + expires + ';path=/'\n}\n\nconst detectTheme = (cookieKey: string): { isAutoMode: boolean; theme: Theme } => {\n const fromCookie = window.document.cookie\n .split('; ')\n .find((row) => row.startsWith(`${cookieKey}=`))\n ?.split('=')[1]\n\n const theme: Theme =\n fromCookie === 'light' || fromCookie === 'dark'\n ? fromCookie\n : window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n\n document.documentElement.setAttribute('data-theme', theme)\n\n return { isAutoMode: fromCookie !== 'light' && fromCookie !== 'dark', theme }\n}\n\nconst detectHighContrastMode = (cookieKey: string): boolean => {\n const fromCookie =\n window.document.cookie\n .split('; ')\n .find((row) => row.startsWith(`${cookieKey}=`))\n ?.split('=')[1] ?? null\n\n const isHighContrast =\n fromCookie === 'true'\n ? true\n : fromCookie === 'false'\n ? false\n : !!(window.matchMedia && window.matchMedia('(prefers-contrast: more)').matches)\n\n if (isHighContrast) {\n document.documentElement.setAttribute('data-enhanced-contrast', '')\n } else {\n document.documentElement.removeAttribute('data-enhanced-contrast')\n }\n\n return isHighContrast\n}\n\nconst isValidThemeParam = (value: null | string): value is 'auto' | Theme =>\n value === 'auto' || value === 'light' || value === 'dark'\n\n/**\n * Provides theme context to its children.\n *\n * At the root (no parent ThemeProvider): reads/writes cookies, responds to\n * OS preference, owns setTheme and setHighContrastMode.\n *\n * When nested inside another ThemeProvider (e.g. inside a Popup): acts as a\n * scoped visual the `theme` prop sets the local theme, but setThemeoverride\n * and setHighContrastMode bubble up through each level to the root provider so\n * mutations always affect the global user preference.\n *\n * The ThemeProvider also reads the `?theme=light|dark|auto` query parameter and\n * persists it to the theme cookie using the same mechanism as manual theme selection.\n */\nexport const ThemeProvider: React.FC<{\n children?: React.ReactNode\n highContrastMode?: boolean\n theme?: Theme\n}> = ({ children, highContrastMode: initialHighContrastMode, theme: themeOverride }) => {\n const outerContext = use(Context)\n const isScoped = outerContext !== undefined\n\n const { config } = useConfig()\n const preselectedTheme = config.admin.theme\n const themeCookieKey = `${config.cookiePrefix || 'payload'}-theme`\n const contrastCookieKey = `${config.cookiePrefix || 'payload'}-high-contrast-mode`\n\n const themeParam = useSearchParams().get('theme')?.toLowerCase()\n\n const [theme, setThemeState] = useState<Theme>(themeOverride ?? defaultTheme)\n const [autoMode, setAutoMode] = useState<boolean>(!isScoped)\n const [highContrastMode, setHighContrastModeState] = useState<boolean>(\n isScoped ? (outerContext.highContrastMode ?? false) : (initialHighContrastMode ?? false),\n )\n\n // Setters bubble up to the root provider by default. Pass { scoped: true }\n // to update only the local (scoped) theme without affecting global state.\n const setTheme = useCallback(\n (themeToSet: 'auto' | Theme, options?: { scoped?: boolean }) => {\n if (isScoped && !options?.scoped) {\n outerContext.setTheme(themeToSet, options)\n return\n }\n const resolvedTheme: Theme =\n themeToSet === 'auto'\n ? window.matchMedia?.('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n : themeToSet\n\n setThemeState(resolvedTheme)\n setAutoMode(themeToSet === 'auto')\n\n if (!isScoped) {\n setCookie(themeCookieKey, themeToSet, themeToSet === 'auto' ? -1 : 365)\n document.documentElement.setAttribute('data-theme', resolvedTheme)\n }\n },\n [isScoped, outerContext, themeCookieKey],\n )\n\n const setHighContrastMode = useCallback(\n (isHighContrast: boolean, options?: { scoped?: boolean }) => {\n if (isScoped && !options?.scoped) {\n outerContext.setHighContrastMode(isHighContrast, options)\n return\n }\n setHighContrastModeState(isHighContrast)\n if (!isScoped) {\n setCookie(contrastCookieKey, String(isHighContrast), 365)\n if (isHighContrast) {\n document.documentElement.setAttribute('data-enhanced-contrast', '')\n } else {\n document.documentElement.removeAttribute('data-enhanced-contrast')\n }\n }\n },\n [isScoped, outerContext, contrastCookieKey],\n )\n\n // Keep highContrastMode in sync with the outer provider when scoped.\n useEffect(() => {\n if (isScoped) {\n setHighContrastModeState(outerContext.highContrastMode)\n }\n }, [isScoped, outerContext?.highContrastMode])\n\n // Resolve the root theme: a valid `?theme` param wins (applied via setTheme so\n // it persists to the theme cookie exactly like a manual selection; otherwise\n // fall back to the cookie or OS preference.\n useEffect(() => {\n if (isScoped || preselectedTheme !== 'all') {\n return\n }\n if (isValidThemeParam(themeParam)) {\n setTheme(themeParam)\n return\n }\n const { isAutoMode, theme: detectedTheme } = detectTheme(themeCookieKey)\n setThemeState(detectedTheme)\n setAutoMode(isAutoMode)\n }, [isScoped, preselectedTheme, themeCookieKey, themeParam, setTheme])\n\n useEffect(() => {\n if (isScoped) {\n return\n }\n setHighContrastModeState(detectHighContrastMode(contrastCookieKey))\n }, [isScoped, contrastCookieKey])\n\n return (\n <Context\n value={{\n autoMode: isScoped ? outerContext.autoMode : autoMode,\n highContrastMode,\n setHighContrastMode,\n setTheme,\n theme: isScoped ? outerContext.theme : theme,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport const useTheme = (): ThemeContext => use(Context) ?? initialContext\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useLayoutEffect","useState","createPortal","Toaster","CheckIcon","InfoIcon","WarningIcon","XIcon","getActiveModal","ToastContainer","t0","$","config","admin","t1","toast","t2","undefined","duration","expand","limit","position","modalState","portalContainer","setPortalContainer","setCloseIconRef","_temp","t3","t4","Symbol","for","container","document","createElement","body","appendChild","remove","t5","t6","updateContainer","activeModal","destination","parentElement","observer","MutationObserver","observe","attributeFilter","attributes","childList","subtree","disconnect","_jsx","className","closeButton","dir","gap","icons","close","ref","style","display","children","size","info","success","offset","bottom","right","width","theme","toastOptions","classNames","content","error","icon","title","warning","unstyled","visibleToasts","element","closest","setAttribute"],"sources":["../../../src/providers/ToastContainer/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useLayoutEffect, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { Toaster } from 'sonner'\n\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { InfoIcon } from '../../icons/Info/index.js'\nimport { WarningIcon } from '../../icons/Warning/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { getActiveModal } from '../../utilities/getActiveModal.js'\nimport './index.css'\n\nexport const ToastContainer: React.FC<{\n config: ClientConfig\n}> = ({ config }) => {\n const { admin: { toast: { duration, expand, limit, position } = {} } = {} } = config\n\n const { modalState } = useModal()\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null)\n const setCloseIconRef = useCallback((element: HTMLSpanElement | null) => {\n element?.closest('[data-close-button]')?.setAttribute('aria-live', 'off')\n }, [])\n\n useLayoutEffect(() => {\n const container = document.createElement('div')\n\n document.body.appendChild(container)\n setPortalContainer(container)\n return () => container.remove()\n }, [])\n\n useLayoutEffect(() => {\n if (!portalContainer) {\n return\n }\n const updateContainer = () => {\n const activeModal = getActiveModal({ modalState })\n const destination = activeModal ?? document.body\n\n // Move the portal host, preserving Sonner's mounted state and pending notifications.\n if (portalContainer.parentElement !== destination) {\n destination.appendChild(portalContainer)\n }\n }\n\n updateContainer()\n const observer = new MutationObserver(updateContainer)\n\n observer.observe(document.body, {\n attributeFilter: ['open'],\n attributes: true,\n childList: true,\n subtree: true,\n })\n return () => observer.disconnect()\n }, [modalState, portalContainer])\n\n if (!portalContainer) {\n return null\n }\n\n return createPortal(\n <Toaster\n className=\"payload-toast-container\"\n closeButton\n // @ts-expect-error - Sonner's `dir` prop is typed as `Direction`, but passing \"undefined\" opts out of RTL/LTR handling\n dir=\"undefined\"\n duration={duration ?? 6000}\n expand={expand ?? false}\n gap={8}\n icons={{\n close: (\n <span aria-hidden=\"true\" ref={setCloseIconRef} style={{ display: 'contents' }}>\n <XIcon size={24} />\n </span>\n ),\n error: <WarningIcon />,\n info: <InfoIcon />,\n success: <CheckIcon size={24} />,\n warning: <WarningIcon />,\n }}\n offset={{\n bottom: 'var(--spacer-6)',\n right: 'var(--spacer-6)',\n }}\n position={position ?? 'bottom-right'}\n style={{\n width: '280px',\n }}\n theme=\"dark\"\n toastOptions={{\n classNames: {\n closeButton: 'payload-toast-close-button',\n content: 'toast-content',\n error: 'toast-error',\n icon: 'toast-icon',\n info: 'toast-info',\n success: 'toast-success',\n title: 'toast-title',\n toast: 'payload-toast-item',\n warning: 'toast-warning',\n },\n unstyled: true,\n }}\n visibleToasts={limit ?? 5}\n />,\n portalContainer,\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","React","useCallback","useLayoutEffect","useState","createPortal","Toaster","CheckIcon","InfoIcon","WarningIcon","XIcon","getActiveModal","ToastContainer","t0","$","config","admin","t1","toast","t2","undefined","duration","expand","limit","position","modalState","portalContainer","setPortalContainer","setCloseIconRef","_temp","t3","t4","Symbol","for","container","document","createElement","body","appendChild","remove","t5","t6","updateContainer","activeModal","destination","parentElement","observer","MutationObserver","observe","attributeFilter","attributes","childList","subtree","disconnect","_jsx","className","closeButton","dir","gap","icons","close","ref","style","display","children","size","info","success","offset","bottom","right","width","theme","toastOptions","classNames","content","error","icon","title","warning","unstyled","visibleToasts","element","closest","setAttribute"],"sources":["../../../src/providers/ToastContainer/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useLayoutEffect, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { Toaster } from 'sonner'\n\nimport { CheckIcon } from '../../icons/Check/index.js'\nimport { InfoIcon } from '../../icons/Info/index.js'\nimport { WarningIcon } from '../../icons/Warning/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { getActiveModal } from '../../utilities/getActiveModal.js'\nimport './index.css'\n\nexport const ToastContainer: React.FC<{\n config: ClientConfig\n}> = ({ config }) => {\n const { admin: { toast: { duration, expand, limit, position } = {} } = {} } = config\n\n const { modalState } = useModal()\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null)\n const setCloseIconRef = useCallback((element: HTMLSpanElement | null) => {\n element?.closest('[data-close-button]')?.setAttribute('aria-live', 'off')\n }, [])\n\n useLayoutEffect(() => {\n const container = document.createElement('div')\n\n document.body.appendChild(container)\n setPortalContainer(container)\n return () => container.remove()\n }, [])\n\n useLayoutEffect(() => {\n if (!portalContainer) {\n return\n }\n const updateContainer = () => {\n const activeModal = getActiveModal({ modalState })\n const destination = activeModal ?? document.body\n\n // Move the portal host, preserving Sonner's mounted state and pending notifications.\n if (portalContainer.parentElement !== destination) {\n destination.appendChild(portalContainer)\n }\n }\n\n updateContainer()\n const observer = new MutationObserver(updateContainer)\n\n observer.observe(document.body, {\n attributeFilter: ['open'],\n attributes: true,\n childList: true,\n subtree: true,\n })\n return () => observer.disconnect()\n }, [modalState, portalContainer])\n\n if (!portalContainer) {\n return null\n }\n\n return createPortal(\n <Toaster\n className=\"payload-toast-container\"\n closeButton\n // @ts-expect-error - Sonner's `dir` prop is typed as `Direction`, but passing \"undefined\" opts out of RTL/LTR handling\n dir=\"undefined\"\n duration={duration ?? 6000}\n expand={expand ?? false}\n gap={8}\n icons={{\n close: (\n <span aria-hidden=\"true\" ref={setCloseIconRef} style={{ display: 'contents' }}>\n <XIcon size={24} />\n </span>\n ),\n error: <WarningIcon />,\n info: <InfoIcon />,\n success: <CheckIcon size={24} />,\n warning: <WarningIcon />,\n }}\n offset={{\n bottom: 'var(--spacer-6)',\n right: 'var(--spacer-6)',\n }}\n position={position ?? 'bottom-right'}\n style={{\n width: '280px',\n }}\n theme=\"dark\"\n toastOptions={{\n classNames: {\n closeButton: 'payload-toast-close-button',\n content: 'toast-content',\n error: 'toast-error',\n icon: 'toast-icon',\n info: 'toast-info',\n success: 'toast-success',\n title: 'toast-title',\n toast: 'payload-toast-item',\n warning: 'toast-warning',\n },\n unstyled: true,\n }}\n visibleToasts={limit ?? 5}\n />,\n portalContainer,\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","importDateFNSLocale","t","enUS","React","createContext","use","useEffect","useState","useRouter","useServerFunctions","Context","i18n","dateFNS","dateFNSKey","fallbackLanguage","language","key","translations","languageOptions","undefined","switchLanguage","TranslationProvider","t0","$","children","fallbackLang","router","switchLanguageServerFn","setDateFNS","t1","vars","nextT","t2","lang","refresh","t3","error","console","t4","isCancelled","loadDateFNS","imported","t5","_jsx","value","useTranslation"],"sources":["../../../src/providers/Translation/index.tsx"],"sourcesContent":["'use client'\nimport type {\n AcceptedLanguages,\n ClientTranslationKeys,\n ClientTranslationsObject,\n I18nClient,\n I18nOptions,\n Language,\n TFunction,\n} from '@payloadcms/translations'\nimport type { Locale } from 'date-fns'\nimport type { LanguageOptions } from 'payload'\n\nimport { importDateFNSLocale, t } from '@payloadcms/translations'\nimport { enUS } from 'date-fns/locale/en-US'\nimport React, { createContext, use, useEffect, useState } from 'react'\n\nimport { useRouter } from '../RouterAdapter/index.js'\nimport { useServerFunctions } from '../ServerFunctions/index.js'\n\ntype ContextType<\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n> = {\n i18n: [TAdditionalClientTranslationKeys] extends [never]\n ? I18nClient\n : TAdditionalTranslations extends object\n ? I18nClient<TAdditionalTranslations, TAdditionalClientTranslationKeys>\n : I18nClient<ClientTranslationsObject, TAdditionalClientTranslationKeys>\n languageOptions: LanguageOptions\n switchLanguage?: (lang: AcceptedLanguages) => Promise<void>\n t: TFunction<ClientTranslationKeys | Extract<TAdditionalClientTranslationKeys, string>>\n}\n\nconst Context = createContext<ContextType<any, any>>({\n // Use `any` here to be replaced later with a more specific type when used\n i18n: {\n dateFNS: enUS,\n dateFNSKey: 'en-US',\n fallbackLanguage: 'en',\n language: 'en',\n t: (key) => key,\n translations: {} as any,\n },\n languageOptions: undefined,\n switchLanguage: undefined,\n t: (key) => undefined,\n})\n\ntype Props = {\n children: React.ReactNode\n dateFNSKey: Language['dateFNSKey']\n fallbackLang: I18nOptions['fallbackLanguage']\n language: string\n languageOptions: LanguageOptions\n translations: I18nClient['translations']\n}\n\nexport const TranslationProvider: React.FC<Props> = ({\n children,\n dateFNSKey,\n fallbackLang,\n language,\n languageOptions,\n translations,\n}) => {\n const router = useRouter()\n const { switchLanguage: switchLanguageServerFn } = useServerFunctions()\n const [dateFNS, setDateFNS] = useState<Locale>()\n\n const nextT: ContextType['t'] = React.useCallback(\n (key, vars): string =>\n t({\n key,\n translations,\n vars,\n }),\n [translations],\n )\n\n const switchLanguage = React.useCallback(\n async (lang: string) => {\n try {\n await switchLanguageServerFn(lang)\n router.refresh()\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Error loading language: \"${lang}\"`, error)\n }\n },\n [switchLanguageServerFn, router],\n )\n\n useEffect(() => {\n // en-US is date-fns' default locale, so it's already part of the bundle\n if (dateFNSKey === 'en-US') {\n setDateFNS(enUS)\n return\n }\n\n let isCancelled = false\n const loadDateFNS = async () => {\n const imported = await importDateFNSLocale(dateFNSKey)\n\n if (!isCancelled) {\n setDateFNS(imported)\n }\n }\n\n void loadDateFNS()\n\n return () => {\n isCancelled = true\n }\n }, [dateFNSKey])\n\n return (\n <Context\n value={{\n i18n: {\n dateFNS,\n dateFNSKey,\n fallbackLanguage: fallbackLang,\n language,\n t: nextT,\n translations,\n },\n languageOptions,\n switchLanguage,\n t: nextT,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport const useTranslation = <\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n>() => use<ContextType<TAdditionalTranslations, TAdditionalClientTranslationKeys>>(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","importDateFNSLocale","t","enUS","React","createContext","use","useEffect","useState","useRouter","useServerFunctions","Context","i18n","dateFNS","dateFNSKey","fallbackLanguage","language","key","translations","languageOptions","undefined","switchLanguage","TranslationProvider","t0","$","children","fallbackLang","router","switchLanguageServerFn","setDateFNS","t1","vars","nextT","t2","lang","refresh","t3","error","console","t4","isCancelled","loadDateFNS","imported","t5","_jsx","value","useTranslation"],"sources":["../../../src/providers/Translation/index.tsx"],"sourcesContent":["'use client'\nimport type {\n AcceptedLanguages,\n ClientTranslationKeys,\n ClientTranslationsObject,\n I18nClient,\n I18nOptions,\n Language,\n TFunction,\n} from '@payloadcms/translations'\nimport type { Locale } from 'date-fns'\nimport type { LanguageOptions } from 'payload'\n\nimport { importDateFNSLocale, t } from '@payloadcms/translations'\nimport { enUS } from 'date-fns/locale/en-US'\nimport React, { createContext, use, useEffect, useState } from 'react'\n\nimport { useRouter } from '../RouterAdapter/index.js'\nimport { useServerFunctions } from '../ServerFunctions/index.js'\n\ntype ContextType<\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n> = {\n i18n: [TAdditionalClientTranslationKeys] extends [never]\n ? I18nClient\n : TAdditionalTranslations extends object\n ? I18nClient<TAdditionalTranslations, TAdditionalClientTranslationKeys>\n : I18nClient<ClientTranslationsObject, TAdditionalClientTranslationKeys>\n languageOptions: LanguageOptions\n switchLanguage?: (lang: AcceptedLanguages) => Promise<void>\n t: TFunction<ClientTranslationKeys | Extract<TAdditionalClientTranslationKeys, string>>\n}\n\nconst Context = createContext<ContextType<any, any>>({\n // Use `any` here to be replaced later with a more specific type when used\n i18n: {\n dateFNS: enUS,\n dateFNSKey: 'en-US',\n fallbackLanguage: 'en',\n language: 'en',\n t: (key) => key,\n translations: {} as any,\n },\n languageOptions: undefined,\n switchLanguage: undefined,\n t: (key) => undefined,\n})\n\ntype Props = {\n children: React.ReactNode\n dateFNSKey: Language['dateFNSKey']\n fallbackLang: I18nOptions['fallbackLanguage']\n language: string\n languageOptions: LanguageOptions\n translations: I18nClient['translations']\n}\n\nexport const TranslationProvider: React.FC<Props> = ({\n children,\n dateFNSKey,\n fallbackLang,\n language,\n languageOptions,\n translations,\n}) => {\n const router = useRouter()\n const { switchLanguage: switchLanguageServerFn } = useServerFunctions()\n const [dateFNS, setDateFNS] = useState<Locale>()\n\n const nextT: ContextType['t'] = React.useCallback(\n (key, vars): string =>\n t({\n key,\n translations,\n vars,\n }),\n [translations],\n )\n\n const switchLanguage = React.useCallback(\n async (lang: string) => {\n try {\n await switchLanguageServerFn(lang)\n router.refresh()\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(`Error loading language: \"${lang}\"`, error)\n }\n },\n [switchLanguageServerFn, router],\n )\n\n useEffect(() => {\n // en-US is date-fns' default locale, so it's already part of the bundle\n if (dateFNSKey === 'en-US') {\n setDateFNS(enUS)\n return\n }\n\n let isCancelled = false\n const loadDateFNS = async () => {\n const imported = await importDateFNSLocale(dateFNSKey)\n\n if (!isCancelled) {\n setDateFNS(imported)\n }\n }\n\n void loadDateFNS()\n\n return () => {\n isCancelled = true\n }\n }, [dateFNSKey])\n\n return (\n <Context\n value={{\n i18n: {\n dateFNS,\n dateFNSKey,\n fallbackLanguage: fallbackLang,\n language,\n t: nextT,\n translations,\n },\n languageOptions,\n switchLanguage,\n t: nextT,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport const useTranslation = <\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n>() => use<ContextType<TAdditionalTranslations, TAdditionalClientTranslationKeys>>(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useState","Context","undefined","UploadControlsProvider","t0","$","children","uploadControlFileName","setUploadControlFileName","uploadControlFileUrl","setUploadControlFileUrl","uploadControlFile","setUploadControlFile","t1","_jsx","value","useUploadControls","context","Error"],"sources":["../../../src/providers/UploadControls/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use, useState } from 'react'\n\nexport type UploadControlsContext = {\n setUploadControlFile: (file: File) => void\n setUploadControlFileName: (name: string) => void\n setUploadControlFileUrl: (url: string) => void\n uploadControlFile: File | null\n uploadControlFileName: null | string\n uploadControlFileUrl: string\n}\n\nconst Context = createContext<UploadControlsContext>(undefined)\n\nexport const UploadControlsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [uploadControlFileName, setUploadControlFileName] = useState<null | string>(null)\n const [uploadControlFileUrl, setUploadControlFileUrl] = useState<string>('')\n const [uploadControlFile, setUploadControlFile] = useState<File | null>(null)\n\n return (\n <Context\n value={{\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport const useUploadControls = (): UploadControlsContext => {\n const context = use(Context)\n if (!context) {\n throw new Error('useUploadControls must be used within an UploadControlsProvider')\n }\n return context\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,QAAQ,QAAQ;AAWpD,MAAMC,OAAA,gBAAUH,aAAA,CAAqCI,SAAA;AAErD,OAAO,MAAMC,sBAAA,GAAkEC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU;EAAA,IAAAF,EAAY;EAC1F,OAAAG,qBAAA,EAAAC,wBAAA,IAA0DR,QAAA,KAAwB;EAClF,OAAAS,oBAAA,EAAAC,uBAAA,IAAwDV,QAAA,CAAiB;EACzE,OAAAW,iBAAA,EAAAC,oBAAA,IAAkDZ,QAAA,KAAsB;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAM,iBAAA,IAAAN,CAAA,QAAAE,qBAAA,IAAAF,CAAA,QAAAI,oBAAA;IAGtEI,EAAA,GAAAC,IAAA,CAAAb,OAAA;MAAAc,KAAA;QAAAH,oBAAA;QAAAJ,wBAAA;QAAAE,uBAAA;QAAAC,iBAAA;QAAAJ,qBAAA;QAAAE;MAAA;MAAAH;IAAA,C;;;;;;;;;SAAAO,E;CAaJ;AAEA,OAAO,MAAMG,iBAAA,GAAoBA,CAAA;EAC/B,MAAMC,OAAA,GAAUlB,GAAA,CAAIE,OAAA;EACpB,IAAI,CAACgB,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EACA,OAAOD,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useState","Context","undefined","UploadControlsProvider","t0","$","children","uploadControlFileName","setUploadControlFileName","uploadControlFileUrl","setUploadControlFileUrl","uploadControlFile","setUploadControlFile","t1","_jsx","value","useUploadControls","context","Error"],"sources":["../../../src/providers/UploadControls/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use, useState } from 'react'\n\nexport type UploadControlsContext = {\n setUploadControlFile: (file: File) => void\n setUploadControlFileName: (name: string) => void\n setUploadControlFileUrl: (url: string) => void\n uploadControlFile: File | null\n uploadControlFileName: null | string\n uploadControlFileUrl: string\n}\n\nconst Context = createContext<UploadControlsContext>(undefined)\n\nexport const UploadControlsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [uploadControlFileName, setUploadControlFileName] = useState<null | string>(null)\n const [uploadControlFileUrl, setUploadControlFileUrl] = useState<string>('')\n const [uploadControlFile, setUploadControlFile] = useState<File | null>(null)\n\n return (\n <Context\n value={{\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport const useUploadControls = (): UploadControlsContext => {\n const context = use(Context)\n if (!context) {\n throw new Error('useUploadControls must be used within an UploadControlsProvider')\n }\n return context\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,QAAQ,QAAQ;AAWpD,MAAMC,OAAA,gBAAUH,aAAA,CAAqCI,SAAA;AAErD,OAAO,MAAMC,sBAAA,GAAkEC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU;EAAA,IAAAF,EAAY;EAC1F,OAAAG,qBAAA,EAAAC,wBAAA,IAA0DR,QAAA,CAAwB;EAClF,OAAAS,oBAAA,EAAAC,uBAAA,IAAwDV,QAAA,CAAiB;EACzE,OAAAW,iBAAA,EAAAC,oBAAA,IAAkDZ,QAAA,CAAsB;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAM,iBAAA,IAAAN,CAAA,QAAAE,qBAAA,IAAAF,CAAA,QAAAI,oBAAA;IAGtEI,EAAA,GAAAC,IAAA,CAACb,OAAA;MAAAc,KAAA,EACQ;QAAAH,oBAAA;QAAAJ,wBAAA;QAAAE,uBAAA;QAAAC,iBAAA;QAAAJ,qBAAA;QAAAE;MAOP;MAAAH;;;;;;;;;;SARFO,E;CAaJ;AAEA,OAAO,MAAMG,iBAAA,GAAoBA,CAAA;EAC/B,MAAMC,OAAA,GAAUlB,GAAA,CAAIE,OAAA;EACpB,IAAI,CAACgB,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EACA,OAAOD,OAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","Context","createContext","getUploadEdits","undefined","resetUploadEdits","updateUploadEdits","uploadEdits","UploadEditsProvider","t0","$","children","initialUploadEdits","t1","setUploadEdits","useState","t2","Symbol","for","t3","edits","prevEdits","t4","t5","_jsx","value","useUploadEdits","use"],"sources":["../../../src/providers/UploadEdits/index.tsx"],"sourcesContent":["'use client'\nimport type { UploadEdits } from 'payload'\n\nimport React from 'react'\n\nexport type UploadEditsProviderProps = {\n children: React.ReactNode\n initialUploadEdits?: UploadEdits\n}\nexport type UploadEditsContext = {\n getUploadEdits: () => UploadEdits\n resetUploadEdits: () => void\n updateUploadEdits: (edits: UploadEdits) => void\n uploadEdits: UploadEdits\n}\n\nconst Context = React.createContext<UploadEditsContext>({\n getUploadEdits: () => undefined,\n resetUploadEdits: undefined,\n updateUploadEdits: undefined,\n uploadEdits: undefined,\n})\n\nexport const UploadEditsProvider = ({ children, initialUploadEdits }: UploadEditsProviderProps) => {\n const [uploadEdits, setUploadEdits] = React.useState<UploadEdits>(initialUploadEdits || {})\n\n const resetUploadEdits = () => {\n setUploadEdits({})\n }\n\n const updateUploadEdits = (edits: UploadEdits) => {\n setUploadEdits((prevEdits) => ({\n ...(prevEdits || {}),\n ...(edits || {}),\n }))\n }\n\n const getUploadEdits = () => uploadEdits\n\n return (\n <Context value={{ getUploadEdits, resetUploadEdits, updateUploadEdits, uploadEdits }}>\n {children}\n </Context>\n )\n}\n\nexport const useUploadEdits = (): UploadEditsContext => React.use(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAalB,MAAMC,OAAA,gBAAUD,KAAA,CAAME,aAAa,CAAqB;EACtDC,cAAA,EAAgBA,CAAA,KAAMC,SAAA;EACtBC,gBAAA,EAAkBD,SAAA;EAClBE,iBAAA,EAAmBF,SAAA;EACnBG,WAAA,EAAaH;AACf;AAEA,OAAO,MAAMI,mBAAA,GAAsBC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,QAAA;IAAAC;EAAA,IAAAH,EAA0D;EAAA,IAAAI,EAAA;EAAA,IAAAH,CAAA,QAAAE,kBAAA;IAC1BC,EAAA,GAAAD,kBAAA,MAAuB;IAAAF,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAzF,OAAAH,WAAA,EAAAO,cAAA,IAAsCd,KAAA,CAAAe,QAAA,CAA4BF,EAAuB;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAEhEF,EAAA,GAAAA,CAAA;MACvBF,cAAA,GAAgB;IAAA;IAClBJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAFA,MAAAL,gBAAA,GAAyBW,EAEzB;EAAA,IAAAG,EAAA;EAAA,IAAAT,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAE0BC,EAAA,GAAAC,KAAA;MACxBN,cAAA,CAAAO,SAAA;QAAA,IACMA,SAAA,MAAe;QAAA,IACfD,KAAA,MAAW;MAAA,EACjB;IAAA;IACFV,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EALA,MAAAJ,iBAAA,GAA0Ba,EAK1B;EAAA,IAAAG,EAAA;EAAA,IAAAZ,CAAA,QAAAH,WAAA;IAEuBe,EAAA,GAAAA,CAAA,KAAMf,WAAA;IAAAG,CAAA,MAAAH,WAAA;IAAAG,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAA7B,MAAAP,cAAA,GAAuBmB,EAAM;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAP,cAAA,IAAAO,CAAA,QAAAH,WAAA;IAG3BgB,EAAA,GAAAC,IAAA,CAAAvB,OAAA;MAAAwB,KAAA;QAAAtB,cAAA;QAAAE,gBAAA;QAAAC,iBAAA;QAAAC;MAAA;MAAAI;IAAA,C;;;;;;;;SAAAY,E;CAIJ;AAEA,OAAO,MAAMG,cAAA,GAAiBA,CAAA,KAA0B1B,KAAA,CAAM2B,GAAG,CAAC1B,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Context","createContext","getUploadEdits","undefined","resetUploadEdits","updateUploadEdits","uploadEdits","UploadEditsProvider","t0","$","children","initialUploadEdits","t1","setUploadEdits","useState","t2","Symbol","for","t3","edits","prevEdits","t4","t5","_jsx","value","useUploadEdits","use"],"sources":["../../../src/providers/UploadEdits/index.tsx"],"sourcesContent":["'use client'\nimport type { UploadEdits } from 'payload'\n\nimport React from 'react'\n\nexport type UploadEditsProviderProps = {\n children: React.ReactNode\n initialUploadEdits?: UploadEdits\n}\nexport type UploadEditsContext = {\n getUploadEdits: () => UploadEdits\n resetUploadEdits: () => void\n updateUploadEdits: (edits: UploadEdits) => void\n uploadEdits: UploadEdits\n}\n\nconst Context = React.createContext<UploadEditsContext>({\n getUploadEdits: () => undefined,\n resetUploadEdits: undefined,\n updateUploadEdits: undefined,\n uploadEdits: undefined,\n})\n\nexport const UploadEditsProvider = ({ children, initialUploadEdits }: UploadEditsProviderProps) => {\n const [uploadEdits, setUploadEdits] = React.useState<UploadEdits>(initialUploadEdits || {})\n\n const resetUploadEdits = () => {\n setUploadEdits({})\n }\n\n const updateUploadEdits = (edits: UploadEdits) => {\n setUploadEdits((prevEdits) => ({\n ...(prevEdits || {}),\n ...(edits || {}),\n }))\n }\n\n const getUploadEdits = () => uploadEdits\n\n return (\n <Context value={{ getUploadEdits, resetUploadEdits, updateUploadEdits, uploadEdits }}>\n {children}\n </Context>\n )\n}\n\nexport const useUploadEdits = (): UploadEditsContext => React.use(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAalB,MAAMC,OAAA,gBAAUD,KAAA,CAAME,aAAa,CAAqB;EACtDC,cAAA,EAAgBA,CAAA,KAAMC,SAAA;EACtBC,gBAAA,EAAkBD,SAAA;EAClBE,iBAAA,EAAmBF,SAAA;EACnBG,WAAA,EAAaH;AACf;AAEA,OAAO,MAAMI,mBAAA,GAAsBC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,QAAA;IAAAC;EAAA,IAAAH,EAA0D;EAAA,IAAAI,EAAA;EAAA,IAAAH,CAAA,QAAAE,kBAAA;IAC1BC,EAAA,GAAAD,kBAAuB,IAAvB,CAAuB;IAAAF,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAzF,OAAAH,WAAA,EAAAO,cAAA,IAAsCd,KAAA,CAAAe,QAAc,CAAcF,EAAuB;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAEhEF,EAAA,GAAAA,CAAA;MACvBF,cAAA,CAAe,CAAC;IAAA,CAClB;IAAAJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAFA,MAAAL,gBAAA,GAAyBW,EAEzB;EAAA,IAAAG,EAAA;EAAA,IAAAT,CAAA,QAAAO,MAAA,CAAAC,GAAA;IAE0BC,EAAA,GAAAC,KAAA;MACxBN,cAAA,CAAeO,SAAA,KAAgB;QAAA,IACzBA,SAAe,IAAf,CAAc,CAAC;QAAA,IACfD,KAAW,IAAX,CAAU,CAAC;MACjB;IAAA,CACF;IAAAV,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EALA,MAAAJ,iBAAA,GAA0Ba,EAK1B;EAAA,IAAAG,EAAA;EAAA,IAAAZ,CAAA,QAAAH,WAAA;IAEuBe,EAAA,GAAAA,CAAA,KAAMf,WAAA;IAAAG,CAAA,MAAAH,WAAA;IAAAG,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAA7B,MAAAP,cAAA,GAAuBmB,EAAM;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAP,cAAA,IAAAO,CAAA,QAAAH,WAAA;IAG3BgB,EAAA,GAAAC,IAAA,CAACvB,OAAA;MAAAwB,KAAA,EAAe;QAAAtB,cAAA;QAAAE,gBAAA;QAAAC,iBAAA;QAAAC;MAAmE;MAAAI;;;;;;;;;SAAnFY,E;CAIJ;AAEA,OAAO,MAAMG,cAAA,GAAiBA,CAAA,KAA0B1B,KAAA,CAAM2B,GAAG,CAAC1B,OAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","useConfig","Context","createContext","UploadHandlersProvider","t0","$","children","config","getEntityConfig","t1","routes","api","serverURL","uploadInstructionsURL","apiRoute","path","getUploadHandler","t2","collectionSlug","upload","uploadInstructions","useInAdmin","t3","docPrefix","file","response","fetch","body","JSON","stringify","filename","name","filesize","size","mimeType","type","credentials","headers","method","ok","errors","json","Error","map","_temp","join","instructions","uploadedFile","url","request","status","result","Promise","resolve","reject","event","CustomEvent","cancelable","detail","data","updateFilename","window","dispatchEvent","uploadReference","_jsx","value","useUploadHandlers","context","use","message"],"sources":["../../../src/providers/UploadHandlers/index.tsx"],"sourcesContent":["'use client'\nimport type { UploadCollectionSlug, UploadInstructions } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../Config/index.js'\n\ntype UploadHandler = (args: {\n docPrefix?: string\n file: File\n}) => Promise<UploadInstructions['file']>\n\nexport type UploadHandlersContext = {\n getUploadHandler: (args: { collectionSlug: UploadCollectionSlug }) => null | UploadHandler\n}\n\nconst Context = React.createContext<null | UploadHandlersContext>(null)\n\nexport const UploadHandlersProvider = ({ children }) => {\n const { config, getEntityConfig } = useConfig()\n const uploadInstructionsURL = formatAdminURL({\n apiRoute: config.routes.api,\n path: '/upload-instructions',\n serverURL: config.serverURL,\n })\n const getUploadHandler: UploadHandlersContext['getUploadHandler'] = ({ collectionSlug }) => {\n if (!getEntityConfig({ collectionSlug })?.upload?.uploadInstructions.useInAdmin) {\n return null\n }\n\n return async ({ docPrefix, file }) => {\n const response = await fetch(uploadInstructionsURL, {\n body: JSON.stringify({\n collectionSlug,\n docPrefix,\n filename: file.name,\n filesize: file.size,\n mimeType: file.type,\n }),\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n })\n\n if (!response.ok) {\n const { errors } = (await response.json()) as { errors: { message: string }[] }\n throw new Error(errors.map(({ message }) => message).join(', '))\n }\n\n const instructions = (await response.json()) as UploadInstructions\n let uploadedFile = instructions.file\n\n if (instructions.type === 'http') {\n const { url, ...request } = instructions.request\n const upload = await fetch(url, { body: file, ...request })\n\n if (!upload.ok) {\n throw new Error(`Upload failed with status ${upload.status}`)\n }\n\n return uploadedFile\n }\n\n const result = await new Promise<unknown>((resolve, reject) => {\n const event = new CustomEvent(`payload:upload:${instructions.name}`, {\n cancelable: true,\n detail: {\n collectionSlug,\n data: instructions.data,\n docPrefix,\n file,\n reject,\n resolve,\n updateFilename: (filename: string) => {\n uploadedFile = { ...uploadedFile, filename }\n },\n },\n })\n\n if (window.dispatchEvent(event)) {\n reject(new Error(`Unsupported upload instruction: ${instructions.name}`))\n }\n })\n\n return typeof result === 'object' && result !== null\n ? { ...uploadedFile, uploadReference: result as Record<string, unknown> }\n : uploadedFile\n }\n }\n\n return <Context value={{ getUploadHandler }}>{children}</Context>\n}\n\nexport const useUploadHandlers = (): UploadHandlersContext => {\n const context = React.use(Context)\n\n if (context === null) {\n throw new Error('useUploadHandlers must be used within UploadHandlersProvider')\n }\n\n return context\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","useConfig","Context","createContext","UploadHandlersProvider","t0","$","children","config","getEntityConfig","t1","routes","api","serverURL","uploadInstructionsURL","apiRoute","path","getUploadHandler","t2","collectionSlug","upload","uploadInstructions","useInAdmin","t3","docPrefix","file","response","fetch","body","JSON","stringify","filename","name","filesize","size","mimeType","type","credentials","headers","method","ok","errors","json","Error","map","_temp","join","instructions","uploadedFile","url","request","status","result","Promise","resolve","reject","event","CustomEvent","cancelable","detail","data","updateFilename","window","dispatchEvent","uploadReference","_jsx","value","useUploadHandlers","context","use","message"],"sources":["../../../src/providers/UploadHandlers/index.tsx"],"sourcesContent":["'use client'\nimport type { UploadCollectionSlug, UploadInstructions } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../Config/index.js'\n\ntype UploadHandler = (args: {\n docPrefix?: string\n file: File\n}) => Promise<UploadInstructions['file']>\n\nexport type UploadHandlersContext = {\n getUploadHandler: (args: { collectionSlug: UploadCollectionSlug }) => null | UploadHandler\n}\n\nconst Context = React.createContext<null | UploadHandlersContext>(null)\n\nexport const UploadHandlersProvider = ({ children }) => {\n const { config, getEntityConfig } = useConfig()\n const uploadInstructionsURL = formatAdminURL({\n apiRoute: config.routes.api,\n path: '/upload-instructions',\n serverURL: config.serverURL,\n })\n const getUploadHandler: UploadHandlersContext['getUploadHandler'] = ({ collectionSlug }) => {\n if (!getEntityConfig({ collectionSlug })?.upload?.uploadInstructions.useInAdmin) {\n return null\n }\n\n return async ({ docPrefix, file }) => {\n const response = await fetch(uploadInstructionsURL, {\n body: JSON.stringify({\n collectionSlug,\n docPrefix,\n filename: file.name,\n filesize: file.size,\n mimeType: file.type,\n }),\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n })\n\n if (!response.ok) {\n const { errors } = (await response.json()) as { errors: { message: string }[] }\n throw new Error(errors.map(({ message }) => message).join(', '))\n }\n\n const instructions = (await response.json()) as UploadInstructions\n let uploadedFile = instructions.file\n\n if (instructions.type === 'http') {\n const { url, ...request } = instructions.request\n const upload = await fetch(url, { body: file, ...request })\n\n if (!upload.ok) {\n throw new Error(`Upload failed with status ${upload.status}`)\n }\n\n return uploadedFile\n }\n\n const result = await new Promise<unknown>((resolve, reject) => {\n const event = new CustomEvent(`payload:upload:${instructions.name}`, {\n cancelable: true,\n detail: {\n collectionSlug,\n data: instructions.data,\n docPrefix,\n file,\n reject,\n resolve,\n updateFilename: (filename: string) => {\n uploadedFile = { ...uploadedFile, filename }\n },\n },\n })\n\n if (window.dispatchEvent(event)) {\n reject(new Error(`Unsupported upload instruction: ${instructions.name}`))\n }\n })\n\n return typeof result === 'object' && result !== null\n ? { ...uploadedFile, uploadReference: result as Record<string, unknown> }\n : uploadedFile\n }\n }\n\n return <Context value={{ getUploadHandler }}>{children}</Context>\n}\n\nexport const useUploadHandlers = (): UploadHandlersContext => {\n const context = React.use(Context)\n\n if (context === null) {\n throw new Error('useUploadHandlers must be used within UploadHandlersProvider')\n }\n\n return context\n}\n"],"mappings":"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","ignoreList":[]}