@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
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/ListQuery/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ListQuery,\n PaginatedDistinctDocs,\n PaginatedDocs,\n Sort,\n Where,\n} from 'payload'\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\nexport type OnListQueryChange = (query: ListQuery) => void\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug?: ClientCollectionConfig['slug']\n readonly data: PaginatedDocs | undefined\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: OnListQueryChange\n readonly orderableFieldName?: string\n readonly query?: ListQuery\n}\n\nexport type IListQueryContext = {\n collectionSlug: ClientCollectionConfig['slug']\n data: ListQueryProps['data']\n defaultLimit?: number\n defaultSort?: Sort\n /** True when the where query contains at least one condition with a value. */\n hasActiveFilters: boolean\n /**\n * @experimental This prop is subject to change. Use at your own risk.\n */\n isGroupingBy: boolean\n modified: boolean\n orderableFieldName?: string\n query: ListQuery\n refineListData: (args: ListQuery, setModified?: boolean) => Promise<void>\n resolvedGroupBy?: string\n resolvedSearch?: string\n searchInput: string\n setModified: (modified: boolean) => void\n setSearchInput: (search: string) => void\n} & ContextHandlers\n"],"mappings":"AA6BA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/ListQuery/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ListQuery,\n PaginatedDistinctDocs,\n PaginatedDocs,\n Sort,\n Where,\n} from 'payload'\n\ntype ContextHandlers = {\n handlePageChange?: (page: number) => Promise<void>\n handlePerPageChange?: (limit: number) => Promise<void>\n handleSearchChange?: (search: string) => Promise<void>\n handleSortChange?: (sort: string) => Promise<void>\n handleWhereChange?: (where: Where) => Promise<void>\n}\n\n/**\n * Returned promises are awaited; return values are otherwise ignored.\n * The union of callbacks preserves TypeScript's `void` callback rule, allowing handlers such as `query => updates.push(query)`.\n * A union of return types would reject synchronous handlers that return a value.\n */\nexport type OnListQueryChange =\n | ((query: ListQuery) => Promise<unknown>)\n | ((query: ListQuery) => void)\n\nexport type ListQueryProps = {\n readonly children: React.ReactNode\n readonly collectionSlug?: ClientCollectionConfig['slug']\n readonly data: PaginatedDocs | undefined\n readonly modifySearchParams?: boolean\n readonly onQueryChange?: OnListQueryChange\n readonly orderableFieldName?: string\n readonly query?: ListQuery\n}\n\nexport type IListQueryContext = {\n collectionSlug: ClientCollectionConfig['slug']\n data: ListQueryProps['data']\n defaultLimit?: number\n defaultSort?: Sort\n /** True when the where query contains at least one condition with a value. */\n hasActiveFilters: boolean\n /**\n * @experimental This prop is subject to change. Use at your own risk.\n */\n isGroupingBy: boolean\n modified: boolean\n orderableFieldName?: string\n query: ListQuery\n refineListData: (args: ListQuery, setModified?: boolean) => Promise<void>\n resolvedGroupBy?: string\n resolvedSearch?: string\n searchInput: string\n setModified: (modified: boolean) => void\n setSearchInput: (search: string) => void\n} & ContextHandlers\n"],"mappings":"AAoCA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","useLayoutEffect","getActiveModal","ModalAccessibility","$","modalState","t0","t1","Object","values","some","_temp","restoredInert","Map","restore","element","wasInert","restoreBackgroundElement","state","clear","update","activeModal","background","Set","current","document","body","sibling","parentElement","children","HTMLElement","add","element_0","wasInert_0","has","delete","element_1","set","ariaHidden","getAttribute","inert","setAttribute","observer","MutationObserver","observe","attributeFilter","attributes","childList","subtree","disconnect","modal","isOpen","removeAttribute"],"sources":["../../../src/providers/ModalAccessibility/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useLayoutEffect } from 'react'\n\nimport { getActiveModal } from '../../utilities/getActiveModal.js'\n\n/** Keeps the page and lower modal layers out of navigation while the top modal is open. */\nexport function ModalAccessibility() {\n const { modalState } = useModal()\n\n useLayoutEffect(() => {\n if (!Object.values(modalState).some((modal) => modal.isOpen)) {\n return\n }\n\n const restoredInert = new Map<HTMLElement, BackgroundState>()\n\n const restore = () => {\n for (const [element, wasInert] of restoredInert) {\n restoreBackgroundElement({ element, state: wasInert })\n }\n restoredInert.clear()\n }\n\n const update = () => {\n const activeModal = getActiveModal({ modalState })\n\n const background = new Set<HTMLElement>()\n let current = activeModal\n\n while (current && current !== document.body) {\n for (const sibling of current.parentElement?.children ?? []) {\n if (sibling !== current && sibling instanceof HTMLElement) {\n background.add(sibling)\n }\n }\n current = current.parentElement\n }\n\n for (const [element, wasInert] of restoredInert) {\n if (!background.has(element)) {\n restoreBackgroundElement({ element, state: wasInert })\n restoredInert.delete(element)\n }\n }\n for (const element of background) {\n if (!restoredInert.has(element)) {\n restoredInert.set(element, {\n ariaHidden: element.getAttribute('aria-hidden'),\n inert: element.inert,\n })\n element.inert = true\n element.setAttribute('aria-hidden', 'true')\n }\n }\n }\n\n update()\n // Drawers render asynchronously; also isolate siblings inserted after opening.\n const observer = new MutationObserver(update)\n observer.observe(document.body, {\n attributeFilter: ['open'],\n attributes: true,\n childList: true,\n subtree: true,\n })\n\n return () => {\n observer.disconnect()\n restore()\n }\n }, [modalState])\n\n return null\n}\n\ntype BackgroundState = { ariaHidden: null | string; inert: boolean }\n\nfunction restoreBackgroundElement({\n element,\n state,\n}: {\n element: HTMLElement\n state: BackgroundState\n}) {\n element.inert = state.inert\n if (state.ariaHidden === null) {\n element.removeAttribute('aria-hidden')\n } else {\n element.setAttribute('aria-hidden', state.ariaHidden)\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","useLayoutEffect","getActiveModal","ModalAccessibility","$","modalState","t0","t1","Object","values","some","_temp","restoredInert","Map","restore","element","wasInert","restoreBackgroundElement","state","clear","update","activeModal","background","Set","current","document","body","sibling","parentElement","children","HTMLElement","add","element_0","wasInert_0","has","delete","element_1","set","ariaHidden","getAttribute","inert","setAttribute","observer","MutationObserver","observe","attributeFilter","attributes","childList","subtree","disconnect","modal","isOpen","removeAttribute"],"sources":["../../../src/providers/ModalAccessibility/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useLayoutEffect } from 'react'\n\nimport { getActiveModal } from '../../utilities/getActiveModal.js'\n\n/** Keeps the page and lower modal layers out of navigation while the top modal is open. */\nexport function ModalAccessibility() {\n const { modalState } = useModal()\n\n useLayoutEffect(() => {\n if (!Object.values(modalState).some((modal) => modal.isOpen)) {\n return\n }\n\n const restoredInert = new Map<HTMLElement, BackgroundState>()\n\n const restore = () => {\n for (const [element, wasInert] of restoredInert) {\n restoreBackgroundElement({ element, state: wasInert })\n }\n restoredInert.clear()\n }\n\n const update = () => {\n const activeModal = getActiveModal({ modalState })\n\n const background = new Set<HTMLElement>()\n let current = activeModal\n\n while (current && current !== document.body) {\n for (const sibling of current.parentElement?.children ?? []) {\n if (sibling !== current && sibling instanceof HTMLElement) {\n background.add(sibling)\n }\n }\n current = current.parentElement\n }\n\n for (const [element, wasInert] of restoredInert) {\n if (!background.has(element)) {\n restoreBackgroundElement({ element, state: wasInert })\n restoredInert.delete(element)\n }\n }\n for (const element of background) {\n if (!restoredInert.has(element)) {\n restoredInert.set(element, {\n ariaHidden: element.getAttribute('aria-hidden'),\n inert: element.inert,\n })\n element.inert = true\n element.setAttribute('aria-hidden', 'true')\n }\n }\n }\n\n update()\n // Drawers render asynchronously; also isolate siblings inserted after opening.\n const observer = new MutationObserver(update)\n observer.observe(document.body, {\n attributeFilter: ['open'],\n attributes: true,\n childList: true,\n subtree: true,\n })\n\n return () => {\n observer.disconnect()\n restore()\n }\n }, [modalState])\n\n return null\n}\n\ntype BackgroundState = { ariaHidden: null | string; inert: boolean }\n\nfunction restoreBackgroundElement({\n element,\n state,\n}: {\n element: HTMLElement\n state: BackgroundState\n}) {\n element.inert = state.inert\n if (state.ariaHidden === null) {\n element.removeAttribute('aria-hidden')\n } else {\n element.setAttribute('aria-hidden', state.ariaHidden)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from 'react';
2
+ type PopupRegistration = {
3
+ container: HTMLElement;
4
+ getTrigger: () => HTMLElement | null;
5
+ };
6
+ /** Captures popup ancestors before opening a modal can unmount its trigger. */
7
+ export declare function ModalFocusProvider({ children }: {
8
+ children: ReactNode;
9
+ }): import("react").JSX.Element;
10
+ export declare const useModalFocus: () => {
11
+ getReturnFocusTargets: () => readonly HTMLElement[];
12
+ registerPopup: (registration: PopupRegistration) => () => void;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ModalFocus/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,WAAW,CAAA;IACtB,UAAU,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;CACrC,CAAA;AAUD,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BA4DvE;AAED,eAAO,MAAM,aAAa;2BAtED,MAAM,SAAS,WAAW,EAAE;mBACpC,CAAC,YAAY,EAAE,iBAAiB,KAAK,MAAM,IAAI;CAqEP,CAAA"}
@@ -0,0 +1,70 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ import { createContext, use, useCallback, useLayoutEffect, useMemo, useRef } from 'react';
5
+ const ModalFocusContext = /*#__PURE__*/createContext({
6
+ getReturnFocusTargets: () => [],
7
+ registerPopup: () => () => {}
8
+ });
9
+ /** Captures popup ancestors before opening a modal can unmount its trigger. */
10
+ export function ModalFocusProvider({
11
+ children
12
+ }) {
13
+ const targetsRef = useRef([]);
14
+ const popupsRef = useRef(new WeakMap());
15
+ const getReturnFocusTargets = useCallback(() => targetsRef.current, []);
16
+ const registerPopup = useCallback(({
17
+ container,
18
+ getTrigger
19
+ }) => {
20
+ popupsRef.current.set(container, getTrigger);
21
+ return () => {
22
+ popupsRef.current.delete(container);
23
+ };
24
+ }, []);
25
+ const context = useMemo(() => ({
26
+ getReturnFocusTargets,
27
+ registerPopup
28
+ }), [getReturnFocusTargets, registerPopup]);
29
+ useLayoutEffect(() => {
30
+ const rememberPopupTriggers = event => {
31
+ const opener = event?.target instanceof Element ? event.target : document.activeElement;
32
+ if (!opener || opener === document.body) {
33
+ return;
34
+ }
35
+ const targets = [];
36
+ let ancestor = opener;
37
+ while (ancestor) {
38
+ const getTrigger_0 = ancestor instanceof HTMLElement ? popupsRef.current.get(ancestor) : undefined;
39
+ if (getTrigger_0) {
40
+ // Pointer activation does not focus buttons in every browser.
41
+ if (!targets.length) {
42
+ const popupOpener = opener.closest('button, a[href], [tabindex]');
43
+ if (popupOpener) {
44
+ targets.push(popupOpener);
45
+ }
46
+ }
47
+ const trigger = getTrigger_0();
48
+ if (trigger && !targets.includes(trigger)) {
49
+ targets.push(trigger);
50
+ }
51
+ }
52
+ ancestor = ancestor.parentElement;
53
+ }
54
+ targetsRef.current = targets;
55
+ };
56
+ rememberPopupTriggers();
57
+ document.addEventListener('focusin', rememberPopupTriggers);
58
+ document.addEventListener('pointerdown', rememberPopupTriggers, true);
59
+ return () => {
60
+ document.removeEventListener('focusin', rememberPopupTriggers);
61
+ document.removeEventListener('pointerdown', rememberPopupTriggers, true);
62
+ };
63
+ }, []);
64
+ return /*#__PURE__*/_jsx(ModalFocusContext, {
65
+ value: context,
66
+ children: children
67
+ });
68
+ }
69
+ export const useModalFocus = () => use(ModalFocusContext);
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createContext","use","useCallback","useLayoutEffect","useMemo","useRef","ModalFocusContext","getReturnFocusTargets","registerPopup","ModalFocusProvider","children","targetsRef","popupsRef","WeakMap","current","container","getTrigger","set","delete","context","rememberPopupTriggers","event","opener","target","Element","document","activeElement","body","targets","ancestor","HTMLElement","get","undefined","length","popupOpener","closest","push","trigger","includes","parentElement","addEventListener","removeEventListener","_jsx","value","useModalFocus"],"sources":["../../../src/providers/ModalFocus/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ReactNode } from 'react'\n\nimport { createContext, use, useCallback, useLayoutEffect, useMemo, useRef } from 'react'\n\ntype PopupRegistration = {\n container: HTMLElement\n getTrigger: () => HTMLElement | null\n}\n\nconst ModalFocusContext = createContext<{\n getReturnFocusTargets: () => readonly HTMLElement[]\n registerPopup: (registration: PopupRegistration) => () => void\n}>({\n getReturnFocusTargets: () => [],\n registerPopup: () => () => {},\n})\n\n/** Captures popup ancestors before opening a modal can unmount its trigger. */\nexport function ModalFocusProvider({ children }: { children: ReactNode }) {\n const targetsRef = useRef<readonly HTMLElement[]>([])\n const popupsRef = useRef(new WeakMap<HTMLElement, PopupRegistration['getTrigger']>())\n const getReturnFocusTargets = useCallback(() => targetsRef.current, [])\n const registerPopup = useCallback(({ container, getTrigger }: PopupRegistration) => {\n popupsRef.current.set(container, getTrigger)\n return () => {\n popupsRef.current.delete(container)\n }\n }, [])\n const context = useMemo(\n () => ({ getReturnFocusTargets, registerPopup }),\n [getReturnFocusTargets, registerPopup],\n )\n\n useLayoutEffect(() => {\n const rememberPopupTriggers = (event?: Event) => {\n const opener = event?.target instanceof Element ? event.target : document.activeElement\n\n if (!opener || opener === document.body) {\n return\n }\n\n const targets: HTMLElement[] = []\n let ancestor: Element | null = opener\n\n while (ancestor) {\n const getTrigger =\n ancestor instanceof HTMLElement ? popupsRef.current.get(ancestor) : undefined\n\n if (getTrigger) {\n // Pointer activation does not focus buttons in every browser.\n if (!targets.length) {\n const popupOpener = opener.closest<HTMLElement>('button, a[href], [tabindex]')\n\n if (popupOpener) {\n targets.push(popupOpener)\n }\n }\n const trigger = getTrigger()\n\n if (trigger && !targets.includes(trigger)) {\n targets.push(trigger)\n }\n }\n ancestor = ancestor.parentElement\n }\n targetsRef.current = targets\n }\n\n rememberPopupTriggers()\n document.addEventListener('focusin', rememberPopupTriggers)\n document.addEventListener('pointerdown', rememberPopupTriggers, true)\n return () => {\n document.removeEventListener('focusin', rememberPopupTriggers)\n document.removeEventListener('pointerdown', rememberPopupTriggers, true)\n }\n }, [])\n\n return <ModalFocusContext value={context}>{children}</ModalFocusContext>\n}\n\nexport const useModalFocus = () => use(ModalFocusContext)\n"],"mappings":"AAAA;;;AAIA,SAASA,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,eAAe,EAAEC,OAAO,EAAEC,MAAM,QAAQ;AAOlF,MAAMC,iBAAA,gBAAoBN,aAAA,CAGvB;EACDO,qBAAA,EAAuBA,CAAA,KAAM,EAAE;EAC/BC,aAAA,EAAeA,CAAA,KAAM,OAAO;AAC9B;AAEA;AACA,OAAO,SAASC,mBAAmB;EAAEC;AAAQ,CAA2B;EACtE,MAAMC,UAAA,GAAaN,MAAA,CAA+B,EAAE;EACpD,MAAMO,SAAA,GAAYP,MAAA,CAAO,IAAIQ,OAAA;EAC7B,MAAMN,qBAAA,GAAwBL,WAAA,CAAY,MAAMS,UAAA,CAAWG,OAAO,EAAE,EAAE;EACtE,MAAMN,aAAA,GAAgBN,WAAA,CAAY,CAAC;IAAEa,SAAS;IAAEC;EAAU,CAAqB;IAC7EJ,SAAA,CAAUE,OAAO,CAACG,GAAG,CAACF,SAAA,EAAWC,UAAA;IACjC,OAAO;MACLJ,SAAA,CAAUE,OAAO,CAACI,MAAM,CAACH,SAAA;IAC3B;EACF,GAAG,EAAE;EACL,MAAMI,OAAA,GAAUf,OAAA,CACd,OAAO;IAAEG,qBAAA;IAAuBC;EAAc,IAC9C,CAACD,qBAAA,EAAuBC,aAAA,CAAc;EAGxCL,eAAA,CAAgB;IACd,MAAMiB,qBAAA,GAAyBC,KAAA;MAC7B,MAAMC,MAAA,GAASD,KAAA,EAAOE,MAAA,YAAkBC,OAAA,GAAUH,KAAA,CAAME,MAAM,GAAGE,QAAA,CAASC,aAAa;MAEvF,IAAI,CAACJ,MAAA,IAAUA,MAAA,KAAWG,QAAA,CAASE,IAAI,EAAE;QACvC;MACF;MAEA,MAAMC,OAAA,GAAyB,EAAE;MACjC,IAAIC,QAAA,GAA2BP,MAAA;MAE/B,OAAOO,QAAA,EAAU;QACf,MAAMb,YAAA,GACJa,QAAA,YAAoBC,WAAA,GAAclB,SAAA,CAAUE,OAAO,CAACiB,GAAG,CAACF,QAAA,IAAYG,SAAA;QAEtE,IAAIhB,YAAA,EAAY;UACd;UACA,IAAI,CAACY,OAAA,CAAQK,MAAM,EAAE;YACnB,MAAMC,WAAA,GAAcZ,MAAA,CAAOa,OAAO,CAAc;YAEhD,IAAID,WAAA,EAAa;cACfN,OAAA,CAAQQ,IAAI,CAACF,WAAA;YACf;UACF;UACA,MAAMG,OAAA,GAAUrB,YAAA;UAEhB,IAAIqB,OAAA,IAAW,CAACT,OAAA,CAAQU,QAAQ,CAACD,OAAA,GAAU;YACzCT,OAAA,CAAQQ,IAAI,CAACC,OAAA;UACf;QACF;QACAR,QAAA,GAAWA,QAAA,CAASU,aAAa;MACnC;MACA5B,UAAA,CAAWG,OAAO,GAAGc,OAAA;IACvB;IAEAR,qBAAA;IACAK,QAAA,CAASe,gBAAgB,CAAC,WAAWpB,qBAAA;IACrCK,QAAA,CAASe,gBAAgB,CAAC,eAAepB,qBAAA,EAAuB;IAChE,OAAO;MACLK,QAAA,CAASgB,mBAAmB,CAAC,WAAWrB,qBAAA;MACxCK,QAAA,CAASgB,mBAAmB,CAAC,eAAerB,qBAAA,EAAuB;IACrE;EACF,GAAG,EAAE;EAEL,oBAAOsB,IAAA,CAACpC,iBAAA;IAAkBqC,KAAA,EAAOxB,OAAA;cAAUT;;AAC7C;AAEA,OAAO,MAAMkC,aAAA,GAAgBA,CAAA,KAAM3C,GAAA,CAAIK,iBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useRef","useEffectEvent","usePathname","useRouter","Context","cachingEnabled","clearRouteCache","RouteCache","t0","$","t1","children","undefined","pathname","router","previousPathnameRef","t2","refresh","t3","t4","current","window","location","refreshTimeout","handlePopState","currentPathname","addEventListener","clearTimeout","removeEventListener","t5","handlePathnameChange","t6","currentPathname_0","timeout","setTimeout","t7","t8","_jsx","value","useRouteCache"],"sources":["../../../src/providers/RouteCache/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, use, useCallback, useEffect, useRef } from 'react'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { usePathname, useRouter } from '../RouterAdapter/index.js'\n\nexport type RouteCacheContext = {\n cachingEnabled: boolean\n clearRouteCache: () => void\n}\n\nconst Context = createContext<RouteCacheContext>({\n cachingEnabled: true,\n clearRouteCache: () => {},\n})\n\nexport const RouteCache: React.FC<{ cachingEnabled?: boolean; children: React.ReactNode }> = ({\n cachingEnabled = true,\n children,\n}) => {\n const pathname = usePathname()\n const router = useRouter()\n const previousPathnameRef = useRef('')\n\n const clearRouteCache = useCallback(() => {\n router.refresh()\n }, [router])\n\n /**\n * Next.js caches pages in memory in their {@link https://nextjs.org/docs/app/guides/caching#client-side-router-cache Client-side Router Cache},\n * causing forward/back browser navigation to show stale data from a previous visit.\n * The problem is this bfcache-like behavior has no opt-out, even if the page is dynamic, requires authentication, etc.\n * The workaround is to force a refresh when navigating via the browser controls.\n * This should be removed if/when Next.js supports this natively.\n */\n useEffect(() => {\n if (cachingEnabled) {\n // Already refreshed on every pathname change below\n return\n }\n\n previousPathnameRef.current = window.location.pathname\n\n let refreshTimeout: ReturnType<typeof setTimeout> | undefined\n\n const handlePopState = () => {\n const currentPathname = window.location.pathname\n\n // Fragment navigation also fires popstate. Refreshing the same route resets unsaved forms.\n if (previousPathnameRef.current === currentPathname) {\n return\n }\n\n previousPathnameRef.current = currentPathname\n\n // Next.js restores the previous page in its own `popstate` listener. With `cacheComponents`,\n // that happens synchronously and may run before or after this listener, so refreshing right\n // away (or in a microtask) could refresh the page we are leaving. A timeout runs after all\n // `popstate` listeners, once the restored page is the current route.\n refreshTimeout = setTimeout(clearRouteCache, 0)\n }\n\n window.addEventListener('popstate', handlePopState)\n\n return () => {\n clearTimeout(refreshTimeout)\n window.removeEventListener('popstate', handlePopState)\n }\n }, [cachingEnabled, clearRouteCache])\n\n const handlePathnameChange = useEffectEvent(() => {\n if (cachingEnabled) {\n clearRouteCache()\n }\n })\n\n useEffect(() => {\n handlePathnameChange()\n\n const currentPathname = window.location.pathname\n\n // Next.js may commit the restored route before popstate runs. Keep the previous path until then.\n const timeout = setTimeout(() => {\n previousPathnameRef.current = currentPathname\n }, 0)\n\n return () => clearTimeout(timeout)\n }, [pathname])\n\n return <Context value={{ cachingEnabled, clearRouteCache }}>{children}</Context>\n}\n\nexport const useRouteCache = () => use(Context)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useRef","useEffectEvent","usePathname","useRouter","Context","cachingEnabled","clearRouteCache","RouteCache","t0","$","t1","children","undefined","pathname","router","previousPathnameRef","t2","refresh","t3","t4","current","window","location","refreshTimeout","handlePopState","currentPathname","setTimeout","addEventListener","clearTimeout","removeEventListener","t5","handlePathnameChange","t6","currentPathname_0","timeout","t7","t8","_jsx","value","useRouteCache"],"sources":["../../../src/providers/RouteCache/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { createContext, use, useCallback, useEffect, useRef } from 'react'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { usePathname, useRouter } from '../RouterAdapter/index.js'\n\nexport type RouteCacheContext = {\n cachingEnabled: boolean\n clearRouteCache: () => void\n}\n\nconst Context = createContext<RouteCacheContext>({\n cachingEnabled: true,\n clearRouteCache: () => {},\n})\n\nexport const RouteCache: React.FC<{ cachingEnabled?: boolean; children: React.ReactNode }> = ({\n cachingEnabled = true,\n children,\n}) => {\n const pathname = usePathname()\n const router = useRouter()\n const previousPathnameRef = useRef('')\n\n const clearRouteCache = useCallback(() => {\n router.refresh()\n }, [router])\n\n /**\n * Next.js caches pages in memory in their {@link https://nextjs.org/docs/app/guides/caching#client-side-router-cache Client-side Router Cache},\n * causing forward/back browser navigation to show stale data from a previous visit.\n * The problem is this bfcache-like behavior has no opt-out, even if the page is dynamic, requires authentication, etc.\n * The workaround is to force a refresh when navigating via the browser controls.\n * This should be removed if/when Next.js supports this natively.\n */\n useEffect(() => {\n if (cachingEnabled) {\n // Already refreshed on every pathname change below\n return\n }\n\n previousPathnameRef.current = window.location.pathname\n\n let refreshTimeout: ReturnType<typeof setTimeout> | undefined\n\n const handlePopState = () => {\n const currentPathname = window.location.pathname\n\n // Fragment navigation also fires popstate. Refreshing the same route resets unsaved forms.\n if (previousPathnameRef.current === currentPathname) {\n return\n }\n\n previousPathnameRef.current = currentPathname\n\n // Next.js restores the previous page in its own `popstate` listener. With `cacheComponents`,\n // that happens synchronously and may run before or after this listener, so refreshing right\n // away (or in a microtask) could refresh the page we are leaving. A timeout runs after all\n // `popstate` listeners, once the restored page is the current route.\n refreshTimeout = setTimeout(clearRouteCache, 0)\n }\n\n window.addEventListener('popstate', handlePopState)\n\n return () => {\n clearTimeout(refreshTimeout)\n window.removeEventListener('popstate', handlePopState)\n }\n }, [cachingEnabled, clearRouteCache])\n\n const handlePathnameChange = useEffectEvent(() => {\n if (cachingEnabled) {\n clearRouteCache()\n }\n })\n\n useEffect(() => {\n handlePathnameChange()\n\n const currentPathname = window.location.pathname\n\n // Next.js may commit the restored route before popstate runs. Keep the previous path until then.\n const timeout = setTimeout(() => {\n previousPathnameRef.current = currentPathname\n }, 0)\n\n return () => clearTimeout(timeout)\n }, [pathname])\n\n return <Context value={{ cachingEnabled, clearRouteCache }}>{children}</Context>\n}\n\nexport const useRouteCache = () => use(Context)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRef","useRouteTransition","transitionDuration","baseClass","initialDelay","ProgressBar","$","isTransitioning","transitionProgress","progressToShow","setProgressToShow","useState","shouldDelayProgress","t0","t1","clearTimerID","delayTimerID","current","_temp","clearTimeout","t2","t3","filter","Boolean","t4","join","t5","_jsx","className","style","children","width","currentProgress"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../index.js'\nimport './index.css'\n\nconst transitionDuration = 200\nconst baseClass = 'progress-bar'\nconst initialDelay = 150\n\n/**\n * Renders a progress bar that shows the progress of a route transition.\n * Place this at the root of your application, inside of the `RouteTransitionProvider`.\n * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.\n * @returns A progress bar that shows the progress of a route transition\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n */\nexport const ProgressBar = () => {\n const { isTransitioning, transitionProgress } = useRouteTransition()\n const [progressToShow, setProgressToShow] = React.useState<null | number>(null)\n const shouldDelayProgress = useRef(true)\n\n useEffect(() => {\n let clearTimerID: NodeJS.Timeout\n let delayTimerID: NodeJS.Timeout\n\n if (isTransitioning) {\n if (shouldDelayProgress.current) {\n delayTimerID = setTimeout(() => {\n setProgressToShow(transitionProgress)\n shouldDelayProgress.current = false\n }, initialDelay)\n } else {\n setProgressToShow(transitionProgress)\n }\n } else {\n shouldDelayProgress.current = true\n\n // Fast forward to 100% when the transition is complete\n // Then fade out the progress bar directly after\n setProgressToShow((currentProgress) => (currentProgress === null ? null : 1))\n\n // Wait for CSS transition to finish before hiding the progress bar\n // This includes both the fast-forward to 100% and the subsequent fade-out\n clearTimerID = setTimeout(() => {\n setProgressToShow(null)\n }, transitionDuration * 2)\n }\n\n return () => {\n clearTimeout(clearTimerID)\n clearTimeout(delayTimerID)\n }\n }, [isTransitioning, transitionProgress])\n\n if (typeof progressToShow === 'number') {\n return (\n <div\n className={[baseClass, progressToShow === 1 && `${baseClass}--fade-out`]\n .filter(Boolean)\n .join(' ')}\n style={{\n // @ts-expect-error - TS doesn't like custom CSS properties\n '--transition-duration': `${transitionDuration}ms`,\n }}\n >\n <div\n className={`${baseClass}__progress`}\n style={{\n width: `${(progressToShow || 0) * 100}%`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,SAAA,GAAY;AAClB,MAAMC,YAAA,GAAe;AAErB;;;;;;;;;;;;;AAaA,OAAO,MAAMC,WAAA,GAAcA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACzB;IAAAU,eAAA;IAAAC;EAAA,IAAgDP,kBAAA;EAChD,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CZ,KAAA,CAAAa,QAAA,KAA8B;EAC1E,MAAAC,mBAAA,GAA4BZ,MAAA,KAAO;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,kBAAA;IAEzBK,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,YAAA;MACAC,GAAA,CAAAA,YAAA;MAAA,IAEAT,eAAA;QAAA,IACEK,mBAAA,CAAAK,OAAA;UACFD,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;YACbN,iBAAA,CAAkBF,kBAAA;YAClBI,mBAAA,CAAAK,OAAA;UAAA,GAAAb,YACC;QAHH;UAKAM,iBAAA,CAAkBF,kBAAA;QAAA;MAAA;QAGpBI,mBAAA,CAAAK,OAAA;QAIAP,iBAAA,CAAAQ,KAA0E;QAI1EH,YAAA,CAAAA,CAAA,CAAeA,aAAA,CAAAA,EAAA,CAAAA;UACbL,iBAAA,KAAkB;QAAA,GACjBR,kBAAA,IAAqB;MAFxB;MAAA;QAMAiB,YAAA,CAAaJ,YAAA;QACbI,YAAA,CAAaH,YAAA;MAAA;IAAA;IAEdF,EAAA,IAACP,eAAA,EAAiBC,kBAAA;IAAmBF,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAD,EAAA,GAAAP,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EA/BxCP,SAAA,CAAUc,EA+BV,EAAGC,EAAqC;EAAA,IAEpC,OAAOL,cAAA,KAAmB;IAGD,MAAAW,EAAA,GAAAX,cAAA,MAAmB,IAAK,GAAAN,SAAA,YAAwB;IAAA,IAAAkB,EAAA;IAAA,IAAAf,CAAA,QAAAc,EAAA;MAA5DC,EAAA,IAAAlB,SAAA,EAAYiB,EAAgD,EAAAE,MAAA,CAAAC,OAC7D;MAAAjB,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAA,EAAA,GAAAf,CAAA;IAAA;IADC,MAAAkB,EAAA,GAAAH,EACD,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAkB,EAAA;MAHVE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EACYJ,EAEH;QAAAK,KAAA;UAAA,yBAGmB,GAAA3B,kBAAA;QAAyB;QAAA4B,QAAA,EAGpDH,IAAA,CAAC;UAAAC,SAAA,EACY,GAAAzB,SAAA,YAAwB;UAAA0B,KAAA;YAAAE,KAAA,EAE1B,GAAG,CAACtB,cAAA,KAAkB,OAAK;UAAM;QAAA,C;;;;;;;;WAZ9CiB,E;;;CAoBN;AA5D2B,SAAAR,MAAAc,eAAA;EAAA,OAuBmBA,eAAA,SAAoB,WAAc;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useRef","useRouteTransition","transitionDuration","baseClass","initialDelay","ProgressBar","$","isTransitioning","transitionProgress","progressToShow","setProgressToShow","useState","shouldDelayProgress","t0","t1","clearTimerID","delayTimerID","current","setTimeout","_temp","clearTimeout","t2","t3","filter","Boolean","t4","join","t5","_jsx","className","style","children","width","currentProgress"],"sources":["../../../../src/providers/RouteTransition/ProgressBar/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../index.js'\nimport './index.css'\n\nconst transitionDuration = 200\nconst baseClass = 'progress-bar'\nconst initialDelay = 150\n\n/**\n * Renders a progress bar that shows the progress of a route transition.\n * Place this at the root of your application, inside of the `RouteTransitionProvider`.\n * When a transition is triggered, the progress bar will show the progress of that transition and exit when the transition is complete.\n * @returns A progress bar that shows the progress of a route transition\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n */\nexport const ProgressBar = () => {\n const { isTransitioning, transitionProgress } = useRouteTransition()\n const [progressToShow, setProgressToShow] = React.useState<null | number>(null)\n const shouldDelayProgress = useRef(true)\n\n useEffect(() => {\n let clearTimerID: NodeJS.Timeout\n let delayTimerID: NodeJS.Timeout\n\n if (isTransitioning) {\n if (shouldDelayProgress.current) {\n delayTimerID = setTimeout(() => {\n setProgressToShow(transitionProgress)\n shouldDelayProgress.current = false\n }, initialDelay)\n } else {\n setProgressToShow(transitionProgress)\n }\n } else {\n shouldDelayProgress.current = true\n\n // Fast forward to 100% when the transition is complete\n // Then fade out the progress bar directly after\n setProgressToShow((currentProgress) => (currentProgress === null ? null : 1))\n\n // Wait for CSS transition to finish before hiding the progress bar\n // This includes both the fast-forward to 100% and the subsequent fade-out\n clearTimerID = setTimeout(() => {\n setProgressToShow(null)\n }, transitionDuration * 2)\n }\n\n return () => {\n clearTimeout(clearTimerID)\n clearTimeout(delayTimerID)\n }\n }, [isTransitioning, transitionProgress])\n\n if (typeof progressToShow === 'number') {\n return (\n <div\n className={[baseClass, progressToShow === 1 && `${baseClass}--fade-out`]\n .filter(Boolean)\n .join(' ')}\n style={{\n // @ts-expect-error - TS doesn't like custom CSS properties\n '--transition-duration': `${transitionDuration}ms`,\n }}\n >\n <div\n className={`${baseClass}__progress`}\n style={{\n width: `${(progressToShow || 0) * 100}%`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,EAAEC,MAAM,QAAQ;AAEzC,SAASC,kBAAkB,QAAQ;AACnC,OAAO;AAEP,MAAMC,kBAAA,GAAqB;AAC3B,MAAMC,SAAA,GAAY;AAClB,MAAMC,YAAA,GAAe;AAErB;;;;;;;;;;;;;AAaA,OAAO,MAAMC,WAAA,GAAcA,CAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACzB;IAAAU,eAAA;IAAAC;EAAA,IAAgDP,kBAAA;EAChD,OAAAQ,cAAA,EAAAC,iBAAA,IAA4CZ,KAAA,CAAAa,QAAc,CAAgB;EAC1E,MAAAC,mBAAA,GAA4BZ,MAAA,CAAO;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,kBAAA;IAEzBK,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,YAAA;MACAC,GAAA,CAAAA,YAAA;MAEJ,IAAIT,eAAA;QACF,IAAIK,mBAAA,CAAAK,OAA2B;UAC7BD,YAAA,CAAAA,CAAA,CAAeE,UAAA,CAAW;YACxBR,iBAAA,CAAkBF,kBAAA;YAClBI,mBAAA,CAAAK,OAAA,GAA8B,KAAH;UAAA,CAC7B,EAAGb,YAAA;QAHH;UAKAM,iBAAA,CAAkBF,kBAAA;QAAA;MACpB;QAEAI,mBAAA,CAAAK,OAAA,GAA8B,IAAH;QAI3BP,iBAAA,CAAkBS,KAAwD;QAI1EJ,YAAA,CAAAA,CAAA,CAAeG,UAAA,CAAW;UACxBR,iBAAA,CAAkB;QAAA,CACpB,EAAGR,kBAAA,GAAqB;MAFxB;MAGF,OAEO;QACLkB,YAAA,CAAaL,YAAA;QACbK,YAAA,CAAaJ,YAAA;MAAA,CACf;IAAA,CACF;IAAGF,EAAA,IAACP,eAAA,EAAiBC,kBAAA,CAAmB;IAAAF,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,kBAAA;IAAAF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAD,EAAA,GAAAP,CAAA;IAAAQ,EAAA,GAAAR,CAAA;EAAA;EA/BxCP,SAAA,CAAUc,EA+BV,EAAGC,EAAqC;EAExC,IAAI,OAAOL,cAAA,KAAmB;IAGD,MAAAY,EAAA,GAAAZ,cAAA,KAAmB,CAA6B,IAAhD,GAA2BN,SAAA,YAAqB;IAAA,IAAAmB,EAAA;IAAA,IAAAhB,CAAA,QAAAe,EAAA;MAA5DC,EAAA,IAACnB,SAAA,EAAWkB,EAAgD,CAAC,CAAAE,MAC/D,CAACC,OAAA;MAAAlB,CAAA,MAAAe,EAAA;MAAAf,CAAA,MAAAgB,EAAA;IAAA;MAAAA,EAAA,GAAAhB,CAAA;IAAA;IADC,MAAAmB,EAAA,GAAAH,EACD,CAAAI,IACH,CAAC;IAAA,IAAAC,EAAA;IAAA,IAAArB,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAmB,EAAA;MAHVE,EAAA,GAAAC,IAAA,CAAC;QAAAC,SAAA,EACYJ,EAEH;QAAAK,KAAA,EACD;UAAA,yBAEoB,GAAG5B,kBAAA;QAC9B;QAAA6B,QAAA,EAEAH,IAAA,CAAC;UAAAC,SAAA,EACY,GAAG1B,SAAA,YAAqB;UAAA2B,KAAA,EAC5B;YAAAE,KAAA,EACE,GAAG,CAACvB,cAAkB,IAAlB,CAAkB,IAAK;UACpC;;;;;;;;;WAbJkB,E;;EAiBJ,OAEO;AAAA,CACT;AA5D2B,SAAAR,MAAAc,eAAA;EAAA,OAuBmBA,eAAA,KAAoB,IAAc,GAAlC,IAAkC,GAAlC,CAAkC;AAAA","ignoreList":[]}
@@ -19,11 +19,12 @@ export declare const RouteTransitionProvider: React.FC<RouteTransitionProps>;
19
19
  type RouteTransitionProps = {
20
20
  children: React.ReactNode;
21
21
  };
22
- type StartRouteTransition = (callback?: () => void) => void;
22
+ type StartRouteTransition = (callback?: () => unknown) => Promise<void>;
23
23
  type RouteTransitionContextValue = {
24
24
  /** Keeps the transition active until the returned release function is called. */
25
25
  holdRouteTransition: () => () => void;
26
26
  isTransitioning: boolean;
27
+ /** Resolves after the callback and active route transition holds complete. */
27
28
  startRouteTransition: StartRouteTransition;
28
29
  transitionProgress: number;
29
30
  };
@@ -41,7 +42,7 @@ type RouteTransitionContextValue = {
41
42
  * const { startRouteTransition } = useRouteTransition()
42
43
  *
43
44
  * const redirectSomewhere = useCallback(() => {
44
- * startRouteTransition(() => router.push('/somewhere'))
45
+ * void startRouteTransition(() => router.push('/somewhere'))
45
46
  * }, [startRouteTransition, router])
46
47
  *
47
48
  * // ...
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteTransition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqFlE,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAE3D,KAAK,2BAA2B,GAAG;IACjC,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,MAAM,IAAI,CAAA;IACrC,eAAe,EAAE,OAAO,CAAA;IACxB,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteTransition/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyE,MAAM,OAAO,CAAA;AAE7F;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4GlE,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED,KAAK,oBAAoB,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEvE,KAAK,2BAA2B,GAAG;IACjC,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,MAAM,IAAI,CAAA;IACrC,eAAe,EAAE,OAAO,CAAA;IACxB,8EAA8E;IAC9E,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAYD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,kBAAkB,mCAA0C,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
5
4
  import React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react';
6
5
  /**
@@ -19,117 +18,97 @@ import React, { startTransition, useCallback, useEffect, useOptimistic, useRef }
19
18
  * </RouteTransitionProvider>
20
19
  * )
21
20
  */
22
- export const RouteTransitionProvider = t0 => {
23
- const $ = _c(12);
24
- const {
25
- children
26
- } = t0;
21
+ export const RouteTransitionProvider = ({
22
+ children
23
+ }) => {
27
24
  const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false);
28
25
  const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0);
26
+ const routeTransitionHolds = useRef(new Set());
29
27
  const [transitionProgress, setTransitionProgress] = React.useState(0);
30
28
  const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0;
31
29
  const transitionProgressRef = useRef(transitionProgress);
32
30
  const timerID = useRef(null);
33
- let t1;
34
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
35
- t1 = () => {
36
- timerID.current = setInterval(() => {
37
- const newProgress = transitionProgressRef.current + (0.93 - transitionProgressRef.current) * Math.random() * 0.2 * Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * 0.75), 0.75);
38
- setTransitionProgress(newProgress);
39
- transitionProgressRef.current = newProgress;
40
- }, 250);
41
- };
42
- $[0] = t1;
43
- } else {
44
- t1 = $[0];
45
- }
46
- const initiateProgress = t1;
47
- let t2;
48
- let t3;
49
- if ($[1] !== isTransitioning) {
50
- t2 = () => {
51
- setTransitionProgress(0);
52
- transitionProgressRef.current = 0;
53
- if (isTransitioning) {
54
- initiateProgress();
55
- } else {
56
- if (timerID.current) {
57
- clearInterval(timerID.current);
58
- }
31
+ const initiateProgress = useCallback(() => {
32
+ timerID.current = setInterval(() => {
33
+ // randomly update progress using an exponential curve
34
+ // cap the progress to ensure it never fully reaches completion
35
+ // accelerate quickly then decelerate slowly
36
+ const maxProgress = 0.93;
37
+ const jumpFactor = 0.2 // lower to reduce jumps in progress
38
+ ;
39
+ const growthFactor = 0.75 // adjust to control acceleration
40
+ ;
41
+ const slowdownFactor = 0.75 // adjust to control deceleration
42
+ ;
43
+ const newProgress = transitionProgressRef.current + (maxProgress - transitionProgressRef.current) * Math.random() * jumpFactor * Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor);
44
+ setTransitionProgress(newProgress);
45
+ transitionProgressRef.current = newProgress;
46
+ }, 250); // every n ms, update progress
47
+ }, []);
48
+ useEffect(() => {
49
+ setTransitionProgress(0);
50
+ transitionProgressRef.current = 0;
51
+ if (isTransitioning) {
52
+ initiateProgress();
53
+ } else {
54
+ if (timerID.current) {
55
+ clearInterval(timerID.current);
59
56
  }
57
+ }
58
+ }, [isTransitioning, initiateProgress]);
59
+ const waitForHoldsToRelease = useCallback(async () => {
60
+ while (routeTransitionHolds.current.size > 0) {
61
+ await Promise.all(routeTransitionHolds.current);
62
+ }
63
+ }, []);
64
+ const startRouteTransition = useCallback(callback => {
65
+ const runAction = async () => {
66
+ setIsOptimisticallyTransitioning(true);
67
+ await callback?.();
68
+ await waitForHoldsToRelease();
60
69
  };
61
- t3 = [isTransitioning, initiateProgress];
62
- $[1] = isTransitioning;
63
- $[2] = t2;
64
- $[3] = t3;
65
- } else {
66
- t2 = $[2];
67
- t3 = $[3];
68
- }
69
- useEffect(t2, t3);
70
- let t4;
71
- if ($[4] !== setIsOptimisticallyTransitioning) {
72
- t4 = callback => {
73
- startTransition(() => {
74
- setIsOptimisticallyTransitioning(true);
75
- if (typeof callback === "function") {
76
- callback();
77
- }
78
- });
79
- };
80
- $[4] = setIsOptimisticallyTransitioning;
81
- $[5] = t4;
82
- } else {
83
- t4 = $[5];
84
- }
85
- const startRouteTransition = t4;
86
- let t5;
87
- if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
88
- t5 = () => {
89
- let hasReleased = false;
90
- setActiveRouteTransitionHolds(_temp);
91
- return () => {
92
- if (hasReleased) {
93
- return;
94
- }
95
- hasReleased = true;
96
- setActiveRouteTransitionHolds(_temp2);
97
- };
98
- };
99
- $[6] = t5;
100
- } else {
101
- t5 = $[6];
102
- }
103
- const holdRouteTransition = t5;
104
- let t6;
105
- if ($[7] !== children || $[8] !== isTransitioning || $[9] !== startRouteTransition || $[10] !== transitionProgress) {
106
- t6 = _jsx(RouteTransitionContext, {
107
- value: {
108
- holdRouteTransition,
109
- isTransitioning,
110
- startRouteTransition,
111
- transitionProgress
112
- },
113
- children
70
+ // React runs the scope synchronously but does not return its promise.
71
+ let action = Promise.resolve();
72
+ startTransition(() => {
73
+ action = runAction();
74
+ return action;
114
75
  });
115
- $[7] = children;
116
- $[8] = isTransitioning;
117
- $[9] = startRouteTransition;
118
- $[10] = transitionProgress;
119
- $[11] = t6;
120
- } else {
121
- t6 = $[11];
122
- }
123
- return t6;
76
+ return action;
77
+ }, [setIsOptimisticallyTransitioning, waitForHoldsToRelease]);
78
+ const holdRouteTransition = useCallback(() => {
79
+ let hasReleased = false;
80
+ let resolveHold;
81
+ const hold = new Promise(resolve => {
82
+ resolveHold = resolve;
83
+ });
84
+ routeTransitionHolds.current.add(hold);
85
+ setActiveRouteTransitionHolds(count => count + 1);
86
+ return () => {
87
+ if (hasReleased) {
88
+ return;
89
+ }
90
+ hasReleased = true;
91
+ routeTransitionHolds.current.delete(hold);
92
+ resolveHold();
93
+ setActiveRouteTransitionHolds(count_0 => Math.max(0, count_0 - 1));
94
+ };
95
+ }, []);
96
+ return /*#__PURE__*/_jsx(RouteTransitionContext, {
97
+ value: {
98
+ holdRouteTransition,
99
+ isTransitioning,
100
+ startRouteTransition,
101
+ transitionProgress
102
+ },
103
+ children: children
104
+ });
124
105
  };
125
106
  const RouteTransitionContext = /*#__PURE__*/React.createContext({
126
107
  holdRouteTransition: () => () => undefined,
127
108
  isTransitioning: false,
128
109
  // Default implementation: just call the callback directly (no transition animation)
129
- startRouteTransition: callback => {
130
- if (typeof callback === 'function') {
131
- callback();
132
- }
110
+ startRouteTransition: async callback => {
111
+ await callback?.();
133
112
  },
134
113
  transitionProgress: 0
135
114
  });
@@ -147,17 +126,11 @@ const RouteTransitionContext = /*#__PURE__*/React.createContext({
147
126
  * const { startRouteTransition } = useRouteTransition()
148
127
  *
149
128
  * const redirectSomewhere = useCallback(() => {
150
- * startRouteTransition(() => router.push('/somewhere'))
129
+ * void startRouteTransition(() => router.push('/somewhere'))
151
130
  * }, [startRouteTransition, router])
152
131
  *
153
132
  * // ...
154
133
  * }
155
134
  */
156
135
  export const useRouteTransition = () => React.use(RouteTransitionContext);
157
- function _temp(count) {
158
- return count + 1;
159
- }
160
- function _temp2(count_0) {
161
- return Math.max(0, count_0 - 1);
162
- }
163
136
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","startTransition","useCallback","useEffect","useOptimistic","useRef","RouteTransitionProvider","t0","$","children","isOptimisticallyTransitioning","setIsOptimisticallyTransitioning","activeRouteTransitionHolds","setActiveRouteTransitionHolds","useState","transitionProgress","setTransitionProgress","isTransitioning","transitionProgressRef","timerID","t1","Symbol","for","current","setInterval","newProgress","Math","random","pow","log","initiateProgress","t2","t3","clearInterval","t4","callback","startRouteTransition","t5","hasReleased","_temp","_temp2","holdRouteTransition","t6","_jsx","RouteTransitionContext","value","createContext","undefined","useRouteTransition","use","count","count_0","max"],"sources":["../../../src/providers/RouteTransition/index.tsx"],"sourcesContent":["'use client'\nimport React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react'\n\n/**\n * Route transitions are useful in showing immediate visual feedback to the user when navigating between pages. This is especially useful on slow networks when navigating to data heavy or process intensive pages.\n * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.\n * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,\n * or wrap a callback function with the `startRouteTransition` method.\n * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.\n * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n * )\n */\nexport const RouteTransitionProvider: React.FC<RouteTransitionProps> = ({ children }) => {\n const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false)\n const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0)\n const [transitionProgress, setTransitionProgress] = React.useState<number>(0)\n const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0\n\n const transitionProgressRef = useRef(transitionProgress)\n\n const timerID = useRef(null)\n\n const initiateProgress = useCallback(() => {\n timerID.current = setInterval(() => {\n // randomly update progress using an exponential curve\n // cap the progress to ensure it never fully reaches completion\n // accelerate quickly then decelerate slowly\n const maxProgress = 0.93\n const jumpFactor = 0.2 // lower to reduce jumps in progress\n const growthFactor = 0.75 // adjust to control acceleration\n const slowdownFactor = 0.75 // adjust to control deceleration\n\n const newProgress =\n transitionProgressRef.current +\n (maxProgress - transitionProgressRef.current) *\n Math.random() *\n jumpFactor *\n Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor)\n\n setTransitionProgress(newProgress)\n transitionProgressRef.current = newProgress\n }, 250) // every n ms, update progress\n }, [])\n\n useEffect(() => {\n setTransitionProgress(0)\n transitionProgressRef.current = 0\n\n if (isTransitioning) {\n initiateProgress()\n } else {\n if (timerID.current) {\n clearInterval(timerID.current)\n }\n }\n }, [isTransitioning, initiateProgress])\n\n const startRouteTransition: StartRouteTransition = useCallback(\n (callback?: () => void) => {\n startTransition(() => {\n setIsOptimisticallyTransitioning(true)\n\n if (typeof callback === 'function') {\n callback()\n }\n })\n },\n [setIsOptimisticallyTransitioning],\n )\n\n const holdRouteTransition = useCallback(() => {\n let hasReleased = false\n\n setActiveRouteTransitionHolds((count) => count + 1)\n\n return () => {\n if (hasReleased) {\n return\n }\n\n hasReleased = true\n setActiveRouteTransitionHolds((count) => Math.max(0, count - 1))\n }\n }, [])\n\n return (\n <RouteTransitionContext\n value={{\n holdRouteTransition,\n isTransitioning,\n startRouteTransition,\n transitionProgress,\n }}\n >\n {children}\n </RouteTransitionContext>\n )\n}\n\ntype RouteTransitionProps = {\n children: React.ReactNode\n}\n\ntype StartRouteTransition = (callback?: () => void) => void\n\ntype RouteTransitionContextValue = {\n /** Keeps the transition active until the returned release function is called. */\n holdRouteTransition: () => () => void\n isTransitioning: boolean\n startRouteTransition: StartRouteTransition\n transitionProgress: number\n}\n\nconst RouteTransitionContext = React.createContext<RouteTransitionContextValue>({\n holdRouteTransition: () => () => undefined,\n isTransitioning: false,\n // Default implementation: just call the callback directly (no transition animation)\n startRouteTransition: (callback) => {\n if (typeof callback === 'function') {\n callback()\n }\n },\n transitionProgress: 0,\n})\n\n/**\n * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.\n * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.\n * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * 'use client'\n * import React, { useCallback } from 'react'\n * import { useTransition, useRouter } from '@payloadcms/ui'\n *\n * const MyComponent: React.FC = () => {\n * const router = useRouter()\n * const { startRouteTransition } = useRouteTransition()\n *\n * const redirectSomewhere = useCallback(() => {\n * startRouteTransition(() => router.push('/somewhere'))\n * }, [startRouteTransition, router])\n *\n * // ...\n * }\n */\nexport const useRouteTransition = () => React.use(RouteTransitionContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,eAAe,EAAEC,WAAW,EAAEC,SAAS,EAAEC,aAAa,EAAEC,MAAM,QAAQ;AAEtF;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAMC,uBAAA,GAA0DC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU;EAAA,IAAAF,EAAY;EAClF,OAAAG,6BAAA,EAAAC,gCAAA,IAA0EP,aAAA,MAAc;EACxF,OAAAQ,0BAAA,EAAAC,6BAAA,IAAoEb,KAAA,CAAAc,QAAA,EAAe;EACnF,OAAAC,kBAAA,EAAAC,qBAAA,IAAoDhB,KAAA,CAAAc,QAAA,EAAuB;EAC3E,MAAAG,eAAA,GAAwBP,6BAAA,IAAiCE,0BAAA,IAA6B;EAEtF,MAAAM,qBAAA,GAA8Bb,MAAA,CAAOU,kBAAA;EAErC,MAAAI,OAAA,GAAgBd,MAAA,KAAO;EAAA,IAAAe,EAAA;EAAA,IAAAZ,CAAA,QAAAa,MAAA,CAAAC,GAAA;IAEcF,EAAA,GAAAA,CAAA;MACnCD,OAAA,CAAAI,OAAA,GAAkBC,WAAA;QAShB,MAAAC,WAAA,GACEP,qBAAA,CAAAK,OAAA,GACA,CAAC,OAAcL,qBAAA,CAAAK,OAA6B,IAC1CG,IAAA,CAAAC,MAAA,CAAW,OACX,GACAD,IAAA,CAAAE,GAAA,CAASF,IAAA,CAAAG,GAAA,CAAS,IAAI,CAAC,IAAIX,qBAAA,CAAAK,OAA6B,QAAI,OAAe;QAE/EP,qBAAA,CAAsBS,WAAA;QACtBP,qBAAA,CAAAK,OAAA,GAAgCE,WAAA;MAAA,MAC/B;IAAA;IACLjB,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EApBA,MAAAsB,gBAAA,GAAyBV,EAoBpB;EAAA,IAAAW,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAxB,CAAA,QAAAS,eAAA;IAEKc,EAAA,GAAAA,CAAA;MACRf,qBAAA,EAAsB;MACtBE,qBAAA,CAAAK,OAAA;MAAA,IAEIN,eAAA;QACFa,gBAAA;MAAA;QAAA,IAEIX,OAAA,CAAAI,OAAA;UACFU,aAAA,CAAcd,OAAA,CAAAI,OAAe;QAAA;MAAA;IAAA;IAGhCS,EAAA,IAACf,eAAA,EAAiBa,gBAAA;IAAiBtB,CAAA,MAAAS,eAAA;IAAAT,CAAA,MAAAuB,EAAA;IAAAvB,CAAA,MAAAwB,EAAA;EAAA;IAAAD,EAAA,GAAAvB,CAAA;IAAAwB,EAAA,GAAAxB,CAAA;EAAA;EAXtCL,SAAA,CAAU4B,EAWV,EAAGC,EAAmC;EAAA,IAAAE,EAAA;EAAA,IAAA1B,CAAA,QAAAG,gCAAA;IAGpCuB,EAAA,GAAAC,QAAA;MACElC,eAAA;QACEU,gCAAA,KAAiC;QAAA,IAE7B,OAAOwB,QAAA,KAAa;UACtBA,QAAA;QAAA;MAAA,CAEJ;IAAA;IACF3B,CAAA,MAAAG,gCAAA;IAAAH,CAAA,MAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EATF,MAAA4B,oBAAA,GAAmDF,EAUf;EAAA,IAAAG,EAAA;EAAA,IAAA7B,CAAA,QAAAa,MAAA,CAAAC,GAAA;IAGIe,EAAA,GAAAA,CAAA;MACtC,IAAAC,WAAA;MAEAzB,6BAAA,CAAA0B,KAAiD;MAAA;QAAA,IAG3CD,WAAA;UAAA;QAAA;QAIJA,WAAA,CAAAA,CAAA,CAAAA,IAAA;QACAzB,6BAAA,CAAA2B,MAA6D;MAAA;IAAA;IAEjEhC,CAAA,MAAA6B,EAAA;EAAA;IAAAA,EAAA,GAAA7B,CAAA;EAAA;EAbA,MAAAiC,mBAAA,GAA4BJ,EAavB;EAAA,IAAAK,EAAA;EAAA,IAAAlC,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAS,eAAA,IAAAT,CAAA,QAAA4B,oBAAA,IAAA5B,CAAA,SAAAO,kBAAA;IAGH2B,EAAA,GAAAC,IAAA,CAAAC,sBAAA;MAAAC,KAAA;QAAAJ,mBAAA;QAAAxB,eAAA;QAAAmB,oBAAA;QAAArB;MAAA;MAAAN;IAAA,C;;;;;;;;;SAAAiC,E;CAWJ;AAgBA,MAAME,sBAAA,gBAAyB5C,KAAA,CAAM8C,aAAa,CAA8B;EAC9EL,mBAAA,EAAqBA,CAAA,KAAM,MAAMM,SAAA;EACjC9B,eAAA,EAAiB;EACjB;EACAmB,oBAAA,EAAuBD,QAAA;IACrB,IAAI,OAAOA,QAAA,KAAa,YAAY;MAClCA,QAAA;IACF;EACF;EACApB,kBAAA,EAAoB;AACtB;AAEA;;;;;;;;;;;;;;;;;;;;AAoBA,OAAO,MAAMiC,kBAAA,GAAqBA,CAAA,KAAMhD,KAAA,CAAMiD,GAAG,CAACL,sBAAA;AArIqB,SAAAL,MAAAW,KAAA;EAAA,OA6D1BA,KAAA,IAAQ;AAAA;AA7DkB,SAAAV,OAAAW,OAAA;EAAA,OAqExBzB,IAAA,CAAA0B,GAAA,IAAYF,OAAA,IAAQ;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","startTransition","useCallback","useEffect","useOptimistic","useRef","RouteTransitionProvider","children","isOptimisticallyTransitioning","setIsOptimisticallyTransitioning","activeRouteTransitionHolds","setActiveRouteTransitionHolds","useState","routeTransitionHolds","Set","transitionProgress","setTransitionProgress","isTransitioning","transitionProgressRef","timerID","initiateProgress","current","setInterval","maxProgress","jumpFactor","growthFactor","slowdownFactor","newProgress","Math","random","pow","log","clearInterval","waitForHoldsToRelease","size","Promise","all","startRouteTransition","callback","runAction","action","resolve","holdRouteTransition","hasReleased","resolveHold","hold","add","count","delete","max","_jsx","RouteTransitionContext","value","createContext","undefined","useRouteTransition","use"],"sources":["../../../src/providers/RouteTransition/index.tsx"],"sourcesContent":["'use client'\nimport React, { startTransition, useCallback, useEffect, useOptimistic, useRef } from 'react'\n\n/**\n * Route transitions are useful in showing immediate visual feedback to the user when navigating between pages. This is especially useful on slow networks when navigating to data heavy or process intensive pages.\n * To use route transitions, place the `RouteTransitionProvider` at the root of your application, outside of the `ProgressBar` component.\n * To trigger a route transition, use the `Link` component from `@payloadcms/ui`,\n * or wrap a callback function with the `startRouteTransition` method.\n * To gain access to the `RouteTransitionContext`, call the `useRouteTransition` hook in your component.\n * @returns A context provider with methods and state for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * import { RouteTransitionProvider, ProgressBar, Link } from '@payloadcms/ui'\n * const App = () => (\n * <RouteTransitionProvider>\n * <ProgressBar />\n * <Link href=\"/somewhere\">Go Somewhere</Link>\n * </RouteTransitionProvider>\n * )\n */\nexport const RouteTransitionProvider: React.FC<RouteTransitionProps> = ({ children }) => {\n const [isOptimisticallyTransitioning, setIsOptimisticallyTransitioning] = useOptimistic(false)\n const [activeRouteTransitionHolds, setActiveRouteTransitionHolds] = React.useState(0)\n const routeTransitionHolds = useRef(new Set<Promise<void>>())\n const [transitionProgress, setTransitionProgress] = React.useState<number>(0)\n const isTransitioning = isOptimisticallyTransitioning || activeRouteTransitionHolds > 0\n\n const transitionProgressRef = useRef(transitionProgress)\n\n const timerID = useRef(null)\n\n const initiateProgress = useCallback(() => {\n timerID.current = setInterval(() => {\n // randomly update progress using an exponential curve\n // cap the progress to ensure it never fully reaches completion\n // accelerate quickly then decelerate slowly\n const maxProgress = 0.93\n const jumpFactor = 0.2 // lower to reduce jumps in progress\n const growthFactor = 0.75 // adjust to control acceleration\n const slowdownFactor = 0.75 // adjust to control deceleration\n\n const newProgress =\n transitionProgressRef.current +\n (maxProgress - transitionProgressRef.current) *\n Math.random() *\n jumpFactor *\n Math.pow(Math.log(1 + (1 - transitionProgressRef.current) * growthFactor), slowdownFactor)\n\n setTransitionProgress(newProgress)\n transitionProgressRef.current = newProgress\n }, 250) // every n ms, update progress\n }, [])\n\n useEffect(() => {\n setTransitionProgress(0)\n transitionProgressRef.current = 0\n\n if (isTransitioning) {\n initiateProgress()\n } else {\n if (timerID.current) {\n clearInterval(timerID.current)\n }\n }\n }, [isTransitioning, initiateProgress])\n\n const waitForHoldsToRelease = useCallback(async () => {\n while (routeTransitionHolds.current.size > 0) {\n await Promise.all(routeTransitionHolds.current)\n }\n }, [])\n\n const startRouteTransition: StartRouteTransition = useCallback(\n (callback?: () => unknown) => {\n const runAction = async () => {\n setIsOptimisticallyTransitioning(true)\n\n await callback?.()\n await waitForHoldsToRelease()\n }\n\n // React runs the scope synchronously but does not return its promise.\n let action = Promise.resolve()\n\n startTransition(() => {\n action = runAction()\n return action\n })\n\n return action\n },\n [setIsOptimisticallyTransitioning, waitForHoldsToRelease],\n )\n\n const holdRouteTransition = useCallback(() => {\n let hasReleased = false\n let resolveHold: () => void\n const hold = new Promise<void>((resolve) => {\n resolveHold = resolve\n })\n\n routeTransitionHolds.current.add(hold)\n setActiveRouteTransitionHolds((count) => count + 1)\n\n return () => {\n if (hasReleased) {\n return\n }\n\n hasReleased = true\n routeTransitionHolds.current.delete(hold)\n resolveHold()\n setActiveRouteTransitionHolds((count) => Math.max(0, count - 1))\n }\n }, [])\n\n return (\n <RouteTransitionContext\n value={{\n holdRouteTransition,\n isTransitioning,\n startRouteTransition,\n transitionProgress,\n }}\n >\n {children}\n </RouteTransitionContext>\n )\n}\n\ntype RouteTransitionProps = {\n children: React.ReactNode\n}\n\ntype StartRouteTransition = (callback?: () => unknown) => Promise<void>\n\ntype RouteTransitionContextValue = {\n /** Keeps the transition active until the returned release function is called. */\n holdRouteTransition: () => () => void\n isTransitioning: boolean\n /** Resolves after the callback and active route transition holds complete. */\n startRouteTransition: StartRouteTransition\n transitionProgress: number\n}\n\nconst RouteTransitionContext = React.createContext<RouteTransitionContextValue>({\n holdRouteTransition: () => () => undefined,\n isTransitioning: false,\n // Default implementation: just call the callback directly (no transition animation)\n startRouteTransition: async (callback) => {\n await callback?.()\n },\n transitionProgress: 0,\n})\n\n/**\n * Use this hook to access the `RouteTransitionContext` provided by the `RouteTransitionProvider`.\n * To start a transition, fire the `startRouteTransition` method with a provided callback to run while the transition takes place.\n * @returns The `RouteTransitionContext` needed for transitioning between routes, including `isTransitioning`, `startRouteTransition`, and `transitionProgress`.\n * @example\n * 'use client'\n * import React, { useCallback } from 'react'\n * import { useTransition, useRouter } from '@payloadcms/ui'\n *\n * const MyComponent: React.FC = () => {\n * const router = useRouter()\n * const { startRouteTransition } = useRouteTransition()\n *\n * const redirectSomewhere = useCallback(() => {\n * void startRouteTransition(() => router.push('/somewhere'))\n * }, [startRouteTransition, router])\n *\n * // ...\n * }\n */\nexport const useRouteTransition = () => React.use(RouteTransitionContext)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","createContext","use","RouterAdapterContext","useRouterAdapterContext","ctx","Error","useRouter","router","usePathname","pathname","useSearchParams","searchParams","useParams","params","PayloadLink","ref","props","Link","LinkComponent","_jsx"],"sources":["../../../src/providers/RouterAdapter/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkAdapterProps, RouterAdapterRouter } from 'payload'\n\nimport React, { createContext, use } from 'react'\n\nexport type RouterAdapterContextValue = {\n Link: React.ComponentType<LinkAdapterProps>\n params: Record<string, string | string[]>\n pathname: string\n router: RouterAdapterRouter\n searchParams: URLSearchParams\n}\n\n/**\n * The RouterAdapter context. Framework adapters populate this by rendering a\n * provider component that calls framework-specific hooks (e.g. next/navigation)\n * and passes the values here. This avoids calling dynamic hooks from props,\n * which would violate React compiler rules.\n */\nexport const RouterAdapterContext = createContext<null | RouterAdapterContextValue>(null)\n\nfunction useRouterAdapterContext(): RouterAdapterContextValue {\n const ctx = use(RouterAdapterContext)\n if (!ctx) {\n throw new Error(\n 'useRouter/usePathname/useSearchParams/useParams must be used within a RouterAdapterProvider',\n )\n }\n return ctx\n}\n\nexport function useRouter(): RouterAdapterRouter {\n return useRouterAdapterContext().router\n}\n\nexport function usePathname(): string {\n return useRouterAdapterContext().pathname\n}\n\nexport function useSearchParams(): URLSearchParams {\n return useRouterAdapterContext().searchParams\n}\n\nexport function useParams(): Record<string, string | string[]> {\n return useRouterAdapterContext().params\n}\n\nexport const PayloadLink: React.FC<{ ref?: React.Ref<HTMLAnchorElement> } & LinkAdapterProps> = ({\n ref,\n ...props\n}: { ref?: React.RefObject<HTMLAnchorElement | null> } & LinkAdapterProps) => {\n const { Link: LinkComponent } = useRouterAdapterContext()\n return <LinkComponent {...props} ref={ref} />\n}\n\nexport type { LinkAdapterProps, RouterAdapterRouter }\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAU1C;;;;;;AAMA,OAAO,MAAMC,oBAAA,gBAAuBF,aAAA,CAAgD;AAEpF,SAASG,wBAAA;EACP,MAAMC,GAAA,GAAMH,GAAA,CAAIC,oBAAA;EAChB,IAAI,CAACE,GAAA,EAAK;IACR,MAAM,IAAIC,KAAA,CACR;EAEJ;EACA,OAAOD,GAAA;AACT;AAEA,OAAO,SAAAE,UAAA;EAAA,OACEH,uBAAA,GAAAI,MAAA;AAAA;AAGT,OAAO,SAAAC,YAAA;EAAA,OACEL,uBAAA,GAAAM,QAAA;AAAA;AAGT,OAAO,SAAAC,gBAAA;EAAA,OACEP,uBAAA,GAAAQ,YAAA;AAAA;AAGT,OAAO,SAAAC,UAAA;EAAA,OACET,uBAAA,GAAAU,MAAA;AAAA;AAGT,OAAO,MAAMC,WAAA,GAAmFA,CAAC;EAC/FC,GAAG;EACH,GAAGC;AAAA,CACoE;EACvE,MAAM;IAAEC,IAAA,EAAMC;EAAa,CAAE,GAAGf,uBAAA;EAChC,oBAAOgB,IAAA,CAACD,aAAA;IAAe,GAAGF,KAAK;IAAED,GAAA,EAAKA;;AACxC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","createContext","use","RouterAdapterContext","useRouterAdapterContext","ctx","Error","useRouter","router","usePathname","pathname","useSearchParams","searchParams","useParams","params","PayloadLink","ref","props","Link","LinkComponent","_jsx"],"sources":["../../../src/providers/RouterAdapter/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkAdapterProps, RouterAdapterRouter } from 'payload'\n\nimport React, { createContext, use } from 'react'\n\nexport type RouterAdapterContextValue = {\n Link: React.ComponentType<LinkAdapterProps>\n params: Record<string, string | string[]>\n pathname: string\n router: RouterAdapterRouter\n searchParams: URLSearchParams\n}\n\n/**\n * The RouterAdapter context. Framework adapters populate this by rendering a\n * provider component that calls framework-specific hooks (e.g. next/navigation)\n * and passes the values here. This avoids calling dynamic hooks from props,\n * which would violate React compiler rules.\n */\nexport const RouterAdapterContext = createContext<null | RouterAdapterContextValue>(null)\n\nfunction useRouterAdapterContext(): RouterAdapterContextValue {\n const ctx = use(RouterAdapterContext)\n if (!ctx) {\n throw new Error(\n 'useRouter/usePathname/useSearchParams/useParams must be used within a RouterAdapterProvider',\n )\n }\n return ctx\n}\n\nexport function useRouter(): RouterAdapterRouter {\n return useRouterAdapterContext().router\n}\n\nexport function usePathname(): string {\n return useRouterAdapterContext().pathname\n}\n\nexport function useSearchParams(): URLSearchParams {\n return useRouterAdapterContext().searchParams\n}\n\nexport function useParams(): Record<string, string | string[]> {\n return useRouterAdapterContext().params\n}\n\nexport const PayloadLink: React.FC<{ ref?: React.Ref<HTMLAnchorElement> } & LinkAdapterProps> = ({\n ref,\n ...props\n}: { ref?: React.RefObject<HTMLAnchorElement | null> } & LinkAdapterProps) => {\n const { Link: LinkComponent } = useRouterAdapterContext()\n return <LinkComponent {...props} ref={ref} />\n}\n\nexport type { LinkAdapterProps, RouterAdapterRouter }\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAU1C;;;;;;AAMA,OAAO,MAAMC,oBAAA,gBAAuBF,aAAA,CAAgD;AAEpF,SAASG,wBAAA;EACP,MAAMC,GAAA,GAAMH,GAAA,CAAIC,oBAAA;EAChB,IAAI,CAACE,GAAA,EAAK;IACR,MAAM,IAAIC,KAAA,CACR;EAEJ;EACA,OAAOD,GAAA;AACT;AAEA,OAAO,SAAAE,UAAA;EAAA,OACEH,uBAAA,GAAAI,MAAgC;AAAA;AAGzC,OAAO,SAAAC,YAAA;EAAA,OACEL,uBAAA,GAAAM,QAAkC;AAAA;AAG3C,OAAO,SAAAC,gBAAA;EAAA,OACEP,uBAAA,GAAAQ,YAAsC;AAAA;AAG/C,OAAO,SAAAC,UAAA;EAAA,OACET,uBAAA,GAAAU,MAAgC;AAAA;AAGzC,OAAO,MAAMC,WAAA,GAAmFA,CAAC;EAC/FC,GAAG;EACH,GAAGC;AAAA,CACoE;EACvE,MAAM;IAAEC,IAAA,EAAMC;EAAa,CAAE,GAAGf,uBAAA;EAChC,oBAAOgB,IAAA,CAACD,aAAA;IAAe,GAAGF,KAAK;IAAED,GAAA,EAAKA;;AACxC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useListDrawerContext","DefaultCell","useTableColumns","baseClass","CellPropsContext","createContext","useCellProps","use","RenderDefaultCell","t0","$","clientProps","columnIndex","isLinkedColumn","drawerSlug","onSelect","LinkedCellOverride","t1","propsToPass","link","className","t2","t3","collectionSlug","rowColl","rowData","doc","onClick","_jsx","value","children"],"sources":["../../../../src/providers/TableColumns/RenderDefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload'\n\nimport React from 'react'\n\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DefaultCell } from '../../../elements/Table/DefaultCell/index.js'\nimport { useTableColumns } from '../../../providers/TableColumns/index.js'\nimport './index.css'\n\nconst baseClass = 'default-cell'\n\nconst CellPropsContext = React.createContext<DefaultCellComponentProps | null>(null)\n\nexport const useCellProps = (): DefaultCellComponentProps | null => React.use(CellPropsContext)\n\nexport const RenderDefaultCell: React.FC<{\n clientProps: DefaultCellComponentProps\n columnIndex: number\n enableRowSelections?: boolean\n isLinkedColumn?: boolean\n}> = ({ clientProps, columnIndex, isLinkedColumn }) => {\n const { drawerSlug, onSelect } = useListDrawerContext()\n const { LinkedCellOverride } = useTableColumns()\n\n const propsToPass: DefaultCellComponentProps = {\n ...clientProps,\n columnIndex,\n }\n\n if (isLinkedColumn && drawerSlug && clientProps.link !== false) {\n propsToPass.className = `${baseClass}__first-cell`\n propsToPass.link = false\n propsToPass.onClick = ({ collectionSlug: rowColl, rowData }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: rowColl,\n doc: rowData,\n })\n }\n }\n }\n\n return (\n <CellPropsContext value={propsToPass}>\n {isLinkedColumn && LinkedCellOverride ? LinkedCellOverride : <DefaultCell {...propsToPass} />}\n </CellPropsContext>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,oBAAoB,QAAQ;AACrC,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,gBAAA,gBAAmBL,KAAA,CAAMM,aAAa,CAAmC;AAE/E,OAAO,MAAMC,YAAA,GAAeA,CAAA,KAAwCP,KAAA,CAAMQ,GAAG,CAACH,gBAAA;AAE9E,OAAO,MAAMI,iBAAA,GAKRC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAC;IAAAa,WAAA;IAAAC,WAAA;IAAAC;EAAA,IAAAJ,EAA4C;EAChD;IAAAK,UAAA;IAAAC;EAAA,IAAiCf,oBAAA;EACjC;IAAAgB;EAAA,IAA+Bd,eAAA;EAAA,IAAAe,EAAA;EAAA,IAAAP,CAAA,QAAAM,kBAAA,IAAAN,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAK,QAAA;IAE/B,MAAAG,WAAA;MAAA,GACKP,WAAW;MAAAC;IAAA;IAEhB,IAEIC,cAAA,IAAkBC,UAAA,IAAcH,WAAA,CAAAQ,IAAA,UAAqB;MACvDD,WAAA,CAAAE,SAAA,GAAwB,GAAAjB,SAAA,cAA0B;MAClDe,WAAA,CAAAC,IAAA;MAAA,IAAAE,EAAA;MAAA,IAAAX,CAAA,QAAAK,QAAA;QACsBM,EAAA,GAAAC,EAAA;UAAC;YAAAC,cAAA,EAAAC,OAAA;YAAAC;UAAA,IAAAH,EAAoC;UAAA,IACrD,OAAOP,QAAA,KAAa;YACtBA,QAAA;cAAAQ,cAAA,EACkBC,OAAA;cAAAE,GAAA,EACXD;YAAA,CACP;UAAA;QAAA;QAEJf,CAAA,MAAAK,QAAA;QAAAL,CAAA,MAAAW,EAAA;MAAA;QAAAA,EAAA,GAAAX,CAAA;MAAA;MAPAQ,WAAA,CAAAS,OAAA,GAAsBN,EAOtB;IAAA;IAIAJ,EAAA,GAAAW,IAAA,CAAAxB,gBAAA;MAAAyB,KAAA,EAAyBX,WAAA;MAAAY,QAAA,EACtBjB,cAAA,IAAkBG,kBAAA,GAAqBA,kBAAA,GAAqBY,IAAA,CAAA3B,WAAA;QAAA,GAAiBiB;MAAW,C;;;;;;;;;;;;SAD3FD,E;CAIJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useListDrawerContext","DefaultCell","useTableColumns","baseClass","CellPropsContext","createContext","useCellProps","use","RenderDefaultCell","t0","$","clientProps","columnIndex","isLinkedColumn","drawerSlug","onSelect","LinkedCellOverride","t1","propsToPass","link","className","t2","t3","collectionSlug","rowColl","rowData","doc","onClick","_jsx","value","children"],"sources":["../../../../src/providers/TableColumns/RenderDefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload'\n\nimport React from 'react'\n\nimport { useListDrawerContext } from '../../../elements/ListDrawer/Provider.js'\nimport { DefaultCell } from '../../../elements/Table/DefaultCell/index.js'\nimport { useTableColumns } from '../../../providers/TableColumns/index.js'\nimport './index.css'\n\nconst baseClass = 'default-cell'\n\nconst CellPropsContext = React.createContext<DefaultCellComponentProps | null>(null)\n\nexport const useCellProps = (): DefaultCellComponentProps | null => React.use(CellPropsContext)\n\nexport const RenderDefaultCell: React.FC<{\n clientProps: DefaultCellComponentProps\n columnIndex: number\n enableRowSelections?: boolean\n isLinkedColumn?: boolean\n}> = ({ clientProps, columnIndex, isLinkedColumn }) => {\n const { drawerSlug, onSelect } = useListDrawerContext()\n const { LinkedCellOverride } = useTableColumns()\n\n const propsToPass: DefaultCellComponentProps = {\n ...clientProps,\n columnIndex,\n }\n\n if (isLinkedColumn && drawerSlug && clientProps.link !== false) {\n propsToPass.className = `${baseClass}__first-cell`\n propsToPass.link = false\n propsToPass.onClick = ({ collectionSlug: rowColl, rowData }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: rowColl,\n doc: rowData,\n })\n }\n }\n }\n\n return (\n <CellPropsContext value={propsToPass}>\n {isLinkedColumn && LinkedCellOverride ? LinkedCellOverride : <DefaultCell {...propsToPass} />}\n </CellPropsContext>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,oBAAoB,QAAQ;AACrC,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,gBAAA,gBAAmBL,KAAA,CAAMM,aAAa,CAAmC;AAE/E,OAAO,MAAMC,YAAA,GAAeA,CAAA,KAAwCP,KAAA,CAAMQ,GAAG,CAACH,gBAAA;AAE9E,OAAO,MAAMI,iBAAA,GAKRC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAC;IAAAa,WAAA;IAAAC,WAAA;IAAAC;EAAA,IAAAJ,EAA4C;EAChD;IAAAK,UAAA;IAAAC;EAAA,IAAiCf,oBAAA;EACjC;IAAAgB;EAAA,IAA+Bd,eAAA;EAAA,IAAAe,EAAA;EAAA,IAAAP,CAAA,QAAAM,kBAAA,IAAAN,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAK,QAAA;IAE/B,MAAAG,WAAA,GAA+C;MAAA,GAC1CP,WAAW;MAAAC;IAEhB;IAEA,IAAIC,cAAkB,IAAlBC,UAAqD,IAArBH,WAAA,CAAAQ,IAAgB,KAAK;MACvDD,WAAA,CAAAE,SAAA,GAAwB,GAAGjB,SAAA,cAAN;MACrBe,WAAA,CAAAC,IAAA,GAAmB,KAAH;MAAA,IAAAE,EAAA;MAAA,IAAAX,CAAA,QAAAK,QAAA;QACMM,EAAA,GAAAC,EAAA;UAAC;YAAAC,cAAA,EAAAC,OAAA;YAAAC;UAAA,IAAAH,EAAoC;UACzD,IAAI,OAAOP,QAAA,KAAa;YACtBA,QAAA,CAAS;cAAAQ,cAAA,EACSC,OAAA;cAAAE,GAAA,EACXD;YACP;UAAA;QACF,CACF;QAAAf,CAAA,MAAAK,QAAA;QAAAL,CAAA,MAAAW,EAAA;MAAA;QAAAA,EAAA,GAAAX,CAAA;MAAA;MAPAQ,WAAA,CAAAS,OAAA,GAAsBN,EAAH;IAAA;IAWnBJ,EAAA,GAAAW,IAAA,CAACxB,gBAAA;MAAAyB,KAAA,EAAwBX,WAAA;MAAAY,QAAA,EACtBjB,cAAkB,IAAlBG,kB,GAAAA,kB,GAA4DY,IAAA,CAAC3B,WAAA;QAAA,GAAgBiB;;;;;;;;;;;;;SADhFD,E;CAIJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/TableColumns/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA0D,MAAM,OAAO,CAAA;AAE9E,OAAO,KAAK,EAAiB,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAM1E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAiIpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/TableColumns/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAiB,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAO1E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuGpE,CAAA"}