@payloadcms/ui 4.0.0-internal.934870d → 4.0.0-internal.970009e

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 (867) hide show
  1. package/dist/css/app.css +2 -2
  2. package/dist/css/colors.css +65 -0
  3. package/dist/css/preflight.css +21 -2
  4. package/dist/elements/APIKeyInput/index.js +22 -23
  5. package/dist/elements/APIKeyInput/index.js.map +1 -1
  6. package/dist/elements/AddNewRelation/index.js +17 -19
  7. package/dist/elements/AddNewRelation/index.js.map +1 -1
  8. package/dist/elements/AppHeader/index.css +1 -1
  9. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  10. package/dist/elements/AppHeader/index.js +5 -1
  11. package/dist/elements/AppHeader/index.js.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +39 -30
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.js +234 -142
  15. package/dist/elements/Autosave/index.js.map +1 -1
  16. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  18. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/EditMany/index.js +29 -21
  22. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  25. package/dist/elements/BulkUpload/FormsManager/index.js +1 -34
  26. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/index.js +63 -23
  28. package/dist/elements/BulkUpload/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
  30. package/dist/elements/Button/index.css +3 -3
  31. package/dist/elements/Button/index.d.ts.map +1 -1
  32. package/dist/elements/Button/index.js +2 -1
  33. package/dist/elements/Button/index.js.map +1 -1
  34. package/dist/elements/Button/types.d.ts +1 -0
  35. package/dist/elements/Button/types.d.ts.map +1 -1
  36. package/dist/elements/Button/types.js.map +1 -1
  37. package/dist/elements/CardGrid/index.css +0 -1
  38. package/dist/elements/Chip/index.js.map +1 -1
  39. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  40. package/dist/elements/ClipboardAction/index.js +213 -88
  41. package/dist/elements/ClipboardAction/index.js.map +1 -1
  42. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  43. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  44. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  45. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  46. package/dist/elements/CodeEditor/CodeEditor.js +95 -56
  47. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  48. package/dist/elements/CollapseAllToggle/index.js +47 -32
  49. package/dist/elements/CollapseAllToggle/index.js.map +1 -1
  50. package/dist/elements/Collapsible/index.css +15 -4
  51. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  52. package/dist/elements/Collapsible/index.js +46 -38
  53. package/dist/elements/Collapsible/index.js.map +1 -1
  54. package/dist/elements/Collapsible/provider.js +37 -14
  55. package/dist/elements/Collapsible/provider.js.map +1 -1
  56. package/dist/elements/ColumnSelection/Popup.css +4 -0
  57. package/dist/elements/ColumnSelection/Popup.js +10 -2
  58. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  59. package/dist/elements/ColumnSelection/index.js.map +1 -1
  60. package/dist/elements/CommandPalette/index.css +8 -0
  61. package/dist/elements/ConfirmationModal/index.d.ts +3 -0
  62. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  63. package/dist/elements/ConfirmationModal/index.js +2 -0
  64. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  65. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  66. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  67. package/dist/elements/CreateDocumentButton/index.js +45 -43
  68. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  69. package/dist/elements/DatePicker/DatePicker.js +6 -2
  70. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  71. package/dist/elements/DatePicker/index.css +40 -25
  72. package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
  73. package/dist/elements/DefaultListViewTabs/index.css +4 -0
  74. package/dist/elements/DefaultListViewTabs/index.js +47 -37
  75. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  76. package/dist/elements/DelayedSpinner/index.js.map +1 -1
  77. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  78. package/dist/elements/DeleteDocument/index.js +1 -3
  79. package/dist/elements/DeleteDocument/index.js.map +1 -1
  80. package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
  81. package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
  82. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  83. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  84. package/dist/elements/DocumentCard/index.d.ts +2 -0
  85. package/dist/elements/DocumentCard/index.d.ts.map +1 -1
  86. package/dist/elements/DocumentCard/index.js +2 -0
  87. package/dist/elements/DocumentCard/index.js.map +1 -1
  88. package/dist/elements/DocumentControls/index.css +13 -10
  89. package/dist/elements/DocumentControls/index.js +1 -1
  90. package/dist/elements/DocumentControls/index.js.map +1 -1
  91. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  92. package/dist/elements/DocumentFields/index.css +7 -7
  93. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  94. package/dist/elements/DocumentFields/index.js +125 -65
  95. package/dist/elements/DocumentFields/index.js.map +1 -1
  96. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  97. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  98. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
  99. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  100. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
  101. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  102. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  103. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  104. package/dist/elements/DocumentLocked/index.js +1 -0
  105. package/dist/elements/DocumentLocked/index.js.map +1 -1
  106. package/dist/elements/DocumentStaleData/index.js.map +1 -1
  107. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  108. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
  109. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
  110. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  111. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
  112. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  113. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
  114. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  115. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  116. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  117. package/dist/elements/DraggableSortable/index.js +104 -170
  118. package/dist/elements/DraggableSortable/index.js.map +1 -1
  119. package/dist/elements/DraggableSortable/types.d.ts +1 -0
  120. package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
  121. package/dist/elements/DraggableSortable/types.js.map +1 -1
  122. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  123. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
  124. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
  125. package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
  126. package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
  127. package/dist/elements/Drawer/index.js +138 -81
  128. package/dist/elements/Drawer/index.js.map +1 -1
  129. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  130. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  131. package/dist/elements/DrawerHeader/index.js.map +1 -1
  132. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
  133. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  134. package/dist/elements/EditMany/DrawerContent.js +1 -1
  135. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  136. package/dist/elements/EditMany/index.js.map +1 -1
  137. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
  138. package/dist/elements/FieldDiffContainer/index.js +7 -1
  139. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  140. package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
  141. package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
  142. package/dist/elements/FieldDiffLabel/index.js +2 -0
  143. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  144. package/dist/elements/FieldSelect/index.js +23 -14
  145. package/dist/elements/FieldSelect/index.js.map +1 -1
  146. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  147. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  148. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  149. package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
  150. package/dist/elements/FileManager/index.js.map +1 -1
  151. package/dist/elements/FullscreenModal/index.js.map +1 -1
  152. package/dist/elements/GenerateConfirmation/index.js +21 -21
  153. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  154. package/dist/elements/GroupBy/Popup.js.map +1 -1
  155. package/dist/elements/GroupBy/index.js +120 -66
  156. package/dist/elements/GroupBy/index.js.map +1 -1
  157. package/dist/elements/HTMLDiff/colors.css +7 -0
  158. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  159. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
  160. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  161. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
  162. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  163. package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
  164. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
  165. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
  166. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
  167. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
  168. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
  169. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  170. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  171. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  172. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  173. package/dist/elements/Hierarchy/Tree/index.js +10 -5
  174. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  175. package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -1
  176. package/dist/elements/HierarchyTypeField/index.js.map +1 -1
  177. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  178. package/dist/elements/HydratePreferences/index.js.map +1 -1
  179. package/dist/elements/IDLabel/index.js.map +1 -1
  180. package/dist/elements/InputStepper/index.js.map +1 -1
  181. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
  182. package/dist/elements/ItemsDrawer/index.js +186 -105
  183. package/dist/elements/ItemsDrawer/index.js.map +1 -1
  184. package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
  185. package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
  186. package/dist/elements/LayoutToggle/index.js.map +1 -1
  187. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  188. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
  189. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  190. package/dist/elements/Link/index.js +1 -1
  191. package/dist/elements/Link/index.js.map +1 -1
  192. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
  193. package/dist/elements/ListControls/index.js.map +1 -1
  194. package/dist/elements/ListDrawer/DrawerContent.js +1 -1
  195. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  196. package/dist/elements/ListDrawer/Provider.d.ts +3 -2
  197. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  198. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  199. package/dist/elements/ListDrawer/index.js.map +1 -1
  200. package/dist/elements/ListGroupByButton/index.js.map +1 -1
  201. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  202. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
  203. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  204. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  205. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
  206. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  207. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  208. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  209. package/dist/elements/ListSelection/index.js.map +1 -1
  210. package/dist/elements/ListWhereBuilder/index.js.map +1 -1
  211. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  212. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  213. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  214. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  215. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  216. package/dist/elements/LivePreview/Window/index.css +7 -1
  217. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  218. package/dist/elements/LivePreview/Window/index.js +6 -1
  219. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  220. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  221. package/dist/elements/Loading/index.js +62 -18
  222. package/dist/elements/Loading/index.js.map +1 -1
  223. package/dist/elements/LoadingOverlay/index.js +93 -49
  224. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  225. package/dist/elements/Localizer/index.js +133 -108
  226. package/dist/elements/Localizer/index.js.map +1 -1
  227. package/dist/elements/Locked/index.js +54 -37
  228. package/dist/elements/Locked/index.js.map +1 -1
  229. package/dist/elements/Logout/index.js.map +1 -1
  230. package/dist/elements/MiniCarousel/index.js +102 -38
  231. package/dist/elements/MiniCarousel/index.js.map +1 -1
  232. package/dist/elements/Modal/index.d.ts.map +1 -1
  233. package/dist/elements/Modal/index.js +13 -1
  234. package/dist/elements/Modal/index.js.map +1 -1
  235. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  236. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  237. package/dist/elements/Nav/NavWrapper/index.js +10 -6
  238. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  239. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  240. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
  241. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  242. package/dist/elements/Nav/SidebarTabs/index.client.js +32 -21
  243. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  244. package/dist/elements/Nav/index.client.js.map +1 -1
  245. package/dist/elements/Nav/index.css +5 -0
  246. package/dist/elements/NavGroup/index.css +27 -3
  247. package/dist/elements/NavGroup/index.js +31 -38
  248. package/dist/elements/NavGroup/index.js.map +1 -1
  249. package/dist/elements/NoListResults/index.css +1 -0
  250. package/dist/elements/NoListResults/index.js +1 -1
  251. package/dist/elements/NoListResults/index.js.map +1 -1
  252. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  253. package/dist/elements/PageControls/index.js.map +1 -1
  254. package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
  255. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  256. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  257. package/dist/elements/Pagination/index.js +36 -37
  258. package/dist/elements/Pagination/index.js.map +1 -1
  259. package/dist/elements/PerPage/index.js.map +1 -1
  260. package/dist/elements/Pill/index.js.map +1 -1
  261. package/dist/elements/Popup/index.d.ts.map +1 -1
  262. package/dist/elements/Popup/index.js +19 -3
  263. package/dist/elements/Popup/index.js.map +1 -1
  264. package/dist/elements/PreviewButton/index.js.map +1 -1
  265. package/dist/elements/PreviewSizes/index.js +141 -70
  266. package/dist/elements/PreviewSizes/index.js.map +1 -1
  267. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  268. package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
  269. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  270. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  271. package/dist/elements/PublishButton/index.js +1 -0
  272. package/dist/elements/PublishButton/index.js.map +1 -1
  273. package/dist/elements/PublishMany/DrawerContent.js +1 -1
  274. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  275. package/dist/elements/PublishMany/index.js +32 -24
  276. package/dist/elements/PublishMany/index.js.map +1 -1
  277. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
  278. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  279. package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
  280. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  281. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
  282. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  283. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  284. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  285. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  286. package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
  287. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  288. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  289. package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
  290. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  291. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  292. package/dist/elements/ReactSelect/index.css +4 -0
  293. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  294. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  295. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  296. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  297. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  298. package/dist/elements/RelationshipTable/index.js +1 -1
  299. package/dist/elements/RelationshipTable/index.js.map +1 -1
  300. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  301. package/dist/elements/RenderTitle/index.js.map +1 -1
  302. package/dist/elements/RestoreMany/index.js +1 -1
  303. package/dist/elements/RestoreMany/index.js.map +1 -1
  304. package/dist/elements/SchedulePublishButton/index.js +111 -39
  305. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  306. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  307. package/dist/elements/SegmentedControl/index.css +50 -7
  308. package/dist/elements/SegmentedControl/index.js.map +1 -1
  309. package/dist/elements/SelectAll/index.js.map +1 -1
  310. package/dist/elements/SelectRow/index.js +31 -21
  311. package/dist/elements/SelectRow/index.js.map +1 -1
  312. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  313. package/dist/elements/SidebarToggle/index.js.map +1 -1
  314. package/dist/elements/SkipToContent/index.js.map +1 -1
  315. package/dist/elements/SortHeader/index.js.map +1 -1
  316. package/dist/elements/SortRow/index.js.map +1 -1
  317. package/dist/elements/Spinner/index.js.map +1 -1
  318. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  319. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  320. package/dist/elements/StepNav/context.js.map +1 -1
  321. package/dist/elements/Switch/index.css +2 -2
  322. package/dist/elements/Switch/index.js.map +1 -1
  323. package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
  324. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  325. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
  326. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  327. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
  328. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  329. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  330. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  331. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  332. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  333. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
  334. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  335. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  336. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  337. package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
  338. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  339. package/dist/elements/Table/DefaultCell/index.js +6 -1
  340. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  341. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
  342. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  343. package/dist/elements/Table/TableIdentity.js +32 -16
  344. package/dist/elements/Table/TableIdentity.js.map +1 -1
  345. package/dist/elements/Table/index.js.map +1 -1
  346. package/dist/elements/Table/useAriaSort.js.map +1 -1
  347. package/dist/elements/Tabs/index.css +4 -3
  348. package/dist/elements/Thumbnail/index.js +133 -53
  349. package/dist/elements/Thumbnail/index.js.map +1 -1
  350. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  351. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  352. package/dist/elements/TimezonePicker/index.js +113 -54
  353. package/dist/elements/TimezonePicker/index.js.map +1 -1
  354. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  355. package/dist/elements/Tooltip/index.js.map +1 -1
  356. package/dist/elements/Translation/index.js +1 -1
  357. package/dist/elements/Translation/index.js.map +1 -1
  358. package/dist/elements/TrashBanner/index.js.map +1 -1
  359. package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
  360. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  361. package/dist/elements/UnpublishMany/index.js +32 -24
  362. package/dist/elements/UnpublishMany/index.js.map +1 -1
  363. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  364. package/dist/elements/Upload/index.js.map +1 -1
  365. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
  366. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
  367. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  368. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  369. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  370. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  371. package/dist/elements/UserMenu/index.js +2 -1
  372. package/dist/elements/UserMenu/index.js.map +1 -1
  373. package/dist/elements/ViewDescription/index.js.map +1 -1
  374. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  375. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  376. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  377. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  378. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  379. package/dist/elements/WhereBuilder/Condition/index.js +1 -0
  380. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  381. package/dist/exports/client/{CodeEditor-S7MOGZSR.js → CodeEditor-23ZGBN6S.js} +2 -2
  382. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-AZBZPMY6.js} +2 -2
  383. package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
  384. package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
  385. package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
  386. package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
  387. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-ZP2PB6M4.js} +2 -2
  388. package/dist/exports/client/chunk-ZP2PB6M4.js.map +7 -0
  389. package/dist/exports/client/index.d.ts +2 -2
  390. package/dist/exports/client/index.d.ts.map +1 -1
  391. package/dist/exports/client/index.js +27 -27
  392. package/dist/exports/client/index.js.map +4 -4
  393. package/dist/exports/rsc/index.d.ts +1 -1
  394. package/dist/exports/rsc/index.d.ts.map +1 -1
  395. package/dist/exports/rsc/index.js +1 -1
  396. package/dist/exports/rsc/index.js.map +1 -1
  397. package/dist/exports/shared/index.js +2 -2
  398. package/dist/exports/shared/index.js.map +3 -3
  399. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  400. package/dist/fields/Array/ArrayRow.js +207 -99
  401. package/dist/fields/Array/ArrayRow.js.map +1 -1
  402. package/dist/fields/Array/index.d.ts.map +1 -1
  403. package/dist/fields/Array/index.js +521 -308
  404. package/dist/fields/Array/index.js.map +1 -1
  405. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  406. package/dist/fields/Blocks/BlockRow.js +224 -136
  407. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  408. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  409. package/dist/fields/Blocks/BlockSelector/index.js +114 -74
  410. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  411. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  412. package/dist/fields/Blocks/RowActions.js +75 -55
  413. package/dist/fields/Blocks/RowActions.js.map +1 -1
  414. package/dist/fields/Blocks/SectionTitle/index.css +4 -0
  415. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  416. package/dist/fields/Blocks/index.d.ts.map +1 -1
  417. package/dist/fields/Blocks/index.js +1 -0
  418. package/dist/fields/Blocks/index.js.map +1 -1
  419. package/dist/fields/Checkbox/index.css +3 -3
  420. package/dist/fields/Checkbox/index.js.map +1 -1
  421. package/dist/fields/Code/index.d.ts.map +1 -1
  422. package/dist/fields/Code/index.js +3 -2
  423. package/dist/fields/Code/index.js.map +1 -1
  424. package/dist/fields/Collapsible/index.js +114 -73
  425. package/dist/fields/Collapsible/index.js.map +1 -1
  426. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  427. package/dist/fields/DateTime/index.js +215 -121
  428. package/dist/fields/DateTime/index.js.map +1 -1
  429. package/dist/fields/Email/index.d.ts.map +1 -1
  430. package/dist/fields/Email/index.js.map +1 -1
  431. package/dist/fields/FieldDescription/index.js +29 -21
  432. package/dist/fields/FieldDescription/index.js.map +1 -1
  433. package/dist/fields/FieldError/index.js.map +1 -1
  434. package/dist/fields/FieldLabel/index.js.map +1 -1
  435. package/dist/fields/Group/index.css +3 -5
  436. package/dist/fields/Group/index.js +75 -46
  437. package/dist/fields/Group/index.js.map +1 -1
  438. package/dist/fields/Hidden/index.js +23 -15
  439. package/dist/fields/Hidden/index.js.map +1 -1
  440. package/dist/fields/JSON/index.d.ts.map +1 -1
  441. package/dist/fields/JSON/index.js +3 -2
  442. package/dist/fields/JSON/index.js.map +1 -1
  443. package/dist/fields/Number/Input.js.map +1 -1
  444. package/dist/fields/Number/index.d.ts.map +1 -1
  445. package/dist/fields/Number/index.js.map +1 -1
  446. package/dist/fields/Password/index.d.ts.map +1 -1
  447. package/dist/fields/Password/index.js.map +1 -1
  448. package/dist/fields/Password/input.js +46 -27
  449. package/dist/fields/Password/input.js.map +1 -1
  450. package/dist/fields/RadioGroup/Radio/index.js +35 -35
  451. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  452. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  453. package/dist/fields/RadioGroup/index.js.map +1 -1
  454. package/dist/fields/Relationship/Input.js +14 -14
  455. package/dist/fields/Relationship/Input.js.map +1 -1
  456. package/dist/fields/Relationship/index.js +216 -111
  457. package/dist/fields/Relationship/index.js.map +1 -1
  458. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  459. package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
  460. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  461. package/dist/fields/Select/Input.js +26 -10
  462. package/dist/fields/Select/Input.js.map +1 -1
  463. package/dist/fields/Select/index.d.ts.map +1 -1
  464. package/dist/fields/Select/index.js +158 -77
  465. package/dist/fields/Select/index.js.map +1 -1
  466. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  467. package/dist/fields/Tabs/index.css +17 -21
  468. package/dist/fields/Tabs/index.js +120 -112
  469. package/dist/fields/Tabs/index.js.map +1 -1
  470. package/dist/fields/Text/Input.d.ts.map +1 -1
  471. package/dist/fields/Text/Input.js +2 -2
  472. package/dist/fields/Text/Input.js.map +1 -1
  473. package/dist/fields/Text/index.js +172 -95
  474. package/dist/fields/Text/index.js.map +1 -1
  475. package/dist/fields/Text/types.d.ts +2 -1
  476. package/dist/fields/Text/types.d.ts.map +1 -1
  477. package/dist/fields/Text/types.js.map +1 -1
  478. package/dist/fields/Textarea/Input.js +58 -28
  479. package/dist/fields/Textarea/Input.js.map +1 -1
  480. package/dist/fields/Textarea/index.js +97 -55
  481. package/dist/fields/Textarea/index.js.map +1 -1
  482. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  483. package/dist/fields/Upload/Input.d.ts.map +1 -1
  484. package/dist/fields/Upload/Input.js +19 -8
  485. package/dist/fields/Upload/Input.js.map +1 -1
  486. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  487. package/dist/fields/Upload/index.css +9 -0
  488. package/dist/fields/Upload/index.js +101 -63
  489. package/dist/fields/Upload/index.js.map +1 -1
  490. package/dist/fields/shared/useRowFocus.js.map +1 -1
  491. package/dist/forms/Form/context.js.map +1 -1
  492. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  493. package/dist/forms/Form/fieldReducer.js.map +1 -1
  494. package/dist/forms/Form/index.d.ts.map +1 -1
  495. package/dist/forms/Form/index.js +27 -8
  496. package/dist/forms/Form/index.js.map +1 -1
  497. package/dist/forms/Form/reduceToSerializableFields.d.ts +9 -4
  498. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  499. package/dist/forms/Form/reduceToSerializableFields.js +34 -7
  500. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  501. package/dist/forms/Form/types.d.ts +1 -1
  502. package/dist/forms/Form/types.d.ts.map +1 -1
  503. package/dist/forms/Form/types.js.map +1 -1
  504. package/dist/forms/NullifyField/index.js.map +1 -1
  505. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  506. package/dist/forms/RenderFields/context.js +3 -2
  507. package/dist/forms/RenderFields/context.js.map +1 -1
  508. package/dist/forms/RenderFields/index.css +2 -2
  509. package/dist/forms/RenderFields/index.js.map +1 -1
  510. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  511. package/dist/forms/RowLabel/Context/index.js +58 -18
  512. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  513. package/dist/forms/Submit/index.js +12 -13
  514. package/dist/forms/Submit/index.js.map +1 -1
  515. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  516. package/dist/forms/useField/index.js +1 -1
  517. package/dist/forms/useField/index.js.map +1 -1
  518. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  519. package/dist/graphics/Account/Gravatar/index.js +32 -17
  520. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  521. package/dist/graphics/Account/index.js +27 -18
  522. package/dist/graphics/Account/index.js.map +1 -1
  523. package/dist/hooks/useControllableState.js.map +1 -1
  524. package/dist/hooks/useDebounce.js.map +1 -1
  525. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  526. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  527. package/dist/hooks/useDelay.js.map +1 -1
  528. package/dist/hooks/useDelayedRender.js.map +1 -1
  529. package/dist/hooks/useElementHeightVariable.js.map +1 -1
  530. package/dist/hooks/useHotkey.js.map +1 -1
  531. package/dist/hooks/useIntersect.js.map +1 -1
  532. package/dist/hooks/usePayloadAPI.js.map +1 -1
  533. package/dist/hooks/usePopupWindow.js.map +1 -1
  534. package/dist/hooks/useRelatedCollections.js.map +1 -1
  535. package/dist/hooks/useResize.js.map +1 -1
  536. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  537. package/dist/hooks/useThrottledEffect.js +21 -24
  538. package/dist/hooks/useThrottledEffect.js.map +1 -1
  539. package/dist/hooks/useUseAsTitle.js.map +1 -1
  540. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  541. package/dist/icons/Sidebar/index.js +2 -0
  542. package/dist/icons/Sidebar/index.js.map +1 -1
  543. package/dist/icons/Table/index.css +5 -1
  544. package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
  545. package/dist/layouts/Root/RootProviders.js +31 -28
  546. package/dist/layouts/Root/RootProviders.js.map +1 -1
  547. package/dist/layouts/Root/index.d.ts +1 -1
  548. package/dist/layouts/Root/index.d.ts.map +1 -1
  549. package/dist/layouts/Root/index.js +4 -15
  550. package/dist/layouts/Root/index.js.map +1 -1
  551. package/dist/providers/Actions/index.js.map +1 -1
  552. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
  553. package/dist/providers/Auth/index.js +2 -2
  554. package/dist/providers/Auth/index.js.map +1 -1
  555. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
  556. package/dist/providers/ClientFunction/index.js.map +1 -1
  557. package/dist/providers/Config/index.js +65 -32
  558. package/dist/providers/Config/index.js.map +1 -1
  559. package/dist/providers/DocumentEvents/index.js.map +1 -1
  560. package/dist/providers/EditDepth/index.js.map +1 -1
  561. package/dist/providers/Embed/index.js.map +1 -1
  562. package/dist/providers/EntityVisibility/index.js.map +1 -1
  563. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  564. package/dist/providers/ListQuery/index.js +5 -5
  565. package/dist/providers/ListQuery/index.js.map +1 -1
  566. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  567. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  568. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  569. package/dist/providers/ListQuery/types.d.ts +6 -1
  570. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  571. package/dist/providers/ListQuery/types.js.map +1 -1
  572. package/dist/providers/ModalAccessibility/index.js.map +1 -1
  573. package/dist/providers/ModalFocus/index.d.ts +15 -0
  574. package/dist/providers/ModalFocus/index.d.ts.map +1 -0
  575. package/dist/providers/ModalFocus/index.js +70 -0
  576. package/dist/providers/ModalFocus/index.js.map +1 -0
  577. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  578. package/dist/providers/RouteCache/index.js +37 -25
  579. package/dist/providers/RouteCache/index.js.map +1 -1
  580. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  581. package/dist/providers/RouteTransition/index.d.ts +3 -2
  582. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  583. package/dist/providers/RouteTransition/index.js +78 -105
  584. package/dist/providers/RouteTransition/index.js.map +1 -1
  585. package/dist/providers/RouterAdapter/index.js.map +1 -1
  586. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  587. package/dist/providers/ServerFunctions/index.js +34 -23
  588. package/dist/providers/ServerFunctions/index.js.map +1 -1
  589. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  590. package/dist/providers/TableColumns/index.d.ts.map +1 -1
  591. package/dist/providers/TableColumns/index.js +18 -35
  592. package/dist/providers/TableColumns/index.js.map +1 -1
  593. package/dist/providers/Theme/index.js.map +1 -1
  594. package/dist/providers/ToastContainer/index.js.map +1 -1
  595. package/dist/providers/Translation/index.js.map +1 -1
  596. package/dist/providers/UploadControls/index.js.map +1 -1
  597. package/dist/providers/UploadEdits/index.js.map +1 -1
  598. package/dist/providers/UploadHandlers/index.js.map +1 -1
  599. package/dist/styles.css +87 -3
  600. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  601. package/dist/templates/Default/index.css +0 -1
  602. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  603. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  604. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  605. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  606. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  607. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  608. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  609. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  610. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  611. package/dist/utilities/groupNavItems.js.map +1 -1
  612. package/dist/utilities/handleLivePreview.js.map +1 -1
  613. package/dist/utilities/handleServerFunctions.d.ts +2 -10
  614. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  615. package/dist/utilities/handleServerFunctions.js +3 -7
  616. package/dist/utilities/handleServerFunctions.js.map +1 -1
  617. package/dist/utilities/hasSavePermission.js.map +1 -1
  618. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  619. package/dist/utilities/serverFunctionRegistry.d.ts +2 -7
  620. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  621. package/dist/utilities/serverFunctionRegistry.js +4 -9
  622. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  623. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  624. package/dist/views/API/index.client.d.ts.map +1 -1
  625. package/dist/views/API/index.client.js +1 -0
  626. package/dist/views/API/index.client.js.map +1 -1
  627. package/dist/views/Account/ResetPreferences/index.js +17 -17
  628. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  629. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  630. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
  631. package/dist/views/Account/ToggleTheme/index.js +106 -27
  632. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  633. package/dist/views/Account/index.client.js.map +1 -1
  634. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  635. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  636. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  637. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  638. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  639. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
  640. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  641. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  642. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  643. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  644. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +18 -5
  645. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  646. package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -1
  647. package/dist/views/Document/generateEditViewMetadata.js.map +1 -1
  648. package/dist/views/Document/index.js +1 -1
  649. package/dist/views/Document/index.js.map +1 -1
  650. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  651. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
  652. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  653. package/dist/views/Edit/Auth/index.js +13 -11
  654. package/dist/views/Edit/Auth/index.js.map +1 -1
  655. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  656. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  657. package/dist/views/Edit/index.css +26 -0
  658. package/dist/views/Edit/index.d.ts.map +1 -1
  659. package/dist/views/Edit/index.js +28 -17
  660. package/dist/views/Edit/index.js.map +1 -1
  661. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  662. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
  663. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  664. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  665. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  666. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  667. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
  668. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
  669. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
  670. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  671. package/dist/views/HierarchyList/index.js +2 -2
  672. package/dist/views/HierarchyList/index.js.map +1 -1
  673. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  674. package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
  675. package/dist/views/List/ListSelection/index.js.map +1 -1
  676. package/dist/views/Login/LoginField/index.js.map +1 -1
  677. package/dist/views/Login/LoginForm/index.js.map +1 -1
  678. package/dist/views/Logout/LogoutClient.js.map +1 -1
  679. package/dist/views/Logout/index.js.map +1 -1
  680. package/dist/views/NotFound/index.client.js.map +1 -1
  681. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  682. package/dist/views/Verify/index.client.js.map +1 -1
  683. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  684. package/dist/views/Version/Default/index.js +321 -181
  685. package/dist/views/Version/Default/index.js.map +1 -1
  686. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  687. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  688. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
  689. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  690. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  691. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
  692. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  693. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  694. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  695. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
  696. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  697. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  698. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  699. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  700. package/dist/views/Version/Restore/index.js +176 -77
  701. package/dist/views/Version/Restore/index.js.map +1 -1
  702. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  703. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  704. package/dist/views/Version/SelectComparison/index.js +113 -33
  705. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  706. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  707. package/dist/views/Version/index.js.map +1 -1
  708. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  709. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  710. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  711. package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
  712. package/dist/views/Versions/index.client.js +9 -11
  713. package/dist/views/Versions/index.client.js.map +1 -1
  714. package/dist/views/Versions/index.js +2 -2
  715. package/dist/views/Versions/index.js.map +1 -1
  716. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
  717. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
  718. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
  719. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
  720. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
  721. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
  722. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
  723. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
  724. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
  725. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
  726. package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
  727. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
  728. package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
  729. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
  730. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
  731. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
  732. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
  733. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
  734. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
  735. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
  736. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
  737. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
  738. package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
  739. package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
  740. package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
  741. package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
  742. package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
  743. package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
  744. package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
  745. package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
  746. package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
  747. package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
  748. package/dist/widgets/Activity/components/Pagination/index.css +42 -0
  749. package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
  750. package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
  751. package/dist/widgets/Activity/components/Pagination/index.js +125 -0
  752. package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
  753. package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
  754. package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
  755. package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
  756. package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
  757. package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
  758. package/dist/widgets/Activity/index.client.d.ts +15 -0
  759. package/dist/widgets/Activity/index.client.d.ts.map +1 -0
  760. package/dist/widgets/Activity/index.client.js +186 -0
  761. package/dist/widgets/Activity/index.client.js.map +1 -0
  762. package/dist/widgets/Activity/index.css +320 -0
  763. package/dist/widgets/Activity/index.d.ts +13 -0
  764. package/dist/widgets/Activity/index.d.ts.map +1 -0
  765. package/dist/widgets/Activity/index.js +100 -0
  766. package/dist/widgets/Activity/index.js.map +1 -0
  767. package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +6 -13
  768. package/dist/widgets/Activity/types.d.ts.map +1 -0
  769. package/dist/widgets/Activity/types.js +2 -0
  770. package/dist/widgets/Activity/types.js.map +1 -0
  771. package/dist/widgets/Activity/utils/cache.d.ts +33 -0
  772. package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
  773. package/dist/widgets/Activity/utils/cache.js +72 -0
  774. package/dist/widgets/Activity/utils/cache.js.map +1 -0
  775. package/dist/widgets/Activity/utils/constants.d.ts +5 -0
  776. package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
  777. package/dist/widgets/Activity/utils/constants.js +4 -0
  778. package/dist/widgets/Activity/utils/constants.js.map +1 -0
  779. package/dist/widgets/Activity/utils/documents.d.ts +11 -0
  780. package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
  781. package/dist/widgets/Activity/utils/documents.js +38 -0
  782. package/dist/widgets/Activity/utils/documents.js.map +1 -0
  783. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
  784. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
  785. package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +24 -21
  786. package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
  787. package/dist/widgets/Activity/utils/state.d.ts +44 -0
  788. package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
  789. package/dist/widgets/Activity/utils/state.js +80 -0
  790. package/dist/widgets/Activity/utils/state.js.map +1 -0
  791. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
  792. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
  793. package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
  794. package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
  795. package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
  796. package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
  797. package/dist/widgets/Activity/utils/usePageSize.js +35 -0
  798. package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
  799. package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
  800. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
  801. package/dist/widgets/CollectionCards/index.client.js +3 -0
  802. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  803. package/dist/widgets/CollectionCards/index.d.ts +3 -0
  804. package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
  805. package/dist/widgets/CollectionCards/index.js +3 -0
  806. package/dist/widgets/CollectionCards/index.js.map +1 -1
  807. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  808. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  809. package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
  810. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  811. package/dist/widgets/CollectionQuery/index.d.ts +3 -0
  812. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
  813. package/dist/widgets/CollectionQuery/index.js +3 -0
  814. package/dist/widgets/CollectionQuery/index.js.map +1 -1
  815. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
  816. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
  817. package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
  818. package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
  819. package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
  820. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
  821. package/dist/widgets/UploadDropzone/index.client.js +3 -0
  822. package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
  823. package/dist/widgets/UploadDropzone/index.d.ts +3 -0
  824. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
  825. package/dist/widgets/UploadDropzone/index.js +3 -0
  826. package/dist/widgets/UploadDropzone/index.js.map +1 -1
  827. package/dist/widgets/Welcome/index.d.ts +3 -0
  828. package/dist/widgets/Welcome/index.d.ts.map +1 -1
  829. package/dist/widgets/Welcome/index.js +3 -0
  830. package/dist/widgets/Welcome/index.js.map +1 -1
  831. package/dist/widgets/WidgetCard/index.css +0 -20
  832. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
  833. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
  834. package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
  835. package/dist/widgets/shared/CollectionFilter/index.js +170 -0
  836. package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
  837. package/package.json +21 -23
  838. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  839. package/dist/exports/client/chunk-Z42OBP5U.js +0 -27
  840. package/dist/exports/client/chunk-Z42OBP5U.js.map +0 -7
  841. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
  842. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
  843. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
  844. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -73
  845. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
  846. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
  847. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -122
  848. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
  849. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
  850. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
  851. package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
  852. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
  853. package/dist/widgets/RecentlyViewed/index.client.js +0 -401
  854. package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
  855. package/dist/widgets/RecentlyViewed/index.css +0 -318
  856. package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
  857. package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
  858. package/dist/widgets/RecentlyViewed/index.js +0 -45
  859. package/dist/widgets/RecentlyViewed/index.js.map +0 -1
  860. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
  861. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
  862. package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
  863. package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
  864. package/dist/widgets/RecentlyViewed/recents.js +0 -19
  865. package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
  866. /package/dist/exports/client/{CodeEditor-S7MOGZSR.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
  867. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useMemo","useControllableState","RootConfigContext","undefined","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","slug","global","globals","getEntityConfig","args","collectionSlug","globalSlug","value","_jsx","useConfig","PageConfigProvider","t0","$","rootConfig","setRootConfig","t1","t2","unauthenticated","t3"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n} from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useMemo } from 'react'\n\nimport { useControllableState } from '../../hooks/useControllableState.js'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n // useControllableState handles this for us.\n const [config, setConfig] = useControllableState<ClientConfig>(configFromProps)\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args && args.collectionSlug) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n\n if ('globalSlug' in args && args.globalSlug) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n const value = useMemo(\n () => ({ config, getEntityConfig, setConfig }),\n [config, getEntityConfig, setConfig],\n )\n\n return <RootConfigContext value={value}>{children}</RootConfigContext>\n}\n\nexport const useConfig = (): ClientConfigContext => use(RootConfigContext)\n\n/**\n * This provider shadows the `ConfigProvider` on the _page_ level, allowing us to\n * update the config when needed, e.g. after authentication.\n * The layout `ConfigProvider` is not updated on page navigation / authentication,\n * as the layout does not re-render in those cases.\n *\n * If the config here has the same reference as the config from the layout, we\n * simply reuse the context from the layout to avoid unnecessary re-renders.\n *\n * @experimental This component is experimental and may change or be removed in future releases. Use at your own risk.\n */\nexport const PageConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n const { config: rootConfig, setConfig: setRootConfig } = useConfig()\n\n /**\n * This `useEffect` is required in order for the _page_ to be able to refresh the client config,\n * which may have been cached on the _layout_ level, where the `ConfigProvider` is managed.\n * Since the layout does not re-render on page navigation / authentication, we need to manually\n * update the config, as the user may have been authenticated in the process, which affects the client config.\n */\n useEffect(() => {\n setRootConfig(configFromProps)\n }, [configFromProps, setRootConfig])\n\n // If this component receives a different config than what is in context from the layout, it is stale.\n // While stale, we instantiate a new context provider that provides the new config until the root context is updated.\n // Unfortunately, referential equality alone does not work bc the reference is lost during server/client serialization,\n // so we need to also compare the `unauthenticated` property.\n if (\n rootConfig !== configFromProps &&\n rootConfig.unauthenticated !== configFromProps.unauthenticated\n ) {\n return <ConfigProvider config={configFromProps}>{children}</ConfigProvider>\n }\n\n return children\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","useEffect","useMemo","useControllableState","RootConfigContext","undefined","ConfigProvider","t0","$","children","config","configFromProps","setConfig","t1","collections","globals","collectionsBySlug","globalsBySlug","collection","slug","global","collectionsBySlug_0","globalsBySlug_0","t2","args","collectionSlug","globalSlug","getEntityConfig","t3","value","t4","_jsx","useConfig","PageConfigProvider","rootConfig","setRootConfig","unauthenticated"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n} from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useMemo } from 'react'\n\nimport { useControllableState } from '../../hooks/useControllableState.js'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n // useControllableState handles this for us.\n const [config, setConfig] = useControllableState<ClientConfig>(configFromProps)\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args && args.collectionSlug) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n\n if ('globalSlug' in args && args.globalSlug) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n const value = useMemo(\n () => ({ config, getEntityConfig, setConfig }),\n [config, getEntityConfig, setConfig],\n )\n\n return <RootConfigContext value={value}>{children}</RootConfigContext>\n}\n\nexport const useConfig = (): ClientConfigContext => use(RootConfigContext)\n\n/**\n * This provider shadows the `ConfigProvider` on the _page_ level, allowing us to\n * update the config when needed, e.g. after authentication.\n * The layout `ConfigProvider` is not updated on page navigation / authentication,\n * as the layout does not re-render in those cases.\n *\n * If the config here has the same reference as the config from the layout, we\n * simply reuse the context from the layout to avoid unnecessary re-renders.\n *\n * @experimental This component is experimental and may change or be removed in future releases. Use at your own risk.\n */\nexport const PageConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig\n}> = ({ children, config: configFromProps }) => {\n const { config: rootConfig, setConfig: setRootConfig } = useConfig()\n\n /**\n * This `useEffect` is required in order for the _page_ to be able to refresh the client config,\n * which may have been cached on the _layout_ level, where the `ConfigProvider` is managed.\n * Since the layout does not re-render on page navigation / authentication, we need to manually\n * update the config, as the user may have been authenticated in the process, which affects the client config.\n */\n useEffect(() => {\n setRootConfig(configFromProps)\n }, [configFromProps, setRootConfig])\n\n // If this component receives a different config than what is in context from the layout, it is stale.\n // While stale, we instantiate a new context provider that provides the new config until the root context is updated.\n // Unfortunately, referential equality alone does not work bc the reference is lost during server/client serialization,\n // so we need to also compare the `unauthenticated` property.\n if (\n rootConfig !== configFromProps &&\n rootConfig.unauthenticated !== configFromProps.unauthenticated\n ) {\n return <ConfigProvider config={configFromProps}>{children}</ConfigProvider>\n }\n\n return children\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useState","Context","mostRecentUpdate","reportUpdate","DocumentEventsProvider","t0","$","children","t1","_jsx","value","useDocumentEvents"],"sources":["../../../src/providers/DocumentEvents/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentEvent } from 'payload'\n\nimport React, { createContext, use, useState } from 'react'\n\nconst Context = createContext<{\n mostRecentUpdate: DocumentEvent | null\n reportUpdate: (event: DocumentEvent) => void\n}>({\n mostRecentUpdate: null,\n reportUpdate: () => null,\n})\n\nexport const DocumentEventsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [mostRecentUpdate, reportUpdate] = useState<DocumentEvent>(null)\n\n return <Context value={{ mostRecentUpdate, reportUpdate }}>{children}</Context>\n}\n\n/**\n * The useDocumentEvents hook provides a way of subscribing to cross-document events,\n * such as updates made to nested documents within a drawer.\n * This hook will report document events that are outside the scope of the document currently being edited.\n *\n * @link https://payloadcms.com/docs/admin/react-hooks#usedocumentevents\n */\nexport const useDocumentEvents = () => use(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,QAAQ,QAAQ;AAEpD,MAAMC,OAAA,gBAAUH,aAAA,CAGb;EACDI,gBAAA,EAAkB;EAClBC,YAAA,EAAcA,CAAA,KAAM;AACtB;AAEA,OAAO,MAAMC,sBAAA,GAAkEC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW;EAAA,IAAAF,EAAY;EAC1F,OAAAH,gBAAA,EAAAC,YAAA,IAAyCH,QAAA,KAAwB;EAAA,IAAAQ,EAAA;EAAA,IAAAF,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAJ,gBAAA;IAE1DM,EAAA,GAAAC,IAAA,CAAAR,OAAA;MAAAS,KAAA;QAAAR,gBAAA;QAAAC;MAAA;MAAAI;IAAA,C;;;;;;;SAAAC,E;CACT;AAEA;;;;;;;AAOA,OAAO,MAAMG,iBAAA,GAAoBA,CAAA,KAAMZ,GAAA,CAAIE,OAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useState","Context","mostRecentUpdate","reportUpdate","DocumentEventsProvider","t0","$","children","t1","_jsx","value","useDocumentEvents"],"sources":["../../../src/providers/DocumentEvents/index.tsx"],"sourcesContent":["'use client'\nimport type { DocumentEvent } from 'payload'\n\nimport React, { createContext, use, useState } from 'react'\n\nconst Context = createContext<{\n mostRecentUpdate: DocumentEvent | null\n reportUpdate: (event: DocumentEvent) => void\n}>({\n mostRecentUpdate: null,\n reportUpdate: () => null,\n})\n\nexport const DocumentEventsProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [mostRecentUpdate, reportUpdate] = useState<DocumentEvent>(null)\n\n return <Context value={{ mostRecentUpdate, reportUpdate }}>{children}</Context>\n}\n\n/**\n * The useDocumentEvents hook provides a way of subscribing to cross-document events,\n * such as updates made to nested documents within a drawer.\n * This hook will report document events that are outside the scope of the document currently being edited.\n *\n * @link https://payloadcms.com/docs/admin/react-hooks#usedocumentevents\n */\nexport const useDocumentEvents = () => use(Context)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,QAAQ,QAAQ;AAEpD,MAAMC,OAAA,gBAAUH,aAAA,CAGb;EACDI,gBAAA,EAAkB;EAClBC,YAAA,EAAcA,CAAA,KAAM;AACtB;AAEA,OAAO,MAAMC,sBAAA,GAAkEC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW;EAAA,IAAAF,EAAY;EAC1F,OAAAH,gBAAA,EAAAC,YAAA,IAAyCH,QAAA,CAAwB;EAAA,IAAAQ,EAAA;EAAA,IAAAF,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAJ,gBAAA;IAE1DM,EAAA,GAAAC,IAAA,CAACR,OAAA;MAAAS,KAAA,EAAe;QAAAR,gBAAA;QAAAC;MAAiC;MAAAI;;;;;;;;SAAjDC,E;CACT;AAEA;;;;;;;AAOA,OAAO,MAAMG,iBAAA,GAAoBA,CAAA,KAAMZ,GAAA,CAAIE,OAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","EditDepthContext","EditDepthProvider","t0","$","children","parentDepth","useEditDepth","depth","t1","_jsx","value"],"sources":["../../../src/providers/EditDepth/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use } from 'react'\n\nexport const EditDepthContext = createContext(0)\n\nexport const EditDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useEditDepth()\n const depth = parentDepth + 1\n\n return <EditDepthContext value={depth}>{children}</EditDepthContext>\n}\n\nexport const useEditDepth = (): number => use(EditDepthContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAE1C,OAAO,MAAMC,gBAAA,gBAAmBF,aAAA,CAAc;AAE9C,OAAO,MAAMG,iBAAA,GAA6DC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ;EAAA,IAAAF,EAAY;EACrF,MAAAG,WAAA,GAAoBC,YAAA;EACpB,MAAAC,KAAA,GAAcF,WAAA,IAAc;EAAA,IAAAG,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAI,KAAA;IAErBC,EAAA,GAAAC,IAAA,CAAAT,gBAAA;MAAAU,KAAA,EAAyBH,KAAA;MAAAH;IAAA,C;;;;;;;SAAzBI,E;CACT;AAEA,OAAO,MAAMF,YAAA,GAAeA,CAAA,KAAcP,GAAA,CAAIC,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","EditDepthContext","EditDepthProvider","t0","$","children","parentDepth","useEditDepth","depth","t1","_jsx","value"],"sources":["../../../src/providers/EditDepth/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use } from 'react'\n\nexport const EditDepthContext = createContext(0)\n\nexport const EditDepthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const parentDepth = useEditDepth()\n const depth = parentDepth + 1\n\n return <EditDepthContext value={depth}>{children}</EditDepthContext>\n}\n\nexport const useEditDepth = (): number => use(EditDepthContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAE1C,OAAO,MAAMC,gBAAA,gBAAmBF,aAAA,CAAc;AAE9C,OAAO,MAAMG,iBAAA,GAA6DC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ;EAAA,IAAAF,EAAY;EACrF,MAAAG,WAAA,GAAoBC,YAAA;EACpB,MAAAC,KAAA,GAAcF,WAAA,GAAc;EAAA,IAAAG,EAAA;EAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAI,KAAA;IAErBC,EAAA,GAAAC,IAAA,CAACT,gBAAA;MAAAU,KAAA,EAAwBH,KAAA;MAAAH;;;;;;;;SAAzBI,E;CACT;AAEA,OAAO,MAAMF,YAAA,GAAeA,CAAA,KAAcP,GAAA,CAAIC,gBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useEffect","useState","useConfig","useSearchParams","initialContext","isEmbedded","Context","undefined","hasEmbedCookie","cookieKey","document","cookie","split","some","row","startsWith","setEmbedCookie","deleteEmbedCookie","resolveEmbedParam","embedParam","fallback","EmbedProvider","t0","$","children","embed","config","embedCookieKey","cookiePrefix","get","toLowerCase","t1","Boolean","setIsEmbedded","t2","t3","t4","_jsx","value","useEmbed"],"sources":["../../../src/providers/Embed/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use, useEffect, useState } from 'react'\n\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\n/**\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport type EmbedContext = {\n isEmbedded: boolean\n}\n\nconst initialContext: EmbedContext = {\n isEmbedded: false,\n}\n\nconst Context = createContext<EmbedContext | undefined>(undefined)\n\nconst hasEmbedCookie = (cookieKey: string): boolean =>\n document.cookie\n .split('; ')\n .some((row) => row.startsWith(`${cookieKey}=`) && row.split('=')[1] === 'true')\n\n/**\n * Writes a session-scoped, `Partitioned` (CHIPS) cookie so embed mode persists\n * across navigation within the iframe.\n *\n * The cookie is keyed to both the iframe domain and the embedding top-level domain,\n * so it is readable only on that one top-level domain.\n *\n * No `Expires`/`Max-Age` — it is a session cookie that clears when the browsing session ends.\n */\nconst setEmbedCookie = (cookieKey: string): void => {\n document.cookie = `${cookieKey}=true; path=/; SameSite=None; Secure; Partitioned`\n}\n\nconst deleteEmbedCookie = (cookieKey: string): void => {\n document.cookie = `${cookieKey}=; path=/; SameSite=None; Secure; Partitioned; expires=Thu, 01 Jan 1970 00:00:00 GMT`\n}\n\nconst resolveEmbedParam = (embedParam: null | string, fallback: boolean): boolean => {\n switch (embedParam) {\n case 'false':\n return false\n case 'true':\n return true\n default:\n return fallback\n }\n}\n\n/**\n * @experimental This component is experimental and may change or be removed in future releases. Use at your own risk.\n */\nexport const EmbedProvider: React.FC<{\n children?: React.ReactNode\n /**\n * Initial embed value is read from the embed cookie in the root layout. The root layout\n * cannot see search params, so the client reads the `?embed` query parameter below\n * and it takes precedence over the cookie value.\n */\n embed?: boolean\n}> = ({ children, embed }) => {\n const { config } = useConfig()\n const embedCookieKey = `${config.cookiePrefix || 'payload'}-embed`\n const embedParam = useSearchParams().get('embed')?.toLowerCase()\n\n const [isEmbedded, setIsEmbedded] = useState<boolean>(() =>\n resolveEmbedParam(embedParam, Boolean(embed)),\n )\n\n useEffect(() => {\n // The query parameter takes precedence; otherwise fall back to the cookie value\n if (embedParam === 'true') {\n setEmbedCookie(embedCookieKey)\n } else if (embedParam === 'false') {\n deleteEmbedCookie(embedCookieKey)\n }\n setIsEmbedded(hasEmbedCookie(embedCookieKey))\n }, [embedParam, embedCookieKey])\n\n return <Context value={{ isEmbedded }}>{children}</Context>\n}\n\n/**\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport const useEmbed = (): EmbedContext => use(Context) ?? initialContext\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAE/D,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAShC,MAAMC,cAAA,GAA+B;EACnCC,UAAA,EAAY;AACd;AAEA,MAAMC,OAAA,gBAAUR,aAAA,CAAwCS,SAAA;AAExD,MAAMC,cAAA,GAAkBC,SAAA,IACtBC,QAAA,CAASC,MAAM,CACZC,KAAK,CAAC,MACNC,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,UAAU,CAAC,GAAGN,SAAA,GAAY,KAAKK,GAAA,CAAIF,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK;AAE5E;;;;;;;;;AASA,MAAMI,cAAA,GAAkBP,SAAA;EACtBC,QAAA,CAASC,MAAM,GAAG,GAAGF,SAAA,mDAA4D;AACnF;AAEA,MAAMQ,iBAAA,GAAqBR,SAAA;EACzBC,QAAA,CAASC,MAAM,GAAG,GAAGF,SAAA,sFAA+F;AACtH;AAEA,MAAMS,iBAAA,GAAoBA,CAACC,UAAA,EAA2BC,QAAA;EACpD,QAAQD,UAAA;IACN,KAAK;MACH,OAAO;IACT,KAAK;MACH,OAAO;IACT;MACE,OAAOC,QAAA;EACX;AACF;AAEA;;;AAGA,OAAO,MAAMC,aAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAA3B,EAAA;EAAC;IAAA4B,QAAA;IAAAC;EAAA,IAAAH,EAAmB;EACvB;IAAAI;EAAA,IAAmBxB,SAAA;EACnB,MAAAyB,cAAA,GAAuB,GAAGD,MAAA,CAAAE,YAAA,IAAuB,iBAAiB;EAClE,MAAAT,UAAA,GAAmBhB,eAAA,GAAA0B,GAAA,CAAsB,UAAAC,WAAA;EAAU,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAJ,UAAA;IAEGY,EAAA,GAAAA,CAAA,KACpDb,iBAAA,CAAkBC,UAAA,EAAYa,OAAA,CAAQP,KAAA;IAAAF,CAAA,MAAAE,KAAA;IAAAF,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EADxC,OAAAlB,UAAA,EAAA4B,aAAA,IAAoChC,QAAA,CAAkB8B,EACd;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAZ,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAJ,UAAA;IAG9Be,EAAA,GAAAA,CAAA;MAAA,IAEJf,UAAA,KAAe;QACjBH,cAAA,CAAeW,cAAA;MAAA;QAAA,IACNR,UAAA,KAAe;UACxBF,iBAAA,CAAkBU,cAAA;QAAA;MAAA;MAEpBM,aAAA,CAAczB,cAAA,CAAemB,cAAA;IAAA;IAC5BQ,EAAA,IAAChB,UAAA,EAAYQ,cAAA;IAAeJ,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAY,EAAA;EAAA;IAAAD,EAAA,GAAAX,CAAA;IAAAY,EAAA,GAAAZ,CAAA;EAAA;EAR/BvB,SAAA,CAAUkC,EAQV,EAAGC,EAA4B;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAlB,UAAA;IAExB+B,EAAA,GAAAC,IAAA,CAAA/B,OAAA;MAAAgC,KAAA;QAAAjC;MAAA;MAAAmB;IAAA,C;;;;;;;SAAAY,E;CACT;AAEA;;;AAGA,OAAO,MAAMG,QAAA,GAAWA,CAAA,KAAoBxC,GAAA,CAAIO,OAAA,KAAYF,cAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useEffect","useState","useConfig","useSearchParams","initialContext","isEmbedded","Context","undefined","hasEmbedCookie","cookieKey","document","cookie","split","some","row","startsWith","setEmbedCookie","deleteEmbedCookie","resolveEmbedParam","embedParam","fallback","EmbedProvider","t0","$","children","embed","config","embedCookieKey","cookiePrefix","get","toLowerCase","t1","Boolean","setIsEmbedded","t2","t3","t4","_jsx","value","useEmbed"],"sources":["../../../src/providers/Embed/index.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use, useEffect, useState } from 'react'\n\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../RouterAdapter/index.js'\n\n/**\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport type EmbedContext = {\n isEmbedded: boolean\n}\n\nconst initialContext: EmbedContext = {\n isEmbedded: false,\n}\n\nconst Context = createContext<EmbedContext | undefined>(undefined)\n\nconst hasEmbedCookie = (cookieKey: string): boolean =>\n document.cookie\n .split('; ')\n .some((row) => row.startsWith(`${cookieKey}=`) && row.split('=')[1] === 'true')\n\n/**\n * Writes a session-scoped, `Partitioned` (CHIPS) cookie so embed mode persists\n * across navigation within the iframe.\n *\n * The cookie is keyed to both the iframe domain and the embedding top-level domain,\n * so it is readable only on that one top-level domain.\n *\n * No `Expires`/`Max-Age` — it is a session cookie that clears when the browsing session ends.\n */\nconst setEmbedCookie = (cookieKey: string): void => {\n document.cookie = `${cookieKey}=true; path=/; SameSite=None; Secure; Partitioned`\n}\n\nconst deleteEmbedCookie = (cookieKey: string): void => {\n document.cookie = `${cookieKey}=; path=/; SameSite=None; Secure; Partitioned; expires=Thu, 01 Jan 1970 00:00:00 GMT`\n}\n\nconst resolveEmbedParam = (embedParam: null | string, fallback: boolean): boolean => {\n switch (embedParam) {\n case 'false':\n return false\n case 'true':\n return true\n default:\n return fallback\n }\n}\n\n/**\n * @experimental This component is experimental and may change or be removed in future releases. Use at your own risk.\n */\nexport const EmbedProvider: React.FC<{\n children?: React.ReactNode\n /**\n * Initial embed value is read from the embed cookie in the root layout. The root layout\n * cannot see search params, so the client reads the `?embed` query parameter below\n * and it takes precedence over the cookie value.\n */\n embed?: boolean\n}> = ({ children, embed }) => {\n const { config } = useConfig()\n const embedCookieKey = `${config.cookiePrefix || 'payload'}-embed`\n const embedParam = useSearchParams().get('embed')?.toLowerCase()\n\n const [isEmbedded, setIsEmbedded] = useState<boolean>(() =>\n resolveEmbedParam(embedParam, Boolean(embed)),\n )\n\n useEffect(() => {\n // The query parameter takes precedence; otherwise fall back to the cookie value\n if (embedParam === 'true') {\n setEmbedCookie(embedCookieKey)\n } else if (embedParam === 'false') {\n deleteEmbedCookie(embedCookieKey)\n }\n setIsEmbedded(hasEmbedCookie(embedCookieKey))\n }, [embedParam, embedCookieKey])\n\n return <Context value={{ isEmbedded }}>{children}</Context>\n}\n\n/**\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport const useEmbed = (): EmbedContext => use(Context) ?? initialContext\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAE/D,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAShC,MAAMC,cAAA,GAA+B;EACnCC,UAAA,EAAY;AACd;AAEA,MAAMC,OAAA,gBAAUR,aAAA,CAAwCS,SAAA;AAExD,MAAMC,cAAA,GAAkBC,SAAA,IACtBC,QAAA,CAASC,MAAM,CACZC,KAAK,CAAC,MACNC,IAAI,CAAEC,GAAA,IAAQA,GAAA,CAAIC,UAAU,CAAC,GAAGN,SAAA,GAAY,KAAKK,GAAA,CAAIF,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK;AAE5E;;;;;;;;;AASA,MAAMI,cAAA,GAAkBP,SAAA;EACtBC,QAAA,CAASC,MAAM,GAAG,GAAGF,SAAA,mDAA4D;AACnF;AAEA,MAAMQ,iBAAA,GAAqBR,SAAA;EACzBC,QAAA,CAASC,MAAM,GAAG,GAAGF,SAAA,sFAA+F;AACtH;AAEA,MAAMS,iBAAA,GAAoBA,CAACC,UAAA,EAA2BC,QAAA;EACpD,QAAQD,UAAA;IACN,KAAK;MACH,OAAO;IACT,KAAK;MACH,OAAO;IACT;MACE,OAAOC,QAAA;EACX;AACF;AAEA;;;AAGA,OAAO,MAAMC,aAAA,GAQRC,EAAA;EAAA,MAAAC,CAAA,GAAA3B,EAAA;EAAC;IAAA4B,QAAA;IAAAC;EAAA,IAAAH,EAAmB;EACvB;IAAAI;EAAA,IAAmBxB,SAAA;EACnB,MAAAyB,cAAA,GAAuB,GAAGD,MAAA,CAAAE,YAAuB,IAAvB,SAAuB,QAAiB;EAClE,MAAAT,UAAA,GAAmBhB,eAAA,GAAA0B,GAAqB,CAAC,OAAU,GAAAC,WAAA;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAE,KAAA,IAAAF,CAAA,QAAAJ,UAAA;IAEGY,EAAA,GAAAA,CAAA,KACpDb,iBAAA,CAAkBC,UAAA,EAAYa,OAAA,CAAQP,KAAA;IAAAF,CAAA,MAAAE,KAAA;IAAAF,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EADxC,OAAAlB,UAAA,EAAA4B,aAAA,IAAoChC,QAAA,CAAkB8B,EACd;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAZ,CAAA,QAAAI,cAAA,IAAAJ,CAAA,QAAAJ,UAAA;IAG9Be,EAAA,GAAAA,CAAA;MAER,IAAIf,UAAA,KAAe;QACjBH,cAAA,CAAeW,cAAA;MAAA;QACV,IAAIR,UAAA,KAAe;UACxBF,iBAAA,CAAkBU,cAAA;QAAA;MACpB;MACAM,aAAA,CAAczB,cAAA,CAAemB,cAAA;IAAA,CAC/B;IAAGQ,EAAA,IAAChB,UAAA,EAAYQ,cAAA,CAAe;IAAAJ,CAAA,MAAAI,cAAA;IAAAJ,CAAA,MAAAJ,UAAA;IAAAI,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAY,EAAA;EAAA;IAAAD,EAAA,GAAAX,CAAA;IAAAY,EAAA,GAAAZ,CAAA;EAAA;EAR/BvB,SAAA,CAAUkC,EAQV,EAAGC,EAA4B;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAlB,UAAA;IAExB+B,EAAA,GAAAC,IAAA,CAAC/B,OAAA;MAAAgC,KAAA,EAAe;QAAAjC;MAAa;MAAAmB;;;;;;;;SAA7BY,E;CACT;AAEA;;;AAGA,OAAO,MAAMG,QAAA,GAAWA,CAAA,KAAoBxC,GAAA,CAAIO,OAAA,KAAYF,cAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","EntityVisibilityContext","EntityVisibilityProvider","t0","$","children","visibleEntities","t1","t2","collectionSlug","globalSlug","collections","includes","globals","isEntityVisible","_jsx","value","useEntityVisibility"],"sources":["../../../src/providers/EntityVisibility/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig, VisibleEntities } from 'payload'\n\nimport React, { createContext, use, useCallback } from 'react'\n\nexport type VisibleEntitiesContextType = {\n isEntityVisible: ({\n collectionSlug,\n globalSlug,\n }: {\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalSlug?: SanitizedGlobalConfig['slug']\n }) => boolean\n visibleEntities: VisibleEntities\n}\n\nexport const EntityVisibilityContext = createContext({} as VisibleEntitiesContextType)\n\nexport const EntityVisibilityProvider: React.FC<{\n children: React.ReactNode\n visibleEntities?: VisibleEntities\n}> = ({ children, visibleEntities }) => {\n const isEntityVisible = useCallback(\n ({\n collectionSlug,\n globalSlug,\n }: {\n collectionSlug: SanitizedCollectionConfig['slug']\n globalSlug: SanitizedGlobalConfig['slug']\n }) => {\n if (collectionSlug) {\n return visibleEntities.collections.includes(collectionSlug)\n }\n\n if (globalSlug) {\n return visibleEntities.globals.includes(globalSlug)\n }\n\n return false\n },\n [visibleEntities],\n )\n\n return (\n <EntityVisibilityContext value={{ isEntityVisible, visibleEntities }}>\n {children}\n </EntityVisibilityContext>\n )\n}\n\nexport const useEntityVisibility = (): VisibleEntitiesContextType => use(EntityVisibilityContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,QAAQ;AAavD,OAAO,MAAMC,uBAAA,gBAA0BH,aAAA,CAAc,CAAC;AAEtD,OAAO,MAAMI,wBAAA,GAGRC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,QAAA;IAAAC;EAAA,IAAAH,EAA6B;EAAA,IAAAI,EAAA;EAAA,IAAAH,CAAA,QAAAE,eAAA;IAE/BC,EAAA,GAAAC,EAAA;MAAC;QAAAC,cAAA;QAAAC;MAAA,IAAAF,EAMA;MAAA,IACKC,cAAA;QAAA,OACKH,eAAA,CAAAK,WAAA,CAAAC,QAAA,CAAqCH,cAAA;MAAA;MAAA,IAG1CC,UAAA;QAAA,OACKJ,eAAA,CAAAO,OAAA,CAAAD,QAAA,CAAiCF,UAAA;MAAA;MAAA;IAAA;IAI5CN,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAjBF,MAAAU,eAAA,GAAwBP,EAkBL;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAU,eAAA,IAAAV,CAAA,QAAAE,eAAA;IAIjBE,EAAA,GAAAO,IAAA,CAAAd,uBAAA;MAAAe,KAAA;QAAAF,eAAA;QAAAR;MAAA;MAAAD;IAAA,C;;;;;;;;SAAAG,E;CAIJ;AAEA,OAAO,MAAMS,mBAAA,GAAsBA,CAAA,KAAkClB,GAAA,CAAIE,uBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","createContext","use","useCallback","EntityVisibilityContext","EntityVisibilityProvider","t0","$","children","visibleEntities","t1","t2","collectionSlug","globalSlug","collections","includes","globals","isEntityVisible","_jsx","value","useEntityVisibility"],"sources":["../../../src/providers/EntityVisibility/index.tsx"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig, SanitizedGlobalConfig, VisibleEntities } from 'payload'\n\nimport React, { createContext, use, useCallback } from 'react'\n\nexport type VisibleEntitiesContextType = {\n isEntityVisible: ({\n collectionSlug,\n globalSlug,\n }: {\n collectionSlug?: SanitizedCollectionConfig['slug']\n globalSlug?: SanitizedGlobalConfig['slug']\n }) => boolean\n visibleEntities: VisibleEntities\n}\n\nexport const EntityVisibilityContext = createContext({} as VisibleEntitiesContextType)\n\nexport const EntityVisibilityProvider: React.FC<{\n children: React.ReactNode\n visibleEntities?: VisibleEntities\n}> = ({ children, visibleEntities }) => {\n const isEntityVisible = useCallback(\n ({\n collectionSlug,\n globalSlug,\n }: {\n collectionSlug: SanitizedCollectionConfig['slug']\n globalSlug: SanitizedGlobalConfig['slug']\n }) => {\n if (collectionSlug) {\n return visibleEntities.collections.includes(collectionSlug)\n }\n\n if (globalSlug) {\n return visibleEntities.globals.includes(globalSlug)\n }\n\n return false\n },\n [visibleEntities],\n )\n\n return (\n <EntityVisibilityContext value={{ isEntityVisible, visibleEntities }}>\n {children}\n </EntityVisibilityContext>\n )\n}\n\nexport const useEntityVisibility = (): VisibleEntitiesContextType => use(EntityVisibilityContext)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,QAAQ;AAavD,OAAO,MAAMC,uBAAA,gBAA0BH,aAAA,CAAc,CAAC;AAEtD,OAAO,MAAMI,wBAAA,GAGRC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,QAAA;IAAAC;EAAA,IAAAH,EAA6B;EAAA,IAAAI,EAAA;EAAA,IAAAH,CAAA,QAAAE,eAAA;IAE/BC,EAAA,GAAAC,EAAA;MAAC;QAAAC,cAAA;QAAAC;MAAA,IAAAF,EAMA;MACC,IAAIC,cAAA;QAAA,OACKH,eAAA,CAAAK,WAA2B,CAAAC,QAAS,CAACH,cAAA;MAAA;MAG9C,IAAIC,UAAA;QAAA,OACKJ,eAAA,CAAAO,OAAuB,CAAAD,QAAS,CAACF,UAAA;MAAA;MAC1C,OAEO;IAAA,CACT;IAAAN,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAjBF,MAAAU,eAAA,GAAwBP,EAkBL;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAU,eAAA,IAAAV,CAAA,QAAAE,eAAA;IAIjBE,EAAA,GAAAO,IAAA,CAACd,uBAAA;MAAAe,KAAA,EAA+B;QAAAF,eAAA;QAAAR;MAAmC;MAAAD;;;;;;;;;SAAnEG,E;CAIJ;AAEA,OAAO,MAAMS,mBAAA,GAAsBA,CAAA,KAAkClB,GAAA,CAAIE,uBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAYnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4MtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAYnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA8MtD,CAAA"}
