@payloadcms/ui 3.68.0-internal-debug.e9b66ee → 3.68.0-internal.10bf491

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 (1194) hide show
  1. package/dist/@types/assets.d.js.map +1 -1
  2. package/dist/assets/index.js +0 -1
  3. package/dist/assets/index.js.map +1 -1
  4. package/dist/elements/AddNewRelation/index.js +276 -132
  5. package/dist/elements/AddNewRelation/index.js.map +1 -1
  6. package/dist/elements/AddNewRelation/types.js +1 -2
  7. package/dist/elements/AddNewRelation/types.js.map +1 -1
  8. package/dist/elements/AnimateHeight/index.js +72 -67
  9. package/dist/elements/AnimateHeight/index.js.map +1 -1
  10. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +68 -71
  11. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  12. package/dist/elements/AppHeader/index.js +101 -60
  13. package/dist/elements/AppHeader/index.js.map +1 -1
  14. package/dist/elements/ArrayAction/index.js +118 -60
  15. package/dist/elements/ArrayAction/index.js.map +1 -1
  16. package/dist/elements/Autosave/index.js +167 -131
  17. package/dist/elements/Autosave/index.js.map +1 -1
  18. package/dist/elements/Banner/index.js +32 -23
  19. package/dist/elements/Banner/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/ActionsBar/index.js +168 -60
  21. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/AddFilesView/index.js +51 -27
  23. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/AddingFilesView/index.js +95 -21
  25. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +56 -17
  27. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  28. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +28 -6
  29. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/EditForm/index.js +169 -109
  31. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/EditForm/types.js +1 -2
  33. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  34. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +172 -122
  35. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  36. package/dist/elements/BulkUpload/EditMany/index.js +58 -23
  37. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  38. package/dist/elements/BulkUpload/FileSidebar/index.js +315 -159
  39. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/FormsManager/createFormData.js +32 -33
  41. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  42. package/dist/elements/BulkUpload/FormsManager/index.js +471 -484
  43. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  44. package/dist/elements/BulkUpload/FormsManager/reducer.js +90 -100
  45. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  46. package/dist/elements/BulkUpload/Header/index.js +16 -6
  47. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  48. package/dist/elements/BulkUpload/index.js +256 -138
  49. package/dist/elements/BulkUpload/index.js.map +1 -1
  50. package/dist/elements/Button/index.js +160 -110
  51. package/dist/elements/Button/index.js.map +1 -1
  52. package/dist/elements/Button/types.js +1 -14
  53. package/dist/elements/Button/types.js.map +1 -1
  54. package/dist/elements/Card/index.js +34 -19
  55. package/dist/elements/Card/index.js.map +1 -1
  56. package/dist/elements/CheckboxPopup/index.js +36 -17
  57. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  58. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +35 -12
  59. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  60. package/dist/elements/ClipboardAction/clipboardUtilities.js +43 -33
  61. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  62. package/dist/elements/ClipboardAction/index.js +83 -60
  63. package/dist/elements/ClipboardAction/index.js.map +1 -1
  64. package/dist/elements/ClipboardAction/isClipboardDataValid.js +71 -64
  65. package/dist/elements/ClipboardAction/isClipboardDataValid.js.map +1 -1
  66. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +93 -75
  67. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  68. package/dist/elements/ClipboardAction/types.js +1 -2
  69. package/dist/elements/ClipboardAction/types.js.map +1 -1
  70. package/dist/elements/CloseModalButton/index.js +20 -12
  71. package/dist/elements/CloseModalButton/index.js.map +1 -1
  72. package/dist/elements/CloseModalOnRouteChange/index.js +43 -17
  73. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  74. package/dist/elements/CodeEditor/CodeEditor.js +97 -61
  75. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  76. package/dist/elements/CodeEditor/constants.js +14 -15
  77. package/dist/elements/CodeEditor/constants.js.map +1 -1
  78. package/dist/elements/CodeEditor/index.js +11 -7
  79. package/dist/elements/CodeEditor/index.js.map +1 -1
  80. package/dist/elements/CodeEditor/types.js +1 -4
  81. package/dist/elements/CodeEditor/types.js.map +1 -1
  82. package/dist/elements/Collapsible/index.js +141 -63
  83. package/dist/elements/Collapsible/index.js.map +1 -1
  84. package/dist/elements/Collapsible/provider.js +30 -24
  85. package/dist/elements/Collapsible/provider.js.map +1 -1
  86. package/dist/elements/ColumnSelector/index.js +55 -39
  87. package/dist/elements/ColumnSelector/index.js.map +1 -1
  88. package/dist/elements/Combobox/index.js +84 -66
  89. package/dist/elements/Combobox/index.js.map +1 -1
  90. package/dist/elements/ConfirmationModal/index.js +129 -57
  91. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  92. package/dist/elements/CopyLocaleData/index.js +274 -122
  93. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  94. package/dist/elements/CopyToClipboard/index.js +71 -24
  95. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  96. package/dist/elements/DatePicker/DatePicker.js +136 -85
  97. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  98. package/dist/elements/DatePicker/getFormattedLocale.js +10 -11
  99. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  100. package/dist/elements/DatePicker/index.js +12 -6
  101. package/dist/elements/DatePicker/index.js.map +1 -1
  102. package/dist/elements/DatePicker/types.js +1 -2
  103. package/dist/elements/DatePicker/types.js.map +1 -1
  104. package/dist/elements/DefaultListViewTabs/index.js +133 -59
  105. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  106. package/dist/elements/DeleteDocument/index.js +139 -108
  107. package/dist/elements/DeleteDocument/index.js.map +1 -1
  108. package/dist/elements/DeleteMany/index.js +326 -279
  109. package/dist/elements/DeleteMany/index.js.map +1 -1
  110. package/dist/elements/DocumentControls/index.js +274 -147
  111. package/dist/elements/DocumentControls/index.js.map +1 -1
  112. package/dist/elements/DocumentDrawer/DrawerContent.js +122 -127
  113. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  114. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +103 -35
  115. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  116. package/dist/elements/DocumentDrawer/Provider.js +18 -16
  117. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  118. package/dist/elements/DocumentDrawer/index.js +212 -88
  119. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  120. package/dist/elements/DocumentDrawer/types.js +1 -12
  121. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  122. package/dist/elements/DocumentFields/index.js +70 -43
  123. package/dist/elements/DocumentFields/index.js.map +1 -1
  124. package/dist/elements/DocumentLocked/index.js +174 -64
  125. package/dist/elements/DocumentLocked/index.js.map +1 -1
  126. package/dist/elements/DocumentTakeOver/index.js +111 -38
  127. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  128. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  129. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +56 -16
  130. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  131. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +1 -2
  132. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  133. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  134. package/dist/elements/DraggableSortable/index.js +128 -52
  135. package/dist/elements/DraggableSortable/index.js.map +1 -1
  136. package/dist/elements/DraggableSortable/types.js +1 -2
  137. package/dist/elements/DraggableSortable/types.js.map +1 -1
  138. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  139. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +86 -25
  140. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  141. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +1 -2
  142. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  143. package/dist/elements/Drawer/index.js +193 -70
  144. package/dist/elements/Drawer/index.js.map +1 -1
  145. package/dist/elements/Drawer/types.js +1 -2
  146. package/dist/elements/Drawer/types.js.map +1 -1
  147. package/dist/elements/Drawer/useDrawerSlug.js +19 -7
  148. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  149. package/dist/elements/DrawerActionHeader/index.js +62 -21
  150. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  151. package/dist/elements/DrawerContentContainer/index.js +10 -6
  152. package/dist/elements/DrawerContentContainer/index.js.map +1 -1
  153. package/dist/elements/Dropzone/index.js +75 -83
  154. package/dist/elements/Dropzone/index.js.map +1 -1
  155. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +88 -70
  156. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  157. package/dist/elements/DuplicateDocument/index.js +142 -121
  158. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  159. package/dist/elements/EditMany/DrawerContent.js +384 -234
  160. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  161. package/dist/elements/EditMany/index.js +131 -31
  162. package/dist/elements/EditMany/index.js.map +1 -1
  163. package/dist/elements/EditUpload/index.js +399 -293
  164. package/dist/elements/EditUpload/index.js.map +1 -1
  165. package/dist/elements/EmailAndUsername/index.js +69 -49
  166. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  167. package/dist/elements/ErrorPill/index.js +25 -18
  168. package/dist/elements/ErrorPill/index.js.map +1 -1
  169. package/dist/elements/FieldDiffContainer/index.js +32 -18
  170. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  171. package/dist/elements/FieldDiffLabel/index.js +8 -2
  172. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  173. package/dist/elements/FieldSelect/index.js +76 -23
  174. package/dist/elements/FieldSelect/index.js.map +1 -1
  175. package/dist/elements/FieldSelect/reduceFieldOptions.js +67 -69
  176. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  177. package/dist/elements/FileDetails/DraggableFileDetails/index.js +106 -33
  178. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  179. package/dist/elements/FileDetails/FileMeta/index.js +33 -22
  180. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  181. package/dist/elements/FileDetails/StaticFileDetails/index.js +59 -17
  182. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  183. package/dist/elements/FileDetails/index.js +15 -7
  184. package/dist/elements/FileDetails/index.js.map +1 -1
  185. package/dist/elements/FolderView/Breadcrumbs/index.js +87 -24
  186. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  187. package/dist/elements/FolderView/BrowseByFolderButton/index.js +31 -15
  188. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  189. package/dist/elements/FolderView/Cell/index.client.js +82 -65
  190. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  191. package/dist/elements/FolderView/Cell/index.server.js +15 -7
  192. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  193. package/dist/elements/FolderView/ColoredFolderIcon/index.js +4 -2
  194. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
  195. package/dist/elements/FolderView/CurrentFolderActions/index.js +125 -81
  196. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  197. package/dist/elements/FolderView/DragOverlaySelection/index.js +52 -33
  198. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  199. package/dist/elements/FolderView/DraggableTableRow/index.js +54 -44
  200. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  201. package/dist/elements/FolderView/DraggableWithClick/index.js +79 -63
  202. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  203. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +31 -19
  204. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  205. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +564 -274
  206. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  207. package/dist/elements/FolderView/FilterFolderTypePill/index.js +88 -32
  208. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
  209. package/dist/elements/FolderView/FolderField/index.server.js +10 -6
  210. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
  211. package/dist/elements/FolderView/FolderFileCard/index.js +186 -98
  212. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  213. package/dist/elements/FolderView/FolderFileTable/index.js +264 -134
  214. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  215. package/dist/elements/FolderView/FolderTypeField/index.js +114 -64
  216. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  217. package/dist/elements/FolderView/ItemCardGrid/index.js +27 -11
  218. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  219. package/dist/elements/FolderView/MoveDocToFolder/index.js +260 -88
  220. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  221. package/dist/elements/FolderView/SimpleTable/index.js +84 -39
  222. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
  223. package/dist/elements/FolderView/SortByPill/index.js +101 -74
  224. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  225. package/dist/elements/FolderView/ToggleViewButtons/index.js +22 -14
  226. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
  227. package/dist/elements/FullscreenModal/index.js +22 -6
  228. package/dist/elements/FullscreenModal/index.js.map +1 -1
  229. package/dist/elements/GenerateConfirmation/index.js +83 -25
  230. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  231. package/dist/elements/GroupByBuilder/index.js +93 -76
  232. package/dist/elements/GroupByBuilder/index.js.map +1 -1
  233. package/dist/elements/Gutter/index.js +20 -15
  234. package/dist/elements/Gutter/index.js.map +1 -1
  235. package/dist/elements/HTMLDiff/diff/index.js +500 -522
  236. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  237. package/dist/elements/HTMLDiff/index.js +27 -16
  238. package/dist/elements/HTMLDiff/index.js.map +1 -1
  239. package/dist/elements/Hamburger/index.js +41 -13
  240. package/dist/elements/Hamburger/index.js.map +1 -1
  241. package/dist/elements/HydrateAuthProvider/index.js +27 -15
  242. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  243. package/dist/elements/IDLabel/index.js +58 -15
  244. package/dist/elements/IDLabel/index.js.map +1 -1
  245. package/dist/elements/LeaveWithoutSaving/index.js +142 -52
  246. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  247. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +129 -113
  248. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  249. package/dist/elements/Link/formatUrl.js +56 -53
  250. package/dist/elements/Link/formatUrl.js.map +1 -1
  251. package/dist/elements/Link/index.d.ts.map +1 -1
  252. package/dist/elements/Link/index.js +52 -38
  253. package/dist/elements/Link/index.js.map +1 -1
  254. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +17 -17
  255. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  256. package/dist/elements/ListControls/index.js +166 -80
  257. package/dist/elements/ListControls/index.js.map +1 -1
  258. package/dist/elements/ListControls/types.js +1 -8
  259. package/dist/elements/ListControls/types.js.map +1 -1
  260. package/dist/elements/ListDrawer/DrawerContent.js +169 -156
  261. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  262. package/dist/elements/ListDrawer/Provider.js +19 -22
  263. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  264. package/dist/elements/ListDrawer/index.js +231 -104
  265. package/dist/elements/ListDrawer/index.js.map +1 -1
  266. package/dist/elements/ListDrawer/types.js +1 -6
  267. package/dist/elements/ListDrawer/types.js.map +1 -1
  268. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +84 -19
  269. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  270. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +33 -10
  271. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  272. package/dist/elements/ListHeader/DrawerTitleActions/index.js +0 -1
  273. package/dist/elements/ListHeader/DrawerTitleActions/index.js.map +1 -1
  274. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +73 -40
  275. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  276. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +41 -11
  277. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  278. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +153 -63
  279. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  280. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +141 -114
  281. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  282. package/dist/elements/ListHeader/TitleActions/index.js +0 -1
  283. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  284. package/dist/elements/ListHeader/index.js +25 -17
  285. package/dist/elements/ListHeader/index.js.map +1 -1
  286. package/dist/elements/ListSelection/index.js +58 -34
  287. package/dist/elements/ListSelection/index.js.map +1 -1
  288. package/dist/elements/LivePreview/Device/index.js +79 -66
  289. package/dist/elements/LivePreview/Device/index.js.map +1 -1
  290. package/dist/elements/LivePreview/DeviceContainer/index.js +49 -22
  291. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  292. package/dist/elements/LivePreview/IFrame/index.js +45 -8
  293. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  294. package/dist/elements/LivePreview/Toggler/index.js +27 -15
  295. package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
  296. package/dist/elements/LivePreview/Toolbar/Controls/index.js +140 -62
  297. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  298. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +92 -49
  299. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  300. package/dist/elements/LivePreview/Toolbar/index.js +85 -33
  301. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  302. package/dist/elements/LivePreview/ToolbarArea/index.js +34 -8
  303. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  304. package/dist/elements/LivePreview/Window/index.js +167 -93
  305. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  306. package/dist/elements/Loading/index.js +144 -51
  307. package/dist/elements/Loading/index.js.map +1 -1
  308. package/dist/elements/LoadingOverlay/index.js +67 -51
  309. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  310. package/dist/elements/LoadingOverlay/reducer.js +29 -27
  311. package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
  312. package/dist/elements/LoadingOverlay/types.js +1 -2
  313. package/dist/elements/LoadingOverlay/types.js.map +1 -1
  314. package/dist/elements/Localizer/LocalizerLabel/index.js +52 -17
  315. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  316. package/dist/elements/Localizer/index.js +118 -51
  317. package/dist/elements/Localizer/index.js.map +1 -1
  318. package/dist/elements/Locked/index.js +60 -13
  319. package/dist/elements/Locked/index.js.map +1 -1
  320. package/dist/elements/Logout/index.js +50 -13
  321. package/dist/elements/Logout/index.js.map +1 -1
  322. package/dist/elements/Modal/index.js +1 -1
  323. package/dist/elements/Modal/index.js.map +1 -1
  324. package/dist/elements/Nav/NavToggler/index.js +81 -23
  325. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  326. package/dist/elements/Nav/context.js +103 -101
  327. package/dist/elements/Nav/context.js.map +1 -1
  328. package/dist/elements/NavGroup/index.js +122 -41
  329. package/dist/elements/NavGroup/index.js.map +1 -1
  330. package/dist/elements/NoListResults/index.js +14 -8
  331. package/dist/elements/NoListResults/index.js.map +1 -1
  332. package/dist/elements/PageControls/GroupByPageControls.js +72 -30
  333. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  334. package/dist/elements/PageControls/index.js +108 -19
  335. package/dist/elements/PageControls/index.js.map +1 -1
  336. package/dist/elements/Pagination/ClickableArrow/index.js +17 -11
  337. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  338. package/dist/elements/Pagination/Page/index.js +17 -11
  339. package/dist/elements/Pagination/Page/index.js.map +1 -1
  340. package/dist/elements/Pagination/Separator/index.js +6 -1
  341. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  342. package/dist/elements/Pagination/index.js +100 -82
  343. package/dist/elements/Pagination/index.js.map +1 -1
  344. package/dist/elements/PerPage/index.js +81 -29
  345. package/dist/elements/PerPage/index.js.map +1 -1
  346. package/dist/elements/PermanentlyDeleteButton/index.js +125 -103
  347. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  348. package/dist/elements/Pill/index.js +117 -47
  349. package/dist/elements/Pill/index.js.map +1 -1
  350. package/dist/elements/PillSelector/index.js +56 -37
  351. package/dist/elements/PillSelector/index.js.map +1 -1
  352. package/dist/elements/Popup/PopupButtonList/index.js +57 -38
  353. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  354. package/dist/elements/Popup/PopupDivider/index.js +6 -3
  355. package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
  356. package/dist/elements/Popup/PopupGroupLabel/index.js +9 -3
  357. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
  358. package/dist/elements/Popup/PopupTrigger/index.js +111 -34
  359. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  360. package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
  361. package/dist/elements/Popup/index.js +162 -143
  362. package/dist/elements/Popup/index.js.map +1 -1
  363. package/dist/elements/PreviewButton/index.js +32 -9
  364. package/dist/elements/PreviewButton/index.js.map +1 -1
  365. package/dist/elements/PreviewSizes/index.js +129 -87
  366. package/dist/elements/PreviewSizes/index.js.map +1 -1
  367. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +111 -83
  368. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  369. package/dist/elements/PublishButton/ScheduleDrawer/index.js +306 -258
  370. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  371. package/dist/elements/PublishButton/ScheduleDrawer/types.js +1 -2
  372. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  373. package/dist/elements/PublishButton/index.js +183 -171
  374. package/dist/elements/PublishButton/index.js.map +1 -1
  375. package/dist/elements/PublishMany/DrawerContent.js +131 -121
  376. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  377. package/dist/elements/PublishMany/index.js +109 -24
  378. package/dist/elements/PublishMany/index.js.map +1 -1
  379. package/dist/elements/QueryPresets/QueryPresetBar/index.js +252 -196
  380. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  381. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +84 -30
  382. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  383. package/dist/elements/QueryPresets/cells/AccessCell/index.js +22 -23
  384. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
  385. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +20 -14
  386. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  387. package/dist/elements/QueryPresets/cells/GroupByCell/index.js +49 -46
  388. package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
  389. package/dist/elements/QueryPresets/cells/WhereCell/index.js +28 -22
  390. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
  391. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +48 -14
  392. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  393. package/dist/elements/QueryPresets/fields/GroupByField/index.js +75 -56
  394. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  395. package/dist/elements/QueryPresets/fields/WhereField/index.js +98 -60
  396. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  397. package/dist/elements/ReactSelect/ClearIndicator/index.js +28 -12
  398. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  399. package/dist/elements/ReactSelect/Control/index.js +36 -24
  400. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  401. package/dist/elements/ReactSelect/DropdownIndicator/index.js +24 -10
  402. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  403. package/dist/elements/ReactSelect/Input/index.js +13 -8
  404. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  405. package/dist/elements/ReactSelect/MultiValue/index.js +123 -32
  406. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  407. package/dist/elements/ReactSelect/MultiValueLabel/index.js +32 -14
  408. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  409. package/dist/elements/ReactSelect/MultiValueRemove/index.js +84 -19
  410. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  411. package/dist/elements/ReactSelect/SingleValue/index.js +14 -11
  412. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  413. package/dist/elements/ReactSelect/ValueContainer/index.js +30 -15
  414. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  415. package/dist/elements/ReactSelect/index.js +190 -112
  416. package/dist/elements/ReactSelect/index.js.map +1 -1
  417. package/dist/elements/ReactSelect/types.js +1 -9
  418. package/dist/elements/ReactSelect/types.js.map +1 -1
  419. package/dist/elements/RelationshipTable/AddNewButton.js +58 -28
  420. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  421. package/dist/elements/RelationshipTable/Pagination.js +49 -6
  422. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  423. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +35 -11
  424. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  425. package/dist/elements/RelationshipTable/index.js +258 -224
  426. package/dist/elements/RelationshipTable/index.js.map +1 -1
  427. package/dist/elements/RenderComponent/index.js +21 -9
  428. package/dist/elements/RenderComponent/index.js.map +1 -1
  429. package/dist/elements/RenderCustomComponent/index.js +5 -3
  430. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  431. package/dist/elements/RenderIfInViewport/index.js +58 -20
  432. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  433. package/dist/elements/RenderServerComponent/index.js +57 -44
  434. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  435. package/dist/elements/RenderTitle/index.js +60 -20
  436. package/dist/elements/RenderTitle/index.js.map +1 -1
  437. package/dist/elements/RestoreButton/index.js +147 -119
  438. package/dist/elements/RestoreButton/index.js.map +1 -1
  439. package/dist/elements/RestoreMany/index.js +166 -127
  440. package/dist/elements/RestoreMany/index.js.map +1 -1
  441. package/dist/elements/SaveButton/index.js +50 -36
  442. package/dist/elements/SaveButton/index.js.map +1 -1
  443. package/dist/elements/SaveDraftButton/index.js +84 -67
  444. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  445. package/dist/elements/SearchBar/index.js +19 -10
  446. package/dist/elements/SearchBar/index.js.map +1 -1
  447. package/dist/elements/SearchFilter/index.js +53 -41
  448. package/dist/elements/SearchFilter/index.js.map +1 -1
  449. package/dist/elements/SearchFilter/types.js +1 -20
  450. package/dist/elements/SearchFilter/types.js.map +1 -1
  451. package/dist/elements/SelectAll/index.js +47 -8
  452. package/dist/elements/SelectAll/index.js.map +1 -1
  453. package/dist/elements/SelectMany/index.js +26 -15
  454. package/dist/elements/SelectMany/index.js.map +1 -1
  455. package/dist/elements/SelectRow/index.js +80 -12
  456. package/dist/elements/SelectRow/index.js.map +1 -1
  457. package/dist/elements/ShimmerEffect/index.js +73 -25
  458. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  459. package/dist/elements/SortColumn/index.js +107 -44
  460. package/dist/elements/SortColumn/index.js.map +1 -1
  461. package/dist/elements/SortComplex/index.js +162 -80
  462. package/dist/elements/SortComplex/index.js.map +1 -1
  463. package/dist/elements/SortHeader/index.js +88 -31
  464. package/dist/elements/SortHeader/index.js.map +1 -1
  465. package/dist/elements/SortRow/index.js +28 -7
  466. package/dist/elements/SortRow/index.js.map +1 -1
  467. package/dist/elements/Status/index.js +156 -119
  468. package/dist/elements/Status/index.js.map +1 -1
  469. package/dist/elements/StayLoggedIn/index.js +77 -26
  470. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  471. package/dist/elements/StepNav/SetStepNav.js +27 -10
  472. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  473. package/dist/elements/StepNav/context.js +33 -10
  474. package/dist/elements/StepNav/context.js.map +1 -1
  475. package/dist/elements/StepNav/index.js +93 -46
  476. package/dist/elements/StepNav/index.js.map +1 -1
  477. package/dist/elements/StepNav/types.js +1 -2
  478. package/dist/elements/StepNav/types.js.map +1 -1
  479. package/dist/elements/StickyToolbar/index.js +9 -2
  480. package/dist/elements/StickyToolbar/index.js.map +1 -1
  481. package/dist/elements/Table/DefaultCell/fields/Array/index.js +29 -6
  482. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  483. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +61 -27
  484. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  485. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +28 -6
  486. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  487. package/dist/elements/Table/DefaultCell/fields/Code/index.js +18 -9
  488. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  489. package/dist/elements/Table/DefaultCell/fields/Date/index.js +42 -17
  490. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  491. package/dist/elements/Table/DefaultCell/fields/File/index.js +43 -24
  492. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  493. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +13 -6
  494. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  495. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +180 -85
  496. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  497. package/dist/elements/Table/DefaultCell/fields/Select/index.js +45 -15
  498. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  499. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +10 -4
  500. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  501. package/dist/elements/Table/DefaultCell/fields/index.js +14 -14
  502. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  503. package/dist/elements/Table/DefaultCell/index.js +154 -71
  504. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  505. package/dist/elements/Table/OrderableRow.js +33 -19
  506. package/dist/elements/Table/OrderableRow.js.map +1 -1
  507. package/dist/elements/Table/OrderableRowDragPreview.js +15 -6
  508. package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
  509. package/dist/elements/Table/OrderableTable.js +162 -136
  510. package/dist/elements/Table/OrderableTable.js.map +1 -1
  511. package/dist/elements/Table/RelationshipProvider/index.js +160 -95
  512. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  513. package/dist/elements/Table/RelationshipProvider/reducer.js +42 -42
  514. package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
  515. package/dist/elements/Table/index.js +46 -33
  516. package/dist/elements/Table/index.js.map +1 -1
  517. package/dist/elements/Thumbnail/createThumbnail.js +48 -53
  518. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  519. package/dist/elements/Thumbnail/index.js +148 -76
  520. package/dist/elements/Thumbnail/index.js.map +1 -1
  521. package/dist/elements/ThumbnailCard/index.js +69 -22
  522. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  523. package/dist/elements/TimezonePicker/index.js +42 -21
  524. package/dist/elements/TimezonePicker/index.js.map +1 -1
  525. package/dist/elements/TimezonePicker/types.js +1 -2
  526. package/dist/elements/TimezonePicker/types.js.map +1 -1
  527. package/dist/elements/Toasts/fieldErrors.js +77 -44
  528. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  529. package/dist/elements/Tooltip/index.js +64 -62
  530. package/dist/elements/Tooltip/index.js.map +1 -1
  531. package/dist/elements/Translation/index.js +39 -25
  532. package/dist/elements/Translation/index.js.map +1 -1
  533. package/dist/elements/TrashBanner/index.js +26 -16
  534. package/dist/elements/TrashBanner/index.js.map +1 -1
  535. package/dist/elements/UnpublishMany/DrawerContent.js +124 -116
  536. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  537. package/dist/elements/UnpublishMany/index.js +109 -24
  538. package/dist/elements/UnpublishMany/index.js.map +1 -1
  539. package/dist/elements/Upload/index.js +478 -338
  540. package/dist/elements/Upload/index.js.map +1 -1
  541. package/dist/elements/ViewDescription/index.js +26 -7
  542. package/dist/elements/ViewDescription/index.js.map +1 -1
  543. package/dist/elements/ViewDescription/types.js.map +1 -1
  544. package/dist/elements/WhereBuilder/Condition/Date/index.js +30 -7
  545. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  546. package/dist/elements/WhereBuilder/Condition/Date/types.js +1 -2
  547. package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
  548. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +77 -30
  549. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  550. package/dist/elements/WhereBuilder/Condition/Number/index.js +129 -47
  551. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  552. package/dist/elements/WhereBuilder/Condition/Number/types.js +1 -2
  553. package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
  554. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +303 -316
  555. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  556. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +67 -83
  557. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
  558. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +1 -2
  559. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  560. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +9 -10
  561. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -1
  562. package/dist/elements/WhereBuilder/Condition/Select/index.js +154 -56
  563. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  564. package/dist/elements/WhereBuilder/Condition/Select/types.js +1 -2
  565. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  566. package/dist/elements/WhereBuilder/Condition/Text/index.js +123 -46
  567. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  568. package/dist/elements/WhereBuilder/Condition/Text/types.js +1 -2
  569. package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
  570. package/dist/elements/WhereBuilder/Condition/index.js +141 -106
  571. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  572. package/dist/elements/WhereBuilder/Condition/types.js +1 -2
  573. package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
  574. package/dist/elements/WhereBuilder/Condition/validOperators.js +33 -32
  575. package/dist/elements/WhereBuilder/Condition/validOperators.js.map +1 -1
  576. package/dist/elements/WhereBuilder/field-types.js +119 -192
  577. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  578. package/dist/elements/WhereBuilder/index.js +189 -149
  579. package/dist/elements/WhereBuilder/index.js.map +1 -1
  580. package/dist/elements/WhereBuilder/types.js +1 -2
  581. package/dist/elements/WhereBuilder/types.js.map +1 -1
  582. package/dist/elements/WindowInfo/index.js +1 -1
  583. package/dist/elements/WindowInfo/index.js.map +1 -1
  584. package/dist/elements/WithServerSideProps/index.js +20 -13
  585. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  586. package/dist/elements/withMergedProps/index.js +27 -19
  587. package/dist/elements/withMergedProps/index.js.map +1 -1
  588. package/dist/exports/client/CodeEditor-YX3DTLLV.js +14 -0
  589. package/dist/exports/client/CodeEditor-YX3DTLLV.js.map +7 -0
  590. package/dist/exports/client/DatePicker-2OLXCNL2.js +14 -0
  591. package/dist/exports/client/DatePicker-2OLXCNL2.js.map +7 -0
  592. package/dist/exports/client/chunk-5LKBKI4T.js +14 -0
  593. package/dist/exports/client/chunk-5LKBKI4T.js.map +7 -0
  594. package/dist/exports/client/chunk-AIZM2QMN.js +27 -0
  595. package/dist/exports/client/chunk-AIZM2QMN.js.map +7 -0
  596. package/dist/exports/client/chunk-Q5DN4XRL.js +29 -0
  597. package/dist/exports/client/chunk-Q5DN4XRL.js.map +7 -0
  598. package/dist/exports/client/index.js +96 -296
  599. package/dist/exports/client/index.js.map +7 -1
  600. package/dist/exports/rsc/index.js +0 -1
  601. package/dist/exports/rsc/index.js.map +1 -1
  602. package/dist/exports/shared/index.js +6 -32
  603. package/dist/exports/shared/index.js.map +7 -1
  604. package/dist/fields/Array/ArrayRow.js +164 -25
  605. package/dist/fields/Array/ArrayRow.js.map +1 -1
  606. package/dist/fields/Array/index.js +395 -304
  607. package/dist/fields/Array/index.js.map +1 -1
  608. package/dist/fields/Blocks/BlockRow.js +198 -55
  609. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  610. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +39 -10
  611. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  612. package/dist/fields/Blocks/BlockSelector/index.js +104 -88
  613. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  614. package/dist/fields/Blocks/BlocksDrawer/index.js +79 -21
  615. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  616. package/dist/fields/Blocks/RowActions.js +104 -16
  617. package/dist/fields/Blocks/RowActions.js.map +1 -1
  618. package/dist/fields/Blocks/SectionTitle/index.js +79 -16
  619. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  620. package/dist/fields/Blocks/index.js +424 -322
  621. package/dist/fields/Blocks/index.js.map +1 -1
  622. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  623. package/dist/fields/Checkbox/Input.js +101 -25
  624. package/dist/fields/Checkbox/Input.js.map +1 -1
  625. package/dist/fields/Checkbox/index.js +100 -53
  626. package/dist/fields/Checkbox/index.js.map +1 -1
  627. package/dist/fields/Code/index.js +114 -72
  628. package/dist/fields/Code/index.js.map +1 -1
  629. package/dist/fields/Collapsible/index.js +135 -91
  630. package/dist/fields/Collapsible/index.js.map +1 -1
  631. package/dist/fields/ConfirmPassword/index.js +84 -25
  632. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  633. package/dist/fields/DateTime/index.js +171 -134
  634. package/dist/fields/DateTime/index.js.map +1 -1
  635. package/dist/fields/Email/index.js +87 -40
  636. package/dist/fields/Email/index.js.map +1 -1
  637. package/dist/fields/FieldDescription/index.js +44 -14
  638. package/dist/fields/FieldDescription/index.js.map +1 -1
  639. package/dist/fields/FieldError/index.js +59 -13
  640. package/dist/fields/FieldError/index.js.map +1 -1
  641. package/dist/fields/FieldLabel/index.js +46 -19
  642. package/dist/fields/FieldLabel/index.js.map +1 -1
  643. package/dist/fields/Group/index.js +103 -50
  644. package/dist/fields/Group/index.js.map +1 -1
  645. package/dist/fields/Group/provider.js +13 -6
  646. package/dist/fields/Group/provider.js.map +1 -1
  647. package/dist/fields/Hidden/index.js +68 -17
  648. package/dist/fields/Hidden/index.js.map +1 -1
  649. package/dist/fields/JSON/index.js +143 -110
  650. package/dist/fields/JSON/index.js.map +1 -1
  651. package/dist/fields/Join/index.js +186 -143
  652. package/dist/fields/Join/index.js.map +1 -1
  653. package/dist/fields/Number/index.js +168 -114
  654. package/dist/fields/Number/index.js.map +1 -1
  655. package/dist/fields/Password/index.js +102 -56
  656. package/dist/fields/Password/index.js.map +1 -1
  657. package/dist/fields/Password/input.js +121 -23
  658. package/dist/fields/Password/input.js.map +1 -1
  659. package/dist/fields/Password/types.js +1 -12
  660. package/dist/fields/Password/types.js.map +1 -1
  661. package/dist/fields/Point/index.js +128 -76
  662. package/dist/fields/Point/index.js.map +1 -1
  663. package/dist/fields/RadioGroup/Radio/index.js +82 -19
  664. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  665. package/dist/fields/RadioGroup/index.js +113 -63
  666. package/dist/fields/RadioGroup/index.js.map +1 -1
  667. package/dist/fields/Relationship/Input.js +713 -668
  668. package/dist/fields/Relationship/Input.js.map +1 -1
  669. package/dist/fields/Relationship/createRelationMap.js +33 -31
  670. package/dist/fields/Relationship/createRelationMap.js.map +1 -1
  671. package/dist/fields/Relationship/findOptionsByValue.js +32 -28
  672. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  673. package/dist/fields/Relationship/index.js +159 -118
  674. package/dist/fields/Relationship/index.js.map +1 -1
  675. package/dist/fields/Relationship/optionsReducer.js +139 -144
  676. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  677. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +79 -37
  678. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  679. package/dist/fields/Relationship/select-components/SingleValue/index.js +119 -40
  680. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  681. package/dist/fields/Relationship/types.js +1 -2
  682. package/dist/fields/Relationship/types.js.map +1 -1
  683. package/dist/fields/RichText/index.js +3 -3
  684. package/dist/fields/RichText/index.js.map +1 -1
  685. package/dist/fields/Row/index.js +36 -12
  686. package/dist/fields/Row/index.js.map +1 -1
  687. package/dist/fields/Row/provider.js +13 -6
  688. package/dist/fields/Row/provider.js.map +1 -1
  689. package/dist/fields/Select/Input.js +166 -36
  690. package/dist/fields/Select/Input.js.map +1 -1
  691. package/dist/fields/Select/index.js +108 -60
  692. package/dist/fields/Select/index.js.map +1 -1
  693. package/dist/fields/Slug/index.js +135 -59
  694. package/dist/fields/Slug/index.js.map +1 -1
  695. package/dist/fields/Tabs/Tab/index.js +60 -23
  696. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  697. package/dist/fields/Tabs/index.js +446 -160
  698. package/dist/fields/Tabs/index.js.map +1 -1
  699. package/dist/fields/Tabs/provider.js +13 -6
  700. package/dist/fields/Tabs/provider.js.map +1 -1
  701. package/dist/fields/Text/Input.js +189 -69
  702. package/dist/fields/Text/Input.js.map +1 -1
  703. package/dist/fields/Text/index.js +127 -78
  704. package/dist/fields/Text/index.js.map +1 -1
  705. package/dist/fields/Text/types.js +1 -2
  706. package/dist/fields/Text/types.js.map +1 -1
  707. package/dist/fields/Textarea/Input.js +116 -24
  708. package/dist/fields/Textarea/Input.js.map +1 -1
  709. package/dist/fields/Textarea/index.js +89 -37
  710. package/dist/fields/Textarea/index.js.map +1 -1
  711. package/dist/fields/Textarea/types.js +1 -2
  712. package/dist/fields/Textarea/types.js.map +1 -1
  713. package/dist/fields/UI/index.js +3 -3
  714. package/dist/fields/UI/index.js.map +1 -1
  715. package/dist/fields/Upload/HasMany/index.js +183 -73
  716. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  717. package/dist/fields/Upload/HasOne/index.js +61 -32
  718. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  719. package/dist/fields/Upload/Input.js +563 -565
  720. package/dist/fields/Upload/Input.js.map +1 -1
  721. package/dist/fields/Upload/RelationshipContent/index.js +143 -51
  722. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  723. package/dist/fields/Upload/UploadCard/index.js +11 -9
  724. package/dist/fields/Upload/UploadCard/index.js.map +1 -1
  725. package/dist/fields/Upload/index.js +96 -43
  726. package/dist/fields/Upload/index.js.map +1 -1
  727. package/dist/fields/Upload/types.js +1 -3
  728. package/dist/fields/Upload/types.js.map +1 -1
  729. package/dist/fields/index.js +31 -31
  730. package/dist/fields/index.js.map +1 -1
  731. package/dist/fields/mergeFieldStyles.js +12 -13
  732. package/dist/fields/mergeFieldStyles.js.map +1 -1
  733. package/dist/fields/shared/index.js +17 -8
  734. package/dist/fields/shared/index.js.map +1 -1
  735. package/dist/forms/Form/context.js +24 -17
  736. package/dist/forms/Form/context.js.map +1 -1
  737. package/dist/forms/Form/createNestedClientFieldPath.js +11 -11
  738. package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
  739. package/dist/forms/Form/errorMessages.js +2 -2
  740. package/dist/forms/Form/errorMessages.js.map +1 -1
  741. package/dist/forms/Form/fieldReducer.js +412 -378
  742. package/dist/forms/Form/fieldReducer.js.map +1 -1
  743. package/dist/forms/Form/index.js +684 -684
  744. package/dist/forms/Form/index.js.map +1 -1
  745. package/dist/forms/Form/initContextState.js +38 -38
  746. package/dist/forms/Form/initContextState.js.map +1 -1
  747. package/dist/forms/Form/mergeServerFormState.js +97 -93
  748. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  749. package/dist/forms/Form/reduceToSerializableFields.js +17 -20
  750. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  751. package/dist/forms/Form/rowHelpers.js +34 -27
  752. package/dist/forms/Form/rowHelpers.js.map +1 -1
  753. package/dist/forms/Form/rows.js +34 -34
  754. package/dist/forms/Form/rows.js.map +1 -1
  755. package/dist/forms/Form/types.js +1 -53
  756. package/dist/forms/Form/types.js.map +1 -1
  757. package/dist/forms/NullifyField/index.js +96 -44
  758. package/dist/forms/NullifyField/index.js.map +1 -1
  759. package/dist/forms/RenderFields/RenderField.js +260 -58
  760. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  761. package/dist/forms/RenderFields/context.js +9 -9
  762. package/dist/forms/RenderFields/context.js.map +1 -1
  763. package/dist/forms/RenderFields/index.js +117 -51
  764. package/dist/forms/RenderFields/index.js.map +1 -1
  765. package/dist/forms/RenderFields/types.js +1 -2
  766. package/dist/forms/RenderFields/types.js.map +1 -1
  767. package/dist/forms/RowLabel/Context/index.js +29 -22
  768. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  769. package/dist/forms/RowLabel/index.js +25 -13
  770. package/dist/forms/RowLabel/index.js.map +1 -1
  771. package/dist/forms/RowLabel/types.js +1 -2
  772. package/dist/forms/RowLabel/types.js.map +1 -1
  773. package/dist/forms/Submit/index.js +36 -16
  774. package/dist/forms/Submit/index.js.map +1 -1
  775. package/dist/forms/WatchChildErrors/buildPathSegments.js +29 -29
  776. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  777. package/dist/forms/WatchChildErrors/index.js +66 -41
  778. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  779. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +683 -654
  780. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  781. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +22 -14
  782. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  783. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +26 -17
  784. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  785. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +198 -186
  786. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  787. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +54 -61
  788. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
  789. package/dist/forms/fieldSchemasToFormState/index.js +79 -90
  790. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  791. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +16 -12
  792. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  793. package/dist/forms/fieldSchemasToFormState/iterateFields.js +116 -95
  794. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  795. package/dist/forms/fieldSchemasToFormState/renderField.js +274 -255
  796. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  797. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +75 -90
  798. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  799. package/dist/forms/fieldSchemasToFormState/types.js +1 -6
  800. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  801. package/dist/forms/useField/index.js +292 -180
  802. package/dist/forms/useField/index.js.map +1 -1
  803. package/dist/forms/useField/types.js +1 -20
  804. package/dist/forms/useField/types.js.map +1 -1
  805. package/dist/forms/withCondition/WatchCondition.js +27 -9
  806. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  807. package/dist/forms/withCondition/index.js +16 -9
  808. package/dist/forms/withCondition/index.js.map +1 -1
  809. package/dist/graphics/Account/Default/index.js +23 -9
  810. package/dist/graphics/Account/Default/index.js.map +1 -1
  811. package/dist/graphics/Account/Gravatar/index.js +35 -13
  812. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  813. package/dist/graphics/Account/index.js +52 -13
  814. package/dist/graphics/Account/index.js.map +1 -1
  815. package/dist/graphics/DefaultBlockImage/index.js +63 -19
  816. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  817. package/dist/graphics/File/index.js +18 -7
  818. package/dist/graphics/File/index.js.map +1 -1
  819. package/dist/graphics/Icon/index.js +20 -7
  820. package/dist/graphics/Icon/index.js.map +1 -1
  821. package/dist/graphics/Logo/index.js +40 -18
  822. package/dist/graphics/Logo/index.js.map +1 -1
  823. package/dist/hooks/useClickOutside.js +15 -19
  824. package/dist/hooks/useClickOutside.js.map +1 -1
  825. package/dist/hooks/useControllableState.js +35 -25
  826. package/dist/hooks/useControllableState.js.map +1 -1
  827. package/dist/hooks/useDebounce.js +26 -15
  828. package/dist/hooks/useDebounce.js.map +1 -1
  829. package/dist/hooks/useDebouncedCallback.js +23 -15
  830. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  831. package/dist/hooks/useDebouncedEffect.js +53 -18
  832. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  833. package/dist/hooks/useDelay.js +52 -27
  834. package/dist/hooks/useDelay.js.map +1 -1
  835. package/dist/hooks/useDelayedRender.js +76 -42
  836. package/dist/hooks/useDelayedRender.js.map +1 -1
  837. package/dist/hooks/useEffectEvent.js +33 -12
  838. package/dist/hooks/useEffectEvent.js.map +1 -1
  839. package/dist/hooks/useHotkey.js +110 -96
  840. package/dist/hooks/useHotkey.js.map +1 -1
  841. package/dist/hooks/useIntersect.js +59 -28
  842. package/dist/hooks/useIntersect.js.map +1 -1
  843. package/dist/hooks/usePayloadAPI.js +172 -78
  844. package/dist/hooks/usePayloadAPI.js.map +1 -1
  845. package/dist/hooks/usePopupWindow.js +133 -91
  846. package/dist/hooks/usePopupWindow.js.map +1 -1
  847. package/dist/hooks/useQueue.js +38 -48
  848. package/dist/hooks/useQueue.js.map +1 -1
  849. package/dist/hooks/useRelatedCollections.js +27 -15
  850. package/dist/hooks/useRelatedCollections.js.map +1 -1
  851. package/dist/hooks/useResize.js +70 -42
  852. package/dist/hooks/useResize.js.map +1 -1
  853. package/dist/hooks/useThrottledEffect.js +51 -17
  854. package/dist/hooks/useThrottledEffect.js.map +1 -1
  855. package/dist/hooks/useThrottledValue.js +13 -16
  856. package/dist/hooks/useThrottledValue.js.map +1 -1
  857. package/dist/hooks/useUseAsTitle.js +27 -7
  858. package/dist/hooks/useUseAsTitle.js.map +1 -1
  859. package/dist/icons/Calendar/index.js +12 -4
  860. package/dist/icons/Calendar/index.js.map +1 -1
  861. package/dist/icons/Check/index.js +12 -4
  862. package/dist/icons/Check/index.js.map +1 -1
  863. package/dist/icons/Chevron/index.js +23 -10
  864. package/dist/icons/Chevron/index.js.map +1 -1
  865. package/dist/icons/CloseMenu/index.js +12 -4
  866. package/dist/icons/CloseMenu/index.js.map +1 -1
  867. package/dist/icons/CodeBlock/index.js +14 -4
  868. package/dist/icons/CodeBlock/index.js.map +1 -1
  869. package/dist/icons/Copy/index.js +18 -4
  870. package/dist/icons/Copy/index.js.map +1 -1
  871. package/dist/icons/Document/index.js +17 -5
  872. package/dist/icons/Document/index.js.map +1 -1
  873. package/dist/icons/Dots/index.js +12 -11
  874. package/dist/icons/Dots/index.js.map +1 -1
  875. package/dist/icons/DragHandle/index.js +34 -12
  876. package/dist/icons/DragHandle/index.js.map +1 -1
  877. package/dist/icons/Edit/index.js +14 -7
  878. package/dist/icons/Edit/index.js.map +1 -1
  879. package/dist/icons/ExternalLink/index.js +16 -9
  880. package/dist/icons/ExternalLink/index.js.map +1 -1
  881. package/dist/icons/Eye/index.js +26 -13
  882. package/dist/icons/Eye/index.js.map +1 -1
  883. package/dist/icons/Folder/index.js +17 -8
  884. package/dist/icons/Folder/index.js.map +1 -1
  885. package/dist/icons/Gear/index.js +22 -9
  886. package/dist/icons/Gear/index.js.map +1 -1
  887. package/dist/icons/GridView/index.js +32 -8
  888. package/dist/icons/GridView/index.js.map +1 -1
  889. package/dist/icons/Line/index.js +15 -4
  890. package/dist/icons/Line/index.js.map +1 -1
  891. package/dist/icons/Link/index.js +17 -4
  892. package/dist/icons/Link/index.js.map +1 -1
  893. package/dist/icons/ListView/index.js +17 -5
  894. package/dist/icons/ListView/index.js.map +1 -1
  895. package/dist/icons/Lock/index.js +25 -8
  896. package/dist/icons/Lock/index.js.map +1 -1
  897. package/dist/icons/LogOut/index.js +15 -4
  898. package/dist/icons/LogOut/index.js.map +1 -1
  899. package/dist/icons/Menu/index.js +15 -4
  900. package/dist/icons/Menu/index.js.map +1 -1
  901. package/dist/icons/MinimizeMaximize/index.js +20 -10
  902. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  903. package/dist/icons/More/index.js +22 -9
  904. package/dist/icons/More/index.js.map +1 -1
  905. package/dist/icons/MoveFolder/index.js +35 -11
  906. package/dist/icons/MoveFolder/index.js.map +1 -1
  907. package/dist/icons/People/index.js +18 -8
  908. package/dist/icons/People/index.js.map +1 -1
  909. package/dist/icons/Plus/index.js +14 -4
  910. package/dist/icons/Plus/index.js.map +1 -1
  911. package/dist/icons/Search/index.js +13 -4
  912. package/dist/icons/Search/index.js.map +1 -1
  913. package/dist/icons/Sort/index.js +36 -7
  914. package/dist/icons/Sort/index.js.map +1 -1
  915. package/dist/icons/Swap/index.js +12 -4
  916. package/dist/icons/Swap/index.js.map +1 -1
  917. package/dist/icons/ThreeDots/index.js +9 -7
  918. package/dist/icons/ThreeDots/index.js.map +1 -1
  919. package/dist/icons/Trash/index.js +19 -8
  920. package/dist/icons/Trash/index.js.map +1 -1
  921. package/dist/icons/X/index.js +16 -7
  922. package/dist/icons/X/index.js.map +1 -1
  923. package/dist/providers/Actions/index.js +32 -14
  924. package/dist/providers/Actions/index.js.map +1 -1
  925. package/dist/providers/Auth/index.js +228 -276
  926. package/dist/providers/Auth/index.js.map +1 -1
  927. package/dist/providers/ClickOutside/index.js +36 -28
  928. package/dist/providers/ClickOutside/index.js.map +1 -1
  929. package/dist/providers/ClientFunction/index.js +103 -49
  930. package/dist/providers/ClientFunction/index.js.map +1 -1
  931. package/dist/providers/Config/index.js +92 -77
  932. package/dist/providers/Config/index.js.map +1 -1
  933. package/dist/providers/DocumentEvents/index.js +29 -10
  934. package/dist/providers/DocumentEvents/index.js.map +1 -1
  935. package/dist/providers/DocumentInfo/index.js +325 -310
  936. package/dist/providers/DocumentInfo/index.js.map +1 -1
  937. package/dist/providers/DocumentInfo/types.js +1 -26
  938. package/dist/providers/DocumentInfo/types.js.map +1 -1
  939. package/dist/providers/DocumentInfo/useGetDocPermissions.js +70 -72
  940. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  941. package/dist/providers/DocumentTitle/context.js.map +1 -1
  942. package/dist/providers/DocumentTitle/index.js +55 -43
  943. package/dist/providers/DocumentTitle/index.js.map +1 -1
  944. package/dist/providers/EditDepth/index.js +26 -8
  945. package/dist/providers/EditDepth/index.js.map +1 -1
  946. package/dist/providers/EntityVisibility/index.js +48 -20
  947. package/dist/providers/EntityVisibility/index.js.map +1 -1
  948. package/dist/providers/Folders/groupItemIDsByRelation.js +7 -8
  949. package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -1
  950. package/dist/providers/Folders/index.js +595 -688
  951. package/dist/providers/Folders/index.js.map +1 -1
  952. package/dist/providers/ListQuery/context.js +2 -3
  953. package/dist/providers/ListQuery/context.js.map +1 -1
  954. package/dist/providers/ListQuery/index.js +139 -142
  955. package/dist/providers/ListQuery/index.js.map +1 -1
  956. package/dist/providers/ListQuery/mergeQuery.js +31 -49
  957. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  958. package/dist/providers/ListQuery/sanitizeQuery.js +23 -24
  959. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  960. package/dist/providers/ListQuery/types.js +1 -6
  961. package/dist/providers/ListQuery/types.js.map +1 -1
  962. package/dist/providers/LivePreview/collisionDetection.js +24 -21
  963. package/dist/providers/LivePreview/collisionDetection.js.map +1 -1
  964. package/dist/providers/LivePreview/context.js +55 -60
  965. package/dist/providers/LivePreview/context.js.map +1 -1
  966. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  967. package/dist/providers/LivePreview/index.js +209 -214
  968. package/dist/providers/LivePreview/index.js.map +1 -1
  969. package/dist/providers/LivePreview/sizeReducer.js +18 -19
  970. package/dist/providers/LivePreview/sizeReducer.js.map +1 -1
  971. package/dist/providers/Locale/index.js +145 -74
  972. package/dist/providers/Locale/index.js.map +1 -1
  973. package/dist/providers/Operation/index.js +11 -4
  974. package/dist/providers/Operation/index.js.map +1 -1
  975. package/dist/providers/Params/index.js +27 -7
  976. package/dist/providers/Params/index.js.map +1 -1
  977. package/dist/providers/Preferences/index.js +115 -116
  978. package/dist/providers/Preferences/index.js.map +1 -1
  979. package/dist/providers/Root/index.d.ts.map +1 -1
  980. package/dist/providers/Root/index.js +116 -57
  981. package/dist/providers/Root/index.js.map +1 -1
  982. package/dist/providers/RouteCache/index.js +103 -45
  983. package/dist/providers/RouteCache/index.js.map +1 -1
  984. package/dist/providers/RouteTransition/ProgressBar/index.js +79 -46
  985. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  986. package/dist/providers/RouteTransition/index.js +87 -56
  987. package/dist/providers/RouteTransition/index.js.map +1 -1
  988. package/dist/providers/ScrollInfo/index.js +1 -1
  989. package/dist/providers/ScrollInfo/index.js.map +1 -1
  990. package/dist/providers/SearchParams/index.js +35 -28
  991. package/dist/providers/SearchParams/index.js.map +1 -1
  992. package/dist/providers/Selection/index.js +184 -196
  993. package/dist/providers/Selection/index.js.map +1 -1
  994. package/dist/providers/ServerFunctions/index.js +189 -193
  995. package/dist/providers/ServerFunctions/index.js.map +1 -1
  996. package/dist/providers/TableColumns/RenderDefaultCell/index.js +62 -21
  997. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  998. package/dist/providers/TableColumns/buildColumnState/filterFields.js +32 -32
  999. package/dist/providers/TableColumns/buildColumnState/filterFields.js.map +1 -1
  1000. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js +52 -50
  1001. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js.map +1 -1
  1002. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js +2 -3
  1003. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js.map +1 -1
  1004. package/dist/providers/TableColumns/buildColumnState/index.js +144 -121
  1005. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  1006. package/dist/providers/TableColumns/buildColumnState/isColumnActive.js +14 -10
  1007. package/dist/providers/TableColumns/buildColumnState/isColumnActive.js.map +1 -1
  1008. package/dist/providers/TableColumns/buildColumnState/renderCell.js +151 -133
  1009. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  1010. package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js +15 -16
  1011. package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js.map +1 -1
  1012. package/dist/providers/TableColumns/context.js +1 -2
  1013. package/dist/providers/TableColumns/context.js.map +1 -1
  1014. package/dist/providers/TableColumns/getInitialColumns.js +28 -42
  1015. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
  1016. package/dist/providers/TableColumns/index.js +85 -82
  1017. package/dist/providers/TableColumns/index.js.map +1 -1
  1018. package/dist/providers/TableColumns/types.js +1 -18
  1019. package/dist/providers/TableColumns/types.js.map +1 -1
  1020. package/dist/providers/Theme/index.js +102 -59
  1021. package/dist/providers/Theme/index.js.map +1 -1
  1022. package/dist/providers/ToastContainer/icons/Error.js +20 -6
  1023. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  1024. package/dist/providers/ToastContainer/icons/Info.js +20 -6
  1025. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  1026. package/dist/providers/ToastContainer/icons/Success.js +20 -6
  1027. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  1028. package/dist/providers/ToastContainer/icons/Warning.js +20 -6
  1029. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  1030. package/dist/providers/ToastContainer/index.js +48 -23
  1031. package/dist/providers/ToastContainer/index.js.map +1 -1
  1032. package/dist/providers/Translation/index.js +108 -56
  1033. package/dist/providers/Translation/index.js.map +1 -1
  1034. package/dist/providers/UploadControls/index.js +35 -17
  1035. package/dist/providers/UploadControls/index.js.map +1 -1
  1036. package/dist/providers/UploadEdits/index.js +69 -21
  1037. package/dist/providers/UploadEdits/index.js.map +1 -1
  1038. package/dist/providers/UploadHandlers/index.js +63 -20
  1039. package/dist/providers/UploadHandlers/index.js.map +1 -1
  1040. package/dist/providers/WindowInfo/index.js +9 -5
  1041. package/dist/providers/WindowInfo/index.js.map +1 -1
  1042. package/dist/styles.css +1 -0
  1043. package/dist/utilities/abortAndIgnore.js +17 -15
  1044. package/dist/utilities/abortAndIgnore.js.map +1 -1
  1045. package/dist/utilities/api.js +77 -78
  1046. package/dist/utilities/api.js.map +1 -1
  1047. package/dist/utilities/buildClientFieldSchemaMap/index.js +65 -61
  1048. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
  1049. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +154 -142
  1050. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  1051. package/dist/utilities/buildFieldSchemaMap/index.js +61 -59
  1052. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  1053. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +122 -110
  1054. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  1055. package/dist/utilities/buildFormState.js +186 -151
  1056. package/dist/utilities/buildFormState.js.map +1 -1
  1057. package/dist/utilities/buildTableState.js +168 -145
  1058. package/dist/utilities/buildTableState.js.map +1 -1
  1059. package/dist/utilities/canUseDOM.js +0 -1
  1060. package/dist/utilities/canUseDOM.js.map +1 -1
  1061. package/dist/utilities/combineFieldLabel.js +25 -14
  1062. package/dist/utilities/combineFieldLabel.js.map +1 -1
  1063. package/dist/utilities/copyDataFromLocale.js +210 -202
  1064. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  1065. package/dist/utilities/dateLocales.js +27 -28
  1066. package/dist/utilities/dateLocales.js.map +1 -1
  1067. package/dist/utilities/deepMerge.js +13 -14
  1068. package/dist/utilities/deepMerge.js.map +1 -1
  1069. package/dist/utilities/fetchPreferences.js.map +1 -1
  1070. package/dist/utilities/filterOutUploadFields.js +4 -17
  1071. package/dist/utilities/filterOutUploadFields.js.map +1 -1
  1072. package/dist/utilities/findLocaleFromCode.js +5 -6
  1073. package/dist/utilities/findLocaleFromCode.js.map +1 -1
  1074. package/dist/utilities/formatAbsoluteURL.js +8 -8
  1075. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  1076. package/dist/utilities/formatAdminURL.js +1 -2
  1077. package/dist/utilities/formatAdminURL.js.map +1 -1
  1078. package/dist/utilities/formatDocTitle/formatDateTitle.js +27 -20
  1079. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  1080. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +13 -14
  1081. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  1082. package/dist/utilities/formatDocTitle/formatRelationshipTitle.js +13 -14
  1083. package/dist/utilities/formatDocTitle/formatRelationshipTitle.js.map +1 -1
  1084. package/dist/utilities/formatDocTitle/index.js +44 -38
  1085. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  1086. package/dist/utilities/formatFields.js +1 -2
  1087. package/dist/utilities/formatFields.js.map +1 -1
  1088. package/dist/utilities/generateFieldID.js +5 -6
  1089. package/dist/utilities/generateFieldID.js.map +1 -1
  1090. package/dist/utilities/getClientConfig.js +29 -25
  1091. package/dist/utilities/getClientConfig.js.map +1 -1
  1092. package/dist/utilities/getClientSchemaMap.js +32 -24
  1093. package/dist/utilities/getClientSchemaMap.js.map +1 -1
  1094. package/dist/utilities/getColumns.js +35 -29
  1095. package/dist/utilities/getColumns.js.map +1 -1
  1096. package/dist/utilities/getDisplayedFieldValue.js +16 -16
  1097. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  1098. package/dist/utilities/getFolderResultsComponentAndData.js +121 -105
  1099. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  1100. package/dist/utilities/getOffsetTop.js +13 -14
  1101. package/dist/utilities/getOffsetTop.js.map +1 -1
  1102. package/dist/utilities/getRequestLanguage.js +8 -5
  1103. package/dist/utilities/getRequestLanguage.js.map +1 -1
  1104. package/dist/utilities/getSchemaMap.js +28 -22
  1105. package/dist/utilities/getSchemaMap.js.map +1 -1
  1106. package/dist/utilities/getSupportedMonacoLocale.js +13 -14
  1107. package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
  1108. package/dist/utilities/groupNavItems.js +49 -53
  1109. package/dist/utilities/groupNavItems.js.map +1 -1
  1110. package/dist/utilities/handleBackToDashboard.js +9 -7
  1111. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  1112. package/dist/utilities/handleFormStateLocking.js +121 -127
  1113. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  1114. package/dist/utilities/handleGoBack.js +10 -7
  1115. package/dist/utilities/handleGoBack.js.map +1 -1
  1116. package/dist/utilities/handleLivePreview.js +76 -59
  1117. package/dist/utilities/handleLivePreview.js.map +1 -1
  1118. package/dist/utilities/handlePreview.js +52 -41
  1119. package/dist/utilities/handlePreview.js.map +1 -1
  1120. package/dist/utilities/handleTakeOver.js +39 -28
  1121. package/dist/utilities/handleTakeOver.js.map +1 -1
  1122. package/dist/utilities/hasOptionLabelJSXElement.js +11 -9
  1123. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -1
  1124. package/dist/utilities/hasSavePermission.js +14 -14
  1125. package/dist/utilities/hasSavePermission.js.map +1 -1
  1126. package/dist/utilities/isClientUserObject.js +2 -3
  1127. package/dist/utilities/isClientUserObject.js.map +1 -1
  1128. package/dist/utilities/isEditing.js +5 -2
  1129. package/dist/utilities/isEditing.js.map +1 -1
  1130. package/dist/utilities/isURLAllowed.js +30 -31
  1131. package/dist/utilities/isURLAllowed.js.map +1 -1
  1132. package/dist/utilities/isValidReactElement.js +3 -3
  1133. package/dist/utilities/isValidReactElement.js.map +1 -1
  1134. package/dist/utilities/normalizeRelationshipValue.js +28 -29
  1135. package/dist/utilities/normalizeRelationshipValue.js.map +1 -1
  1136. package/dist/utilities/normalizeRelationshipValue.spec.js +368 -407
  1137. package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
  1138. package/dist/utilities/parseSearchParams.js +7 -7
  1139. package/dist/utilities/parseSearchParams.js.map +1 -1
  1140. package/dist/utilities/reduceFieldsToOptions.js +154 -145
  1141. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  1142. package/dist/utilities/reduceFieldsToValuesWithValidation.js +20 -20
  1143. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  1144. package/dist/utilities/removeUndefined.js +1 -2
  1145. package/dist/utilities/removeUndefined.js.map +1 -1
  1146. package/dist/utilities/renderTable.js +196 -150
  1147. package/dist/utilities/renderTable.js.map +1 -1
  1148. package/dist/utilities/resolveFilterOptions.js +26 -27
  1149. package/dist/utilities/resolveFilterOptions.js.map +1 -1
  1150. package/dist/utilities/sanitizeFilterOptionsQuery.js +15 -16
  1151. package/dist/utilities/sanitizeFilterOptionsQuery.js.map +1 -1
  1152. package/dist/utilities/sanitizeID.js +7 -8
  1153. package/dist/utilities/sanitizeID.js.map +1 -1
  1154. package/dist/utilities/schedulePublishHandler.js +57 -47
  1155. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  1156. package/dist/utilities/scrollToID.js +9 -10
  1157. package/dist/utilities/scrollToID.js.map +1 -1
  1158. package/dist/utilities/setsAreEqual.js +2 -3
  1159. package/dist/utilities/setsAreEqual.js.map +1 -1
  1160. package/dist/utilities/traverseForLocalizedFields.js +35 -36
  1161. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  1162. package/dist/utilities/upsertPreferences.js +75 -75
  1163. package/dist/utilities/upsertPreferences.js.map +1 -1
  1164. package/dist/views/BrowseByFolder/index.js +323 -165
  1165. package/dist/views/BrowseByFolder/index.js.map +1 -1
  1166. package/dist/views/CollectionFolder/ListSelection/index.js +153 -70
  1167. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  1168. package/dist/views/CollectionFolder/index.js +282 -175
  1169. package/dist/views/CollectionFolder/index.js.map +1 -1
  1170. package/dist/views/Edit/Auth/APIKey.js +124 -105
  1171. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  1172. package/dist/views/Edit/Auth/index.js +318 -188
  1173. package/dist/views/Edit/Auth/index.js.map +1 -1
  1174. package/dist/views/Edit/Auth/types.js +1 -2
  1175. package/dist/views/Edit/Auth/types.js.map +1 -1
  1176. package/dist/views/Edit/SetDocumentStepNav/index.js +130 -83
  1177. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  1178. package/dist/views/Edit/SetDocumentTitle/index.js +77 -30
  1179. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  1180. package/dist/views/Edit/index.js +471 -362
  1181. package/dist/views/Edit/index.js.map +1 -1
  1182. package/dist/views/Edit/types.js +1 -2
  1183. package/dist/views/Edit/types.js.map +1 -1
  1184. package/dist/views/List/GroupByHeader/index.js +23 -10
  1185. package/dist/views/List/GroupByHeader/index.js.map +1 -1
  1186. package/dist/views/List/ListHeader/index.js +81 -31
  1187. package/dist/views/List/ListHeader/index.js.map +1 -1
  1188. package/dist/views/List/ListSelection/index.js +112 -31
  1189. package/dist/views/List/ListSelection/index.js.map +1 -1
  1190. package/dist/views/List/index.js +212 -135
  1191. package/dist/views/List/index.js.map +1 -1
  1192. package/dist/views/List/types.js +1 -2
  1193. package/dist/views/List/types.js.map +1 -1
  1194. package/package.json +10 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/Folders/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug, FolderSortKeys } from 'payload'\nimport type { FolderBreadcrumb, FolderDocumentItemKey, FolderOrDocument } from 'payload/shared'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { extractID, formatAdminURL, formatFolderOrDocumentItem } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDrawerDepth } from '../../elements/Drawer/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { groupItemIDsByRelation } from './groupItemIDsByRelation.js'\n\ntype FolderQueryParams = {\n page?: string\n relationTo?: CollectionSlug[]\n search?: string\n sort?: string\n}\n\nexport type FileCardData = {\n filename: string\n id: number | string\n mimeType: string\n name: string\n url: string\n}\n\nexport type FolderContextValue = {\n /**\n * The collection slugs that a view can be filtered by\n * Used in the browse-by-folder view\n */\n activeCollectionFolderSlugs: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs?: CollectionSlug[]\n allowCreateCollectionSlugs: CollectionSlug[]\n breadcrumbs?: FolderBreadcrumb[]\n checkIfItemIsDisabled: (item: FolderOrDocument) => boolean\n clearSelections: () => void\n currentFolder?: FolderOrDocument | null\n documents?: FolderOrDocument[]\n dragOverlayItem?: FolderOrDocument | undefined\n focusedRowIndex: number\n folderCollectionConfig: ClientCollectionConfig\n folderCollectionSlug: string\n folderFieldName: string\n folderID?: number | string\n FolderResultsComponent: React.ReactNode\n folderType: CollectionSlug[] | undefined\n getFolderRoute: (toFolderID?: number | string) => string\n getSelectedItems?: () => FolderOrDocument[]\n isDragging: boolean\n itemKeysToMove?: Set<FolderDocumentItemKey>\n moveToFolder: (args: {\n itemsToMove: FolderOrDocument[]\n toFolderID?: number | string\n }) => Promise<void>\n onItemClick: (args: { event: React.MouseEvent; index: number; item: FolderOrDocument }) => void\n onItemKeyPress: (args: {\n event: React.KeyboardEvent\n index: number\n item: FolderOrDocument\n }) => void\n refineFolderData: (args: { query?: FolderQueryParams; updateURL: boolean }) => void\n search: string\n selectedFolderCollections?: CollectionSlug[]\n readonly selectedItemKeys: Set<FolderDocumentItemKey>\n setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>\n setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>\n setIsDragging: React.Dispatch<React.SetStateAction<boolean>>\n sort: FolderSortKeys\n subfolders?: FolderOrDocument[]\n}\n\nconst Context = React.createContext<FolderContextValue>({\n activeCollectionFolderSlugs: [],\n allCollectionFolderSlugs: [],\n allowCreateCollectionSlugs: [],\n breadcrumbs: [],\n checkIfItemIsDisabled: () => false,\n clearSelections: () => {},\n currentFolder: null,\n documents: [],\n dragOverlayItem: undefined,\n focusedRowIndex: -1,\n folderCollectionConfig: null,\n folderCollectionSlug: '',\n folderFieldName: 'folder',\n folderID: undefined,\n FolderResultsComponent: null,\n folderType: undefined,\n getFolderRoute: () => '',\n getSelectedItems: () => [],\n isDragging: false,\n itemKeysToMove: undefined,\n moveToFolder: () => Promise.resolve(undefined),\n onItemClick: () => undefined,\n onItemKeyPress: () => undefined,\n refineFolderData: () => undefined,\n search: '',\n selectedFolderCollections: undefined,\n selectedItemKeys: new Set<FolderDocumentItemKey>(),\n setBreadcrumbs: () => {},\n setFocusedRowIndex: () => -1,\n setIsDragging: () => false,\n sort: 'name',\n subfolders: [],\n})\n\nexport type FolderProviderProps = {\n /**\n * The collection slugs that are being viewed\n */\n readonly activeCollectionFolderSlugs?: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs: CollectionSlug[]\n /**\n * Array of slugs that can be created in the folder view\n */\n readonly allowCreateCollectionSlugs: CollectionSlug[]\n readonly allowMultiSelection?: boolean\n /**\n * The base folder route path\n *\n * @example\n * `/collections/:collectionSlug/:folderCollectionSlug`\n * or\n * `/browse-by-folder`\n */\n readonly baseFolderPath?: `/${string}`\n /**\n * Breadcrumbs for the current folder\n */\n readonly breadcrumbs?: FolderBreadcrumb[]\n /**\n * Children to render inside the provider\n */\n readonly children: React.ReactNode\n /**\n * All documents in the current folder\n */\n readonly documents: FolderOrDocument[]\n /**\n * The name of the field that contains the folder relation\n */\n readonly folderFieldName: string\n /**\n * The ID of the current folder\n */\n readonly folderID?: number | string\n /**\n * The component to render the folder results\n */\n readonly FolderResultsComponent: React.ReactNode\n /**\n * Optional function to call when an item is clicked\n */\n readonly onItemClick?: (itme: FolderOrDocument) => void\n /**\n * The intial search query\n */\n readonly search?: string\n /**\n * The sort order of the documents\n *\n * @example\n * `name` for descending\n * `-name` for ascending\n */\n readonly sort?: FolderSortKeys\n /**\n * All subfolders in the current folder\n */\n readonly subfolders: FolderOrDocument[]\n}\nexport function FolderProvider({\n activeCollectionFolderSlugs: activeCollectionSlugs,\n allCollectionFolderSlugs = [],\n allowCreateCollectionSlugs,\n allowMultiSelection = true,\n baseFolderPath,\n breadcrumbs: _breadcrumbsFromProps = [],\n children,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent: InitialFolderResultsComponent,\n onItemClick: onItemClickFromProps,\n search,\n sort = 'name',\n subfolders,\n}: FolderProviderProps) {\n const parentFolderContext = useFolder()\n const { config } = useConfig()\n const { routes, serverURL } = config\n const drawerDepth = useDrawerDepth()\n const { t } = useTranslation()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const locale = useLocale()\n const localeCode = locale ? locale.code : undefined\n\n const currentlySelectedIndexes = React.useRef(new Set<number>())\n\n const [selectedFolderCollections, setSelectedFolderCollections] = React.useState<\n CollectionSlug[]\n >([])\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState(\n InitialFolderResultsComponent || (() => null),\n )\n const [folderCollectionConfig] = React.useState(() =>\n config.collections.find(\n (collection) => config.folders && collection.slug === config.folders.slug,\n ),\n )\n const folderCollectionSlug = folderCollectionConfig.slug\n\n const rawSearchParams = useSearchParams()\n const searchParams = React.useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n const [currentQuery, setCurrentQuery] = React.useState<FolderQueryParams>(searchParams)\n\n const [isDragging, setIsDragging] = React.useState(false)\n const [selectedItemKeys, setSelectedItemKeys] = React.useState<Set<FolderDocumentItemKey>>(\n () => new Set(),\n )\n const [focusedRowIndex, setFocusedRowIndex] = React.useState(-1)\n // This is used to determine what data to display on the drag overlay\n const [dragOverlayItem, setDragOverlayItem] = React.useState<FolderOrDocument | undefined>()\n const [breadcrumbs, setBreadcrumbs] =\n React.useState<FolderContextValue['breadcrumbs']>(_breadcrumbsFromProps)\n const lastClickTime = React.useRef<null | number>(null)\n const totalCount = subfolders.length + documents.length\n\n const clearSelections = React.useCallback(() => {\n setFocusedRowIndex(-1)\n setSelectedItemKeys(new Set())\n setDragOverlayItem(undefined)\n currentlySelectedIndexes.current = new Set()\n }, [])\n\n const mergeQuery = React.useCallback(\n (newQuery: Partial<FolderQueryParams> = {}): Partial<FolderQueryParams> => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n if ('search' in newQuery) {\n page = '1'\n }\n\n const mergedQuery = {\n ...currentQuery,\n ...newQuery,\n locale: localeCode,\n page,\n relationTo: 'relationTo' in newQuery ? newQuery.relationTo : currentQuery?.relationTo,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort: 'sort' in newQuery ? newQuery.sort : (currentQuery?.sort ?? undefined),\n }\n\n return mergedQuery\n },\n [currentQuery, localeCode],\n )\n\n const refineFolderData: FolderContextValue['refineFolderData'] = React.useCallback(\n ({ query, updateURL }) => {\n if (updateURL) {\n const queryParams = mergeQuery(query)\n\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify({ ...queryParams, relationTo: JSON.stringify(queryParams.relationTo) }, { addQueryPrefix: true })}`,\n ),\n )\n\n setCurrentQuery(queryParams)\n }\n },\n [mergeQuery, router, startRouteTransition],\n )\n\n const getFolderRoute: FolderContextValue['getFolderRoute'] = React.useCallback(\n (toFolderID) => {\n const queryParams = qs.stringify(mergeQuery({ page: '1', search: '' }), {\n addQueryPrefix: true,\n })\n return formatAdminURL({\n adminRoute: config.routes.admin,\n path: `${baseFolderPath}${toFolderID ? `/${toFolderID}` : ''}${queryParams}`,\n serverURL: config.serverURL,\n })\n },\n [baseFolderPath, config.routes.admin, config.serverURL, mergeQuery],\n )\n\n const getItem = React.useCallback(\n (itemKey: FolderDocumentItemKey) => {\n return [...subfolders, ...documents].find((doc) => doc.itemKey === itemKey)\n },\n [documents, subfolders],\n )\n\n const getSelectedItems = React.useCallback(() => {\n return Array.from(selectedItemKeys).reduce((acc, itemKey) => {\n const item = getItem(itemKey)\n if (item) {\n acc.push(item)\n }\n return acc\n }, [])\n }, [selectedItemKeys, getItem])\n\n const navigateAfterSelection = React.useCallback(\n ({ collectionSlug, docID }: { collectionSlug: string; docID?: number | string }) => {\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n if (collectionSlug === folderCollectionSlug) {\n // clicked on folder, take the user to the folder view\n startRouteTransition(() => {\n router.push(getFolderRoute(docID))\n clearSelections()\n })\n } else if (collectionSlug) {\n // clicked on document, take the user to the documet view\n startRouteTransition(() => {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${docID}`,\n }),\n )\n clearSelections()\n })\n }\n } else {\n clearSelections()\n }\n\n if (typeof onItemClickFromProps === 'function') {\n onItemClickFromProps(getItem(`${collectionSlug}-${docID}`))\n }\n },\n [\n clearSelections,\n config.routes.admin,\n drawerDepth,\n folderCollectionSlug,\n getFolderRoute,\n getItem,\n onItemClickFromProps,\n router,\n startRouteTransition,\n ],\n )\n\n const handleShiftSelection = React.useCallback(\n (targetIndex: number) => {\n const allItems = [...subfolders, ...documents]\n\n // Find existing selection boundaries\n const existingIndexes = allItems.reduce((acc, item, idx) => {\n if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n if (existingIndexes.length === 0) {\n // No existing selection, just select target\n return [targetIndex]\n }\n\n const firstSelectedIndex = Math.min(...existingIndexes)\n const lastSelectedIndex = Math.max(...existingIndexes)\n const isWithinBounds = targetIndex >= firstSelectedIndex && targetIndex <= lastSelectedIndex\n\n // Choose anchor based on whether we're contracting or extending\n let anchorIndex = targetIndex\n if (isWithinBounds) {\n // Contracting: if target is at a boundary, use target as anchor\n // Otherwise, use furthest boundary to maintain opposite edge\n if (targetIndex === firstSelectedIndex || targetIndex === lastSelectedIndex) {\n anchorIndex = targetIndex\n } else {\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst >= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n } else {\n // Extending: use closest boundary\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst <= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n\n // Create range from anchor to target\n const startIndex = Math.min(anchorIndex, targetIndex)\n const endIndex = Math.max(anchorIndex, targetIndex)\n const newRangeIndexes = Array.from(\n { length: endIndex - startIndex + 1 },\n (_, i) => startIndex + i,\n )\n\n if (isWithinBounds) {\n // Contracting: replace with new range\n return newRangeIndexes\n } else {\n // Extending: union with existing\n return [...new Set([...existingIndexes, ...newRangeIndexes])]\n }\n },\n [subfolders, documents, selectedItemKeys],\n )\n\n const updateSelections = React.useCallback(\n ({ indexes }: { indexes: number[] }) => {\n const allItems = [...subfolders, ...documents]\n const { newSelectedFolderCollections, newSelectedItemKeys } = allItems.reduce(\n (acc, item, index) => {\n if (indexes.includes(index)) {\n acc.newSelectedItemKeys.add(item.itemKey)\n if (item.relationTo === folderCollectionSlug) {\n item.value.folderType?.forEach((collectionSlug) => {\n if (!acc.newSelectedFolderCollections.includes(collectionSlug)) {\n acc.newSelectedFolderCollections.push(collectionSlug)\n }\n })\n } else {\n if (!acc.newSelectedFolderCollections.includes(item.relationTo)) {\n acc.newSelectedFolderCollections.push(item.relationTo)\n }\n }\n }\n return acc\n },\n {\n newSelectedFolderCollections: [] satisfies CollectionSlug[],\n newSelectedItemKeys: new Set<FolderDocumentItemKey>(),\n },\n )\n\n setSelectedFolderCollections(newSelectedFolderCollections)\n setSelectedItemKeys(newSelectedItemKeys)\n },\n [documents, folderCollectionSlug, subfolders],\n )\n\n const onItemKeyPress: FolderContextValue['onItemKeyPress'] = React.useCallback(\n ({ event, item: currentItem }) => {\n const { code, ctrlKey, metaKey, shiftKey } = event\n const isShiftPressed = shiftKey\n const isCtrlPressed = ctrlKey || metaKey\n const isCurrentlySelected = selectedItemKeys.has(currentItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === currentItem.itemKey)\n\n switch (code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp': {\n event.preventDefault()\n\n if (currentItemIndex === -1) {\n break\n }\n\n const isBackward = code === 'ArrowLeft' || code === 'ArrowUp'\n const newItemIndex = isBackward ? currentItemIndex - 1 : currentItemIndex + 1\n\n if (newItemIndex < 0 || newItemIndex > totalCount - 1) {\n // out of bounds, keep current selection\n return\n }\n\n setFocusedRowIndex(newItemIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (isShiftPressed && allowMultiSelection) {\n const selectedIndexes = handleShiftSelection(newItemIndex)\n updateSelections({ indexes: selectedIndexes })\n return\n }\n\n // Single selection without shift\n if (!isShiftPressed) {\n const newItem = allItems[newItemIndex]\n setSelectedItemKeys(new Set([newItem.itemKey]))\n }\n\n break\n }\n case 'Enter': {\n if (selectedItemKeys.size === 1) {\n setFocusedRowIndex(undefined)\n navigateAfterSelection({\n collectionSlug: currentItem.relationTo,\n docID: extractID(currentItem.value),\n })\n return\n }\n break\n }\n case 'Escape': {\n clearSelections()\n break\n }\n case 'KeyA': {\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n setFocusedRowIndex(totalCount - 1)\n updateSelections({\n indexes: Array.from({ length: totalCount }, (_, i) => i),\n })\n }\n break\n }\n case 'Space': {\n if (allowMultiSelection && isShiftPressed) {\n event.preventDefault()\n const allItems = [...subfolders, ...documents]\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === currentItem.itemKey) {\n if (isCurrentlySelected) {\n return acc\n } else {\n acc.push(idx)\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n } else {\n event.preventDefault()\n updateSelections({\n indexes: isCurrentlySelected ? [] : [currentItemIndex],\n })\n }\n break\n }\n case 'Tab': {\n if (allowMultiSelection && isShiftPressed) {\n const prevIndex = currentItemIndex - 1\n if (prevIndex < 0 && selectedItemKeys?.size > 0) {\n setFocusedRowIndex(prevIndex)\n }\n } else {\n const nextIndex = currentItemIndex + 1\n if (nextIndex === totalCount && selectedItemKeys.size > 0) {\n setFocusedRowIndex(totalCount - 1)\n }\n }\n break\n }\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n handleShiftSelection,\n updateSelections,\n navigateAfterSelection,\n clearSelections,\n totalCount,\n ],\n )\n\n const onItemClick: FolderContextValue['onItemClick'] = React.useCallback(\n ({ event, item: clickedItem }) => {\n let doubleClicked: boolean = false\n const isCtrlPressed = event.ctrlKey || event.metaKey\n const isShiftPressed = event.shiftKey\n const isCurrentlySelected = selectedItemKeys.has(clickedItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === clickedItem.itemKey)\n\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n let overlayItemKey: FolderDocumentItemKey | undefined\n const indexes = allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n if (isCurrentlySelected && event.type !== 'pointermove') {\n return acc\n } else {\n acc.push(idx)\n overlayItemKey = item.itemKey\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n updateSelections({ indexes })\n\n if (overlayItemKey) {\n setDragOverlayItem(getItem(overlayItemKey))\n }\n } else if (allowMultiSelection && isShiftPressed) {\n if (currentItemIndex !== -1) {\n const selectedIndexes = handleShiftSelection(currentItemIndex)\n updateSelections({ indexes: selectedIndexes })\n }\n } else if (allowMultiSelection && event.type === 'pointermove') {\n // on drag start of an unselected item\n if (!isCurrentlySelected) {\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n } else {\n // Normal click - select single item\n const now = Date.now()\n doubleClicked =\n now - lastClickTime.current < 400 && dragOverlayItem?.itemKey === clickedItem.itemKey\n lastClickTime.current = now\n if (!doubleClicked) {\n updateSelections({\n indexes: isCurrentlySelected && selectedItemKeys.size === 1 ? [] : [currentItemIndex],\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n }\n\n if (doubleClicked) {\n navigateAfterSelection({\n collectionSlug: clickedItem.relationTo,\n docID: extractID(clickedItem.value),\n })\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n dragOverlayItem,\n getItem,\n updateSelections,\n navigateAfterSelection,\n handleShiftSelection,\n ],\n )\n\n /**\n * Makes requests to the server to update the folder field on passed in documents\n *\n * Might rewrite this in the future to return the promises so errors can be handled contextually\n */\n const moveToFolder: FolderContextValue['moveToFolder'] = React.useCallback(\n async (args) => {\n const { itemsToMove: items, toFolderID } = args\n if (!items.length) {\n return\n }\n\n const movingCurrentFolder =\n items.length === 1 &&\n items[0].relationTo === folderCollectionSlug &&\n items[0].value.id === folderID\n\n if (movingCurrentFolder) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n },\n {\n addQueryPrefix: true,\n },\n )\n const req = await fetch(\n `${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}${queryParams}`,\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n if (req.status !== 200) {\n toast.error(t('general:error'))\n }\n } else {\n for (const [collectionSlug, ids] of Object.entries(groupItemIDsByRelation(items))) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n limit: 0,\n locale: localeCode,\n where: {\n id: {\n in: ids,\n },\n },\n },\n {\n addQueryPrefix: true,\n },\n )\n try {\n await fetch(`${serverURL}${routes.api}/${collectionSlug}${queryParams}`, {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n })\n } catch (error) {\n toast.error(t('general:error'))\n // eslint-disable-next-line no-console\n console.error(error)\n continue\n }\n }\n }\n\n clearSelections()\n },\n [\n folderID,\n clearSelections,\n folderCollectionSlug,\n folderFieldName,\n routes.api,\n serverURL,\n t,\n localeCode,\n ],\n )\n\n const checkIfItemIsDisabled: FolderContextValue['checkIfItemIsDisabled'] = React.useCallback(\n (item) => {\n function folderAcceptsItem({\n item,\n selectedFolderCollections,\n }: {\n item: FolderOrDocument\n selectedFolderCollections: string[]\n }): boolean {\n if (\n !item.value.folderType ||\n (Array.isArray(item.value.folderType) && item.value.folderType.length === 0)\n ) {\n // Enable folder that accept all collections\n return false\n }\n\n if (selectedFolderCollections.length === 0) {\n // If no collections are selected, enable folders that accept all collections\n return Boolean(item.value.folderType || item.value.folderType.length > 0)\n }\n\n // Disable folders that do not accept all of the selected collections\n return selectedFolderCollections.some((slug) => {\n return !item.value.folderType.includes(slug)\n })\n }\n\n if (isDragging) {\n const isSelected = selectedItemKeys.has(item.itemKey)\n if (isSelected) {\n return true\n } else if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({ item, selectedFolderCollections })\n } else {\n // Non folder items are disabled on drag\n return true\n }\n } else if (parentFolderContext?.selectedItemKeys?.size) {\n // Disable selected items from being navigated to in move to drawer\n if (parentFolderContext.selectedItemKeys.has(item.itemKey)) {\n return true\n }\n // Moving items to folder\n if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({\n item,\n selectedFolderCollections: parentFolderContext.selectedFolderCollections,\n })\n }\n // If the item is not a folder, it is disabled on move\n return true\n }\n },\n [\n selectedFolderCollections,\n isDragging,\n selectedItemKeys,\n folderCollectionSlug,\n parentFolderContext?.selectedFolderCollections,\n parentFolderContext?.selectedItemKeys,\n ],\n )\n\n // If a new component is provided, update the state so children can re-render with the new component\n React.useEffect(() => {\n if (InitialFolderResultsComponent) {\n setFolderResultsComponent(InitialFolderResultsComponent)\n }\n }, [InitialFolderResultsComponent])\n\n return (\n <Context\n value={{\n activeCollectionFolderSlugs: activeCollectionSlugs || allCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n checkIfItemIsDisabled,\n clearSelections,\n currentFolder:\n breadcrumbs?.[breadcrumbs.length - 1]?.id !== undefined\n ? formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: false,\n relationTo: folderCollectionSlug,\n useAsTitle: folderCollectionConfig.admin.useAsTitle,\n value: breadcrumbs[breadcrumbs.length - 1],\n })\n : null,\n documents,\n dragOverlayItem,\n focusedRowIndex,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n folderType: breadcrumbs?.[breadcrumbs.length - 1]?.folderType,\n getFolderRoute,\n getSelectedItems,\n isDragging,\n itemKeysToMove: parentFolderContext.selectedItemKeys,\n moveToFolder,\n onItemClick,\n onItemKeyPress,\n refineFolderData,\n search,\n selectedFolderCollections,\n selectedItemKeys,\n setBreadcrumbs,\n setFocusedRowIndex,\n setIsDragging,\n sort,\n subfolders,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport function useFolder(): FolderContextValue {\n const context = React.use(Context)\n\n if (context === undefined) {\n throw new Error('useFolder must be used within a FolderProvider')\n }\n\n return context\n}\n"],"names":["useRouter","useSearchParams","extractID","formatAdminURL","formatFolderOrDocumentItem","qs","React","toast","useDrawerDepth","parseSearchParams","useConfig","useLocale","useRouteTransition","useTranslation","groupItemIDsByRelation","Context","createContext","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","breadcrumbs","checkIfItemIsDisabled","clearSelections","currentFolder","documents","dragOverlayItem","undefined","focusedRowIndex","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","FolderResultsComponent","folderType","getFolderRoute","getSelectedItems","isDragging","itemKeysToMove","moveToFolder","Promise","resolve","onItemClick","onItemKeyPress","refineFolderData","search","selectedFolderCollections","selectedItemKeys","Set","setBreadcrumbs","setFocusedRowIndex","setIsDragging","sort","subfolders","FolderProvider","activeCollectionSlugs","allowMultiSelection","baseFolderPath","_breadcrumbsFromProps","children","InitialFolderResultsComponent","onItemClickFromProps","parentFolderContext","useFolder","config","routes","serverURL","drawerDepth","t","router","startRouteTransition","locale","localeCode","code","currentlySelectedIndexes","useRef","setSelectedFolderCollections","useState","setFolderResultsComponent","collections","find","collection","folders","slug","rawSearchParams","searchParams","useMemo","currentQuery","setCurrentQuery","setSelectedItemKeys","setDragOverlayItem","lastClickTime","totalCount","length","useCallback","current","mergeQuery","newQuery","page","mergedQuery","relationTo","query","updateURL","queryParams","replace","stringify","JSON","addQueryPrefix","toFolderID","adminRoute","admin","path","getItem","itemKey","doc","Array","from","reduce","acc","item","push","navigateAfterSelection","collectionSlug","docID","handleShiftSelection","targetIndex","allItems","existingIndexes","idx","has","firstSelectedIndex","Math","min","lastSelectedIndex","max","isWithinBounds","anchorIndex","distanceToFirst","abs","distanceToLast","startIndex","endIndex","newRangeIndexes","_","i","updateSelections","indexes","newSelectedFolderCollections","newSelectedItemKeys","index","includes","add","value","forEach","event","currentItem","ctrlKey","metaKey","shiftKey","isShiftPressed","isCtrlPressed","isCurrentlySelected","currentItemIndex","findIndex","preventDefault","isBackward","newItemIndex","selectedIndexes","newItem","size","prevIndex","nextIndex","clickedItem","doubleClicked","overlayItemKey","type","now","Date","args","itemsToMove","items","movingCurrentFolder","id","depth","req","fetch","api","body","credentials","headers","method","status","error","ids","Object","entries","limit","where","in","console","folderAcceptsItem","isArray","Boolean","some","isSelected","useEffect","isUpload","useAsTitle","context","use","Error"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","extractID","formatAdminURL","formatFolderOrDocumentItem","qs","React","toast","useDrawerDepth","parseSearchParams","useConfig","useLocale","useRouteTransition","useTranslation","groupItemIDsByRelation","Context","createContext","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","breadcrumbs","checkIfItemIsDisabled","clearSelections","currentFolder","documents","dragOverlayItem","undefined","focusedRowIndex","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","FolderResultsComponent","folderType","getFolderRoute","getSelectedItems","isDragging","itemKeysToMove","moveToFolder","Promise","resolve","onItemClick","onItemKeyPress","refineFolderData","search","selectedFolderCollections","selectedItemKeys","Set","setBreadcrumbs","setFocusedRowIndex","setIsDragging","sort","subfolders","FolderProvider","activeCollectionSlugs","allowMultiSelection","baseFolderPath","_breadcrumbsFromProps","children","InitialFolderResultsComponent","onItemClickFromProps","parentFolderContext","useFolder","config","routes","serverURL","drawerDepth","t","router","startRouteTransition","locale","localeCode","code","currentlySelectedIndexes","useRef","setSelectedFolderCollections","useState","setFolderResultsComponent","collections","find","collection","folders","slug","rawSearchParams","searchParams","useMemo","currentQuery","setCurrentQuery","setSelectedItemKeys","setDragOverlayItem","lastClickTime","totalCount","length","useCallback","current","mergeQuery","newQuery","page","mergedQuery","relationTo","query","updateURL","queryParams","replace","stringify","JSON","addQueryPrefix","toFolderID","adminRoute","admin","path","getItem","itemKey","doc","Array","from","reduce","acc","item","push","navigateAfterSelection","collectionSlug","docID","handleShiftSelection","targetIndex","allItems","existingIndexes","idx","has","firstSelectedIndex","Math","min","lastSelectedIndex","max","isWithinBounds","anchorIndex","distanceToFirst","abs","distanceToLast","startIndex","endIndex","newRangeIndexes","_","i","updateSelections","indexes","newSelectedFolderCollections","newSelectedItemKeys","index","includes","add","value","forEach","event","currentItem","ctrlKey","metaKey","shiftKey","isShiftPressed","isCtrlPressed","isCurrentlySelected","currentItemIndex","findIndex","preventDefault","isBackward","newItemIndex","selectedIndexes","newItem","size","prevIndex","nextIndex","clickedItem","doubleClicked","overlayItemKey","type","now","Date","args","itemsToMove","items","movingCurrentFolder","id","depth","req","fetch","api","body","credentials","headers","method","status","error","ids","Object","entries","limit","where","in","console","folderAcceptsItem","isArray","Boolean","some","isSelected","useEffect","_jsx","isUpload","useAsTitle","context","use","Error"],"sources":["../../../src/providers/Folders/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug, FolderSortKeys } from 'payload'\nimport type { FolderBreadcrumb, FolderDocumentItemKey, FolderOrDocument } from 'payload/shared'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { extractID, formatAdminURL, formatFolderOrDocumentItem } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDrawerDepth } from '../../elements/Drawer/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { groupItemIDsByRelation } from './groupItemIDsByRelation.js'\n\ntype FolderQueryParams = {\n page?: string\n relationTo?: CollectionSlug[]\n search?: string\n sort?: string\n}\n\nexport type FileCardData = {\n filename: string\n id: number | string\n mimeType: string\n name: string\n url: string\n}\n\nexport type FolderContextValue = {\n /**\n * The collection slugs that a view can be filtered by\n * Used in the browse-by-folder view\n */\n activeCollectionFolderSlugs: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs?: CollectionSlug[]\n allowCreateCollectionSlugs: CollectionSlug[]\n breadcrumbs?: FolderBreadcrumb[]\n checkIfItemIsDisabled: (item: FolderOrDocument) => boolean\n clearSelections: () => void\n currentFolder?: FolderOrDocument | null\n documents?: FolderOrDocument[]\n dragOverlayItem?: FolderOrDocument | undefined\n focusedRowIndex: number\n folderCollectionConfig: ClientCollectionConfig\n folderCollectionSlug: string\n folderFieldName: string\n folderID?: number | string\n FolderResultsComponent: React.ReactNode\n folderType: CollectionSlug[] | undefined\n getFolderRoute: (toFolderID?: number | string) => string\n getSelectedItems?: () => FolderOrDocument[]\n isDragging: boolean\n itemKeysToMove?: Set<FolderDocumentItemKey>\n moveToFolder: (args: {\n itemsToMove: FolderOrDocument[]\n toFolderID?: number | string\n }) => Promise<void>\n onItemClick: (args: { event: React.MouseEvent; index: number; item: FolderOrDocument }) => void\n onItemKeyPress: (args: {\n event: React.KeyboardEvent\n index: number\n item: FolderOrDocument\n }) => void\n refineFolderData: (args: { query?: FolderQueryParams; updateURL: boolean }) => void\n search: string\n selectedFolderCollections?: CollectionSlug[]\n readonly selectedItemKeys: Set<FolderDocumentItemKey>\n setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>\n setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>\n setIsDragging: React.Dispatch<React.SetStateAction<boolean>>\n sort: FolderSortKeys\n subfolders?: FolderOrDocument[]\n}\n\nconst Context = React.createContext<FolderContextValue>({\n activeCollectionFolderSlugs: [],\n allCollectionFolderSlugs: [],\n allowCreateCollectionSlugs: [],\n breadcrumbs: [],\n checkIfItemIsDisabled: () => false,\n clearSelections: () => {},\n currentFolder: null,\n documents: [],\n dragOverlayItem: undefined,\n focusedRowIndex: -1,\n folderCollectionConfig: null,\n folderCollectionSlug: '',\n folderFieldName: 'folder',\n folderID: undefined,\n FolderResultsComponent: null,\n folderType: undefined,\n getFolderRoute: () => '',\n getSelectedItems: () => [],\n isDragging: false,\n itemKeysToMove: undefined,\n moveToFolder: () => Promise.resolve(undefined),\n onItemClick: () => undefined,\n onItemKeyPress: () => undefined,\n refineFolderData: () => undefined,\n search: '',\n selectedFolderCollections: undefined,\n selectedItemKeys: new Set<FolderDocumentItemKey>(),\n setBreadcrumbs: () => {},\n setFocusedRowIndex: () => -1,\n setIsDragging: () => false,\n sort: 'name',\n subfolders: [],\n})\n\nexport type FolderProviderProps = {\n /**\n * The collection slugs that are being viewed\n */\n readonly activeCollectionFolderSlugs?: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs: CollectionSlug[]\n /**\n * Array of slugs that can be created in the folder view\n */\n readonly allowCreateCollectionSlugs: CollectionSlug[]\n readonly allowMultiSelection?: boolean\n /**\n * The base folder route path\n *\n * @example\n * `/collections/:collectionSlug/:folderCollectionSlug`\n * or\n * `/browse-by-folder`\n */\n readonly baseFolderPath?: `/${string}`\n /**\n * Breadcrumbs for the current folder\n */\n readonly breadcrumbs?: FolderBreadcrumb[]\n /**\n * Children to render inside the provider\n */\n readonly children: React.ReactNode\n /**\n * All documents in the current folder\n */\n readonly documents: FolderOrDocument[]\n /**\n * The name of the field that contains the folder relation\n */\n readonly folderFieldName: string\n /**\n * The ID of the current folder\n */\n readonly folderID?: number | string\n /**\n * The component to render the folder results\n */\n readonly FolderResultsComponent: React.ReactNode\n /**\n * Optional function to call when an item is clicked\n */\n readonly onItemClick?: (itme: FolderOrDocument) => void\n /**\n * The intial search query\n */\n readonly search?: string\n /**\n * The sort order of the documents\n *\n * @example\n * `name` for descending\n * `-name` for ascending\n */\n readonly sort?: FolderSortKeys\n /**\n * All subfolders in the current folder\n */\n readonly subfolders: FolderOrDocument[]\n}\nexport function FolderProvider({\n activeCollectionFolderSlugs: activeCollectionSlugs,\n allCollectionFolderSlugs = [],\n allowCreateCollectionSlugs,\n allowMultiSelection = true,\n baseFolderPath,\n breadcrumbs: _breadcrumbsFromProps = [],\n children,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent: InitialFolderResultsComponent,\n onItemClick: onItemClickFromProps,\n search,\n sort = 'name',\n subfolders,\n}: FolderProviderProps) {\n const parentFolderContext = useFolder()\n const { config } = useConfig()\n const { routes, serverURL } = config\n const drawerDepth = useDrawerDepth()\n const { t } = useTranslation()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const locale = useLocale()\n const localeCode = locale ? locale.code : undefined\n\n const currentlySelectedIndexes = React.useRef(new Set<number>())\n\n const [selectedFolderCollections, setSelectedFolderCollections] = React.useState<\n CollectionSlug[]\n >([])\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState(\n InitialFolderResultsComponent || (() => null),\n )\n const [folderCollectionConfig] = React.useState(() =>\n config.collections.find(\n (collection) => config.folders && collection.slug === config.folders.slug,\n ),\n )\n const folderCollectionSlug = folderCollectionConfig.slug\n\n const rawSearchParams = useSearchParams()\n const searchParams = React.useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n const [currentQuery, setCurrentQuery] = React.useState<FolderQueryParams>(searchParams)\n\n const [isDragging, setIsDragging] = React.useState(false)\n const [selectedItemKeys, setSelectedItemKeys] = React.useState<Set<FolderDocumentItemKey>>(\n () => new Set(),\n )\n const [focusedRowIndex, setFocusedRowIndex] = React.useState(-1)\n // This is used to determine what data to display on the drag overlay\n const [dragOverlayItem, setDragOverlayItem] = React.useState<FolderOrDocument | undefined>()\n const [breadcrumbs, setBreadcrumbs] =\n React.useState<FolderContextValue['breadcrumbs']>(_breadcrumbsFromProps)\n const lastClickTime = React.useRef<null | number>(null)\n const totalCount = subfolders.length + documents.length\n\n const clearSelections = React.useCallback(() => {\n setFocusedRowIndex(-1)\n setSelectedItemKeys(new Set())\n setDragOverlayItem(undefined)\n currentlySelectedIndexes.current = new Set()\n }, [])\n\n const mergeQuery = React.useCallback(\n (newQuery: Partial<FolderQueryParams> = {}): Partial<FolderQueryParams> => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n if ('search' in newQuery) {\n page = '1'\n }\n\n const mergedQuery = {\n ...currentQuery,\n ...newQuery,\n locale: localeCode,\n page,\n relationTo: 'relationTo' in newQuery ? newQuery.relationTo : currentQuery?.relationTo,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort: 'sort' in newQuery ? newQuery.sort : (currentQuery?.sort ?? undefined),\n }\n\n return mergedQuery\n },\n [currentQuery, localeCode],\n )\n\n const refineFolderData: FolderContextValue['refineFolderData'] = React.useCallback(\n ({ query, updateURL }) => {\n if (updateURL) {\n const queryParams = mergeQuery(query)\n\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify({ ...queryParams, relationTo: JSON.stringify(queryParams.relationTo) }, { addQueryPrefix: true })}`,\n ),\n )\n\n setCurrentQuery(queryParams)\n }\n },\n [mergeQuery, router, startRouteTransition],\n )\n\n const getFolderRoute: FolderContextValue['getFolderRoute'] = React.useCallback(\n (toFolderID) => {\n const queryParams = qs.stringify(mergeQuery({ page: '1', search: '' }), {\n addQueryPrefix: true,\n })\n return formatAdminURL({\n adminRoute: config.routes.admin,\n path: `${baseFolderPath}${toFolderID ? `/${toFolderID}` : ''}${queryParams}`,\n serverURL: config.serverURL,\n })\n },\n [baseFolderPath, config.routes.admin, config.serverURL, mergeQuery],\n )\n\n const getItem = React.useCallback(\n (itemKey: FolderDocumentItemKey) => {\n return [...subfolders, ...documents].find((doc) => doc.itemKey === itemKey)\n },\n [documents, subfolders],\n )\n\n const getSelectedItems = React.useCallback(() => {\n return Array.from(selectedItemKeys).reduce((acc, itemKey) => {\n const item = getItem(itemKey)\n if (item) {\n acc.push(item)\n }\n return acc\n }, [])\n }, [selectedItemKeys, getItem])\n\n const navigateAfterSelection = React.useCallback(\n ({ collectionSlug, docID }: { collectionSlug: string; docID?: number | string }) => {\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n if (collectionSlug === folderCollectionSlug) {\n // clicked on folder, take the user to the folder view\n startRouteTransition(() => {\n router.push(getFolderRoute(docID))\n clearSelections()\n })\n } else if (collectionSlug) {\n // clicked on document, take the user to the documet view\n startRouteTransition(() => {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${docID}`,\n }),\n )\n clearSelections()\n })\n }\n } else {\n clearSelections()\n }\n\n if (typeof onItemClickFromProps === 'function') {\n onItemClickFromProps(getItem(`${collectionSlug}-${docID}`))\n }\n },\n [\n clearSelections,\n config.routes.admin,\n drawerDepth,\n folderCollectionSlug,\n getFolderRoute,\n getItem,\n onItemClickFromProps,\n router,\n startRouteTransition,\n ],\n )\n\n const handleShiftSelection = React.useCallback(\n (targetIndex: number) => {\n const allItems = [...subfolders, ...documents]\n\n // Find existing selection boundaries\n const existingIndexes = allItems.reduce((acc, item, idx) => {\n if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n if (existingIndexes.length === 0) {\n // No existing selection, just select target\n return [targetIndex]\n }\n\n const firstSelectedIndex = Math.min(...existingIndexes)\n const lastSelectedIndex = Math.max(...existingIndexes)\n const isWithinBounds = targetIndex >= firstSelectedIndex && targetIndex <= lastSelectedIndex\n\n // Choose anchor based on whether we're contracting or extending\n let anchorIndex = targetIndex\n if (isWithinBounds) {\n // Contracting: if target is at a boundary, use target as anchor\n // Otherwise, use furthest boundary to maintain opposite edge\n if (targetIndex === firstSelectedIndex || targetIndex === lastSelectedIndex) {\n anchorIndex = targetIndex\n } else {\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst >= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n } else {\n // Extending: use closest boundary\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst <= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n\n // Create range from anchor to target\n const startIndex = Math.min(anchorIndex, targetIndex)\n const endIndex = Math.max(anchorIndex, targetIndex)\n const newRangeIndexes = Array.from(\n { length: endIndex - startIndex + 1 },\n (_, i) => startIndex + i,\n )\n\n if (isWithinBounds) {\n // Contracting: replace with new range\n return newRangeIndexes\n } else {\n // Extending: union with existing\n return [...new Set([...existingIndexes, ...newRangeIndexes])]\n }\n },\n [subfolders, documents, selectedItemKeys],\n )\n\n const updateSelections = React.useCallback(\n ({ indexes }: { indexes: number[] }) => {\n const allItems = [...subfolders, ...documents]\n const { newSelectedFolderCollections, newSelectedItemKeys } = allItems.reduce(\n (acc, item, index) => {\n if (indexes.includes(index)) {\n acc.newSelectedItemKeys.add(item.itemKey)\n if (item.relationTo === folderCollectionSlug) {\n item.value.folderType?.forEach((collectionSlug) => {\n if (!acc.newSelectedFolderCollections.includes(collectionSlug)) {\n acc.newSelectedFolderCollections.push(collectionSlug)\n }\n })\n } else {\n if (!acc.newSelectedFolderCollections.includes(item.relationTo)) {\n acc.newSelectedFolderCollections.push(item.relationTo)\n }\n }\n }\n return acc\n },\n {\n newSelectedFolderCollections: [] satisfies CollectionSlug[],\n newSelectedItemKeys: new Set<FolderDocumentItemKey>(),\n },\n )\n\n setSelectedFolderCollections(newSelectedFolderCollections)\n setSelectedItemKeys(newSelectedItemKeys)\n },\n [documents, folderCollectionSlug, subfolders],\n )\n\n const onItemKeyPress: FolderContextValue['onItemKeyPress'] = React.useCallback(\n ({ event, item: currentItem }) => {\n const { code, ctrlKey, metaKey, shiftKey } = event\n const isShiftPressed = shiftKey\n const isCtrlPressed = ctrlKey || metaKey\n const isCurrentlySelected = selectedItemKeys.has(currentItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === currentItem.itemKey)\n\n switch (code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp': {\n event.preventDefault()\n\n if (currentItemIndex === -1) {\n break\n }\n\n const isBackward = code === 'ArrowLeft' || code === 'ArrowUp'\n const newItemIndex = isBackward ? currentItemIndex - 1 : currentItemIndex + 1\n\n if (newItemIndex < 0 || newItemIndex > totalCount - 1) {\n // out of bounds, keep current selection\n return\n }\n\n setFocusedRowIndex(newItemIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (isShiftPressed && allowMultiSelection) {\n const selectedIndexes = handleShiftSelection(newItemIndex)\n updateSelections({ indexes: selectedIndexes })\n return\n }\n\n // Single selection without shift\n if (!isShiftPressed) {\n const newItem = allItems[newItemIndex]\n setSelectedItemKeys(new Set([newItem.itemKey]))\n }\n\n break\n }\n case 'Enter': {\n if (selectedItemKeys.size === 1) {\n setFocusedRowIndex(undefined)\n navigateAfterSelection({\n collectionSlug: currentItem.relationTo,\n docID: extractID(currentItem.value),\n })\n return\n }\n break\n }\n case 'Escape': {\n clearSelections()\n break\n }\n case 'KeyA': {\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n setFocusedRowIndex(totalCount - 1)\n updateSelections({\n indexes: Array.from({ length: totalCount }, (_, i) => i),\n })\n }\n break\n }\n case 'Space': {\n if (allowMultiSelection && isShiftPressed) {\n event.preventDefault()\n const allItems = [...subfolders, ...documents]\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === currentItem.itemKey) {\n if (isCurrentlySelected) {\n return acc\n } else {\n acc.push(idx)\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n } else {\n event.preventDefault()\n updateSelections({\n indexes: isCurrentlySelected ? [] : [currentItemIndex],\n })\n }\n break\n }\n case 'Tab': {\n if (allowMultiSelection && isShiftPressed) {\n const prevIndex = currentItemIndex - 1\n if (prevIndex < 0 && selectedItemKeys?.size > 0) {\n setFocusedRowIndex(prevIndex)\n }\n } else {\n const nextIndex = currentItemIndex + 1\n if (nextIndex === totalCount && selectedItemKeys.size > 0) {\n setFocusedRowIndex(totalCount - 1)\n }\n }\n break\n }\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n handleShiftSelection,\n updateSelections,\n navigateAfterSelection,\n clearSelections,\n totalCount,\n ],\n )\n\n const onItemClick: FolderContextValue['onItemClick'] = React.useCallback(\n ({ event, item: clickedItem }) => {\n let doubleClicked: boolean = false\n const isCtrlPressed = event.ctrlKey || event.metaKey\n const isShiftPressed = event.shiftKey\n const isCurrentlySelected = selectedItemKeys.has(clickedItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === clickedItem.itemKey)\n\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n let overlayItemKey: FolderDocumentItemKey | undefined\n const indexes = allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n if (isCurrentlySelected && event.type !== 'pointermove') {\n return acc\n } else {\n acc.push(idx)\n overlayItemKey = item.itemKey\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n updateSelections({ indexes })\n\n if (overlayItemKey) {\n setDragOverlayItem(getItem(overlayItemKey))\n }\n } else if (allowMultiSelection && isShiftPressed) {\n if (currentItemIndex !== -1) {\n const selectedIndexes = handleShiftSelection(currentItemIndex)\n updateSelections({ indexes: selectedIndexes })\n }\n } else if (allowMultiSelection && event.type === 'pointermove') {\n // on drag start of an unselected item\n if (!isCurrentlySelected) {\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n } else {\n // Normal click - select single item\n const now = Date.now()\n doubleClicked =\n now - lastClickTime.current < 400 && dragOverlayItem?.itemKey === clickedItem.itemKey\n lastClickTime.current = now\n if (!doubleClicked) {\n updateSelections({\n indexes: isCurrentlySelected && selectedItemKeys.size === 1 ? [] : [currentItemIndex],\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n }\n\n if (doubleClicked) {\n navigateAfterSelection({\n collectionSlug: clickedItem.relationTo,\n docID: extractID(clickedItem.value),\n })\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n dragOverlayItem,\n getItem,\n updateSelections,\n navigateAfterSelection,\n handleShiftSelection,\n ],\n )\n\n /**\n * Makes requests to the server to update the folder field on passed in documents\n *\n * Might rewrite this in the future to return the promises so errors can be handled contextually\n */\n const moveToFolder: FolderContextValue['moveToFolder'] = React.useCallback(\n async (args) => {\n const { itemsToMove: items, toFolderID } = args\n if (!items.length) {\n return\n }\n\n const movingCurrentFolder =\n items.length === 1 &&\n items[0].relationTo === folderCollectionSlug &&\n items[0].value.id === folderID\n\n if (movingCurrentFolder) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n },\n {\n addQueryPrefix: true,\n },\n )\n const req = await fetch(\n `${serverURL}${routes.api}/${folderCollectionSlug}/${folderID}${queryParams}`,\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n if (req.status !== 200) {\n toast.error(t('general:error'))\n }\n } else {\n for (const [collectionSlug, ids] of Object.entries(groupItemIDsByRelation(items))) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n limit: 0,\n locale: localeCode,\n where: {\n id: {\n in: ids,\n },\n },\n },\n {\n addQueryPrefix: true,\n },\n )\n try {\n await fetch(`${serverURL}${routes.api}/${collectionSlug}${queryParams}`, {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n })\n } catch (error) {\n toast.error(t('general:error'))\n // eslint-disable-next-line no-console\n console.error(error)\n continue\n }\n }\n }\n\n clearSelections()\n },\n [\n folderID,\n clearSelections,\n folderCollectionSlug,\n folderFieldName,\n routes.api,\n serverURL,\n t,\n localeCode,\n ],\n )\n\n const checkIfItemIsDisabled: FolderContextValue['checkIfItemIsDisabled'] = React.useCallback(\n (item) => {\n function folderAcceptsItem({\n item,\n selectedFolderCollections,\n }: {\n item: FolderOrDocument\n selectedFolderCollections: string[]\n }): boolean {\n if (\n !item.value.folderType ||\n (Array.isArray(item.value.folderType) && item.value.folderType.length === 0)\n ) {\n // Enable folder that accept all collections\n return false\n }\n\n if (selectedFolderCollections.length === 0) {\n // If no collections are selected, enable folders that accept all collections\n return Boolean(item.value.folderType || item.value.folderType.length > 0)\n }\n\n // Disable folders that do not accept all of the selected collections\n return selectedFolderCollections.some((slug) => {\n return !item.value.folderType.includes(slug)\n })\n }\n\n if (isDragging) {\n const isSelected = selectedItemKeys.has(item.itemKey)\n if (isSelected) {\n return true\n } else if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({ item, selectedFolderCollections })\n } else {\n // Non folder items are disabled on drag\n return true\n }\n } else if (parentFolderContext?.selectedItemKeys?.size) {\n // Disable selected items from being navigated to in move to drawer\n if (parentFolderContext.selectedItemKeys.has(item.itemKey)) {\n return true\n }\n // Moving items to folder\n if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({\n item,\n selectedFolderCollections: parentFolderContext.selectedFolderCollections,\n })\n }\n // If the item is not a folder, it is disabled on move\n return true\n }\n },\n [\n selectedFolderCollections,\n isDragging,\n selectedItemKeys,\n folderCollectionSlug,\n parentFolderContext?.selectedFolderCollections,\n parentFolderContext?.selectedItemKeys,\n ],\n )\n\n // If a new component is provided, update the state so children can re-render with the new component\n React.useEffect(() => {\n if (InitialFolderResultsComponent) {\n setFolderResultsComponent(InitialFolderResultsComponent)\n }\n }, [InitialFolderResultsComponent])\n\n return (\n <Context\n value={{\n activeCollectionFolderSlugs: activeCollectionSlugs || allCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n checkIfItemIsDisabled,\n clearSelections,\n currentFolder:\n breadcrumbs?.[breadcrumbs.length - 1]?.id !== undefined\n ? formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: false,\n relationTo: folderCollectionSlug,\n useAsTitle: folderCollectionConfig.admin.useAsTitle,\n value: breadcrumbs[breadcrumbs.length - 1],\n })\n : null,\n documents,\n dragOverlayItem,\n focusedRowIndex,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n folderType: breadcrumbs?.[breadcrumbs.length - 1]?.folderType,\n getFolderRoute,\n getSelectedItems,\n isDragging,\n itemKeysToMove: parentFolderContext.selectedItemKeys,\n moveToFolder,\n onItemClick,\n onItemKeyPress,\n refineFolderData,\n search,\n selectedFolderCollections,\n selectedItemKeys,\n setBreadcrumbs,\n setFocusedRowIndex,\n setIsDragging,\n sort,\n subfolders,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport function useFolder(): FolderContextValue {\n const context = React.use(Context)\n\n if (context === undefined) {\n throw new Error('useFolder must be used within a FolderProvider')\n }\n\n return context\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  import { createContext, use } from 'react';
2
2
  export const ListQueryContext = createContext({});
3
- export const useListQuery = ()=>use(ListQueryContext);
3
+ export const useListQuery = () => use(ListQueryContext);
4
4
  export const ListQueryModifiedContext = createContext(false);
5
- export const useListQueryModified = ()=>use(ListQueryModifiedContext);
6
-
5
+ export const useListQueryModified = () => use(ListQueryModifiedContext);
7
6
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, use } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => use(ListQueryContext)\n\nexport const ListQueryModifiedContext = createContext(false)\n\nexport const useListQueryModified = (): boolean => use(ListQueryModifiedContext)\n"],"names":["createContext","use","ListQueryContext","useListQuery","ListQueryModifiedContext","useListQueryModified"],"mappings":"AAAA,SAASA,aAAa,EAAEC,GAAG,QAAQ,QAAO;AAI1C,OAAO,MAAMC,mBAAmBF,cAAc,CAAC,GAAuB;AAEtE,OAAO,MAAMG,eAAe,IAAyBF,IAAIC,kBAAiB;AAE1E,OAAO,MAAME,2BAA2BJ,cAAc,OAAM;AAE5D,OAAO,MAAMK,uBAAuB,IAAeJ,IAAIG,0BAAyB"}
1
+ {"version":3,"file":"context.js","names":["createContext","use","ListQueryContext","useListQuery","ListQueryModifiedContext","useListQueryModified"],"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, use } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => use(ListQueryContext)\n\nexport const ListQueryModifiedContext = createContext(false)\n\nexport const useListQueryModified = (): boolean => use(ListQueryModifiedContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AAInC,OAAO,MAAMC,gBAAA,GAAmBF,aAAA,CAAc,CAAC;AAE/C,OAAO,MAAMG,YAAA,GAAeA,CAAA,KAAyBF,GAAA,CAAIC,gBAAA;AAEzD,OAAO,MAAME,wBAAA,GAA2BJ,aAAA,CAAc;AAEtD,OAAO,MAAMK,oBAAA,GAAuBA,CAAA,KAAeJ,GAAA,CAAIG,wBAAA","ignoreList":[]}
@@ -1,4 +1,6 @@
1
1
  'use client';
