@payloadcms/ui 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ec73d44

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 (934) 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 +236 -143
  15. package/dist/elements/Autosave/index.js.map +1 -1
  16. package/dist/elements/BranchSelector/index.d.ts.map +1 -1
  17. package/dist/elements/BranchSelector/index.js +285 -204
  18. package/dist/elements/BranchSelector/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/EditMany/index.js +29 -21
  25. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js +1 -34
  29. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/index.js +63 -23
  31. package/dist/elements/BulkUpload/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
  33. package/dist/elements/Button/index.css +3 -3
  34. package/dist/elements/Button/index.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +2 -1
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/types.d.ts +1 -0
  38. package/dist/elements/Button/types.d.ts.map +1 -1
  39. package/dist/elements/Button/types.js.map +1 -1
  40. package/dist/elements/CardGrid/index.css +0 -1
  41. package/dist/elements/ChangeSummary/index.js.map +1 -1
  42. package/dist/elements/Chip/index.js.map +1 -1
  43. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  44. package/dist/elements/ClipboardAction/index.js +213 -88
  45. package/dist/elements/ClipboardAction/index.js.map +1 -1
  46. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  47. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  48. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  49. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  50. package/dist/elements/CodeEditor/CodeEditor.js +99 -55
  51. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  52. package/dist/elements/CollapseAllToggle/index.js +47 -32
  53. package/dist/elements/CollapseAllToggle/index.js.map +1 -1
  54. package/dist/elements/Collapsible/index.css +15 -4
  55. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  56. package/dist/elements/Collapsible/index.js +46 -38
  57. package/dist/elements/Collapsible/index.js.map +1 -1
  58. package/dist/elements/Collapsible/provider.js +37 -14
  59. package/dist/elements/Collapsible/provider.js.map +1 -1
  60. package/dist/elements/ColumnSelection/Popup.css +4 -0
  61. package/dist/elements/ColumnSelection/Popup.js +10 -2
  62. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  63. package/dist/elements/ColumnSelection/index.js.map +1 -1
  64. package/dist/elements/CommandPalette/index.css +8 -0
  65. package/dist/elements/ConfirmationModal/index.d.ts +3 -0
  66. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  67. package/dist/elements/ConfirmationModal/index.js +2 -0
  68. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  69. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  70. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  71. package/dist/elements/CreateDocumentButton/index.js +45 -43
  72. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +6 -2
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/index.css +40 -25
  76. package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
  77. package/dist/elements/DefaultListViewTabs/index.css +4 -0
  78. package/dist/elements/DefaultListViewTabs/index.js +47 -37
  79. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  80. package/dist/elements/DelayedSpinner/index.js.map +1 -1
  81. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  82. package/dist/elements/DeleteDocument/index.js +1 -3
  83. package/dist/elements/DeleteDocument/index.js.map +1 -1
  84. package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
  85. package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
  86. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  87. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  88. package/dist/elements/DocumentCard/index.d.ts +2 -0
  89. package/dist/elements/DocumentCard/index.d.ts.map +1 -1
  90. package/dist/elements/DocumentCard/index.js +2 -0
  91. package/dist/elements/DocumentCard/index.js.map +1 -1
  92. package/dist/elements/DocumentControls/index.css +13 -10
  93. package/dist/elements/DocumentControls/index.js +1 -1
  94. package/dist/elements/DocumentControls/index.js.map +1 -1
  95. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  96. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  97. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  98. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  99. package/dist/elements/DocumentFields/index.css +7 -7
  100. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  101. package/dist/elements/DocumentFields/index.js +125 -65
  102. package/dist/elements/DocumentFields/index.js.map +1 -1
  103. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  104. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  105. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
  106. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  107. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
  108. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  109. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  110. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  111. package/dist/elements/DocumentLocked/index.js +1 -0
  112. package/dist/elements/DocumentLocked/index.js.map +1 -1
  113. package/dist/elements/DocumentStaleData/index.js.map +1 -1
  114. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  115. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
  116. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
  117. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  118. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
  119. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  120. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
  121. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  122. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  123. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  124. package/dist/elements/DraggableSortable/index.js +104 -170
  125. package/dist/elements/DraggableSortable/index.js.map +1 -1
  126. package/dist/elements/DraggableSortable/types.d.ts +1 -0
  127. package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
  128. package/dist/elements/DraggableSortable/types.js.map +1 -1
  129. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  130. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
  131. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
  132. package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
  133. package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
  134. package/dist/elements/Drawer/index.js +138 -81
  135. package/dist/elements/Drawer/index.js.map +1 -1
  136. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  137. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  138. package/dist/elements/DrawerHeader/index.js.map +1 -1
  139. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
  140. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  141. package/dist/elements/EditMany/DrawerContent.js +1 -1
  142. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  143. package/dist/elements/EditMany/index.js.map +1 -1
  144. package/dist/elements/EditUpload/library.css +6 -13
  145. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
  146. package/dist/elements/FieldDiffContainer/index.js +7 -1
  147. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  148. package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
  149. package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
  150. package/dist/elements/FieldDiffLabel/index.js +2 -0
  151. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  152. package/dist/elements/FieldSelect/index.js +23 -14
  153. package/dist/elements/FieldSelect/index.js.map +1 -1
  154. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  155. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  156. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  157. package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
  158. package/dist/elements/FileManager/index.js.map +1 -1
  159. package/dist/elements/FullscreenModal/index.js.map +1 -1
  160. package/dist/elements/GenerateConfirmation/index.js +21 -21
  161. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  162. package/dist/elements/GroupBy/Popup.js.map +1 -1
  163. package/dist/elements/GroupBy/index.js +120 -66
  164. package/dist/elements/GroupBy/index.js.map +1 -1
  165. package/dist/elements/HTMLDiff/colors.css +7 -0
  166. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  167. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
  168. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  169. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
  170. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  171. package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
  172. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
  173. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
  174. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
  175. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
  176. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
  177. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  178. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  179. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  180. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  181. package/dist/elements/Hierarchy/Tree/index.js +10 -5
  182. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  183. package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -1
  184. package/dist/elements/HierarchyTypeField/index.js.map +1 -1
  185. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  186. package/dist/elements/HydratePreferences/index.js.map +1 -1
  187. package/dist/elements/IDLabel/index.js.map +1 -1
  188. package/dist/elements/InputStepper/index.js.map +1 -1
  189. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
  190. package/dist/elements/ItemsDrawer/index.js +186 -105
  191. package/dist/elements/ItemsDrawer/index.js.map +1 -1
  192. package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
  193. package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
  194. package/dist/elements/LayoutToggle/index.js.map +1 -1
  195. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  196. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
  197. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  198. package/dist/elements/Link/index.js +1 -1
  199. package/dist/elements/Link/index.js.map +1 -1
  200. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
  201. package/dist/elements/ListControls/index.js.map +1 -1
  202. package/dist/elements/ListControls/types.d.ts +0 -10
  203. package/dist/elements/ListControls/types.d.ts.map +1 -1
  204. package/dist/elements/ListControls/types.js.map +1 -1
  205. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  206. package/dist/elements/ListDrawer/DrawerContent.js +2 -3
  207. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  208. package/dist/elements/ListDrawer/Provider.d.ts +3 -8
  209. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  210. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  211. package/dist/elements/ListDrawer/index.js.map +1 -1
  212. package/dist/elements/ListGroupByButton/index.js.map +1 -1
  213. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  214. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
  215. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  216. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  217. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
  218. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  219. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  220. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  221. package/dist/elements/ListSelection/index.js.map +1 -1
  222. package/dist/elements/ListWhereBuilder/index.js.map +1 -1
  223. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  224. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  225. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  226. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  227. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  228. package/dist/elements/LivePreview/Window/index.css +7 -1
  229. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  230. package/dist/elements/LivePreview/Window/index.js +6 -1
  231. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  232. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  233. package/dist/elements/Loading/index.js +62 -18
  234. package/dist/elements/Loading/index.js.map +1 -1
  235. package/dist/elements/LoadingOverlay/index.js +93 -49
  236. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  237. package/dist/elements/Localizer/index.js +133 -108
  238. package/dist/elements/Localizer/index.js.map +1 -1
  239. package/dist/elements/Locked/index.js +54 -37
  240. package/dist/elements/Locked/index.js.map +1 -1
  241. package/dist/elements/Logout/index.js.map +1 -1
  242. package/dist/elements/MergeBranch/MergeBranchForm/index.d.ts.map +1 -1
  243. package/dist/elements/MergeBranch/MergeBranchForm/index.js +21 -16
  244. package/dist/elements/MergeBranch/MergeBranchForm/index.js.map +1 -1
  245. package/dist/elements/MergeBranch/MergeProgress/index.js.map +1 -1
  246. package/dist/elements/MergeBranch/context.js +58 -20
  247. package/dist/elements/MergeBranch/context.js.map +1 -1
  248. package/dist/elements/MergeBranch/index.js.map +1 -1
  249. package/dist/elements/MergeBranch/useMergeBranchAction.js +1 -1
  250. package/dist/elements/MergeBranch/useMergeBranchAction.js.map +1 -1
  251. package/dist/elements/MergeBranch/useScheduleBranchMerge.js +1 -1
  252. package/dist/elements/MergeBranch/useScheduleBranchMerge.js.map +1 -1
  253. package/dist/elements/MergeBranch/useUpcomingBranchMerges.js.map +1 -1
  254. package/dist/elements/MiniCarousel/index.js +102 -38
  255. package/dist/elements/MiniCarousel/index.js.map +1 -1
  256. package/dist/elements/Modal/index.d.ts.map +1 -1
  257. package/dist/elements/Modal/index.js +13 -1
  258. package/dist/elements/Modal/index.js.map +1 -1
  259. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  260. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  261. package/dist/elements/Nav/NavWrapper/index.js +10 -6
  262. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  263. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  264. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
  265. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  266. package/dist/elements/Nav/SidebarTabs/index.client.js +32 -21
  267. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  268. package/dist/elements/Nav/context.js +2 -2
  269. package/dist/elements/Nav/context.js.map +1 -1
  270. package/dist/elements/Nav/getNavPrefs.d.ts +1 -1
  271. package/dist/elements/Nav/getNavPrefs.js +1 -1
  272. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  273. package/dist/elements/Nav/index.client.js.map +1 -1
  274. package/dist/elements/Nav/index.css +5 -0
  275. package/dist/elements/NavGroup/index.css +27 -3
  276. package/dist/elements/NavGroup/index.js +32 -39
  277. package/dist/elements/NavGroup/index.js.map +1 -1
  278. package/dist/elements/NoListResults/index.css +1 -0
  279. package/dist/elements/NoListResults/index.js +1 -1
  280. package/dist/elements/NoListResults/index.js.map +1 -1
  281. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  282. package/dist/elements/PageControls/index.js.map +1 -1
  283. package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
  284. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  285. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  286. package/dist/elements/Pagination/index.js +36 -37
  287. package/dist/elements/Pagination/index.js.map +1 -1
  288. package/dist/elements/PerPage/index.js.map +1 -1
  289. package/dist/elements/Pill/index.js.map +1 -1
  290. package/dist/elements/Popup/SubmenuScope.d.ts +3 -5
  291. package/dist/elements/Popup/SubmenuScope.d.ts.map +1 -1
  292. package/dist/elements/Popup/SubmenuScope.js +10 -54
  293. package/dist/elements/Popup/SubmenuScope.js.map +1 -1
  294. package/dist/elements/Popup/index.css +15 -0
  295. package/dist/elements/Popup/index.d.ts.map +1 -1
  296. package/dist/elements/Popup/index.js +88 -33
  297. package/dist/elements/Popup/index.js.map +1 -1
  298. package/dist/elements/Popup/useSubmenuPointerIntent.d.ts +16 -4
  299. package/dist/elements/Popup/useSubmenuPointerIntent.d.ts.map +1 -1
  300. package/dist/elements/Popup/useSubmenuPointerIntent.js +68 -27
  301. package/dist/elements/Popup/useSubmenuPointerIntent.js.map +1 -1
  302. package/dist/elements/PreviewButton/index.js.map +1 -1
  303. package/dist/elements/PreviewSizes/index.js +141 -70
  304. package/dist/elements/PreviewSizes/index.js.map +1 -1
  305. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  306. package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
  307. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  308. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  309. package/dist/elements/PublishButton/index.js +1 -0
  310. package/dist/elements/PublishButton/index.js.map +1 -1
  311. package/dist/elements/PublishMany/DrawerContent.js +1 -1
  312. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  313. package/dist/elements/PublishMany/index.js +32 -24
  314. package/dist/elements/PublishMany/index.js.map +1 -1
  315. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
  316. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  317. package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
  318. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  319. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
  320. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  321. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  322. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  323. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  324. package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
  325. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  326. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  327. package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
  328. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  329. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  330. package/dist/elements/ReactSelect/index.css +4 -0
  331. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  332. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  333. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  334. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  335. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  336. package/dist/elements/RelationshipTable/index.js +1 -1
  337. package/dist/elements/RelationshipTable/index.js.map +1 -1
  338. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  339. package/dist/elements/RenderTitle/index.js.map +1 -1
  340. package/dist/elements/RestoreMany/index.js +1 -1
  341. package/dist/elements/RestoreMany/index.js.map +1 -1
  342. package/dist/elements/SchedulePublishButton/index.js +112 -44
  343. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  344. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  345. package/dist/elements/SegmentedControl/index.css +50 -7
  346. package/dist/elements/SegmentedControl/index.js.map +1 -1
  347. package/dist/elements/SelectAll/index.js.map +1 -1
  348. package/dist/elements/SelectRow/index.js +31 -21
  349. package/dist/elements/SelectRow/index.js.map +1 -1
  350. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  351. package/dist/elements/SidebarToggle/index.js.map +1 -1
  352. package/dist/elements/SkipToContent/index.js.map +1 -1
  353. package/dist/elements/SortHeader/index.js.map +1 -1
  354. package/dist/elements/SortRow/index.js.map +1 -1
  355. package/dist/elements/Spinner/index.js.map +1 -1
  356. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  357. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  358. package/dist/elements/StepNav/context.js.map +1 -1
  359. package/dist/elements/Switch/index.css +2 -2
  360. package/dist/elements/Switch/index.js.map +1 -1
  361. package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
  362. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  363. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
  364. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  365. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +1 -1
  366. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
  367. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  368. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  369. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  370. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  371. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  372. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
  373. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  374. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  375. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  376. package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
  377. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  378. package/dist/elements/Table/DefaultCell/index.js +6 -1
  379. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  380. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
  381. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  382. package/dist/elements/Table/TableIdentity.js +32 -16
  383. package/dist/elements/Table/TableIdentity.js.map +1 -1
  384. package/dist/elements/Table/index.js.map +1 -1
  385. package/dist/elements/Table/useAriaSort.js.map +1 -1
  386. package/dist/elements/Tabs/index.css +4 -3
  387. package/dist/elements/Thumbnail/index.js +133 -53
  388. package/dist/elements/Thumbnail/index.js.map +1 -1
  389. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  390. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  391. package/dist/elements/TimezonePicker/index.js +113 -54
  392. package/dist/elements/TimezonePicker/index.js.map +1 -1
  393. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  394. package/dist/elements/Tooltip/index.js.map +1 -1
  395. package/dist/elements/Translation/index.js +1 -1
  396. package/dist/elements/Translation/index.js.map +1 -1
  397. package/dist/elements/TrashBanner/index.js.map +1 -1
  398. package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
  399. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  400. package/dist/elements/UnpublishMany/index.js +32 -24
  401. package/dist/elements/UnpublishMany/index.js.map +1 -1
  402. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  403. package/dist/elements/Upload/index.js.map +1 -1
  404. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
  405. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
  406. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  407. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  408. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  409. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  410. package/dist/elements/UserMenu/index.js +2 -1
  411. package/dist/elements/UserMenu/index.js.map +1 -1
  412. package/dist/elements/ViewDescription/index.js.map +1 -1
  413. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  414. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  415. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  416. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  417. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  418. package/dist/elements/WhereBuilder/Condition/index.js +1 -0
  419. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  420. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-23ZGBN6S.js} +2 -2
  421. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-AZBZPMY6.js} +2 -2
  422. package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
  423. package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
  424. package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
  425. package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
  426. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-ZP2PB6M4.js} +2 -2
  427. package/dist/exports/client/chunk-ZP2PB6M4.js.map +7 -0
  428. package/dist/exports/client/index.d.ts +2 -2
  429. package/dist/exports/client/index.d.ts.map +1 -1
  430. package/dist/exports/client/index.js +28 -28
  431. package/dist/exports/client/index.js.map +4 -4
  432. package/dist/exports/rsc/index.d.ts +1 -1
  433. package/dist/exports/rsc/index.d.ts.map +1 -1
  434. package/dist/exports/rsc/index.js +1 -1
  435. package/dist/exports/rsc/index.js.map +1 -1
  436. package/dist/exports/shared/index.js +2 -2
  437. package/dist/exports/shared/index.js.map +3 -3
  438. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  439. package/dist/fields/Array/ArrayRow.js +207 -99
  440. package/dist/fields/Array/ArrayRow.js.map +1 -1
  441. package/dist/fields/Array/index.d.ts.map +1 -1
  442. package/dist/fields/Array/index.js +521 -308
  443. package/dist/fields/Array/index.js.map +1 -1
  444. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  445. package/dist/fields/Blocks/BlockRow.js +224 -136
  446. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  447. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  448. package/dist/fields/Blocks/BlockSelector/index.js +114 -74
  449. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  450. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  451. package/dist/fields/Blocks/RowActions.js +75 -55
  452. package/dist/fields/Blocks/RowActions.js.map +1 -1
  453. package/dist/fields/Blocks/SectionTitle/index.css +4 -0
  454. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  455. package/dist/fields/Blocks/index.d.ts.map +1 -1
  456. package/dist/fields/Blocks/index.js +1 -0
  457. package/dist/fields/Blocks/index.js.map +1 -1
  458. package/dist/fields/Checkbox/index.css +3 -3
  459. package/dist/fields/Checkbox/index.js.map +1 -1
  460. package/dist/fields/Code/index.d.ts.map +1 -1
  461. package/dist/fields/Code/index.js +3 -2
  462. package/dist/fields/Code/index.js.map +1 -1
  463. package/dist/fields/Collapsible/index.js +114 -73
  464. package/dist/fields/Collapsible/index.js.map +1 -1
  465. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  466. package/dist/fields/DateTime/index.js +215 -121
  467. package/dist/fields/DateTime/index.js.map +1 -1
  468. package/dist/fields/Email/index.d.ts.map +1 -1
  469. package/dist/fields/Email/index.js.map +1 -1
  470. package/dist/fields/FieldDescription/index.js +29 -21
  471. package/dist/fields/FieldDescription/index.js.map +1 -1
  472. package/dist/fields/FieldError/index.js.map +1 -1
  473. package/dist/fields/FieldLabel/index.js.map +1 -1
  474. package/dist/fields/Group/index.css +3 -5
  475. package/dist/fields/Group/index.js +75 -46
  476. package/dist/fields/Group/index.js.map +1 -1
  477. package/dist/fields/Hidden/index.js +23 -15
  478. package/dist/fields/Hidden/index.js.map +1 -1
  479. package/dist/fields/JSON/index.d.ts.map +1 -1
  480. package/dist/fields/JSON/index.js +3 -2
  481. package/dist/fields/JSON/index.js.map +1 -1
  482. package/dist/fields/Number/Input.js.map +1 -1
  483. package/dist/fields/Number/index.d.ts.map +1 -1
  484. package/dist/fields/Number/index.js.map +1 -1
  485. package/dist/fields/Password/index.d.ts.map +1 -1
  486. package/dist/fields/Password/index.js.map +1 -1
  487. package/dist/fields/Password/input.js +46 -27
  488. package/dist/fields/Password/input.js.map +1 -1
  489. package/dist/fields/RadioGroup/Radio/index.js +35 -35
  490. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  491. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  492. package/dist/fields/RadioGroup/index.js.map +1 -1
  493. package/dist/fields/Relationship/Input.js +14 -14
  494. package/dist/fields/Relationship/Input.js.map +1 -1
  495. package/dist/fields/Relationship/index.js +216 -111
  496. package/dist/fields/Relationship/index.js.map +1 -1
  497. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  498. package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
  499. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  500. package/dist/fields/Select/Input.js +26 -10
  501. package/dist/fields/Select/Input.js.map +1 -1
  502. package/dist/fields/Select/index.d.ts.map +1 -1
  503. package/dist/fields/Select/index.js +158 -77
  504. package/dist/fields/Select/index.js.map +1 -1
  505. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  506. package/dist/fields/Tabs/index.css +17 -21
  507. package/dist/fields/Tabs/index.js +120 -112
  508. package/dist/fields/Tabs/index.js.map +1 -1
  509. package/dist/fields/Text/Input.d.ts.map +1 -1
  510. package/dist/fields/Text/Input.js +2 -2
  511. package/dist/fields/Text/Input.js.map +1 -1
  512. package/dist/fields/Text/index.js +172 -95
  513. package/dist/fields/Text/index.js.map +1 -1
  514. package/dist/fields/Text/types.d.ts +2 -1
  515. package/dist/fields/Text/types.d.ts.map +1 -1
  516. package/dist/fields/Text/types.js.map +1 -1
  517. package/dist/fields/Textarea/Input.js +58 -28
  518. package/dist/fields/Textarea/Input.js.map +1 -1
  519. package/dist/fields/Textarea/index.js +97 -55
  520. package/dist/fields/Textarea/index.js.map +1 -1
  521. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  522. package/dist/fields/Upload/Input.d.ts.map +1 -1
  523. package/dist/fields/Upload/Input.js +19 -8
  524. package/dist/fields/Upload/Input.js.map +1 -1
  525. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  526. package/dist/fields/Upload/index.css +9 -0
  527. package/dist/fields/Upload/index.js +101 -63
  528. package/dist/fields/Upload/index.js.map +1 -1
  529. package/dist/fields/shared/useRowFocus.js.map +1 -1
  530. package/dist/forms/Form/context.js.map +1 -1
  531. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  532. package/dist/forms/Form/fieldReducer.js.map +1 -1
  533. package/dist/forms/Form/index.d.ts.map +1 -1
  534. package/dist/forms/Form/index.js +27 -8
  535. package/dist/forms/Form/index.js.map +1 -1
  536. package/dist/forms/Form/reduceToSerializableFields.d.ts +9 -4
  537. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  538. package/dist/forms/Form/reduceToSerializableFields.js +34 -7
  539. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  540. package/dist/forms/Form/types.d.ts +1 -1
  541. package/dist/forms/Form/types.d.ts.map +1 -1
  542. package/dist/forms/Form/types.js.map +1 -1
  543. package/dist/forms/NullifyField/index.js.map +1 -1
  544. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  545. package/dist/forms/RenderFields/context.js +3 -2
  546. package/dist/forms/RenderFields/context.js.map +1 -1
  547. package/dist/forms/RenderFields/index.css +2 -2
  548. package/dist/forms/RenderFields/index.js.map +1 -1
  549. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  550. package/dist/forms/RowLabel/Context/index.js +58 -18
  551. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  552. package/dist/forms/Submit/index.js +12 -13
  553. package/dist/forms/Submit/index.js.map +1 -1
  554. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  555. package/dist/forms/useField/index.js +1 -1
  556. package/dist/forms/useField/index.js.map +1 -1
  557. package/dist/forms/useField/types.d.ts +0 -4
  558. package/dist/forms/useField/types.d.ts.map +1 -1
  559. package/dist/forms/useField/types.js.map +1 -1
  560. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  561. package/dist/graphics/Account/Gravatar/index.js +32 -17
  562. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  563. package/dist/graphics/Account/index.js +27 -18
  564. package/dist/graphics/Account/index.js.map +1 -1
  565. package/dist/hooks/useControllableState.js.map +1 -1
  566. package/dist/hooks/useDebounce.js.map +1 -1
  567. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  568. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  569. package/dist/hooks/useDelay.js.map +1 -1
  570. package/dist/hooks/useDelayedRender.js.map +1 -1
  571. package/dist/hooks/useElementHeightVariable.js.map +1 -1
  572. package/dist/hooks/useHotkey.js.map +1 -1
  573. package/dist/hooks/useIntersect.js.map +1 -1
  574. package/dist/hooks/usePayloadAPI.js.map +1 -1
  575. package/dist/hooks/usePointerSafeArea.d.ts +29 -0
  576. package/dist/hooks/usePointerSafeArea.d.ts.map +1 -0
  577. package/dist/hooks/usePointerSafeArea.js +232 -0
  578. package/dist/hooks/usePointerSafeArea.js.map +1 -0
  579. package/dist/hooks/usePopupWindow.js.map +1 -1
  580. package/dist/hooks/useRelatedCollections.js.map +1 -1
  581. package/dist/hooks/useResize.js.map +1 -1
  582. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  583. package/dist/hooks/useThrottledEffect.js +21 -24
  584. package/dist/hooks/useThrottledEffect.js.map +1 -1
  585. package/dist/hooks/useUseAsTitle.js.map +1 -1
  586. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  587. package/dist/icons/Sidebar/index.js +2 -0
  588. package/dist/icons/Sidebar/index.js.map +1 -1
  589. package/dist/icons/Table/index.css +5 -1
  590. package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
  591. package/dist/layouts/Root/RootProviders.js +31 -28
  592. package/dist/layouts/Root/RootProviders.js.map +1 -1
  593. package/dist/layouts/Root/index.d.ts +1 -1
  594. package/dist/layouts/Root/index.d.ts.map +1 -1
  595. package/dist/layouts/Root/index.js +4 -15
  596. package/dist/layouts/Root/index.js.map +1 -1
  597. package/dist/providers/Actions/index.js.map +1 -1
  598. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
  599. package/dist/providers/Auth/index.js +2 -2
  600. package/dist/providers/Auth/index.js.map +1 -1
  601. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
  602. package/dist/providers/Branch/index.d.ts +1 -1
  603. package/dist/providers/Branch/index.js +4 -4
  604. package/dist/providers/Branch/index.js.map +1 -1
  605. package/dist/providers/Branch/index.server.d.ts.map +1 -1
  606. package/dist/providers/Branch/index.server.js +3 -1
  607. package/dist/providers/Branch/index.server.js.map +1 -1
  608. package/dist/providers/ClientFunction/index.js.map +1 -1
  609. package/dist/providers/Config/index.js +65 -32
  610. package/dist/providers/Config/index.js.map +1 -1
  611. package/dist/providers/DocumentEvents/index.js.map +1 -1
  612. package/dist/providers/EditDepth/index.js.map +1 -1
  613. package/dist/providers/Embed/index.js.map +1 -1
  614. package/dist/providers/EntityVisibility/index.js.map +1 -1
  615. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  616. package/dist/providers/ListQuery/index.js +5 -5
  617. package/dist/providers/ListQuery/index.js.map +1 -1
  618. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  619. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  620. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  621. package/dist/providers/ListQuery/types.d.ts +6 -5
  622. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  623. package/dist/providers/ListQuery/types.js.map +1 -1
  624. package/dist/providers/ModalAccessibility/index.js.map +1 -1
  625. package/dist/providers/ModalFocus/index.d.ts +15 -0
  626. package/dist/providers/ModalFocus/index.d.ts.map +1 -0
  627. package/dist/providers/ModalFocus/index.js +70 -0
  628. package/dist/providers/ModalFocus/index.js.map +1 -0
  629. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  630. package/dist/providers/RouteCache/index.js +37 -25
  631. package/dist/providers/RouteCache/index.js.map +1 -1
  632. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  633. package/dist/providers/RouteTransition/index.d.ts +3 -2
  634. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  635. package/dist/providers/RouteTransition/index.js +78 -105
  636. package/dist/providers/RouteTransition/index.js.map +1 -1
  637. package/dist/providers/RouterAdapter/index.js.map +1 -1
  638. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  639. package/dist/providers/ServerFunctions/index.js +34 -23
  640. package/dist/providers/ServerFunctions/index.js.map +1 -1
  641. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  642. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  643. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  644. package/dist/providers/TableColumns/index.d.ts.map +1 -1
  645. package/dist/providers/TableColumns/index.js +18 -35
  646. package/dist/providers/TableColumns/index.js.map +1 -1
  647. package/dist/providers/Theme/index.js.map +1 -1
  648. package/dist/providers/ToastContainer/index.js.map +1 -1
  649. package/dist/providers/Translation/index.js.map +1 -1
  650. package/dist/providers/UploadControls/index.js.map +1 -1
  651. package/dist/providers/UploadEdits/index.js.map +1 -1
  652. package/dist/providers/UploadHandlers/index.js.map +1 -1
  653. package/dist/styles.css +87 -3
  654. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  655. package/dist/templates/Default/index.css +0 -1
  656. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  657. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  658. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  659. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  660. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  661. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  662. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  663. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  664. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  665. package/dist/utilities/groupNavItems.js.map +1 -1
  666. package/dist/utilities/handleLivePreview.js.map +1 -1
  667. package/dist/utilities/handleServerFunctions.d.ts +2 -10
  668. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  669. package/dist/utilities/handleServerFunctions.js +3 -7
  670. package/dist/utilities/handleServerFunctions.js.map +1 -1
  671. package/dist/utilities/hasSavePermission.js.map +1 -1
  672. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  673. package/dist/utilities/serverFunctionRegistry.d.ts +2 -7
  674. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  675. package/dist/utilities/serverFunctionRegistry.js +4 -9
  676. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  677. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  678. package/dist/views/API/index.client.d.ts.map +1 -1
  679. package/dist/views/API/index.client.js +1 -0
  680. package/dist/views/API/index.client.js.map +1 -1
  681. package/dist/views/Account/ResetPreferences/index.js +17 -17
  682. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  683. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  684. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
  685. package/dist/views/Account/ToggleTheme/index.js +106 -27
  686. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  687. package/dist/views/Account/index.client.js.map +1 -1
  688. package/dist/views/Branch/BranchChanges/index.d.ts.map +1 -1
  689. package/dist/views/Branch/BranchChanges/index.js +185 -86
  690. package/dist/views/Branch/BranchChanges/index.js.map +1 -1
  691. package/dist/views/Branch/DiscardChangesButton/index.js +1 -1
  692. package/dist/views/Branch/DiscardChangesButton/index.js.map +1 -1
  693. package/dist/views/Branch/Manage/index.js.map +1 -1
  694. package/dist/views/Branch/MergeChangesButton/index.js.map +1 -1
  695. package/dist/views/Branch/ScheduledMerges/index.js +1 -1
  696. package/dist/views/Branch/ScheduledMerges/index.js.map +1 -1
  697. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  698. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  699. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  700. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  701. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  702. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
  703. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  704. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  705. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  706. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  707. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +18 -5
  708. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  709. package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -1
  710. package/dist/views/Document/generateEditViewMetadata.js.map +1 -1
  711. package/dist/views/Document/index.js +1 -1
  712. package/dist/views/Document/index.js.map +1 -1
  713. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  714. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
  715. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  716. package/dist/views/Edit/Auth/index.js +13 -11
  717. package/dist/views/Edit/Auth/index.js.map +1 -1
  718. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  719. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  720. package/dist/views/Edit/index.css +26 -0
  721. package/dist/views/Edit/index.d.ts.map +1 -1
  722. package/dist/views/Edit/index.js +28 -17
  723. package/dist/views/Edit/index.js.map +1 -1
  724. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  725. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
  726. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  727. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  728. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  729. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  730. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
  731. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
  732. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
  733. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  734. package/dist/views/HierarchyList/index.js +2 -2
  735. package/dist/views/HierarchyList/index.js.map +1 -1
  736. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  737. package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
  738. package/dist/views/List/ListSelection/index.js.map +1 -1
  739. package/dist/views/Login/LoginField/index.js.map +1 -1
  740. package/dist/views/Login/LoginForm/index.js.map +1 -1
  741. package/dist/views/Logout/LogoutClient.js.map +1 -1
  742. package/dist/views/Logout/index.js.map +1 -1
  743. package/dist/views/NotFound/index.client.js.map +1 -1
  744. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  745. package/dist/views/Verify/index.client.js.map +1 -1
  746. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  747. package/dist/views/Version/Default/index.css +12 -12
  748. package/dist/views/Version/Default/index.js +333 -191
  749. package/dist/views/Version/Default/index.js.map +1 -1
  750. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  751. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  752. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +0 -4
  753. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  754. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
  755. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  756. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  757. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
  758. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  759. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  760. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  761. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  762. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
  763. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  764. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  765. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  766. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  767. package/dist/views/Version/Restore/index.js +183 -82
  768. package/dist/views/Version/Restore/index.js.map +1 -1
  769. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  770. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  771. package/dist/views/Version/SelectComparison/index.js +113 -33
  772. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  773. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  774. package/dist/views/Version/index.js.map +1 -1
  775. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  776. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  777. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  778. package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
  779. package/dist/views/Versions/index.client.js +9 -11
  780. package/dist/views/Versions/index.client.js.map +1 -1
  781. package/dist/views/Versions/index.js +2 -2
  782. package/dist/views/Versions/index.js.map +1 -1
  783. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
  784. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
  785. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
  786. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
  787. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
  788. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
  789. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
  790. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
  791. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
  792. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
  793. package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
  794. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
  795. package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
  796. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
  797. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
  798. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
  799. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
  800. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
  801. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
  802. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
  803. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
  804. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
  805. package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
  806. package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
  807. package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
  808. package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
  809. package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
  810. package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
  811. package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
  812. package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
  813. package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
  814. package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
  815. package/dist/widgets/Activity/components/Pagination/index.css +42 -0
  816. package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
  817. package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
  818. package/dist/widgets/Activity/components/Pagination/index.js +125 -0
  819. package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
  820. package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
  821. package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
  822. package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
  823. package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
  824. package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
  825. package/dist/widgets/Activity/index.client.d.ts +15 -0
  826. package/dist/widgets/Activity/index.client.d.ts.map +1 -0
  827. package/dist/widgets/Activity/index.client.js +186 -0
  828. package/dist/widgets/Activity/index.client.js.map +1 -0
  829. package/dist/widgets/Activity/index.css +320 -0
  830. package/dist/widgets/Activity/index.d.ts +13 -0
  831. package/dist/widgets/Activity/index.d.ts.map +1 -0
  832. package/dist/widgets/Activity/index.js +100 -0
  833. package/dist/widgets/Activity/index.js.map +1 -0
  834. package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +6 -13
  835. package/dist/widgets/Activity/types.d.ts.map +1 -0
  836. package/dist/widgets/Activity/types.js +2 -0
  837. package/dist/widgets/Activity/types.js.map +1 -0
  838. package/dist/widgets/Activity/utils/cache.d.ts +33 -0
  839. package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
  840. package/dist/widgets/Activity/utils/cache.js +72 -0
  841. package/dist/widgets/Activity/utils/cache.js.map +1 -0
  842. package/dist/widgets/Activity/utils/constants.d.ts +5 -0
  843. package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
  844. package/dist/widgets/Activity/utils/constants.js +4 -0
  845. package/dist/widgets/Activity/utils/constants.js.map +1 -0
  846. package/dist/widgets/Activity/utils/documents.d.ts +11 -0
  847. package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
  848. package/dist/widgets/Activity/utils/documents.js +38 -0
  849. package/dist/widgets/Activity/utils/documents.js.map +1 -0
  850. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
  851. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
  852. package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +24 -21
  853. package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
  854. package/dist/widgets/Activity/utils/state.d.ts +44 -0
  855. package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
  856. package/dist/widgets/Activity/utils/state.js +80 -0
  857. package/dist/widgets/Activity/utils/state.js.map +1 -0
  858. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
  859. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
  860. package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
  861. package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
  862. package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
  863. package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
  864. package/dist/widgets/Activity/utils/usePageSize.js +35 -0
  865. package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
  866. package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
  867. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
  868. package/dist/widgets/CollectionCards/index.client.js +3 -0
  869. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  870. package/dist/widgets/CollectionCards/index.d.ts +3 -0
  871. package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
  872. package/dist/widgets/CollectionCards/index.js +3 -0
  873. package/dist/widgets/CollectionCards/index.js.map +1 -1
  874. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  875. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  876. package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
  877. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  878. package/dist/widgets/CollectionQuery/index.d.ts +3 -0
  879. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
  880. package/dist/widgets/CollectionQuery/index.js +3 -0
  881. package/dist/widgets/CollectionQuery/index.js.map +1 -1
  882. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
  883. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
  884. package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
  885. package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
  886. package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
  887. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
  888. package/dist/widgets/UploadDropzone/index.client.js +3 -0
  889. package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
  890. package/dist/widgets/UploadDropzone/index.d.ts +3 -0
  891. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
  892. package/dist/widgets/UploadDropzone/index.js +3 -0
  893. package/dist/widgets/UploadDropzone/index.js.map +1 -1
  894. package/dist/widgets/Welcome/index.d.ts +3 -0
  895. package/dist/widgets/Welcome/index.d.ts.map +1 -1
  896. package/dist/widgets/Welcome/index.js +3 -0
  897. package/dist/widgets/Welcome/index.js.map +1 -1
  898. package/dist/widgets/WidgetCard/index.css +0 -20
  899. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
  900. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
  901. package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
  902. package/dist/widgets/shared/CollectionFilter/index.js +170 -0
  903. package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
  904. package/package.json +21 -23
  905. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  906. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  907. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  908. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
  909. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
  910. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
  911. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -73
  912. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
  913. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
  914. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -122
  915. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
  916. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
  917. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
  918. package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
  919. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
  920. package/dist/widgets/RecentlyViewed/index.client.js +0 -401
  921. package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
  922. package/dist/widgets/RecentlyViewed/index.css +0 -318
  923. package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
  924. package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
  925. package/dist/widgets/RecentlyViewed/index.js +0 -45
  926. package/dist/widgets/RecentlyViewed/index.js.map +0 -1
  927. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
  928. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
  929. package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
  930. package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
  931. package/dist/widgets/RecentlyViewed/recents.js +0 -19
  932. package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
  933. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
  934. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","toWords","React","useEffect","useMemo","useState","DefaultBlockImage","useConfig","useTranslation","Drawer","ThumbnailCard","ItemSearch","baseClass","getItemLabel","item","i18n","labels","singular","toLowerCase","label","slug","getItemSlug","getItemImageInfo","admin","images","thumbnail","imageAltText","undefined","alt","imageURL","url","getItemDisplayLabel","ItemsDrawer","props","addRowIndex","drawerSlug","items","onItemClick","searchPlaceholder","title","searchTerm","setSearchTerm","resultsAnnouncement","setResultsAnnouncement","filteredItems","setFilteredItems","closeModal","isModalOpen","t","config","isOpen","timeout","setTimeout","count","length","search","clearTimeout","itemGroups","groups","_none","forEach","group","Object","hasOwn","push","searchTermToUse","matchingItems","reduce","matchedItems","_item","blocksMap","itemLabel","includes","finalTitle","_jsxs","_jsx","className","role","placeholder","entries","map","groupLabel","groupItems","filter","Boolean","join","index","displayLabel","alignLabel","onClick","src"],"sources":["../../../src/elements/ItemsDrawer/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock, ClientWidget, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { toWords } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { DefaultBlockImage } from '../../graphics/DefaultBlockImage/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { ThumbnailCard } from '../ThumbnailCard/index.js'\nimport './index.css'\nimport { ItemSearch } from './ItemSearch/index.js'\n\nexport type DrawerItem = ClientBlock | ClientWidget\n\nexport type ItemsDrawerProps = {\n readonly addRowIndex?: number\n readonly drawerSlug: string\n readonly items: (DrawerItem | string)[]\n readonly labels?: Labels\n readonly onItemClick: (item: DrawerItem, index?: number) => Promise<void> | void\n readonly searchPlaceholder?: string\n readonly title?: string\n}\n\nconst baseClass = 'items-drawer'\n\nconst getItemLabel = (item: DrawerItem, i18n: I18nClient): string => {\n // Handle ClientBlock\n if ('labels' in item && item.labels?.singular) {\n if (typeof item.labels.singular === 'string') {\n return item.labels.singular.toLowerCase()\n }\n if (typeof item.labels.singular === 'object') {\n return getTranslation(item.labels.singular, i18n).toLowerCase()\n }\n }\n\n // Handle ClientWidget with label (already resolved from function on server)\n if ('label' in item && item.label) {\n if (typeof item.label === 'string') {\n return item.label.toLowerCase()\n }\n if (typeof item.label === 'object') {\n return getTranslation(item.label, i18n).toLowerCase()\n }\n }\n\n // Fallback to slug\n if ('slug' in item) {\n return toWords(item.slug).toLowerCase()\n }\n\n return ''\n}\n\nconst getItemSlug = (item: DrawerItem): string => {\n return item.slug\n}\n\nconst getItemImageInfo = (item: DrawerItem) => {\n if ('admin' in item && item?.admin?.images?.thumbnail) {\n const thumbnail = item.admin?.images.thumbnail\n return {\n imageAltText: typeof thumbnail === 'string' ? undefined : thumbnail.alt,\n imageURL: typeof thumbnail === 'string' ? thumbnail : thumbnail.url,\n }\n }\n if ('imageURL' in item) {\n return {\n imageAltText: item.imageAltText,\n imageURL: item.imageURL,\n }\n }\n return { imageAltText: undefined, imageURL: undefined }\n}\n\nconst getItemDisplayLabel = (item: DrawerItem, i18n: I18nClient): string => {\n // Handle ClientBlock\n if ('labels' in item && item.labels?.singular) {\n return getTranslation(item.labels.singular, i18n)\n }\n\n // Handle ClientWidget with label (already resolved from function on server)\n if ('label' in item && item.label) {\n if (typeof item.label === 'string') {\n return item.label\n }\n if (typeof item.label === 'object') {\n return getTranslation(item.label, i18n)\n }\n }\n\n // Fallback to slug - convert to human-readable label\n return toWords(item.slug)\n}\n\nexport const ItemsDrawer: React.FC<ItemsDrawerProps> = (props) => {\n const { addRowIndex, drawerSlug, items, labels, onItemClick, searchPlaceholder, title } = props\n\n const [searchTerm, setSearchTerm] = useState('')\n const [resultsAnnouncement, setResultsAnnouncement] = useState('')\n const [filteredItems, setFilteredItems] = useState(items)\n const { closeModal, isModalOpen } = useModal()\n const { i18n, t } = useTranslation()\n const { config } = useConfig()\n const isOpen = isModalOpen(drawerSlug)\n\n useEffect(() => {\n if (!isOpen) {\n setResultsAnnouncement('')\n return\n }\n\n const timeout = setTimeout(() => {\n setResultsAnnouncement(\n searchTerm\n ? t('general:searchResults', { count: filteredItems.length, search: searchTerm })\n : t('hierarchy:searchResults', { count: filteredItems.length }),\n )\n }, 300)\n\n return () => clearTimeout(timeout)\n }, [filteredItems.length, isOpen, searchTerm, t])\n\n const itemGroups = useMemo(() => {\n const groups: Record<string, (DrawerItem | string)[]> = {\n _none: [],\n }\n filteredItems.forEach((item) => {\n if (typeof item === 'object' && 'admin' in item && item.admin?.group) {\n const group = item.admin.group\n const label = typeof group === 'string' ? group : getTranslation(group, i18n)\n\n if (Object.hasOwn(groups, label)) {\n groups[label].push(item)\n } else {\n groups[label] = [item]\n }\n } else {\n groups._none.push(item)\n }\n })\n return groups\n }, [filteredItems, i18n])\n\n useEffect(() => {\n if (!isModalOpen(drawerSlug)) {\n setSearchTerm('')\n }\n }, [isModalOpen, drawerSlug])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingItems = items?.reduce((matchedItems, _item) => {\n let item: DrawerItem\n\n if (typeof _item === 'string') {\n // Handle string references (for blocks)\n item = config.blocksMap?.[_item] as DrawerItem\n } else {\n item = _item\n }\n\n if (item) {\n const itemLabel = getItemLabel(item, i18n)\n if (itemLabel.includes(searchTermToUse)) {\n matchedItems.push(item)\n }\n }\n return matchedItems\n }, [] as DrawerItem[])\n\n setFilteredItems(matchingItems || [])\n }, [searchTerm, items, i18n, config.blocksMap])\n\n const finalTitle =\n title ||\n (labels\n ? t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })\n : t('fields:addNew'))\n\n return (\n <Drawer slug={drawerSlug} title={finalTitle}>\n <span aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n {resultsAnnouncement}\n </span>\n <ItemSearch\n placeholder={searchPlaceholder || t('fields:searchForBlock')}\n setSearchTerm={setSearchTerm}\n />\n <div className={`${baseClass}__items-wrapper`}>\n <ul className={`${baseClass}__item-groups`}>\n {Object.entries(itemGroups).map(([groupLabel, groupItems]) =>\n !groupItems.length ? null : (\n <li\n className={[\n `${baseClass}__item-group`,\n groupLabel === '_none' && `${baseClass}__item-group-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={groupLabel}\n >\n {groupLabel !== '_none' && (\n <h3 className={`${baseClass}__item-group-label`}>{groupLabel}</h3>\n )}\n <ul className={`${baseClass}__items`}>\n {groupItems.map((_item, index) => {\n const item =\n typeof _item === 'string' ? (config.blocksMap?.[_item] as DrawerItem) : _item\n\n if (!item) {\n return null\n }\n\n const { imageAltText, imageURL } = getItemImageInfo(item)\n const displayLabel = getItemDisplayLabel(item, i18n)\n\n return (\n <li className={`${baseClass}__item`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={displayLabel}\n onClick={() => {\n void onItemClick(item, addRowIndex)\n closeModal(drawerSlug)\n }}\n thumbnail={\n <div className={`${baseClass}__default-image`}>\n {imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <DefaultBlockImage />\n )}\n </div>\n }\n />\n </li>\n )\n })}\n </ul>\n </li>\n ),\n )}\n </ul>\n </div>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","toWords","React","useEffect","useMemo","useState","DefaultBlockImage","useConfig","useTranslation","Drawer","ThumbnailCard","ItemSearch","baseClass","getItemLabel","item","i18n","labels","singular","toLowerCase","label","slug","getItemSlug","getItemImageInfo","admin","images","thumbnail","imageAltText","undefined","alt","imageURL","url","getItemDisplayLabel","ItemsDrawer","props","$","addRowIndex","drawerSlug","items","onItemClick","searchPlaceholder","title","searchTerm","setSearchTerm","resultsAnnouncement","setResultsAnnouncement","filteredItems","setFilteredItems","closeModal","isModalOpen","t","config","t0","isOpen","t1","t2","length","timeout","setTimeout","count","search","clearTimeout","groups","_none","forEach","group","Object","hasOwn","push","itemGroups","t3","t4","t5","t6","blocksMap","searchTermToUse","matchingItems","reduce","matchedItems","_item","itemLabel","includes","t7","finalTitle","_jsxs","children","_jsx","className","role","placeholder","entries","map","t8","groupLabel","groupItems","filter","Boolean","join","_item_0","index","item_1","displayLabel","alignLabel","onClick","src"],"sources":["../../../src/elements/ItemsDrawer/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock, ClientWidget, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { toWords } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { DefaultBlockImage } from '../../graphics/DefaultBlockImage/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { ThumbnailCard } from '../ThumbnailCard/index.js'\nimport './index.css'\nimport { ItemSearch } from './ItemSearch/index.js'\n\nexport type DrawerItem = ClientBlock | ClientWidget\n\nexport type ItemsDrawerProps = {\n readonly addRowIndex?: number\n readonly drawerSlug: string\n readonly items: (DrawerItem | string)[]\n readonly labels?: Labels\n readonly onItemClick: (item: DrawerItem, index?: number) => Promise<void> | void\n readonly searchPlaceholder?: string\n readonly title?: string\n}\n\nconst baseClass = 'items-drawer'\n\nconst getItemLabel = (item: DrawerItem, i18n: I18nClient): string => {\n // Handle ClientBlock\n if ('labels' in item && item.labels?.singular) {\n if (typeof item.labels.singular === 'string') {\n return item.labels.singular.toLowerCase()\n }\n if (typeof item.labels.singular === 'object') {\n return getTranslation(item.labels.singular, i18n).toLowerCase()\n }\n }\n\n // Handle ClientWidget with label (already resolved from function on server)\n if ('label' in item && item.label) {\n if (typeof item.label === 'string') {\n return item.label.toLowerCase()\n }\n if (typeof item.label === 'object') {\n return getTranslation(item.label, i18n).toLowerCase()\n }\n }\n\n // Fallback to slug\n if ('slug' in item) {\n return toWords(item.slug).toLowerCase()\n }\n\n return ''\n}\n\nconst getItemSlug = (item: DrawerItem): string => {\n return item.slug\n}\n\nconst getItemImageInfo = (item: DrawerItem) => {\n if ('admin' in item && item?.admin?.images?.thumbnail) {\n const thumbnail = item.admin?.images.thumbnail\n return {\n imageAltText: typeof thumbnail === 'string' ? undefined : thumbnail.alt,\n imageURL: typeof thumbnail === 'string' ? thumbnail : thumbnail.url,\n }\n }\n if ('imageURL' in item) {\n return {\n imageAltText: item.imageAltText,\n imageURL: item.imageURL,\n }\n }\n return { imageAltText: undefined, imageURL: undefined }\n}\n\nconst getItemDisplayLabel = (item: DrawerItem, i18n: I18nClient): string => {\n // Handle ClientBlock\n if ('labels' in item && item.labels?.singular) {\n return getTranslation(item.labels.singular, i18n)\n }\n\n // Handle ClientWidget with label (already resolved from function on server)\n if ('label' in item && item.label) {\n if (typeof item.label === 'string') {\n return item.label\n }\n if (typeof item.label === 'object') {\n return getTranslation(item.label, i18n)\n }\n }\n\n // Fallback to slug - convert to human-readable label\n return toWords(item.slug)\n}\n\nexport const ItemsDrawer: React.FC<ItemsDrawerProps> = (props) => {\n const { addRowIndex, drawerSlug, items, labels, onItemClick, searchPlaceholder, title } = props\n\n const [searchTerm, setSearchTerm] = useState('')\n const [resultsAnnouncement, setResultsAnnouncement] = useState('')\n const [filteredItems, setFilteredItems] = useState(items)\n const { closeModal, isModalOpen } = useModal()\n const { i18n, t } = useTranslation()\n const { config } = useConfig()\n const isOpen = isModalOpen(drawerSlug)\n\n useEffect(() => {\n if (!isOpen) {\n setResultsAnnouncement('')\n return\n }\n\n const timeout = setTimeout(() => {\n setResultsAnnouncement(\n searchTerm\n ? t('general:searchResults', { count: filteredItems.length, search: searchTerm })\n : t('hierarchy:searchResults', { count: filteredItems.length }),\n )\n }, 300)\n\n return () => clearTimeout(timeout)\n }, [filteredItems.length, isOpen, searchTerm, t])\n\n const itemGroups = useMemo(() => {\n const groups: Record<string, (DrawerItem | string)[]> = {\n _none: [],\n }\n filteredItems.forEach((item) => {\n if (typeof item === 'object' && 'admin' in item && item.admin?.group) {\n const group = item.admin.group\n const label = typeof group === 'string' ? group : getTranslation(group, i18n)\n\n if (Object.hasOwn(groups, label)) {\n groups[label].push(item)\n } else {\n groups[label] = [item]\n }\n } else {\n groups._none.push(item)\n }\n })\n return groups\n }, [filteredItems, i18n])\n\n useEffect(() => {\n if (!isModalOpen(drawerSlug)) {\n setSearchTerm('')\n }\n }, [isModalOpen, drawerSlug])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingItems = items?.reduce((matchedItems, _item) => {\n let item: DrawerItem\n\n if (typeof _item === 'string') {\n // Handle string references (for blocks)\n item = config.blocksMap?.[_item]\n } else {\n item = _item\n }\n\n if (item) {\n const itemLabel = getItemLabel(item, i18n)\n if (itemLabel.includes(searchTermToUse)) {\n matchedItems.push(item)\n }\n }\n return matchedItems\n }, [] as DrawerItem[])\n\n setFilteredItems(matchingItems || [])\n }, [searchTerm, items, i18n, config.blocksMap])\n\n const finalTitle =\n title ||\n (labels\n ? t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })\n : t('fields:addNew'))\n\n return (\n <Drawer slug={drawerSlug} title={finalTitle}>\n <span aria-atomic=\"true\" className=\"sr-only\" role=\"status\">\n {resultsAnnouncement}\n </span>\n <ItemSearch\n placeholder={searchPlaceholder || t('fields:searchForBlock')}\n setSearchTerm={setSearchTerm}\n />\n <div className={`${baseClass}__items-wrapper`}>\n <ul className={`${baseClass}__item-groups`}>\n {Object.entries(itemGroups).map(([groupLabel, groupItems]) =>\n !groupItems.length ? null : (\n <li\n className={[\n `${baseClass}__item-group`,\n groupLabel === '_none' && `${baseClass}__item-group-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={groupLabel}\n >\n {groupLabel !== '_none' && (\n <h3 className={`${baseClass}__item-group-label`}>{groupLabel}</h3>\n )}\n <ul className={`${baseClass}__items`}>\n {groupItems.map((_item, index) => {\n const item =\n typeof _item === 'string' ? (config.blocksMap?.[_item] as DrawerItem) : _item\n\n if (!item) {\n return null\n }\n\n const { imageAltText, imageURL } = getItemImageInfo(item)\n const displayLabel = getItemDisplayLabel(item, i18n)\n\n return (\n <li className={`${baseClass}__item`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={displayLabel}\n onClick={() => {\n void onItemClick(item, addRowIndex)\n closeModal(drawerSlug)\n }}\n thumbnail={\n <div className={`${baseClass}__default-image`}>\n {imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <DefaultBlockImage />\n )}\n </div>\n }\n />\n </li>\n )\n })}\n </ul>\n </li>\n ),\n )}\n </ul>\n </div>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useDocumentInfo","useTranslation","LLMInstructionsDescription","t0","$","isSystem","t1","undefined","data","t","isGlobal","entityType","t2","title","_jsx","className","children","label"],"sources":["../../../src/elements/LLMInstructionsDescription/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.css'\n\nexport const LLMInstructionsDescription = ({ isSystem = false }: { isSystem?: boolean }) => {\n const { data } = useDocumentInfo()\n const { t } = useTranslation()\n const isGlobal = data?.entityType === 'global'\n\n return (\n <p className=\"llm-instructions__description\">\n {isSystem\n ? t(\n isGlobal\n ? 'llmInstructions:globalSystemDescription'\n : 'llmInstructions:collectionSystemDescription',\n )\n : t(\n isGlobal\n ? 'llmInstructions:globalDescription'\n : 'llmInstructions:collectionDescription',\n {\n label: data?.title || '',\n },\n )}\n </p>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,OAAO,MAAMC,0BAAA,GAA6BC,EAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAAC;IAAAO,QAAA,EAAAC;EAAA,IAAAH,EAA4C;EAA1C,MAAAE,QAAA,GAAAA,EAAgB,KAAAE,SAAA,WAAhBF,EAAgB;EAC3D;IAAAG;EAAA,IAAiBR,eAAA;EACjB;IAAAS;EAAA,IAAcR,cAAA;EACd,MAAAS,QAAA,GAAiBF,IAAA,EAAAG,UAAA,KAAqB;EAAA,IAAAC,EAAA;EAAA,IAAAR,CAAA,QAAAI,IAAA,EAAAK,KAAA,IAAAT,CAAA,QAAAM,QAAA,IAAAN,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAK,CAAA;IAGpCG,EAAA,GAAAE,IAAA,CAAC;MAAAC,SAAA,EAAY;MAAAC,QAAA,EACVX,QAAA,GACGI,CAAA,CACEC,QAAA,GACI,4CACA,iDAEND,CAAA,CACEC,QAAA,GACI,sCACA;QAAAO,KAAA,EAEKT,IAAA,EAAAK,KAAA,IAAe;MAAA,CACxB;IAAA,C;;;;;;;;;SAbRD,E;CAiBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useDocumentInfo","useTranslation","LLMInstructionsDescription","t0","$","isSystem","t1","data","t","isGlobal","entityType","t2","title","_jsx","className","children","label"],"sources":["../../../src/elements/LLMInstructionsDescription/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.css'\n\nexport const LLMInstructionsDescription = ({ isSystem = false }: { isSystem?: boolean }) => {\n const { data } = useDocumentInfo()\n const { t } = useTranslation()\n const isGlobal = data?.entityType === 'global'\n\n return (\n <p className=\"llm-instructions__description\">\n {isSystem\n ? t(\n isGlobal\n ? 'llmInstructions:globalSystemDescription'\n : 'llmInstructions:collectionSystemDescription',\n )\n : t(\n isGlobal\n ? 'llmInstructions:globalDescription'\n : 'llmInstructions:collectionDescription',\n {\n label: data?.title || '',\n },\n )}\n </p>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,OAAO,MAAMC,0BAAA,GAA6BC,EAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAAC;IAAAO,QAAA,EAAAC;EAAA,IAAAH,EAA4C;EAA1C,MAAAE,QAAA,GAAAA,EAAgB,KAAhBA,SAAgB,GAAhB,KAAgB,GAAhBA,EAAgB;EAC3D;IAAAE;EAAA,IAAiBP,eAAA;EACjB;IAAAQ;EAAA,IAAcP,cAAA;EACd,MAAAQ,QAAA,GAAiBF,IAAA,EAAAG,UAAM,KAAe;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAG,IAAA,EAAAK,KAAA,IAAAR,CAAA,QAAAK,QAAA,IAAAL,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAI,CAAA;IAGpCG,EAAA,GAAAE,IAAA,CAAC;MAAAC,SAAA,EAAY;MAAAC,QAAA,EACVV,QAAA,GACGG,CAAA,CACEC,QAAA,4CAEI,GAFJ,6CAUA,IANFD,CAAA,CACEC,QAAA,sCAEI,GAFJ,uCAEI,EACJ;QAAAO,KAAA,EACST,IAAA,EAAAK,KAAe,IAAf;MACT;;;;;;;;;;SAbRD,E;CAiBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","instructionsCollectionSlug","React","useConfig","useDocumentInfo","useTranslation","PopupList","LLMInstructionsMenuItem","t0","$","collectionSlug","config","globalSlug","t","id","t1","routes","admin","_jsxs","Fragment","children","_jsx","Divider","Button","href","adminRoute","path","encodeURIComponent"],"sources":["../../../src/elements/LLMInstructionsMenuItem/index.tsx"],"sourcesContent":["'use client'\n\nimport { formatAdminURL, instructionsCollectionSlug } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\n\nexport const LLMInstructionsMenuItem = ({ collectionSlug }: { collectionSlug?: string }) => {\n const { config } = useConfig()\n const { globalSlug } = useDocumentInfo()\n const { t } = useTranslation()\n const id = collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`\n\n return (\n <React.Fragment>\n <PopupList.Divider />\n <PopupList.Button\n href={formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${instructionsCollectionSlug}/${encodeURIComponent(id)}`,\n })}\n >\n {t('llmInstructions:editInstructions')}\n </PopupList.Button>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,cAAc,EAAEC,0BAA0B,QAAQ;AAC3D,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,YAAYC,SAAA,MAAe;AAE3B,OAAO,MAAMC,uBAAA,GAA0BC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW;EAAA,IAAAF,EAA+C;EACrF;IAAAG;EAAA,IAAmBR,SAAA;EACnB;IAAAS;EAAA,IAAuBR,eAAA;EACvB;IAAAS;EAAA,IAAcR,cAAA;EACd,MAAAS,EAAA,GAAWJ,cAAA,GAAiB,cAAcA,cAAA,EAAgB,GAAG,UAAUE,UAAA,EAAY;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAE,MAAA,CAAAK,MAAA,CAAAC,KAAA,IAAAR,CAAA,QAAAK,EAAA,IAAAL,CAAA,QAAAI,CAAA;IAGjFE,EAAA,GAAAG,KAAA,CAAAhB,KAAA,CAAAiB,QAAA;MAAAC,QAAA,GACEC,IAAA,CAAAf,SAAA,CAAAgB,OAAA,IAAkB,GAClBD,IAAA,CAAAf,SAAA,CAAAiB,MAAA;QAAAC,IAAA,EACQxB,cAAA;UAAAyB,UAAA,EACQd,MAAA,CAAAK,MAAA,CAAAC,KAAA;UAAAS,IAAA,EACN,gBAAAzB,0BAAA,IAA8C0B,kBAAA,CAAmBb,EAAA;QAAK,CAC9E;QAAAM,QAAA,EAECP,CAAA,CAAE;MAAA,C;;;;;;;;;SARPE,E;CAYJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","formatAdminURL","instructionsCollectionSlug","React","useConfig","useDocumentInfo","useTranslation","PopupList","LLMInstructionsMenuItem","t0","$","collectionSlug","config","globalSlug","t","id","t1","routes","admin","_jsxs","Fragment","children","_jsx","Divider","Button","href","adminRoute","path","encodeURIComponent"],"sources":["../../../src/elements/LLMInstructionsMenuItem/index.tsx"],"sourcesContent":["'use client'\n\nimport { formatAdminURL, instructionsCollectionSlug } from 'payload/shared'\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport * as PopupList from '../Popup/PopupButtonList/index.js'\n\nexport const LLMInstructionsMenuItem = ({ collectionSlug }: { collectionSlug?: string }) => {\n const { config } = useConfig()\n const { globalSlug } = useDocumentInfo()\n const { t } = useTranslation()\n const id = collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`\n\n return (\n <React.Fragment>\n <PopupList.Divider />\n <PopupList.Button\n href={formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${instructionsCollectionSlug}/${encodeURIComponent(id)}`,\n })}\n >\n {t('llmInstructions:editInstructions')}\n </PopupList.Button>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,cAAc,EAAEC,0BAA0B,QAAQ;AAC3D,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,YAAYC,SAAA,MAAe;AAE3B,OAAO,MAAMC,uBAAA,GAA0BC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAAC;IAAAW;EAAA,IAAAF,EAA+C;EACrF;IAAAG;EAAA,IAAmBR,SAAA;EACnB;IAAAS;EAAA,IAAuBR,eAAA;EACvB;IAAAS;EAAA,IAAcR,cAAA;EACd,MAAAS,EAAA,GAAWJ,cAAA,iBAA+BA,cAAA,EAAyC,GAAxE,UAA4DE,UAAA,EAAY;EAAA,IAAAG,EAAA;EAAA,IAAAN,CAAA,QAAAE,MAAA,CAAAK,MAAA,CAAAC,KAAA,IAAAR,CAAA,QAAAK,EAAA,IAAAL,CAAA,QAAAI,CAAA;IAGjFE,EAAA,GAAAG,KAAA,CAAChB,KAAA,CAAAiB,QAAc;MAAAC,QAAA,E,CACbC,IAAA,CAACf,SAAA,CAAAgB,OAAiB,OAClBD,IAAA,CAACf,SAAA,CAAAiB,MAAgB;QAAAC,IAAA,EACTxB,cAAA,CAAe;UAAAyB,UAAA,EACPd,MAAA,CAAAK,MAAa,CAAAC,KAAM;UAAAS,IAAA,EACzB,gBAAgBzB,0BAAA,IAA8B0B,kBAAA,CAAmBb,EAAA;QACzE;QAAAM,QAAA,EAECP,CAAA,CAAE;;;;;;;;;;SARPE,E;CAYJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","GridViewIcon","TableIcon","useTranslation","SegmentedControl","LayoutToggle","t0","$","layout","onChange","t","t1","t2","value","_jsxs","Root","legend","children","_jsx","Option","icon","size"],"sources":["../../../src/elements/LayoutToggle/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { GridViewIcon } from '../../icons/GridView/index.js'\nimport { TableIcon } from '../../icons/Table/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { SegmentedControl } from '../SegmentedControl/index.js'\n\nexport type DocumentLayout = 'grid' | 'table'\nexport type LayoutToggleProps = {\n layout: DocumentLayout\n onChange: (layout: DocumentLayout) => void\n}\n\nexport const LayoutToggle: React.FC<LayoutToggleProps> = ({ layout, onChange }) => {\n const { t } = useTranslation()\n\n return (\n <SegmentedControl.Root\n legend={t('general:layout')}\n onChange={(value) => onChange(value as DocumentLayout)}\n value={layout}\n >\n <SegmentedControl.Option\n aria-label={t('general:tableLayout')}\n icon={<TableIcon size={24} />}\n value=\"table\"\n />\n <SegmentedControl.Option\n aria-label={t('general:gridLayout')}\n icon={<GridViewIcon size={24} />}\n value=\"grid\"\n />\n </SegmentedControl.Root>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AAQjC,OAAO,MAAMC,YAAA,GAA4CC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,MAAA;IAAAC;EAAA,IAAAH,EAAoB;EAC5E;IAAAI;EAAA,IAAcP,cAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAG,CAAA;IAAA,IAAAE,EAAA;IAAA,IAAAL,CAAA,QAAAE,QAAA;MAKAG,EAAA,GAAAC,KAAA,IAAWJ,QAAA,CAASI,KAAA;MAAAN,CAAA,MAAAE,QAAA;MAAAF,CAAA,MAAAK,EAAA;IAAA;MAAAA,EAAA,GAAAL,CAAA;IAAA;IAFhCI,EAAA,GAAAG,KAAA,CAAAV,gBAAA,CAAAW,IAAA;MAAAC,MAAA,EACUN,CAAA,CAAE;MAAAD,QAAA,EACAG,EAAoB;MAAAC,KAAA,EACvBL,MAAA;MAAAS,QAAA,GAEPC,IAAA,CAAAd,gBAAA,CAAAe,MAAA;QAAA,cACcT,CAAA,CAAE;QAAAU,IAAA,EACRF,IAAA,CAAAhB,SAAA;UAAAmB,IAAA;QAAA,C;eACA;MAAA,C,GAERH,IAAA,CAAAd,gBAAA,CAAAe,MAAA;QAAA,cACcT,CAAA,CAAE;QAAAU,IAAA,EACRF,IAAA,CAAAjB,YAAA;UAAAoB,IAAA;QAAA,C;eACA;MAAA,C;;;;;;;;;SAbVV,E;CAiBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","GridViewIcon","TableIcon","useTranslation","SegmentedControl","LayoutToggle","t0","$","layout","onChange","t","t1","t2","value","_jsxs","Root","legend","children","_jsx","Option","icon","size"],"sources":["../../../src/elements/LayoutToggle/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { GridViewIcon } from '../../icons/GridView/index.js'\nimport { TableIcon } from '../../icons/Table/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { SegmentedControl } from '../SegmentedControl/index.js'\n\nexport type DocumentLayout = 'grid' | 'table'\nexport type LayoutToggleProps = {\n layout: DocumentLayout\n onChange: (layout: DocumentLayout) => void\n}\n\nexport const LayoutToggle: React.FC<LayoutToggleProps> = ({ layout, onChange }) => {\n const { t } = useTranslation()\n\n return (\n <SegmentedControl.Root\n legend={t('general:layout')}\n onChange={(value) => onChange(value as DocumentLayout)}\n value={layout}\n >\n <SegmentedControl.Option\n aria-label={t('general:tableLayout')}\n icon={<TableIcon size={24} />}\n value=\"table\"\n />\n <SegmentedControl.Option\n aria-label={t('general:gridLayout')}\n icon={<GridViewIcon size={24} />}\n value=\"grid\"\n />\n </SegmentedControl.Root>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AAQjC,OAAO,MAAMC,YAAA,GAA4CC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,MAAA;IAAAC;EAAA,IAAAH,EAAoB;EAC5E;IAAAI;EAAA,IAAcP,cAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,QAAA,IAAAF,CAAA,QAAAG,CAAA;IAAA,IAAAE,EAAA;IAAA,IAAAL,CAAA,QAAAE,QAAA;MAKAG,EAAA,GAAAC,KAAA,IAAWJ,QAAA,CAASI,KAAA;MAAAN,CAAA,MAAAE,QAAA;MAAAF,CAAA,MAAAK,EAAA;IAAA;MAAAA,EAAA,GAAAL,CAAA;IAAA;IAFhCI,EAAA,GAAAG,KAAA,CAACV,gBAAA,CAAAW,IAAqB;MAAAC,MAAA,EACZN,CAAA,CAAE;MAAAD,QAAA,EACAG,EAAoB;MAAAC,KAAA,EACvBL,MAAA;MAAAS,QAAA,E,CAEPC,IAAA,CAACd,gBAAA,CAAAe,MAAuB;QAAA,cACVT,CAAA,CAAE;QAAAU,IAAA,EACRF,IAAA,CAAChB,SAAA;UAAAmB,IAAA,EAAgB;;eACjB;UAERH,IAAA,CAACd,gBAAA,CAAAe,MAAuB;QAAA,cACVT,CAAA,CAAE;QAAAU,IAAA,EACRF,IAAA,CAACjB,YAAA;UAAAoB,IAAA,EAAmB;;eACpB;;;;;;;;;;SAbVV,E;CAiBJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","leaveWithoutSavingModalSlug","LeaveWithoutSaving","t0","$","disablePreventLeave","t1","modalSlug","modalSlugProp","onConfirm","onPrevent","undefined","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","prevent","Boolean","t2","activeHref","document","activeElement","href","handlePrevent","t3","handleAccept","t4","onAccept","t5","onCancel","t6","t7","err","console","error","handleConfirm","_jsx","LeaveWithoutSavingModal","t","body","cancelLabel","confirmLabel","heading"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\ntype LeaveWithoutSavingProps = {\n disablePreventLeave?: boolean\n modalSlug?: string\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nconst leaveWithoutSavingModalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({\n disablePreventLeave = false,\n modalSlug: modalSlugProp,\n onConfirm,\n onPrevent,\n}) => {\n const modalSlug = modalSlugProp ?? leaveWithoutSavingModalSlug\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = !disablePreventLeave && Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent, modalSlug])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm} />\n )\n}\n\nexport const LeaveWithoutSavingModal = ({\n modalSlug,\n onCancel,\n onConfirm,\n}: {\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}) => {\n const { t } = useTranslation()\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","leaveWithoutSavingModalSlug","LeaveWithoutSaving","t0","$","disablePreventLeave","t1","modalSlug","modalSlugProp","onConfirm","onPrevent","undefined","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","prevent","Boolean","t2","activeHref","document","activeElement","href","handlePrevent","t3","handleAccept","t4","onAccept","t5","onCancel","t6","t7","err","console","error","handleConfirm","_jsx","LeaveWithoutSavingModal","t","body","cancelLabel","confirmLabel","heading"],"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\ntype LeaveWithoutSavingProps = {\n disablePreventLeave?: boolean\n modalSlug?: string\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nconst leaveWithoutSavingModalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({\n disablePreventLeave = false,\n modalSlug: modalSlugProp,\n onConfirm,\n onPrevent,\n}) => {\n const modalSlug = modalSlugProp ?? leaveWithoutSavingModalSlug\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = !disablePreventLeave && Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent, modalSlug])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm} />\n )\n}\n\nexport const LeaveWithoutSavingModal = ({\n modalSlug,\n onCancel,\n onConfirm,\n}: {\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}) => {\n const { t } = useTranslation()\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAInC,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,eAAe,QAAQ;AAShC,MAAMC,2BAAA,GAA8B;AAEpC,OAAO,MAAMC,kBAAA,GAAwDC,EAAA;EAAA,MAAAC,CAAA,GAAAb,EAAA;EAAC;IAAAc,mBAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC,aAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAP,EAKrE;EAJC,MAAAE,mBAAA,GAAAC,EAA2B,KAA3BK,SAA2B,GAA3B,KAA2B,GAA3BL,EAA2B;EAK3B,MAAAC,SAAA,GAAkBC,aAAiB,IAAjBP,2BAAiB;EACnC;IAAAW,UAAA;IAAAC;EAAA,IAAkCd,QAAA;EAClC,MAAAe,QAAA,GAAiBnB,eAAA;EACjB;IAAAoB;EAAA,IAAoBrB,OAAA;EACpB;IAAAsB;EAAA,IAAiBpB,OAAA;EACjB,OAAAqB,WAAA,EAAAC,cAAA,IAAsC1B,KAAA,CAAA2B,QAAc,CAAC;EAErD,MAAAC,OAAA,GAAgB,CAACf,mBAAyD,IAAlCgB,OAAA,CAAQ,CAACP,QAAmB,IAAnB,CAAaC,OAAY,KAA1BC,IAA0B;EAAA,IAAAM,EAAA;EAAA,IAAAlB,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAAM,SAAA,IAAAN,CAAA,QAAAS,SAAA;IAExCS,EAAA,GAAAA,CAAA;MAChC,MAAAC,UAAA,GAAmBC,QAAC,CAAAC,aAA8C,EAAAC,IAAQ,IAAvD,IAAuD;MAC1E,IAAIhB,SAAA;QACFA,SAAA,CAAUa,UAAA;MAAA;MAEZV,SAAA,CAAUN,SAAA;IAAA,CACZ;IAAAH,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAM,SAAA;IAAAN,CAAA,MAAAS,SAAA;IAAAT,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EANA,MAAAuB,aAAA,GAAsBL,EAMc;EAAA,IAAAM,EAAA;EAAA,IAAAxB,CAAA,QAAAQ,UAAA,IAAAR,CAAA,QAAAG,SAAA;IAEHqB,EAAA,GAAAA,CAAA;MAC/BhB,UAAA,CAAWL,SAAA;IAAA,CACb;IAAAH,CAAA,MAAAQ,UAAA;IAAAR,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAFA,MAAAyB,YAAA,GAAqBD,EAEK;EAAA,IAAAE,EAAA;EAAA,IAAA1B,CAAA,QAAAyB,YAAA,IAAAzB,CAAA,QAAAuB,aAAA,IAAAvB,CAAA,QAAAa,WAAA,IAAAb,CAAA,SAAAgB,OAAA;IAEVU,EAAA;MAAAb,WAAA;MAAAc,QAAA,EAAyBF,YAAA;MAAAnB,SAAA,EAAyBiB,aAAA;MAAAP;IAAuB;IAAAhB,CAAA,MAAAyB,YAAA;IAAAzB,CAAA,MAAAuB,aAAA;IAAAvB,CAAA,MAAAa,WAAA;IAAAb,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAA0B,EAAA;EAAA;IAAAA,EAAA,GAAA1B,CAAA;EAAA;EAAzFJ,eAAA,CAAgB8B,EAAyE;EAAA,IAAAE,EAAA;EAAA,IAAA5B,CAAA,SAAAQ,UAAA,IAAAR,CAAA,SAAAG,SAAA;IAElDyB,EAAA,GAAAA,CAAA;MACrCpB,UAAA,CAAWL,SAAA;IAAA,CACb;IAAAH,CAAA,OAAAQ,UAAA;IAAAR,CAAA,OAAAG,SAAA;IAAAH,CAAA,OAAA4B,EAAA;EAAA;IAAAA,EAAA,GAAA5B,CAAA;EAAA;EAFA,MAAA6B,QAAA,GAA2BD,EAED;EAAA,IAAAE,EAAA;EAAA,IAAA9B,CAAA,SAAAK,SAAA;IAEQyB,EAAA,SAAAA,CAAA;MAChC,IAAIzB,SAAA;QAAA;QACF;UACE,MAAMA,SAAA;QAAA,SAAA0B,EAAA;UACCC,KAAA,CAAAA,GAAA,CAAAA,CAAA,CAAAA,EAAA;UAEPC,OAAA,CAAAC,KAAa,CAAC,0CAA0CF,GAAA;QAAA;MAC1D;MAEFlB,cAAA,CAAe;IAAA,CACjB;IAAAd,CAAA,OAAAK,SAAA;IAAAL,CAAA,OAAA8B,EAAA;EAAA;IAAAA,EAAA,GAAA9B,CAAA;EAAA;EAVA,MAAAmC,aAAA,GAAsBL,EAUR;EAAA,IAAAC,EAAA;EAAA,IAAA/B,CAAA,SAAAmC,aAAA,IAAAnC,CAAA,SAAAG,SAAA,IAAAH,CAAA,SAAA6B,QAAA;IAGZE,EAAA,GAAAK,IAAA,CAACC,uBAAA;MAAAlC,SAAA;MAAA0B,QAAA;MAAAxB,SAAA,EAA6E8B;;;;;;;;;SAA9EJ,E;CAEJ;AAEA,OAAO,MAAMM,uBAAA,GAA0BtC,EAAA;EAAA,MAAAC,CAAA,GAAAb,EAAA;EAAC;IAAAgB,SAAA;IAAA0B,QAAA;IAAAxB;EAAA,IAAAN,EAQvC;EACC;IAAAuC;EAAA,IAAc7C,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAF,CAAA,QAAAG,SAAA,IAAAH,CAAA,QAAA6B,QAAA,IAAA7B,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAsC,CAAA;IAGZpC,EAAA,GAAAkC,IAAA,CAAC1C,iBAAA;MAAA6C,IAAA,EACOD,CAAA,CAAE;MAAAE,WAAA,EACKF,CAAA,CAAE;MAAAG,YAAA,EACDH,CAAA,CAAE;MAAAI,OAAA,EACPJ,CAAA,CAAE;MAAAnC,SAAA;MAAA0B,QAAA;MAAAxB;;;;;;;;;;SAJbH,E;CAUJ","ignoreList":[]}
@@ -142,7 +142,7 @@ export const usePreventLeave = ({
142
142
  if (onAccept) {
143
143
  onAccept();
144
144
  }
145
- startRouteTransition(() => router.push(cancelledURL.current));
145
+ void startRouteTransition(() => router.push(cancelledURL.current));
146
146
  }
147
147
  }, [hasAccepted, onAccept, router, startRouteTransition]);