@@ -49,9 +49,7 @@ export const ListQueryProvider = ({
49
49
  }
50
50
  });
51
51
  const [searchInput, setSearchInput] = useState(query?.search || '');
52
- const refineListData = useCallback(
53
- // eslint-disable-next-line @typescript-eslint/require-await
54
- async (incomingQuery, modified_0) => {
52
+ const refineListData = useCallback(async (incomingQuery, modified_0) => {
55
53
  setModified(modified_0 ?? true);
56
54
  const newQuery = mergeQuery(query, incomingQuery, {
57
55
  defaults: {
@@ -59,6 +57,7 @@ export const ListQueryProvider = ({
59
57
  sort: queryFromProps.sort
60
58
  }
61
59
  });
60
+ let pendingUpdate = undefined;
62
61
  if (modifySearchParams) {
63
62
  const search = getSearchWithListQuery({
64
63
  currentSearch: window.location.search,
@@ -66,14 +65,15 @@ export const ListQueryProvider = ({
66
65
  updatedQuery: incomingQuery
67
66
  });
68
67
  if (window.location.search !== search) {
69
- startRouteTransition(() => router.replace(search, {
68
+ pendingUpdate = startRouteTransition(() => router.replace(search, {
70
69
  scroll: false
71
70
  }));
72
71
  }
73
72
  } else if (typeof onQueryChange === 'function') {
74
- onQueryChange(newQuery);
73
+ pendingUpdate = onQueryChange(newQuery);
75
74
  }
76
75
  setQuery(newQuery);
76
+ await pendingUpdate;
77
77
  }, [query, queryFromProps.limit, queryFromProps.sort, modifySearchParams, onQueryChange, startRouteTransition, router]);
78
78
  const handlePageChange = useCallback(async arg => {
79
79
  await refineListData({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["transformWhereQuery","validateWhereQuery","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useRouter","useSearchParams","ListQueryContext","ListQueryModifiedContext","getSearchWithListQuery","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","contextRef","current","onQueryChangeFromContext","queryFromURL","setQuery","limit","sort","searchInput","setSearchInput","search","refineListData","incomingQuery","newQuery","defaults","currentSearch","window","location","updatedQuery","replace","scroll","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","undefined","handleSortChange","handleWhereChange","where","syncPropsToURL","replaceState","history","hasActiveFilters","normalizedWhere","or","some","orGroup","and","andGroup","field","Object","keys","operatorObj","operator","Boolean","_jsx","value","defaultLimit","isGroupingBy","groupBy","resolvedGroupBy","resolvedSearch"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { type ListQuery, type Where } from 'payload'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useRouter, useSearchParams } from '../RouterAdapter/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { getSearchWithListQuery } from './getSearchWithListQuery.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const contextRef = useRef({} as IListQueryContext)\n contextRef.current.modified = modified\n\n const { onQueryChange: onQueryChangeFromContext } = useListDrawerContext()\n const onQueryChange = onQueryChangeFromContext || onQueryChangeFromProps\n\n const queryFromURL = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return queryFromProps ? sanitizeQuery(queryFromProps) : queryFromURL\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const [searchInput, setSearchInput] = useState(query?.search || '')\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n setModified(modified ?? true)\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n const search = getSearchWithListQuery({\n currentSearch: window.location.search,\n query: newQuery,\n updatedQuery: incomingQuery,\n })\n if (window.location.search !== search) {\n startRouteTransition(() => router.replace(search, { scroll: false }))\n }\n } else if (typeof onQueryChange === 'function') {\n onQueryChange(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n /**\n * The server component may pass props to this client component, e.g. from\n * fetching the query from preferences.\n * This effect is responsible for syncing the props back to the URL, without\n * triggering a re-render.\n */\n const syncPropsToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = getSearchWithListQuery({\n currentSearch: window.location.search,\n query: newQuery,\n })\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n // Important: do not use router.replace here to avoid re-rendering.\n // Go through the adapter's replaceState so routers that observe history\n // mutations (e.g. TanStack) don't re-run their loader and double-load the\n // view. Falls back to the native call for adapters that don't implement it.\n if (router.replaceState) {\n router.replaceState(search)\n } else {\n window.history.replaceState(null, '', search)\n }\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams && queryFromProps) {\n syncPropsToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n const hasActiveFilters = useMemo(() => {\n if (!query?.where) {\n return false\n }\n\n // Normalize flat/invalid where queries (e.g. `{ title: { equals } }`) into the\n // `or/and` structure so they are detected the same way the WhereBuilder reads them.\n const normalizedWhere = validateWhereQuery(query.where)\n ? query.where\n : transformWhereQuery(query.where)\n\n return (normalizedWhere.or ?? []).some((orGroup) =>\n (orGroup.and ?? []).some((andGroup) => {\n const field = Object.keys(andGroup)[0]\n if (!field) {\n return false\n }\n const operatorObj = andGroup[field]\n if (!operatorObj || typeof operatorObj !== 'object') {\n return false\n }\n const operator = Object.keys(operatorObj)[0]\n return Boolean(operator) && (operatorObj as Record<string, unknown>)[operator] !== undefined\n }),\n )\n }, [query?.where])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n hasActiveFilters,\n isGroupingBy: Boolean(query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n resolvedGroupBy: queryFromProps?.groupBy,\n resolvedSearch: queryFromProps?.search,\n searchInput,\n setModified,\n setSearchInput,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["transformWhereQuery","validateWhereQuery","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useRouter","useSearchParams","ListQueryContext","ListQueryModifiedContext","getSearchWithListQuery","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","contextRef","current","onQueryChangeFromContext","queryFromURL","setQuery","limit","sort","searchInput","setSearchInput","search","refineListData","incomingQuery","newQuery","defaults","pendingUpdate","undefined","currentSearch","window","location","updatedQuery","replace","scroll","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","handleSortChange","handleWhereChange","where","syncPropsToURL","replaceState","history","hasActiveFilters","normalizedWhere","or","some","orGroup","and","andGroup","field","Object","keys","operatorObj","operator","Boolean","_jsx","value","defaultLimit","isGroupingBy","groupBy","resolvedGroupBy","resolvedSearch"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { type ListQuery, type Where } from 'payload'\nimport { transformWhereQuery, validateWhereQuery } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useRouter, useSearchParams } from '../RouterAdapter/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { getSearchWithListQuery } from './getSearchWithListQuery.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const contextRef = useRef({} as IListQueryContext)\n contextRef.current.modified = modified\n\n const { onQueryChange: onQueryChangeFromContext } = useListDrawerContext()\n const onQueryChange = onQueryChangeFromContext || onQueryChangeFromProps\n\n const queryFromURL = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return queryFromProps ? sanitizeQuery(queryFromProps) : queryFromURL\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const [searchInput, setSearchInput] = useState(query?.search || '')\n\n const refineListData = useCallback(\n async (incomingQuery: ListQuery, modified?: boolean) => {\n setModified(modified ?? true)\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n let pendingUpdate: Promise<unknown> | void = undefined\n\n if (modifySearchParams) {\n const search = getSearchWithListQuery({\n currentSearch: window.location.search,\n query: newQuery,\n updatedQuery: incomingQuery,\n })\n if (window.location.search !== search) {\n pendingUpdate = startRouteTransition(() => router.replace(search, { scroll: false }))\n }\n } else if (typeof onQueryChange === 'function') {\n pendingUpdate = onQueryChange(newQuery)\n }\n\n setQuery(newQuery)\n await pendingUpdate\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n /**\n * The server component may pass props to this client component, e.g. from\n * fetching the query from preferences.\n * This effect is responsible for syncing the props back to the URL, without\n * triggering a re-render.\n */\n const syncPropsToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = getSearchWithListQuery({\n currentSearch: window.location.search,\n query: newQuery,\n })\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n // Important: do not use router.replace here to avoid re-rendering.\n // Go through the adapter's replaceState so routers that observe history\n // mutations (e.g. TanStack) don't re-run their loader and double-load the\n // view. Falls back to the native call for adapters that don't implement it.\n if (router.replaceState) {\n router.replaceState(search)\n } else {\n window.history.replaceState(null, '', search)\n }\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams && queryFromProps) {\n syncPropsToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n const hasActiveFilters = useMemo(() => {\n if (!query?.where) {\n return false\n }\n\n // Normalize flat/invalid where queries (e.g. `{ title: { equals } }`) into the\n // `or/and` structure so they are detected the same way the WhereBuilder reads them.\n const normalizedWhere = validateWhereQuery(query.where)\n ? query.where\n : transformWhereQuery(query.where)\n\n return (normalizedWhere.or ?? []).some((orGroup) =>\n (orGroup.and ?? []).some((andGroup) => {\n const field = Object.keys(andGroup)[0]\n if (!field) {\n return false\n }\n const operatorObj = andGroup[field]\n if (!operatorObj || typeof operatorObj !== 'object') {\n return false\n }\n const operator = Object.keys(operatorObj)[0]\n return Boolean(operator) && (operatorObj as Record<string, unknown>)[operator] !== undefined\n }),\n )\n }, [query?.where])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n hasActiveFilters,\n isGroupingBy: Boolean(query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n resolvedGroupBy: queryFromProps?.groupBy,\n resolvedSearch: queryFromProps?.search,\n searchInput,\n setModified,\n setSearchInput,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeQuery.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/mergeQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,eAAO,MAAM,UAAU,iBACP,SAAS,YACb,SAAS,YACT;IACR,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KACA,SAwDF,CAAA"}
1
+ {"version":3,"file":"mergeQuery.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/mergeQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAExC,eAAO,MAAM,UAAU,iBACP,SAAS,YACb,SAAS,YACT;IACR,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,KACA,SAqDF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mergeQuery.js","names":["mergeQuery","currentQuery","newQuery","options","page","shouldResetPage","some","key","includes","shouldResetQueryByGroup","mergedQueryByGroup","undefined","queryByGroup","Object","fromEntries","entries","map","value","mergedQuery","columns","groupBy","defaults","limit","preset","search","sort","where"],"sources":["../../../src/providers/ListQuery/mergeQuery.ts"],"sourcesContent":["import type { ListQuery } from 'payload'\n\nexport const mergeQuery = (\n currentQuery: ListQuery,\n newQuery: ListQuery,\n options?: {\n defaults?: ListQuery\n },\n): ListQuery => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n const shouldResetPage = ['where', 'search', 'groupBy']?.some(\n (key) => key in newQuery && !['limit', 'page'].includes(key),\n )\n\n if (shouldResetPage) {\n page = 1\n }\n\n const shouldResetQueryByGroup = ['where', 'search', 'page', 'limit', 'groupBy', 'sort'].some(\n (key) => key in newQuery,\n )\n\n let mergedQueryByGroup = undefined\n\n if (!shouldResetQueryByGroup) {\n // Deeply merge queryByGroup so we can send a partial update for a specific group\n mergedQueryByGroup = {\n ...(currentQuery?.queryByGroup || {}),\n ...(newQuery.queryByGroup\n ? Object.fromEntries(\n Object.entries(newQuery.queryByGroup).map(([key, value]) => [\n key,\n {\n ...(currentQuery?.queryByGroup?.[key] || {}),\n ...value,\n },\n ]),\n )\n : {}),\n }\n }\n\n const mergedQuery: ListQuery = {\n ...currentQuery,\n ...newQuery,\n columns: 'columns' in newQuery ? newQuery.columns : currentQuery.columns,\n groupBy:\n 'groupBy' in newQuery\n ? newQuery.groupBy\n : (currentQuery?.groupBy ?? options?.defaults?.groupBy),\n limit: 'limit' in newQuery ? newQuery.limit : (currentQuery?.limit ?? options?.defaults?.limit),\n page,\n preset: 'preset' in newQuery ? newQuery.preset : currentQuery?.preset,\n queryByGroup: mergedQueryByGroup,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort:\n 'sort' in newQuery\n ? newQuery.sort\n : ((currentQuery?.sort as string) ?? options?.defaults?.sort),\n where: 'where' in newQuery ? newQuery.where : currentQuery?.where,\n }\n\n return mergedQuery\n}\n"],"mappings":"AAEA,OAAO,MAAMA,UAAA,GAAaA,CACxBC,YAAA,EACAC,QAAA,EACAC,OAAA;EAIA,IAAIC,IAAA,GAAO,UAAUF,QAAA,GAAWA,QAAA,CAASE,IAAI,GAAGH,YAAA,EAAcG,IAAA;EAE9D,MAAMC,eAAA,GAAkB,CAAC,SAAS,UAAU,UAAU,EAAEC,IAAA,CACrDC,GAAA,IAAQA,GAAA,IAAOL,QAAA,IAAY,CAAC,CAAC,SAAS,OAAO,CAACM,QAAQ,CAACD,GAAA;EAG1D,IAAIF,eAAA,EAAiB;IACnBD,IAAA,GAAO;EACT;EAEA,MAAMK,uBAAA,GAA0B,CAAC,SAAS,UAAU,QAAQ,SAAS,WAAW,OAAO,CAACH,IAAI,CACzFC,GAAA,IAAQA,GAAA,IAAOL,QAAA;EAGlB,IAAIQ,kBAAA,GAAqBC,SAAA;EAEzB,IAAI,CAACF,uBAAA,EAAyB;IAC5B;IACAC,kBAAA,GAAqB;MACnB,IAAIT,YAAA,EAAcW,YAAA,IAAgB,CAAC,CAAC;MACpC,IAAIV,QAAA,CAASU,YAAY,GACrBC,MAAA,CAAOC,WAAW,CAChBD,MAAA,CAAOE,OAAO,CAACb,QAAA,CAASU,YAAY,EAAEI,GAAG,CAAC,CAAC,CAACT,GAAA,EAAKU,KAAA,CAAM,KAAK,CAC1DV,GAAA,EACA;QACE,IAAIN,YAAA,EAAcW,YAAA,GAAeL,GAAA,CAAI,IAAI,CAAC,CAAC;QAC3C,GAAGU;MACL,EACD,KAEH,CAAC,CAAC;IACR;EACF;EAEA,MAAMC,WAAA,GAAyB;IAC7B,GAAGjB,YAAY;IACf,GAAGC,QAAQ;IACXiB,OAAA,EAAS,aAAajB,QAAA,GAAWA,QAAA,CAASiB,OAAO,GAAGlB,YAAA,CAAakB,OAAO;IACxEC,OAAA,EACE,aAAalB,QAAA,GACTA,QAAA,CAASkB,OAAO,GACfnB,YAAA,EAAcmB,OAAA,IAAWjB,OAAA,EAASkB,QAAA,EAAUD,OAAA;IACnDE,KAAA,EAAO,WAAWpB,QAAA,GAAWA,QAAA,CAASoB,KAAK,GAAIrB,YAAA,EAAcqB,KAAA,IAASnB,OAAA,EAASkB,QAAA,EAAUC,KAAA;IACzFlB,IAAA;IACAmB,MAAA,EAAQ,YAAYrB,QAAA,GAAWA,QAAA,CAASqB,MAAM,GAAGtB,YAAA,EAAcsB,MAAA;IAC/DX,YAAA,EAAcF,kBAAA;IACdc,MAAA,EAAQ,YAAYtB,QAAA,GAAWA,QAAA,CAASsB,MAAM,GAAGvB,YAAA,EAAcuB,MAAA;IAC/DC,IAAA,EACE,UAAUvB,QAAA,GACNA,QAAA,CAASuB,IAAI,GACZxB,YAAC,EAAcwB,IAAA,IAAmBtB,OAAA,EAASkB,QAAA,EAAUI,IAAA;IAC5DC,KAAA,EAAO,WAAWxB,QAAA,GAAWA,QAAA,CAASwB,KAAK,GAAGzB,YAAA,EAAcyB;EAC9D;EAEA,OAAOR,WAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"mergeQuery.js","names":["mergeQuery","currentQuery","newQuery","options","page","shouldResetPage","some","key","includes","shouldResetQueryByGroup","mergedQueryByGroup","undefined","queryByGroup","Object","fromEntries","entries","map","value","mergedQuery","columns","groupBy","defaults","limit","preset","search","sort","where"],"sources":["../../../src/providers/ListQuery/mergeQuery.ts"],"sourcesContent":["import type { ListQuery } from 'payload'\n\nexport const mergeQuery = (\n currentQuery: ListQuery,\n newQuery: ListQuery,\n options?: {\n defaults?: ListQuery\n },\n): ListQuery => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n const shouldResetPage = ['where', 'search', 'groupBy']?.some(\n (key) => key in newQuery && !['limit', 'page'].includes(key),\n )\n\n if (shouldResetPage) {\n page = 1\n }\n\n const shouldResetQueryByGroup = ['where', 'search', 'page', 'limit', 'groupBy', 'sort'].some(\n (key) => key in newQuery,\n )\n\n let mergedQueryByGroup = undefined\n\n if (!shouldResetQueryByGroup) {\n // Deeply merge queryByGroup so we can send a partial update for a specific group\n mergedQueryByGroup = {\n ...(currentQuery?.queryByGroup || {}),\n ...(newQuery.queryByGroup\n ? Object.fromEntries(\n Object.entries(newQuery.queryByGroup).map(([key, value]) => [\n key,\n {\n ...(currentQuery?.queryByGroup?.[key] || {}),\n ...value,\n },\n ]),\n )\n : {}),\n }\n }\n\n const mergedQuery: ListQuery = {\n ...currentQuery,\n ...newQuery,\n columns: 'columns' in newQuery ? newQuery.columns : currentQuery.columns,\n groupBy:\n 'groupBy' in newQuery\n ? newQuery.groupBy\n : (currentQuery?.groupBy ?? options?.defaults?.groupBy),\n limit: 'limit' in newQuery ? newQuery.limit : (currentQuery?.limit ?? options?.defaults?.limit),\n page,\n preset: 'preset' in newQuery ? newQuery.preset : currentQuery?.preset,\n queryByGroup: mergedQueryByGroup,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort: 'sort' in newQuery ? newQuery.sort : (currentQuery?.sort ?? options?.defaults?.sort),\n where: 'where' in newQuery ? newQuery.where : currentQuery?.where,\n }\n\n return mergedQuery\n}\n"],"mappings":"AAEA,OAAO,MAAMA,UAAA,GAAaA,CACxBC,YAAA,EACAC,QAAA,EACAC,OAAA;EAIA,IAAIC,IAAA,GAAO,UAAUF,QAAA,GAAWA,QAAA,CAASE,IAAI,GAAGH,YAAA,EAAcG,IAAA;EAE9D,MAAMC,eAAA,GAAkB,CAAC,SAAS,UAAU,UAAU,EAAEC,IAAA,CACrDC,GAAA,IAAQA,GAAA,IAAOL,QAAA,IAAY,CAAC,CAAC,SAAS,OAAO,CAACM,QAAQ,CAACD,GAAA;EAG1D,IAAIF,eAAA,EAAiB;IACnBD,IAAA,GAAO;EACT;EAEA,MAAMK,uBAAA,GAA0B,CAAC,SAAS,UAAU,QAAQ,SAAS,WAAW,OAAO,CAACH,IAAI,CACzFC,GAAA,IAAQA,GAAA,IAAOL,QAAA;EAGlB,IAAIQ,kBAAA,GAAqBC,SAAA;EAEzB,IAAI,CAACF,uBAAA,EAAyB;IAC5B;IACAC,kBAAA,GAAqB;MACnB,IAAIT,YAAA,EAAcW,YAAA,IAAgB,CAAC,CAAC;MACpC,IAAIV,QAAA,CAASU,YAAY,GACrBC,MAAA,CAAOC,WAAW,CAChBD,MAAA,CAAOE,OAAO,CAACb,QAAA,CAASU,YAAY,EAAEI,GAAG,CAAC,CAAC,CAACT,GAAA,EAAKU,KAAA,CAAM,KAAK,CAC1DV,GAAA,EACA;QACE,IAAIN,YAAA,EAAcW,YAAA,GAAeL,GAAA,CAAI,IAAI,CAAC,CAAC;QAC3C,GAAGU;MACL,EACD,KAEH,CAAC,CAAC;IACR;EACF;EAEA,MAAMC,WAAA,GAAyB;IAC7B,GAAGjB,YAAY;IACf,GAAGC,QAAQ;IACXiB,OAAA,EAAS,aAAajB,QAAA,GAAWA,QAAA,CAASiB,OAAO,GAAGlB,YAAA,CAAakB,OAAO;IACxEC,OAAA,EACE,aAAalB,QAAA,GACTA,QAAA,CAASkB,OAAO,GACfnB,YAAA,EAAcmB,OAAA,IAAWjB,OAAA,EAASkB,QAAA,EAAUD,OAAA;IACnDE,KAAA,EAAO,WAAWpB,QAAA,GAAWA,QAAA,CAASoB,KAAK,GAAIrB,YAAA,EAAcqB,KAAA,IAASnB,OAAA,EAASkB,QAAA,EAAUC,KAAA;IACzFlB,IAAA;IACAmB,MAAA,EAAQ,YAAYrB,QAAA,GAAWA,QAAA,CAASqB,MAAM,GAAGtB,YAAA,EAAcsB,MAAA;IAC/DX,YAAA,EAAcF,kBAAA;IACdc,MAAA,EAAQ,YAAYtB,QAAA,GAAWA,QAAA,CAASsB,MAAM,GAAGvB,YAAA,EAAcuB,MAAA;IAC/DC,IAAA,EAAM,UAAUvB,QAAA,GAAWA,QAAA,CAASuB,IAAI,GAAIxB,YAAA,EAAcwB,IAAA,IAAQtB,OAAA,EAASkB,QAAA,EAAUI,IAAA;IACrFC,KAAA,EAAO,WAAWxB,QAAA,GAAWA,QAAA,CAASwB,KAAK,GAAGzB,YAAA,EAAcyB;EAC9D;EAEA,OAAOR,WAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"sanitizeQuery.js","names":["sanitizeQuery","toSanitize","sanitized","Object","entries","forEach","key","value","Array","isArray","length","keys","parsed","parseInt","Number","isNaN","undefined"],"sources":["../../../src/providers/ListQuery/sanitizeQuery.ts"],"sourcesContent":["import type { ListQuery, Where } from 'payload'\n\n/**\n * Sanitize empty strings from the query, e.g. `?preset=`\n * This is how we determine whether to clear user preferences for certain params\n * Once cleared, they are no longer needed in the URL\n */\nexport const sanitizeQuery = (toSanitize: ListQuery): ListQuery => {\n const sanitized = { ...toSanitize }\n\n Object.entries(sanitized).forEach(([key, value]) => {\n if (\n key === 'columns' &&\n (value === '[]' || (Array.isArray(sanitized[key]) && sanitized[key].length === 0))\n ) {\n delete sanitized[key]\n }\n\n if (\n key === 'where' &&\n typeof value === 'object' &&\n value !== null &&\n !Object.keys(value as Where).length\n ) {\n delete sanitized[key]\n }\n\n if ((key === 'limit' || key === 'page') && typeof value === 'string') {\n const parsed = parseInt(value, 10)\n sanitized[key] = Number.isNaN(parsed) ? undefined : parsed\n }\n\n if (key === 'page' && value === 0) {\n delete sanitized[key]\n }\n\n if (value === '') {\n delete sanitized[key]\n }\n })\n\n return sanitized\n}\n"],"mappings":"AAEA;;;;GAKA,OAAO,MAAMA,aAAA,GAAiBC,UAAA;EAC5B,MAAMC,SAAA,GAAY;IAAE,GAAGD;EAAW;EAElCE,MAAA,CAAOC,OAAO,CAACF,SAAA,EAAWG,OAAO,CAAC,CAAC,CAACC,GAAA,EAAKC,KAAA,CAAM;IAC7C,IACED,GAAA,KAAQ,cACPC,KAAA,KAAU,QAASC,KAAA,CAAMC,OAAO,CAACP,SAAS,CAACI,GAAA,CAAI,KAAKJ,SAAS,CAACI,GAAA,CAAI,CAACI,MAAM,KAAK,CAAC,GAChF;MACA,OAAOR,SAAS,CAACI,GAAA,CAAI;IACvB;IAEA,IACEA,GAAA,KAAQ,WACR,OAAOC,KAAA,KAAU,YACjBA,KAAA,KAAU,QACV,CAACJ,MAAA,CAAOQ,IAAI,CAACJ,KAAA,EAAgBG,MAAM,EACnC;MACA,OAAOR,SAAS,CAACI,GAAA,CAAI;IACvB;IAEA,IAAI,CAACA,GAAA,KAAQ,WAAWA,GAAA,KAAQ,MAAK,KAAM,OAAOC,KAAA,KAAU,UAAU;MACpE,MAAMK,MAAA,GAASC,QAAA,CAASN,KAAA,EAAO;MAC/BL,SAAS,CAACI,GAAA,CAAI,GAAGQ,MAAA,CAAOC,KAAK,CAACH,MAAA,IAAUI,SAAA,GAAYJ,MAAA;IACtD;IAEA,IAAIN,GAAA,KAAQ,UAAUC,KAAA,KAAU,GAAG;MACjC,OAAOL,SAAS,CAACI,GAAA,CAAI;IACvB;IAEA,IAAIC,KAAA,KAAU,IAAI;MAChB,OAAOL,SAAS,CAACI,GAAA,CAAI;IACvB;EACF;EAEA,OAAOJ,SAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"sanitizeQuery.js","names":["sanitizeQuery","toSanitize","sanitized","Object","entries","forEach","key","value","Array","isArray","length","keys","parsed","parseInt","Number","isNaN","undefined"],"sources":["../../../src/providers/ListQuery/sanitizeQuery.ts"],"sourcesContent":["import type { ListQuery, Where } from 'payload'\n\n/**\n * Sanitize empty strings from the query, e.g. `?preset=`\n * This is how we determine whether to clear user preferences for certain params\n * Once cleared, they are no longer needed in the URL\n */\nexport const sanitizeQuery = (toSanitize: ListQuery): ListQuery => {\n const sanitized = { ...toSanitize }\n\n Object.entries(sanitized).forEach(([key, value]) => {\n if (\n key === 'columns' &&\n (value === '[]' || (Array.isArray(sanitized[key]) && sanitized[key].length === 0))\n ) {\n delete sanitized[key]\n }\n\n if (\n key === 'where' &&\n typeof value === 'object' &&\n value !== null &&\n !Object.keys(value).length\n ) {\n delete sanitized[key]\n }\n\n if ((key === 'limit' || key === 'page') && typeof value === 'string') {\n const parsed = parseInt(value, 10)\n sanitized[key] = Number.isNaN(parsed) ? undefined : parsed\n }\n\n if (key === 'page' && value === 0) {\n delete sanitized[key]\n }\n\n if (value === '') {\n delete sanitized[key]\n }\n })\n\n return sanitized\n}\n"],"mappings":"AAEA;;;;GAKA,OAAO,MAAMA,aAAA,GAAiBC,UAAA;EAC5B,MAAMC,SAAA,GAAY;IAAE,GAAGD;EAAW;EAElCE,MAAA,CAAOC,OAAO,CAACF,SAAA,EAAWG,OAAO,CAAC,CAAC,CAACC,GAAA,EAAKC,KAAA,CAAM;IAC7C,IACED,GAAA,KAAQ,cACPC,KAAA,KAAU,QAASC,KAAA,CAAMC,OAAO,CAACP,SAAS,CAACI,GAAA,CAAI,KAAKJ,SAAS,CAACI,GAAA,CAAI,CAACI,MAAM,KAAK,CAAC,GAChF;MACA,OAAOR,SAAS,CAACI,GAAA,CAAI;IACvB;IAEA,IACEA,GAAA,KAAQ,WACR,OAAOC,KAAA,KAAU,YACjBA,KAAA,KAAU,QACV,CAACJ,MAAA,CAAOQ,IAAI,CAACJ,KAAA,EAAOG,MAAM,EAC1B;MACA,OAAOR,SAAS,CAACI,GAAA,CAAI;IACvB;IAEA,IAAI,CAACA,GAAA,KAAQ,WAAWA,GAAA,KAAQ,MAAK,KAAM,OAAOC,KAAA,KAAU,UAAU;MACpE,MAAMK,MAAA,GAASC,QAAA,CAASN,KAAA,EAAO;MAC/BL,SAAS,CAACI,GAAA,CAAI,GAAGQ,MAAA,CAAOC,KAAK,CAACH,MAAA,IAAUI,SAAA,GAAYJ,MAAA;IACtD;IAEA,IAAIN,GAAA,KAAQ,UAAUC,KAAA,KAAU,GAAG;MACjC,OAAOL,SAAS,CAACI,GAAA,CAAI;IACvB;IAEA,IAAIC,KAAA,KAAU,IAAI;MAChB,OAAOL,SAAS,CAACI,GAAA,CAAI;IACvB;EACF;EAEA,OAAOJ,SAAA;AACT","ignoreList":[]}
@@ -6,7 +6,12 @@ type ContextHandlers = {
6
6
  handleSortChange?: (sort: string) => Promise<void>;
7
7
  handleWhereChange?: (where: Where) => Promise<void>;
8
8
  };
9
- export type OnListQueryChange = (query: ListQuery) => void;
9
+ /**
10
+ * Returned promises are awaited; return values are otherwise ignored.
11
+ * The union of callbacks preserves TypeScript's `void` callback rule, allowing handlers such as `query => updates.push(query)`.
12
+ * A union of return types would reject synchronous handlers that return a value.
13
+ */
14
+ export type OnListQueryChange = ((query: ListQuery) => Promise<unknown>) | ((query: ListQuery) => void);
10
15
  export type ListQueryProps = {
11
16
  readonly children: React.ReactNode;
12
17
  readonly collectionSlug?: ClientCollectionConfig['slug'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,SAAS,EAET,aAAa,EACb,IAAI,EACJ,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACxD,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,8EAA8E;IAC9E,gBAAgB,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC,GAAG,eAAe,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,SAAS,EAET,aAAa,EACb,IAAI,EACJ,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,KAAK,eAAe,GAAG;IACrB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GACzB,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GACxC,CAAC,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC,CAAA;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACxD,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9C,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,8EAA8E;IAC9E,gBAAgB,EAAE,OAAO,CAAA;IACzB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,KAAK,EAAE,SAAS,CAAA;IAChB,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC,GAAG,eAAe,CAAA"}
@@ -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.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteCache/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6D,MAAM,OAAO,CAAA;AAKjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAOD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA4CxF,CAAA;AAED,eAAO,MAAM,aAAa,yBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/RouteCache/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6D,MAAM,OAAO,CAAA;AAKjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,MAAM,IAAI,CAAA;CAC5B,CAAA;AAOD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CA0ExF,CAAA;AAED,eAAO,MAAM,aAAa,yBAAqB,CAAA"}
@@ -18,7 +18,7 @@ export const RouteCache = t0 => {
18
18
  const cachingEnabled = t1 === undefined ? true : t1;
19
19
  const pathname = usePathname();
20
20
  const router = useRouter();
21
- const clearAfterPathnameChange = useRef(false);
21
+ const previousPathnameRef = useRef("");
22
22
  let t2;
23
23
  if ($[0] !== router) {
24
24
  t2 = () => {
@@ -31,51 +31,63 @@ export const RouteCache = t0 => {
31
31
  }
32
32
  const clearRouteCache = t2;
33
33
  let t3;
34
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
34
+ let t4;
35
+ if ($[2] !== cachingEnabled || $[3] !== clearRouteCache) {
35
36
  t3 = () => {
37
+ if (cachingEnabled) {
38
+ return;
39
+ }
40
+ previousPathnameRef.current = window.location.pathname;
41
+ let refreshTimeout;
36
42
  const handlePopState = () => {
37
- clearAfterPathnameChange.current = true;
43
+ const currentPathname = window.location.pathname;
44
+ if (previousPathnameRef.current === currentPathname) {
45
+ return;
46
+ }
47
+ previousPathnameRef.current = currentPathname;
48
+ refreshTimeout = setTimeout(clearRouteCache, 0);
38
49
  };
39
50
  window.addEventListener("popstate", handlePopState);
40
51
  return () => {
52
+ clearTimeout(refreshTimeout);
41
53
  window.removeEventListener("popstate", handlePopState);
42
54
  };
43
55
  };
44
- $[2] = t3;
45
- } else {
46
- t3 = $[2];
47
- }
48
- let t4;
49
- if ($[3] !== router) {
50
- t4 = [router];
51
- $[3] = router;
52
- $[4] = t4;
56
+ t4 = [cachingEnabled, clearRouteCache];
57
+ $[2] = cachingEnabled;
58
+ $[3] = clearRouteCache;
59
+ $[4] = t3;
60
+ $[5] = t4;
53
61
  } else {
54
- t4 = $[4];
62
+ t3 = $[4];
63
+ t4 = $[5];
55
64
  }
56
65
  useEffect(t3, t4);
57
66
  let t5;
58
- if ($[5] !== cachingEnabled || $[6] !== clearRouteCache) {
59
- t5 = pathname_0 => {
60
- if (cachingEnabled || clearAfterPathnameChange.current) {
61
- clearAfterPathnameChange.current = false;
67
+ if ($[6] !== cachingEnabled || $[7] !== clearRouteCache) {
68
+ t5 = () => {
69
+ if (cachingEnabled) {
62
70
  clearRouteCache();
63
71
  }
64
72
  };
65
- $[5] = cachingEnabled;
66
- $[6] = clearRouteCache;
67
- $[7] = t5;
73
+ $[6] = cachingEnabled;
74
+ $[7] = clearRouteCache;
75
+ $[8] = t5;
68
76
  } else {
69
- t5 = $[7];
77
+ t5 = $[8];
70
78
  }
71
79
  const handlePathnameChange = useEffectEvent(t5);
72
80
  let t6;
73
- if ($[8] !== handlePathnameChange || $[9] !== pathname) {
81
+ if ($[9] !== handlePathnameChange) {
74
82
  t6 = () => {
75
- handlePathnameChange(pathname);
83
+ handlePathnameChange();
84
+ const currentPathname_0 = window.location.pathname;
85
+ const timeout = setTimeout(() => {
86
+ previousPathnameRef.current = currentPathname_0;
87
+ }, 0);
88
+ return () => clearTimeout(timeout);
76
89
  };
77
- $[8] = handlePathnameChange;
78
- $[9] = pathname;
90
+ $[9] = handlePathnameChange;
79
91
  $[10] = t6;
80
92
  } else {
81
93
  t6 = $[10];