2
+
3
+ import { jsx as _jsx } from "react/jsx-runtime";
2
4
  import { useRouter, useSearchParams } from 'next/navigation.js';
3
5
  import * as qs from 'qs-esm';
4
6
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
@@ -11,150 +13,145 @@ import { ListQueryContext, ListQueryModifiedContext } from './context.js';
11
13
  import { mergeQuery } from './mergeQuery.js';
12
14
  import { sanitizeQuery } from './sanitizeQuery.js';
13
15
  export { useListQuery } from './context.js';
14
- export const ListQueryProvider = ({ children, collectionSlug, data, modifySearchParams, onQueryChange: onQueryChangeFromProps, orderableFieldName, query: queryFromProps })=>{
15
- // TODO: Investigate if this is still needed
16
- 'use no memo';
17
- // TODO: Investigate if this is still needed
18
- const router = useRouter();
19
- const rawSearchParams = useSearchParams();
20
- const { startRouteTransition } = useRouteTransition();
21
- const [modified, setModified] = useState(false);
22
- const { getEntityConfig } = useConfig();
23
- const collectionConfig = getEntityConfig({
24
- collectionSlug
16
+ export const ListQueryProvider = ({
17
+ children,
18
+ collectionSlug,
19
+ data,
20
+ modifySearchParams,
21
+ onQueryChange: onQueryChangeFromProps,
22
+ orderableFieldName,
23
+ query: queryFromProps
24
+ }) => {
25
+ // TODO: Investigate if this is still needed
26
+ 'use no memo';
27
+
28
+ // TODO: Investigate if this is still needed
29
+ const router = useRouter();
30
+ const rawSearchParams = useSearchParams();
31
+ const {
32
+ startRouteTransition
33
+ } = useRouteTransition();
34
+ const [modified, setModified] = useState(false);
35
+ const {
36
+ getEntityConfig
37
+ } = useConfig();
38
+ const collectionConfig = getEntityConfig({
39
+ collectionSlug
40
+ });
41
+ const searchParams = useMemo(() => sanitizeQuery(parseSearchParams(rawSearchParams)), [rawSearchParams]);
42
+ const contextRef = useRef({});
43
+ contextRef.current.modified = modified;
44
+ const {
45
+ onQueryChange
46
+ } = useListDrawerContext();
47
+ const [query, setQuery] = useState(() => {
48
+ if (modifySearchParams) {
49
+ return searchParams;
50
+ } else {
51
+ return {
52
+ limit: queryFromProps.limit,
53
+ sort: queryFromProps.sort
54
+ };
55
+ }
56
+ });
57
+ const refineListData = useCallback(
58
+ // eslint-disable-next-line @typescript-eslint/require-await
59
+ async (incomingQuery, modified_0) => {
60
+ if (modified_0 !== undefined) {
61
+ setModified(modified_0);
62
+ } else {
63
+ setModified(true);
64
+ }
65
+ const newQuery = mergeQuery(query, incomingQuery, {
66
+ defaults: {
67
+ limit: queryFromProps.limit,
68
+ sort: queryFromProps.sort
69
+ }
70
+ });
71
+ if (modifySearchParams) {
72
+ startRouteTransition(() => router.replace(`${qs.stringify({
73
+ ...newQuery,
74
+ columns: JSON.stringify(newQuery.columns),
75
+ queryByGroup: JSON.stringify(newQuery.queryByGroup)
76
+ }, {
77
+ addQueryPrefix: true
78
+ })}`));
79
+ } else if (typeof onQueryChange === 'function' || typeof onQueryChangeFromProps === 'function') {
80
+ const onChangeFn = onQueryChange || onQueryChangeFromProps;
81
+ onChangeFn(newQuery);
82
+ }
83
+ setQuery(newQuery);
84
+ }, [query, queryFromProps.limit, queryFromProps.sort, modifySearchParams, onQueryChange, onQueryChangeFromProps, startRouteTransition, router]);
85
+ const handlePageChange = useCallback(async arg => {
86
+ await refineListData({
87
+ page: arg
88
+ });
89
+ }, [refineListData]);
90
+ const handlePerPageChange = React.useCallback(async arg_0 => {
91
+ await refineListData({
92
+ limit: arg_0,
93
+ page: 1
25
94
  });
26
- const searchParams = useMemo(()=>sanitizeQuery(parseSearchParams(rawSearchParams)), [
27
- rawSearchParams
28
- ]);
29
- const contextRef = useRef({});
30
- contextRef.current.modified = modified;
31
- const { onQueryChange } = useListDrawerContext();
32
- const [query, setQuery] = useState(()=>{
33
- if (modifySearchParams) {
34
- return searchParams;
35
- } else {
36
- return {
37
- limit: queryFromProps.limit,
38
- sort: queryFromProps.sort
39
- };
40
- }
95
+ }, [refineListData]);
96
+ const handleSearchChange = useCallback(async arg_1 => {
97
+ const search = arg_1 === '' ? undefined : arg_1;
98
+ await refineListData({
99
+ search
41
100
  });
42
- const refineListData = useCallback(// eslint-disable-next-line @typescript-eslint/require-await
43
- async (incomingQuery, modified)=>{
44
- if (modified !== undefined) {
45
- setModified(modified);
46
- } else {
47
- setModified(true);
48
- }
49
- const newQuery = mergeQuery(query, incomingQuery, {
50
- defaults: {
51
- limit: queryFromProps.limit,
52
- sort: queryFromProps.sort
53
- }
54
- });
55
- if (modifySearchParams) {
56
- startRouteTransition(()=>router.replace(`${qs.stringify({
57
- ...newQuery,
58
- columns: JSON.stringify(newQuery.columns),
59
- queryByGroup: JSON.stringify(newQuery.queryByGroup)
60
- }, {
61
- addQueryPrefix: true
62
- })}`));
63
- } else if (typeof onQueryChange === 'function' || typeof onQueryChangeFromProps === 'function') {
64
- const onChangeFn = onQueryChange || onQueryChangeFromProps;
65
- onChangeFn(newQuery);
66
- }
67
- setQuery(newQuery);
68
- }, [
69
- query,
70
- queryFromProps.limit,
71
- queryFromProps.sort,
72
- modifySearchParams,
73
- onQueryChange,
74
- onQueryChangeFromProps,
75
- startRouteTransition,
76
- router
77
- ]);
78
- const handlePageChange = useCallback(async (arg)=>{
79
- await refineListData({
80
- page: arg
81
- });
82
- }, [
83
- refineListData
84
- ]);
85
- const handlePerPageChange = React.useCallback(async (arg)=>{
86
- await refineListData({
87
- limit: arg,
88
- page: 1
89
- });
90
- }, [
91
- refineListData
92
- ]);
93
- const handleSearchChange = useCallback(async (arg)=>{
94
- const search = arg === '' ? undefined : arg;
95
- await refineListData({
96
- search
97
- });
98
- }, [
99
- refineListData
100
- ]);
101
- const handleSortChange = useCallback(async (sort)=>{
102
- await refineListData({
103
- sort
104
- });
105
- }, [
106
- refineListData
107
- ]);
108
- const handleWhereChange = useCallback(async (where)=>{
109
- await refineListData({
110
- where
111
- });
112
- }, [
113
- refineListData
114
- ]);
115
- const mergeQueryFromPropsAndSyncToURL = useEffectEvent(()=>{
116
- const newQuery = sanitizeQuery({
117
- ...query || {},
118
- ...queryFromProps || {}
119
- });
120
- const search = `?${qs.stringify({
121
- ...newQuery,
122
- columns: JSON.stringify(newQuery.columns),
123
- queryByGroup: JSON.stringify(newQuery.queryByGroup)
124
- })}`;
125
- if (window.location.search !== search) {
126
- setQuery(newQuery);
127
- // Important: do not use router.replace here to avoid re-rendering on initial load
128
- window.history.replaceState(null, '', search);
129
- }
101
+ }, [refineListData]);
102
+ const handleSortChange = useCallback(async sort => {
103
+ await refineListData({
104
+ sort
130
105
  });
131
- // If `query` is updated externally, update the local state
132
- // E.g. when HMR runs, these properties may be different
133
- useEffect(()=>{
134
- if (modifySearchParams) {
135
- mergeQueryFromPropsAndSyncToURL();
136
- }
137
- }, [
138
- modifySearchParams,
139
- queryFromProps
140
- ]);
141
- return <ListQueryContext value={{
142
- collectionSlug,
143
- data,
144
- handlePageChange,
145
- handlePerPageChange,
146
- handleSearchChange,
147
- handleSortChange,
148
- handleWhereChange,
149
- isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),
150
- orderableFieldName,
151
- query,
152
- refineListData,
153
- setModified,
154
- ...contextRef.current
155
- }}>
156
- <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>
157
- </ListQueryContext>;
106
+ }, [refineListData]);
107
+ const handleWhereChange = useCallback(async where => {
108
+ await refineListData({
109
+ where
110
+ });
111
+ }, [refineListData]);
112
+ const mergeQueryFromPropsAndSyncToURL = useEffectEvent(() => {
113
+ const newQuery_0 = sanitizeQuery({
114
+ ...(query || {}),
115
+ ...(queryFromProps || {})
116
+ });
117
+ const search_0 = `?${qs.stringify({
118
+ ...newQuery_0,
119
+ columns: JSON.stringify(newQuery_0.columns),
120
+ queryByGroup: JSON.stringify(newQuery_0.queryByGroup)
121
+ })}`;
122
+ if (window.location.search !== search_0) {
123
+ setQuery(newQuery_0);
124
+ // Important: do not use router.replace here to avoid re-rendering on initial load
125
+ window.history.replaceState(null, '', search_0);
126
+ }
127
+ });
128
+ // If `query` is updated externally, update the local state
129
+ // E.g. when HMR runs, these properties may be different
130
+ useEffect(() => {
131
+ if (modifySearchParams) {
132
+ mergeQueryFromPropsAndSyncToURL();
133
+ }
134
+ }, [modifySearchParams, queryFromProps]);
135
+ return /*#__PURE__*/_jsx(ListQueryContext, {
136
+ value: {
137
+ collectionSlug,
138
+ data,
139
+ handlePageChange,
140
+ handlePerPageChange,
141
+ handleSearchChange,
142
+ handleSortChange,
143
+ handleWhereChange,
144
+ isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),
145
+ orderableFieldName,
146
+ query,
147
+ refineListData,
148
+ setModified,
149
+ ...contextRef.current
150
+ },
151
+ children: /*#__PURE__*/_jsx(ListQueryModifiedContext, {
152
+ value: modified,
153
+ children: children
154
+ })
155
+ });
158
156
  };
159
-
160
157
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { type ListQuery, type Where } from 'payload'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n // TODO: Investigate if this is still needed\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const searchParams = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const contextRef = useRef({} as IListQueryContext)\n\n contextRef.current.modified = modified\n\n const { onQueryChange } = useListDrawerContext()\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n if (modified !== undefined) {\n setModified(modified)\n } else {\n setModified(true)\n }\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify(\n {\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n },\n { addQueryPrefix: true },\n )}`,\n ),\n )\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n const mergeQueryFromPropsAndSyncToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n\n // Important: do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n mergeQueryFromPropsAndSyncToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"names":["useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useConfig","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","getEntityConfig","collectionConfig","searchParams","contextRef","current","setQuery","limit","sort","refineListData","incomingQuery","undefined","newQuery","defaults","replace","stringify","columns","JSON","queryByGroup","addQueryPrefix","onChangeFn","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","search","handleSortChange","handleWhereChange","where","mergeQueryFromPropsAndSyncToURL","window","location","history","replaceState","value","isGroupingBy","Boolean","admin","groupBy"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useConfig","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","getEntityConfig","collectionConfig","searchParams","contextRef","current","setQuery","limit","sort","refineListData","incomingQuery","undefined","newQuery","defaults","replace","stringify","columns","JSON","queryByGroup","addQueryPrefix","onChangeFn","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","search","handleSortChange","handleWhereChange","where","mergeQueryFromPropsAndSyncToURL","window","location","history","replaceState","_jsx","value","isGroupingBy","Boolean","admin","groupBy"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { type ListQuery, type Where } from 'payload'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n // TODO: Investigate if this is still needed\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const searchParams = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const contextRef = useRef({} as IListQueryContext)\n\n contextRef.current.modified = modified\n\n const { onQueryChange } = useListDrawerContext()\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n if (modified !== undefined) {\n setModified(modified)\n } else {\n setModified(true)\n }\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify(\n {\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n },\n { addQueryPrefix: true },\n )}`,\n ),\n )\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n const mergeQueryFromPropsAndSyncToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n\n // Important: do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n mergeQueryFromPropsAndSyncToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"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","ignoreList":[]}