148
148
  };
@@ -1 +1 @@
1
- {"version":3,"file":"usePreventLeave.js","names":["c","_c","useCallback","useEffect","useRef","useRouter","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useEffect, useRef } from 'react'\n\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure you want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAE/C;AACA;AACA;AACA;AACA,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,GACPC,GAAa,EACb,GAAGC,IAA+E;EAElF,IAAID,GAAA,IAAOA,GAAA,CAAIE,gBAAgB,EAAE;IAC/BF,GAAA,CAAIE,gBAAgB,IAAKD,IAAA;EAC3B;AACF;AAEA,SAASE,IACPH,GAAa,EACb,GAAGC,IAAkF;EAErF,IAAID,GAAA,IAAOA,GAAA,CAAII,mBAAmB,EAAE;IAClCJ,GAAA,CAAII,mBAAmB,IAAKH,IAAA;EAC9B;AACF;AAEA,OAAO,MAAMI,eAAA,GAAkBA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAAC,MAAAgB,OAAA,GAAAA,EAAyC,KAAAC,SAAA,UAAzCD,EAAyC;EAAA,IAAAE,EAAA;EAAA,IAAAH,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAD,OAAA;IAErEI,EAAA,GAAAC,KAAA;MACE,MAAAC,YAAA,GAAqB,OAAOJ,OAAA,KAAY,aAAaA,OAAA,SAAY;MAAA,KAE5DI,YAAA;QAAA;MAAA;MAILD,KAAA,CAAAE,cAAA,CAAoB;MAAA,IAEhBP,OAAA;QACFK,KAAA,CAAAG,WAAA,GAAoBR,OAAA;MAAA;MAAA,OAGfA,OAAA;IAAA;IACTC,CAAA,MAAAC,OAAA;IAAAD,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAfF,MAAAQ,OAAA,GAAgBL,EAgBI;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAQ,OAAA;IAGVC,EAAA,GAAAA,CAAA;MAAA,KACHR,OAAA;QAAA;MAAA;MAILV,EAAA,CAAAoB,MAAA,EAAW,gBAAgBH,OAAA;MAAA,aAEdb,GAAA,CAAAgB,MAAA,EAAY,gBAAgBH,OAAA;IAAA;IACxCE,EAAA,IAACT,OAAA,EAASO,OAAA;IAAQR,CAAA,MAAAC,OAAA;IAAAD,CAAA,MAAAQ,OAAA;IAAAR,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EARrBb,SAAA,CAAUsB,EAQV,EAAGC,EAAkB;AAAA,CACvB;AAEA,OAAO,MAAME,eAAA,GAAkBA,CAAC;EAC9BC,WAAA,GAAc,KAAK;EACnBd,OAAA,GAAU,2CAA2C;EACrDe,QAAQ;EACRC,SAAS;EACTC,OAAA,GAAU;AAAI,CASf;EACC;EACAnB,eAAA,CAAgBmB,OAAA,EAASjB,OAAA;EACzB,MAAM;IAAEkB;EAAoB,CAAE,GAAG3B,kBAAA;EAEjC,MAAM4B,MAAA,GAAS7B,SAAA;EACf,MAAM8B,YAAA,GAAe/B,MAAA,CAAe;EAEpC;EACAD,SAAA,CAAU;IACR,SAASiC,qBAAqBC,UAAkB,EAAEC,MAAc;MAC9D,IAAI;QACF,MAAMC,aAAA,GAAgB,IAAIC,GAAA,CAAIH,UAAA;QAC9B,MAAMI,SAAA,GAAY,IAAID,GAAA,CAAIF,MAAA;QAC1B;QACA,IACEC,aAAA,CAAcG,QAAQ,KAAKD,SAAA,CAAUC,QAAQ,IAC7CH,aAAA,CAAcI,QAAQ,KAAKF,SAAA,CAAUE,QAAQ,IAC7CJ,aAAA,CAAcK,MAAM,KAAKH,SAAA,CAAUG,MAAM,EACzC;UACA;UACA,MAAMC,WAAA,GAAcN,aAAA,CAAcO,IAAI;UACtC,MAAMC,OAAA,GAAUN,SAAA,CAAUK,IAAI;UAC9B,OACED,WAAA,KAAgBE,OAAA,IAChBR,aAAA,CAAcS,IAAI,CAACC,OAAO,CAACJ,WAAA,EAAa,QAAQJ,SAAA,CAAUO,IAAI,CAACC,OAAO,CAACF,OAAA,EAAS;QAEpF;MACF,EAAE,OAAOG,GAAA,EAAK;QACZ;QACAC,OAAA,CAAQC,GAAG,CAAC,0EAA0EF,GAAA;MACxF;MACA,OAAO;IACT;IAEA,SAASG,kBAAkBC,OAA2B;MACpD,OAAOA,OAAA,IAAWA,OAAA,CAAQC,OAAO,CAACC,WAAW,OAAO,KAAK;QACvDF,OAAA,GAAUA,OAAA,CAAQG,aAAa;MACjC;MACA,OAAOH,OAAA;IACT;IAEA,SAASI,YAAYtC,KAAiB;MACpC,IAAI;QACF,MAAMuC,MAAA,GAASvC,KAAA,CAAMuC,MAAM;QAC3B,MAAMC,MAAA,GAASP,iBAAA,CAAkBM,MAAA;QACjC,IAAIC,MAAA,EAAQ;UACV,MAAMvB,YAAA,GAAaV,MAAA,CAAOkC,QAAQ,CAACb,IAAI;UACvC,MAAMV,QAAA,GAASsB,MAAA,CAAOZ,IAAI;UAC1B,MAAMc,QAAA,GAAW1B,oBAAA,CAAqBC,YAAA,EAAYC,QAAA;UAClD,MAAMyB,cAAA,GAAiBH,MAAA,CAAOI,QAAQ,KAAK;UAC3C,MAAMC,QAAA,GAAWL,MAAA,CAAOD,MAAM,KAAK,YAAYvC,KAAA,CAAM8C,OAAO,IAAI9C,KAAA,CAAM+C,OAAO;UAE7E,MAAMC,aAAA,GAAgB,EAAE9B,QAAA,KAAWD,YAAA,IAAcyB,QAAA,IAAYC,cAAA,IAAkBE,QAAO;UAEtF,IAAIG,aAAA,IAAiBpC,OAAA,KAAY,CAACD,SAAA,GAAY,CAACJ,MAAA,CAAO0C,OAAO,CAACtD,OAAA,IAAW,IAAG,GAAI;YAC9E;YACAoB,YAAA,CAAamC,OAAO,GAAGhC,QAAA;YAEvB;YACAlB,KAAA,CAAME,cAAc;YACpBF,KAAA,CAAMmD,eAAe;YAErB,IAAI,OAAOxC,SAAA,KAAc,YAAY;cACnCA,SAAA;YACF;UACF;QACF;MACF,EAAE,OAAOmB,KAAA,EAAK;QACZ;QACAC,OAAA,CAAQC,GAAG,CAAC,qEAAqEF,KAAA;MACnF;IACF;IAEA,IAAIlB,OAAA,EAAS;MACX;MACAwC,QAAA,CAAS9D,gBAAgB,CAAC,SAASgD,WAAA,EAAa;IAClD;IAEA;IACA,OAAO;MACLc,QAAA,CAAS5D,mBAAmB,CAAC,SAAS8C,WAAA,EAAa;IACrD;EACF,GAAG,CAAC3B,SAAA,EAAWC,OAAA,EAASjB,OAAA,CAAQ;EAEhCZ,SAAA,CAAU;IACR,IAAI0B,WAAA,IAAeM,YAAA,CAAamC,OAAO,EAAE;MACvC,IAAIxC,QAAA,EAAU;QACZA,QAAA;MACF;MAEAG,oBAAA,CAAqB,MAAMC,MAAA,CAAOuC,IAAI,CAACtC,YAAA,CAAamC,OAAO;IAC7D;EACF,GAAG,CAACzC,WAAA,EAAaC,QAAA,EAAUI,MAAA,EAAQD,oBAAA,CAAqB;AAC1D","ignoreList":[]}
1
+ {"version":3,"file":"usePreventLeave.js","names":["c","_c","useCallback","useEffect","useRef","useRouter","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\nimport { useCallback, useEffect, useRef } from 'react'\n\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure you want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n void startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -55,7 +55,7 @@ export const Link = ({
55
55
  });
56
56
  }
57
57
  };
58
- startRouteTransition(navigate);
58
+ void startRouteTransition(navigate);
59
59
  },
60
60
  ref: ref,
61
61
  ...rest,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PayloadLink","useRouter","useRouteTransition","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","Link","children","forceReload","href","onClick","preventDefault","ref","replace","scroll","rest","router","startRouteTransition","_jsx","e","defaultPrevented","url","window","location","navigate","push"],"sources":["../../../src/elements/Link/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkAdapterProps } from 'payload'\n\nimport React from 'react'\n\nimport { PayloadLink, useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey ||\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\ntype Props = {\n /**\n * Force a hard navigation using window.location instead of client-side routing\n */\n forceReload?: boolean\n /**\n * Disable the e.preventDefault() call on click if you want to handle it yourself via onClick\n *\n * @default true\n */\n preventDefault?: boolean\n} & { ref?: React.Ref<HTMLAnchorElement> } & LinkAdapterProps\n\nexport const Link: React.FC<Props> = ({\n children,\n forceReload = false,\n href,\n onClick,\n preventDefault = true,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n return (\n <PayloadLink\n href={href}\n onClick={(e) => {\n if (isModifiedEvent(e)) {\n return\n }\n\n if (onClick) {\n onClick(e)\n }\n\n if (e.defaultPrevented) {\n return\n }\n\n if (preventDefault) {\n e.preventDefault()\n }\n\n const url = href\n\n if (forceReload) {\n window.location.href = url\n return\n }\n\n const navigate = () => {\n if (replace) {\n void router.replace(url, { scroll })\n } else {\n void router.push(url, { scroll })\n }\n }\n\n startRouteTransition(navigate)\n }}\n ref={ref}\n {...rest}\n >\n {children}\n </PayloadLink>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAElB,SAASC,WAAW,EAAEC,SAAS,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,gBAAgBC,KAAuB;EAC9C,MAAMC,WAAA,GAAcD,KAAA,CAAME,aAAa;EACvC,MAAMC,MAAA,GAASF,WAAA,CAAYG,YAAY,CAAC;EACxC,OACED,MAAC,IAAUA,MAAA,KAAW,WACtBH,KAAA,CAAMK,OAAO,IACbL,KAAA,CAAMM,OAAO,IACbN,KAAA,CAAMO,QAAQ,IACdP,KAAA,CAAMQ,MAAM,IACXR,KAAA,CAAMS,WAAW,IAAIT,KAAA,CAAMS,WAAW,CAACC,KAAK,KAAK;AAEtD;AAeA,OAAO,MAAMC,IAAA,GAAwBA,CAAC;EACpCC,QAAQ;EACRC,WAAA,GAAc,KAAK;EACnBC,IAAI;EACJC,OAAO;EACPC,cAAA,GAAiB,IAAI;EACrBC,GAAG;EACHC,OAAO;EACPC,MAAM;EACN,GAAGC;AAAA,CACJ;EACC,MAAMC,MAAA,GAASxB,SAAA;EACf,MAAM;IAAEyB;EAAoB,CAAE,GAAGxB,kBAAA;EAEjC,oBACEyB,IAAA,CAAC3B,WAAA;IACCkB,IAAA,EAAMA,IAAA;IACNC,OAAA,EAAUS,CAAA;MACR,IAAIzB,eAAA,CAAgByB,CAAA,GAAI;QACtB;MACF;MAEA,IAAIT,OAAA,EAAS;QACXA,OAAA,CAAQS,CAAA;MACV;MAEA,IAAIA,CAAA,CAAEC,gBAAgB,EAAE;QACtB;MACF;MAEA,IAAIT,cAAA,EAAgB;QAClBQ,CAAA,CAAER,cAAc;MAClB;MAEA,MAAMU,GAAA,GAAMZ,IAAA;MAEZ,IAAID,WAAA,EAAa;QACfc,MAAA,CAAOC,QAAQ,CAACd,IAAI,GAAGY,GAAA;QACvB;MACF;MAEA,MAAMG,QAAA,GAAWA,CAAA;QACf,IAAIX,OAAA,EAAS;UACX,KAAKG,MAAA,CAAOH,OAAO,CAACQ,GAAA,EAAK;YAAEP;UAAO;QACpC,OAAO;UACL,KAAKE,MAAA,CAAOS,IAAI,CAACJ,GAAA,EAAK;YAAEP;UAAO;QACjC;MACF;MAEAG,oBAAA,CAAqBO,QAAA;IACvB;IACAZ,GAAA,EAAKA,GAAA;IACJ,GAAGG,IAAI;cAEPR;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PayloadLink","useRouter","useRouteTransition","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","Link","children","forceReload","href","onClick","preventDefault","ref","replace","scroll","rest","router","startRouteTransition","_jsx","e","defaultPrevented","url","window","location","navigate","push"],"sources":["../../../src/elements/Link/index.tsx"],"sourcesContent":["'use client'\nimport type { LinkAdapterProps } from 'payload'\n\nimport React from 'react'\n\nimport { PayloadLink, useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey ||\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\ntype Props = {\n /**\n * Force a hard navigation using window.location instead of client-side routing\n */\n forceReload?: boolean\n /**\n * Disable the e.preventDefault() call on click if you want to handle it yourself via onClick\n *\n * @default true\n */\n preventDefault?: boolean\n} & { ref?: React.Ref<HTMLAnchorElement> } & LinkAdapterProps\n\nexport const Link: React.FC<Props> = ({\n children,\n forceReload = false,\n href,\n onClick,\n preventDefault = true,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n return (\n <PayloadLink\n href={href}\n onClick={(e) => {\n if (isModifiedEvent(e)) {\n return\n }\n\n if (onClick) {\n onClick(e)\n }\n\n if (e.defaultPrevented) {\n return\n }\n\n if (preventDefault) {\n e.preventDefault()\n }\n\n const url = href\n\n if (forceReload) {\n window.location.href = url\n return\n }\n\n const navigate = () => {\n if (replace) {\n void router.replace(url, { scroll })\n } else {\n void router.push(url, { scroll })\n }\n }\n\n void startRouteTransition(navigate)\n }}\n ref={ref}\n {...rest}\n >\n {children}\n </PayloadLink>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,MAAW;AAElB,SAASC,WAAW,EAAEC,SAAS,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,gBAAgBC,KAAuB;EAC9C,MAAMC,WAAA,GAAcD,KAAA,CAAME,aAAa;EACvC,MAAMC,MAAA,GAASF,WAAA,CAAYG,YAAY,CAAC;EACxC,OACED,MAAC,IAAUA,MAAA,KAAW,WACtBH,KAAA,CAAMK,OAAO,IACbL,KAAA,CAAMM,OAAO,IACbN,KAAA,CAAMO,QAAQ,IACdP,KAAA,CAAMQ,MAAM,IACXR,KAAA,CAAMS,WAAW,IAAIT,KAAA,CAAMS,WAAW,CAACC,KAAK,KAAK;AAEtD;AAeA,OAAO,MAAMC,IAAA,GAAwBA,CAAC;EACpCC,QAAQ;EACRC,WAAA,GAAc,KAAK;EACnBC,IAAI;EACJC,OAAO;EACPC,cAAA,GAAiB,IAAI;EACrBC,GAAG;EACHC,OAAO;EACPC,MAAM;EACN,GAAGC;AAAA,CACJ;EACC,MAAMC,MAAA,GAASxB,SAAA;EACf,MAAM;IAAEyB;EAAoB,CAAE,GAAGxB,kBAAA;EAEjC,oBACEyB,IAAA,CAAC3B,WAAA;IACCkB,IAAA,EAAMA,IAAA;IACNC,OAAA,EAAUS,CAAA;MACR,IAAIzB,eAAA,CAAgByB,CAAA,GAAI;QACtB;MACF;MAEA,IAAIT,OAAA,EAAS;QACXA,OAAA,CAAQS,CAAA;MACV;MAEA,IAAIA,CAAA,CAAEC,gBAAgB,EAAE;QACtB;MACF;MAEA,IAAIT,cAAA,EAAgB;QAClBQ,CAAA,CAAER,cAAc;MAClB;MAEA,MAAMU,GAAA,GAAMZ,IAAA;MAEZ,IAAID,WAAA,EAAa;QACfc,MAAA,CAAOC,QAAQ,CAACd,IAAI,GAAGY,GAAA;QACvB;MACF;MAEA,MAAMG,QAAA,GAAWA,CAAA;QACf,IAAIX,OAAA,EAAS;UACX,KAAKG,MAAA,CAAOH,OAAO,CAACQ,GAAA,EAAK;YAAEP;UAAO;QACpC,OAAO;UACL,KAAKE,MAAA,CAAOS,IAAI,CAACJ,GAAA,EAAK;YAAEP;UAAO;QACjC;MACF;MAEA,KAAKG,oBAAA,CAAqBO,QAAA;IAC5B;IACAZ,GAAA,EAAKA,GAAA;IACJ,GAAGG,IAAI;cAEPR;;AAGP","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useTableColumns","ColumnSelectionButton","ListColumnSelectionButton","t0","$","collectionSlug","columns","setColumns","t1","_jsx","onChange"],"sources":["../../../src/elements/ListColumnSelectionButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport { useTableColumns } from '../../providers/TableColumns/index.js'\nimport { ColumnSelectionButton } from '../ColumnSelection/index.js'\n\nexport type ListColumnSelectionButtonProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\n/**\n * Connects the presentational {@link ColumnSelectionButton} to the table columns state, so the\n * button itself stays unaware of where its column state is stored.\n */\nexport const ListColumnSelectionButton: React.FC<ListColumnSelectionButtonProps> = ({\n collectionSlug,\n}) => {\n const { columns, setColumns } = useTableColumns()\n\n return (\n <ColumnSelectionButton\n collectionSlug={collectionSlug}\n columns={columns}\n onChange={setColumns}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,qBAAqB,QAAQ;AAMtC;;;;AAIA,OAAO,MAAMC,yBAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAAC;IAAAO;EAAA,IAAAF,EAEnF;EACC;IAAAG,OAAA;IAAAC;EAAA,IAAgCP,eAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAG,UAAA;IAG9BC,EAAA,GAAAC,IAAA,CAAAR,qBAAA;MAAAI,cAAA;MAAAC,OAAA;MAAAI,QAAA,EAGYH;IAAA,C;;;;;;;;SAHZC,E;CAMJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useTableColumns","ColumnSelectionButton","ListColumnSelectionButton","t0","$","collectionSlug","columns","setColumns","t1","_jsx","onChange"],"sources":["../../../src/elements/ListColumnSelectionButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport React from 'react'\n\nimport { useTableColumns } from '../../providers/TableColumns/index.js'\nimport { ColumnSelectionButton } from '../ColumnSelection/index.js'\n\nexport type ListColumnSelectionButtonProps = {\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n}\n\n/**\n * Connects the presentational {@link ColumnSelectionButton} to the table columns state, so the\n * button itself stays unaware of where its column state is stored.\n */\nexport const ListColumnSelectionButton: React.FC<ListColumnSelectionButtonProps> = ({\n collectionSlug,\n}) => {\n const { columns, setColumns } = useTableColumns()\n\n return (\n <ColumnSelectionButton\n collectionSlug={collectionSlug}\n columns={columns}\n onChange={setColumns}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,MAAW;AAElB,SAASC,eAAe,QAAQ;AAChC,SAASC,qBAAqB,QAAQ;AAMtC;;;;AAIA,OAAO,MAAMC,yBAAA,GAAsEC,EAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAAC;IAAAO;EAAA,IAAAF,EAEnF;EACC;IAAAG,OAAA;IAAAC;EAAA,IAAgCP,eAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAJ,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAE,OAAA,IAAAF,CAAA,QAAAG,UAAA;IAG9BC,EAAA,GAAAC,IAAA,CAACR,qBAAA;MAAAI,cAAA;MAAAC,OAAA;MAAAI,QAAA,EAGWH;;;;;;;;;SAHZC,E;CAMJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","React","Fragment","useEffect","useRef","useState","Popup","PopupList","ChevronIcon","Dots","useListQuery","useTranslation","Button","ListColumnSelectionButton","ListGroupByButton","ListEmptyTrashButton","ListWhereBuilder","QueryPresetBar","ListSearchFilter","baseClass","ListControls","props","$","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","t0","enableFilters","t1","enableSort","t2","hasCreatePermission","hasDeletePermission","isWhereOpen","isWhereOpenFromProps","layoutToggle","listMenuItems","newDocumentURL","onWhereToggle","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","viewType","undefined","isControlled","handleSearchChange","hasActiveFilters","query","setSearchInput","t","breakpoints","t3","s","smallBreak","searchLabelTranslated","label","split","hasWhereParam","Boolean","where","visibleDrawer","setVisibleDrawer","t4","current","t5","t6","t7","handleWhereToggle","_jsxs","className","children","_jsx","onSearchChange","onSearchInputChange","searchQueryParam","search","enableQueryPresets","buttonStyle","extraButtonProps","icon","direction","size","onClick","selected","slug","fields","el","id","to","trash","Array","isArray","length","button","ariaLabel","horizontalAlign","popupType","verticalAlign","ButtonGroup","map","_temp","collectionPluralLabel","labels","plural","onEmptyRemove","item","i"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { ListGroupByButton } from '../ListGroupByButton/index.js'\nimport { ListEmptyTrashButton } from '../ListHeader/TitleActions/index.js'\nimport { ListWhereBuilder } from '../ListWhereBuilder/index.js'\nimport { QueryPresetBar } from '../QueryPresets/QueryPresetBar/index.js'\nimport { ListSearchFilter } from '../Search/ListSearchFilter/index.js'\nimport './index.css'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableFilters = true,\n enableSort = false,\n hasCreatePermission,\n hasDeletePermission,\n isWhereOpen: isWhereOpenFromProps,\n layoutToggle,\n listMenuItems,\n newDocumentURL,\n onWhereToggle,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n viewType,\n } = props\n\n const isControlled = typeof onWhereToggle === 'function'\n\n const { handleSearchChange, hasActiveFilters, query, setSearchInput } = useListQuery()\n\n const { t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n // Simplified placeholder - just \"Search\" instead of \"Search by X, Y, Z\"\n const searchLabelTranslated = t('general:searchBy', { label: '' }).split(' ')[0]\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n hasActiveFilters ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n const isWhereOpen = isControlled ? Boolean(isWhereOpenFromProps) : visibleDrawer === 'where'\n const handleWhereToggle = isControlled\n ? onWhereToggle\n : () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__search-row`}>\n <div className={`${baseClass}__left`}>\n <ListSearchFilter\n key={collectionSlug}\n label={searchLabelTranslated}\n onSearchChange={handleSearchChange}\n onSearchInputChange={setSearchInput}\n searchQueryParam={query?.search}\n />\n {collectionConfig?.enableQueryPresets && !disableQueryPresets && (\n <QueryPresetBar\n activePreset={activePreset}\n collectionSlug={collectionSlug}\n queryPresetPermissions={queryPresetPermissions}\n />\n )}\n </div>\n <div className={`${baseClass}__spacer`} />\n <div className={`${baseClass}__actions`}>\n {!smallBreak && beforeActions}\n {enableFilters && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-where`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-where`,\n 'aria-expanded': isWhereOpen,\n }}\n icon={<ChevronIcon direction={isWhereOpen ? 'up' : 'down'} size={16} />}\n id=\"toggle-list-filters\"\n onClick={handleWhereToggle}\n selected={isWhereOpen || hasActiveFilters}\n size=\"medium\"\n >\n {t('general:filters')}\n </Button>\n )}\n <ListGroupByButton\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig.fields}\n />\n {enableColumns && <ListColumnSelectionButton collectionSlug={collectionConfig.slug} />}\n {enableSort && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-sort`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-sort`,\n 'aria-expanded': visibleDrawer === 'sort',\n }}\n icon={<ChevronIcon size={16} />}\n id=\"toggle-list-sort\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n size=\"medium\"\n >\n {t('general:sort')}\n </Button>\n )}\n {layoutToggle}\n {hasCreatePermission && newDocumentURL && (\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-new`}\n el=\"link\"\n id=\"create-new-doc\"\n size=\"medium\"\n to={newDocumentURL}\n >\n {t('general:createNew')}\n </Button>\n )}\n {hasDeletePermission && collectionConfig.trash && viewType === 'trash' && (\n <ListEmptyTrashButton\n collectionConfig={collectionConfig}\n hasDeletePermission={hasDeletePermission}\n />\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n popupType=\"menu\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n {!isControlled && isWhereOpen && (\n <div className={`${baseClass}__where`} id={`${baseClass}-where`}>\n <ListWhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n onEmptyRemove={() => setVisibleDrawer(undefined)}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useWindowInfo","React","Fragment","useEffect","useRef","useState","Popup","PopupList","ChevronIcon","Dots","useListQuery","useTranslation","Button","ListColumnSelectionButton","ListGroupByButton","ListEmptyTrashButton","ListWhereBuilder","QueryPresetBar","ListSearchFilter","baseClass","ListControls","props","$","beforeActions","collectionConfig","collectionSlug","disableQueryPresets","enableColumns","t0","enableFilters","t1","enableSort","t2","hasCreatePermission","hasDeletePermission","isWhereOpen","isWhereOpenFromProps","layoutToggle","listMenuItems","newDocumentURL","onWhereToggle","queryPreset","activePreset","queryPresetPermissions","renderedFilters","resolvedFilterOptions","viewType","undefined","isControlled","handleSearchChange","hasActiveFilters","query","setSearchInput","t","breakpoints","t3","s","smallBreak","searchLabelTranslated","label","split","hasWhereParam","Boolean","where","visibleDrawer","setVisibleDrawer","t4","current","t5","t6","t7","handleWhereToggle","_jsxs","className","children","_jsx","onSearchChange","onSearchInputChange","searchQueryParam","search","enableQueryPresets","buttonStyle","extraButtonProps","icon","direction","size","onClick","selected","slug","fields","el","id","to","trash","Array","isArray","length","button","ariaLabel","horizontalAlign","popupType","verticalAlign","ButtonGroup","map","_temp","collectionPluralLabel","labels","plural","onEmptyRemove","item","i"],"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\n\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React, { Fragment, useEffect, useRef, useState } from 'react'\n\nimport type { ListControlsProps } from './types.js'\n\nimport { Popup, PopupList } from '../../elements/Popup/index.js'\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { Dots } from '../../icons/Dots/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { ListColumnSelectionButton } from '../ListColumnSelectionButton/index.js'\nimport { ListGroupByButton } from '../ListGroupByButton/index.js'\nimport { ListEmptyTrashButton } from '../ListHeader/TitleActions/index.js'\nimport { ListWhereBuilder } from '../ListWhereBuilder/index.js'\nimport { QueryPresetBar } from '../QueryPresets/QueryPresetBar/index.js'\nimport { ListSearchFilter } from '../Search/ListSearchFilter/index.js'\nimport './index.css'\n\nconst baseClass = 'list-controls'\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const {\n beforeActions,\n collectionConfig,\n collectionSlug,\n disableQueryPresets,\n enableColumns = true,\n enableFilters = true,\n enableSort = false,\n hasCreatePermission,\n hasDeletePermission,\n isWhereOpen: isWhereOpenFromProps,\n layoutToggle,\n listMenuItems,\n newDocumentURL,\n onWhereToggle,\n queryPreset: activePreset,\n queryPresetPermissions,\n renderedFilters,\n resolvedFilterOptions,\n viewType,\n } = props\n\n const isControlled = typeof onWhereToggle === 'function'\n\n const { handleSearchChange, hasActiveFilters, query, setSearchInput } = useListQuery()\n\n const { t } = useTranslation()\n\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n // Simplified placeholder - just \"Search\" instead of \"Search by X, Y, Z\"\n const searchLabelTranslated = t('general:searchBy', { label: '' }).split(' ')[0]\n\n const hasWhereParam = useRef(Boolean(query?.where))\n\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n hasActiveFilters ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !query?.where) {\n hasWhereParam.current = false\n } else if (query?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, query?.where])\n\n const isWhereOpen = isControlled ? Boolean(isWhereOpenFromProps) : visibleDrawer === 'where'\n const handleWhereToggle = isControlled\n ? onWhereToggle\n : () => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__search-row`}>\n <div className={`${baseClass}__left`}>\n <ListSearchFilter\n key={collectionSlug}\n label={searchLabelTranslated}\n onSearchChange={handleSearchChange}\n onSearchInputChange={setSearchInput}\n searchQueryParam={query?.search}\n />\n {collectionConfig?.enableQueryPresets && !disableQueryPresets && (\n <QueryPresetBar\n activePreset={activePreset}\n collectionSlug={collectionSlug}\n queryPresetPermissions={queryPresetPermissions}\n />\n )}\n </div>\n <div className={`${baseClass}__spacer`} />\n <div className={`${baseClass}__actions`}>\n {!smallBreak && beforeActions}\n {enableFilters && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-where`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-where`,\n 'aria-expanded': isWhereOpen,\n }}\n icon={<ChevronIcon direction={isWhereOpen ? 'up' : 'down'} size={16} />}\n id=\"toggle-list-filters\"\n onClick={handleWhereToggle}\n selected={isWhereOpen || hasActiveFilters}\n size=\"medium\"\n >\n {t('general:filters')}\n </Button>\n )}\n <ListGroupByButton\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig.fields}\n />\n {enableColumns && <ListColumnSelectionButton collectionSlug={collectionConfig.slug} />}\n {enableSort && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-sort`}\n extraButtonProps={{\n 'aria-controls': `${baseClass}-sort`,\n 'aria-expanded': visibleDrawer === 'sort',\n }}\n icon={<ChevronIcon size={16} />}\n id=\"toggle-list-sort\"\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n size=\"medium\"\n >\n {t('general:sort')}\n </Button>\n )}\n {layoutToggle}\n {hasCreatePermission && newDocumentURL && (\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-new`}\n el=\"link\"\n id=\"create-new-doc\"\n size=\"medium\"\n to={newDocumentURL}\n >\n {t('general:createNew')}\n </Button>\n )}\n {hasDeletePermission && collectionConfig.trash && viewType === 'trash' && (\n <ListEmptyTrashButton\n collectionConfig={collectionConfig}\n hasDeletePermission={hasDeletePermission}\n />\n )}\n {listMenuItems && Array.isArray(listMenuItems) && listMenuItems.length > 0 && (\n <Popup\n button={<Dots ariaLabel={t('general:moreOptions')} />}\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n id=\"list-menu\"\n popupType=\"menu\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {listMenuItems.map((item, i) => (\n <Fragment key={`list-menu-item-${i}`}>{item}</Fragment>\n ))}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n {!isControlled && isWhereOpen && (\n <div className={`${baseClass}__where`} id={`${baseClass}-where`}>\n <ListWhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n fields={collectionConfig?.fields}\n onEmptyRemove={() => setVisibleDrawer(undefined)}\n renderedFilters={renderedFilters}\n resolvedFilterOptions={resolvedFilterOptions}\n />\n </div>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -3,16 +3,6 @@ export type ListControlsProps = {
3
3
  readonly beforeActions?: React.ReactNode[];
4
4
  readonly collectionConfig: ClientCollectionConfig;
5
5
  readonly collectionSlug: string;
6
- /**
7
- * @deprecated
8
- * These are now handled by the `ListSelection` component
9
- */
10
- readonly disableBulkDelete?: boolean;
11
- /**
12
- * @deprecated
13
- * These are now handled by the `ListSelection` component
14
- */
15
- readonly disableBulkEdit?: boolean;
16
6
  readonly disableQueryPresets?: boolean;
17
7
  readonly enableColumns?: boolean;
18
8
  readonly enableFilters?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,SAAS,EACT,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAA;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAC9B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,6BAA6B,EAC7B,SAAS,EACT,KAAK,EACN,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAA;IAClC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,6BAA6B,CAAA;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IACnE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAC9B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListControls/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n QueryPreset,\n ResolvedFilterOptions,\n SanitizedCollectionPermission,\n ViewTypes,\n Where,\n} from 'payload'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkDelete?: boolean\n /**\n * @deprecated\n * These are now handled by the `ListSelection` component\n */\n readonly disableBulkEdit?: boolean\n readonly disableQueryPresets?: boolean\n readonly enableColumns?: boolean\n readonly enableFilters?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly hasCreatePermission?: boolean\n readonly hasDeletePermission?: boolean\n readonly isWhereOpen?: boolean\n readonly layoutToggle?: React.ReactNode\n readonly listMenuItems?: React.ReactNode[]\n readonly newDocumentURL?: string\n readonly onWhereToggle?: () => void\n readonly queryPreset?: QueryPreset\n readonly queryPresetPermissions?: SanitizedCollectionPermission\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n readonly viewType?: ViewTypes\n}\n"],"mappings":"AASA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/elements/ListControls/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n QueryPreset,\n ResolvedFilterOptions,\n SanitizedCollectionPermission,\n ViewTypes,\n Where,\n} from 'payload'\n\nexport type ListControlsProps = {\n readonly beforeActions?: React.ReactNode[]\n readonly collectionConfig: ClientCollectionConfig\n readonly collectionSlug: string\n readonly disableQueryPresets?: boolean\n readonly enableColumns?: boolean\n readonly enableFilters?: boolean\n readonly enableSort?: boolean\n readonly handleSearchChange?: (search: string) => void\n readonly handleSortChange?: (sort: string) => void\n readonly handleWhereChange?: (where: Where) => void\n readonly hasCreatePermission?: boolean\n readonly hasDeletePermission?: boolean\n readonly isWhereOpen?: boolean\n readonly layoutToggle?: React.ReactNode\n readonly listMenuItems?: React.ReactNode[]\n readonly newDocumentURL?: string\n readonly onWhereToggle?: () => void\n readonly queryPreset?: QueryPreset\n readonly queryPresetPermissions?: SanitizedCollectionPermission\n readonly renderedFilters?: Map<string, React.ReactNode>\n readonly resolvedFilterOptions?: Map<string, ResolvedFilterOptions>\n readonly viewType?: ViewTypes\n}\n"],"mappings":"AASA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,YAAY,CAAA;AAUnB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiMvD,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EACV,eAAe,EAGhB,MAAM,YAAY,CAAA;AAUnB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAgMvD,CAAA"}
@@ -130,15 +130,14 @@ export const ListDrawerContent = ({
130
130
  if (typeof onSelect === 'function') {
131
131
  onSelect({
132
132
  collectionSlug: selectedOption?.value,
133
- doc,
134
- docID: doc.id
133
+ doc
135
134
  });
136
135
  }
137
136
  closeModal(documentDrawerSlug);
138
137
  closeModal(drawerSlug);
139
138
  }, [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value]);
140
139
  const onQueryChange = useCallback(query_0 => {
141
- void refresh({
140
+ return refresh({
142
141
  slug: selectedOption?.value,
143
142
  query: query_0
144
143
  });
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","hoistQueryParamsToAnd","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","disableQueryPresets","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","collectionSlugFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","refresh","query","newQuery","where","filterOption","result","name","args","disableBulkDelete","disableBulkEdit","List","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","refreshSelf","incomingCollectionSlug","_jsxs","createNewDrawerSlug","selected","_Fragment","_jsx","className","onSave","animationDuration","overlayType","show"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug, ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hoistQueryParamsToAnd } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerContextProps, ListDrawerContextType } from '../ListDrawer/Provider.js'\nimport type {\n ListDrawerProps,\n RenderListServerFnArgs,\n RenderListServerFnReturnType,\n} from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: collectionSlugFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = collectionSlugFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((collectionSlug: CollectionSlug) => {\n if (collectionSlug && collectionSlug !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug })?.labels,\n value: collectionSlug,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(collectionSlugFromProps)\n }, [collectionSlugFromProps])\n\n /**\n * This performs a full server round trip to get the list view for the selected collection.\n * On the server, the data is freshly queried for the list view and all components are fully rendered.\n * This work includes building column state, rendering custom components, etc.\n */\n const refresh = useCallback(\n async ({ slug, query }: { query?: ListQuery; slug: string }) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n if (slug) {\n const result: RenderListServerFnReturnType = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n } satisfies RenderListServerFnArgs,\n })) as RenderListServerFnReturnType\n\n setListView(result?.List || null)\n } else {\n setListView(null)\n }\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n disableQueryPresets,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void refresh({ slug: selectedOption?.value })\n }\n }, [refresh, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption?.value,\n doc,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange: ListDrawerContextProps['onQueryChange'] = useCallback(\n (query) => {\n void refresh({ slug: selectedOption?.value, query })\n },\n [refresh, selectedOption.value],\n )\n\n const setMySelectedOption: ListDrawerContextProps['setSelectedOption'] = useCallback(\n (incomingSelection) => {\n setSelectedOption(incomingSelection)\n void refresh({ slug: incomingSelection?.value })\n },\n [refresh],\n )\n\n const refreshSelf: ListDrawerContextType['refresh'] = useCallback(\n async (incomingCollectionSlug) => {\n if (incomingCollectionSlug) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: incomingCollectionSlug })?.labels,\n value: incomingCollectionSlug,\n })\n }\n\n await refresh({ slug: selectedOption.value || incomingCollectionSlug })\n },\n [getEntityConfig, refresh, selectedOption.value],\n )\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={\n typeof onBulkSelect === 'function'\n ? (selected) => onBulkSelect(selected, selectedOption.value)\n : undefined\n }\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n refresh={refreshSelf}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {!isLoading && (\n <>\n <div className=\"drawer__fade-in\">{ListView}</div>\n <DocumentDrawer onSave={onCreateNew} />\n </>\n )}\n <LoadingOverlay animationDuration=\"200ms\" overlayType=\"drawer\" show={isLoading} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","hoistQueryParamsToAnd","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","disableQueryPresets","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","collectionSlugFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","refresh","query","newQuery","where","filterOption","result","name","args","disableBulkDelete","disableBulkEdit","List","_err","console","error","onCreateNew","doc","onQueryChange","setMySelectedOption","incomingSelection","refreshSelf","incomingCollectionSlug","_jsxs","createNewDrawerSlug","selected","_Fragment","_jsx","className","onSave","animationDuration","overlayType","show"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug, ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hoistQueryParamsToAnd } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerContextProps, ListDrawerContextType } from '../ListDrawer/Provider.js'\nimport type {\n ListDrawerProps,\n RenderListServerFnArgs,\n RenderListServerFnReturnType,\n} from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: collectionSlugFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = collectionSlugFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((collectionSlug: CollectionSlug) => {\n if (collectionSlug && collectionSlug !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug })?.labels,\n value: collectionSlug,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(collectionSlugFromProps)\n }, [collectionSlugFromProps])\n\n /**\n * This performs a full server round trip to get the list view for the selected collection.\n * On the server, the data is freshly queried for the list view and all components are fully rendered.\n * This work includes building column state, rendering custom components, etc.\n */\n const refresh = useCallback(\n async ({ slug, query }: { query?: ListQuery; slug: string }) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n if (slug) {\n const result: RenderListServerFnReturnType = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n } satisfies RenderListServerFnArgs,\n })) as RenderListServerFnReturnType\n\n setListView(result?.List || null)\n } else {\n setListView(null)\n }\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n disableQueryPresets,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void refresh({ slug: selectedOption?.value })\n }\n }, [refresh, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption?.value,\n doc,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange: ListDrawerContextProps['onQueryChange'] = useCallback(\n (query) => {\n return refresh({ slug: selectedOption?.value, query })\n },\n [refresh, selectedOption.value],\n )\n\n const setMySelectedOption: ListDrawerContextProps['setSelectedOption'] = useCallback(\n (incomingSelection) => {\n setSelectedOption(incomingSelection)\n void refresh({ slug: incomingSelection?.value })\n },\n [refresh],\n )\n\n const refreshSelf: ListDrawerContextType['refresh'] = useCallback(\n async (incomingCollectionSlug) => {\n if (incomingCollectionSlug) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: incomingCollectionSlug })?.labels,\n value: incomingCollectionSlug,\n })\n }\n\n await refresh({ slug: selectedOption.value || incomingCollectionSlug })\n },\n [getEntityConfig, refresh, selectedOption.value],\n )\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={\n typeof onBulkSelect === 'function'\n ? (selected) => onBulkSelect(selected, selectedOption.value)\n : undefined\n }\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n refresh={refreshSelf}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {!isLoading && (\n <>\n <div className=\"drawer__fade-in\">{ListView}</div>\n <DocumentDrawer onSave={onCreateNew} />\n </>\n )}\n <LoadingOverlay animationDuration=\"200ms\" overlayType=\"drawer\" show={isLoading} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
- import type { CollectionSlug, Data, ListQuery } from 'payload';
1
+ import type { CollectionSlug, Data } from 'payload';
2
+ import type { OnListQueryChange } from '../../providers/ListQuery/types.js';
2
3
  import type { useSelection } from '../../providers/Selection/index.js';
3
4
  import type { UseDocumentDrawer } from '../DocumentDrawer/types.js';
4
5
  import type { Option } from '../ReactSelect/index.js';
@@ -9,16 +10,10 @@ export type ListDrawerContextProps = {
9
10
  readonly drawerSlug?: string;
10
11
  readonly enabledCollections?: CollectionSlug[];
11
12
  readonly onBulkSelect?: (selected: ReturnType<typeof useSelection>['selected'], collectionSlug?: CollectionSlug) => void;
12
- readonly onQueryChange?: (query: ListQuery) => void;
13
+ readonly onQueryChange?: OnListQueryChange;
13
14
  readonly onSelect?: (args: {
14
15
  collectionSlug: CollectionSlug;
15
16
  doc: Data;
16
- /**
17
- * @deprecated
18
- * The `docID` property is deprecated and will be removed in the next major version of Payload.
19
- * Use `doc.id` instead.
20
- */
21
- docID: string;
22
17
  }) => void;
23
18
  readonly selectedOption?: Option<CollectionSlug>;
24
19
  readonly setSelectedOption?: (option: Option<CollectionSlug>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,QAAQ,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,EACrD,cAAc,CAAC,EAAE,cAAc,KAC5B,IAAI,CAAA;IACT,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,cAAc,EAAE,cAAc,CAAA;QAC9B,GAAG,EAAE,IAAI,CAAA;QACT;;;;WAIG;QACH,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,CAAA;CACtE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrE,GAAG,sBAAsB,CAAA;AAE1B,eAAO,MAAM,iBAAiB,gDAA6C,CAAA;AAE3E,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;CAC1C,GAAG,sBAAsB,CAO3B,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,qBAQvC,CAAA"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAInD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,QAAQ,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,EACrD,cAAc,CAAC,EAAE,cAAc,KAC5B,IAAI,CAAA;IACT,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAA;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,KAAK,IAAI,CAAA;IACjF,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,CAAA;CACtE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrE,GAAG,sBAAsB,CAAA;AAE1B,eAAO,MAAM,iBAAiB,gDAA6C,CAAA;AAE3E,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;CAC1C,GAAG,sBAAsB,CAO3B,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,qBAQvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","names":["createContext","use","ListDrawerContext","ListDrawerContextProvider","children","rest","_jsx","value","isInDrawer","Boolean","drawerSlug","useListDrawerContext","context","Error"],"sources":["../../../src/elements/ListDrawer/Provider.tsx"],"sourcesContent":["import type { CollectionSlug, Data, ListQuery } from 'payload'\n\nimport { createContext, use } from 'react'\n\nimport type { useSelection } from '../../providers/Selection/index.js'\nimport type { UseDocumentDrawer } from '../DocumentDrawer/types.js'\nimport type { Option } from '../ReactSelect/index.js'\n\nexport type ListDrawerContextProps = {\n readonly allowCreate?: boolean\n readonly createNewDrawerSlug?: string\n readonly DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1]\n readonly drawerSlug?: string\n readonly enabledCollections?: CollectionSlug[]\n readonly onBulkSelect?: (\n selected: ReturnType<typeof useSelection>['selected'],\n collectionSlug?: CollectionSlug,\n ) => void\n readonly onQueryChange?: (query: ListQuery) => void\n readonly onSelect?: (args: {\n collectionSlug: CollectionSlug\n doc: Data\n /**\n * @deprecated\n * The `docID` property is deprecated and will be removed in the next major version of Payload.\n * Use `doc.id` instead.\n */\n docID: string\n }) => void\n readonly selectedOption?: Option<CollectionSlug>\n readonly setSelectedOption?: (option: Option<CollectionSlug>) => void\n}\n\nexport type ListDrawerContextType = {\n readonly isInDrawer: boolean\n /**\n * When called, will either refresh the list view with its currently selected collection.\n * If an collection slug is provided, will use that instead of the currently selected one.\n */\n readonly refresh: (collectionSlug?: CollectionSlug) => Promise<void>\n} & ListDrawerContextProps\n\nexport const ListDrawerContext = createContext({} as ListDrawerContextType)\n\nexport const ListDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n refresh: ListDrawerContextType['refresh']\n } & ListDrawerContextProps\n> = ({ children, ...rest }) => {\n return (\n <ListDrawerContext value={{ isInDrawer: Boolean(rest.drawerSlug), ...rest }}>\n {children}\n </ListDrawerContext>\n )\n}\n\nexport const useListDrawerContext = (): ListDrawerContextType => {\n const context = use(ListDrawerContext)\n\n if (!context) {\n throw new Error('useListDrawerContext must be used within a ListDrawerContextProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AAwCnC,OAAO,MAAMC,iBAAA,gBAAoBF,aAAA,CAAc,CAAC;AAEhD,OAAO,MAAMG,yBAAA,GAKTA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBACEC,IAAA,CAACJ,iBAAA;IAAkBK,KAAA,EAAO;MAAEC,UAAA,EAAYC,OAAA,CAAQJ,IAAA,CAAKK,UAAU;MAAG,GAAGL;IAAK;cACvED;;AAGP;AAEA,OAAO,MAAMO,oBAAA,GAAuBA,CAAA;EAClC,MAAMC,OAAA,GAAUX,GAAA,CAAIC,iBAAA;EAEpB,IAAI,CAACU,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"Provider.js","names":["createContext","use","ListDrawerContext","ListDrawerContextProvider","children","rest","_jsx","value","isInDrawer","Boolean","drawerSlug","useListDrawerContext","context","Error"],"sources":["../../../src/elements/ListDrawer/Provider.tsx"],"sourcesContent":["import type { CollectionSlug, Data } from 'payload'\n\nimport { createContext, use } from 'react'\n\nimport type { OnListQueryChange } from '../../providers/ListQuery/types.js'\nimport type { useSelection } from '../../providers/Selection/index.js'\nimport type { UseDocumentDrawer } from '../DocumentDrawer/types.js'\nimport type { Option } from '../ReactSelect/index.js'\n\nexport type ListDrawerContextProps = {\n readonly allowCreate?: boolean\n readonly createNewDrawerSlug?: string\n readonly DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1]\n readonly drawerSlug?: string\n readonly enabledCollections?: CollectionSlug[]\n readonly onBulkSelect?: (\n selected: ReturnType<typeof useSelection>['selected'],\n collectionSlug?: CollectionSlug,\n ) => void\n readonly onQueryChange?: OnListQueryChange\n readonly onSelect?: (args: { collectionSlug: CollectionSlug; doc: Data }) => void\n readonly selectedOption?: Option<CollectionSlug>\n readonly setSelectedOption?: (option: Option<CollectionSlug>) => void\n}\n\nexport type ListDrawerContextType = {\n readonly isInDrawer: boolean\n /**\n * When called, will either refresh the list view with its currently selected collection.\n * If an collection slug is provided, will use that instead of the currently selected one.\n */\n readonly refresh: (collectionSlug?: CollectionSlug) => Promise<void>\n} & ListDrawerContextProps\n\nexport const ListDrawerContext = createContext({} as ListDrawerContextType)\n\nexport const ListDrawerContextProvider: React.FC<\n {\n children: React.ReactNode\n refresh: ListDrawerContextType['refresh']\n } & ListDrawerContextProps\n> = ({ children, ...rest }) => {\n return (\n <ListDrawerContext value={{ isInDrawer: Boolean(rest.drawerSlug), ...rest }}>\n {children}\n </ListDrawerContext>\n )\n}\n\nexport const useListDrawerContext = (): ListDrawerContextType => {\n const context = use(ListDrawerContext)\n\n if (!context) {\n throw new Error('useListDrawerContext must be used within a ListDrawerContextProvider')\n }\n\n return context\n}\n"],"mappings":";AAEA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AAgCnC,OAAO,MAAMC,iBAAA,gBAAoBF,aAAA,CAAc,CAAC;AAEhD,OAAO,MAAMG,yBAAA,GAKTA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAAA,CAAM;EACxB,oBACEC,IAAA,CAACJ,iBAAA;IAAkBK,KAAA,EAAO;MAAEC,UAAA,EAAYC,OAAA,CAAQJ,IAAA,CAAKK,UAAU;MAAG,GAAGL;IAAK;cACvED;;AAGP;AAEA,OAAO,MAAMO,oBAAA,GAAuBA,CAAA;EAClC,MAAMC,OAAA,GAAUX,GAAA,CAAIC,iBAAA;EAEpB,IAAI,CAACU,OAAA,EAAS;IACZ,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,OAAOD,OAAA;AACT","ignoreList":[]}