@payloadcms/ui 3.81.0-canary.3 → 3.81.0-internal-debug.1a0f4d0

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 (1218) hide show
  1. package/dist/@types/assets.d.js.map +1 -1
  2. package/dist/assets/index.js +1 -0
  3. package/dist/assets/index.js.map +1 -1
  4. package/dist/elements/AddNewRelation/index.js +218 -273
  5. package/dist/elements/AddNewRelation/index.js.map +1 -1
  6. package/dist/elements/AddNewRelation/types.js +2 -1
  7. package/dist/elements/AddNewRelation/types.js.map +1 -1
  8. package/dist/elements/AnimateHeight/index.js +84 -73
  9. package/dist/elements/AnimateHeight/index.js.map +1 -1
  10. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +71 -68
  11. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  12. package/dist/elements/AppHeader/index.js +171 -101
  13. package/dist/elements/AppHeader/index.js.map +1 -1
  14. package/dist/elements/ArrayAction/index.js +186 -118
  15. package/dist/elements/ArrayAction/index.js.map +1 -1
  16. package/dist/elements/Autosave/index.js +162 -181
  17. package/dist/elements/Autosave/index.js.map +1 -1
  18. package/dist/elements/Banner/index.js +52 -32
  19. package/dist/elements/Banner/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/ActionsBar/index.js +169 -173
  21. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/AddFilesView/index.js +84 -51
  23. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/AddingFilesView/index.js +85 -94
  25. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +30 -56
  27. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  28. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +19 -27
  29. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/EditForm/index.js +193 -186
  31. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/EditForm/types.js +2 -1
  33. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  34. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +221 -172
  35. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  36. package/dist/elements/BulkUpload/EditMany/index.js +56 -57
  37. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  38. package/dist/elements/BulkUpload/FileSidebar/index.js +395 -316
  39. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/FormsManager/createFormData.js +33 -32
  41. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  42. package/dist/elements/BulkUpload/FormsManager/index.js +540 -512
  43. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  44. package/dist/elements/BulkUpload/FormsManager/reducer.js +100 -90
  45. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  46. package/dist/elements/BulkUpload/Header/index.js +27 -15
  47. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  48. package/dist/elements/BulkUpload/index.js +204 -271
  49. package/dist/elements/BulkUpload/index.js.map +1 -1
  50. package/dist/elements/Button/index.js +227 -160
  51. package/dist/elements/Button/index.js.map +1 -1
  52. package/dist/elements/Button/types.js +14 -1
  53. package/dist/elements/Button/types.js.map +1 -1
  54. package/dist/elements/Card/index.js +53 -33
  55. package/dist/elements/Card/index.js.map +1 -1
  56. package/dist/elements/CheckboxPopup/index.js +43 -36
  57. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  58. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +29 -35
  59. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  60. package/dist/elements/ClipboardAction/clipboardUtilities.js +33 -43
  61. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  62. package/dist/elements/ClipboardAction/index.js +110 -83
  63. package/dist/elements/ClipboardAction/index.js.map +1 -1
  64. package/dist/elements/ClipboardAction/isClipboardDataValid.js +64 -71
  65. package/dist/elements/ClipboardAction/isClipboardDataValid.js.map +1 -1
  66. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +118 -136
  67. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  68. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +548 -532
  69. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  70. package/dist/elements/ClipboardAction/types.js +2 -1
  71. package/dist/elements/ClipboardAction/types.js.map +1 -1
  72. package/dist/elements/CloseModalButton/index.js +25 -20
  73. package/dist/elements/CloseModalButton/index.js.map +1 -1
  74. package/dist/elements/CloseModalOnRouteChange/index.js +17 -43
  75. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  76. package/dist/elements/CodeEditor/CodeEditor.js +82 -97
  77. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  78. package/dist/elements/CodeEditor/constants.js +15 -14
  79. package/dist/elements/CodeEditor/constants.js.map +1 -1
  80. package/dist/elements/CodeEditor/index.js +22 -10
  81. package/dist/elements/CodeEditor/index.js.map +1 -1
  82. package/dist/elements/CodeEditor/types.js +4 -1
  83. package/dist/elements/CodeEditor/types.js.map +1 -1
  84. package/dist/elements/Collapsible/index.js +151 -141
  85. package/dist/elements/Collapsible/index.js.map +1 -1
  86. package/dist/elements/Collapsible/provider.js +32 -30
  87. package/dist/elements/Collapsible/provider.js.map +1 -1
  88. package/dist/elements/ColumnSelector/index.js +54 -54
  89. package/dist/elements/ColumnSelector/index.js.map +1 -1
  90. package/dist/elements/Combobox/index.js +115 -85
  91. package/dist/elements/Combobox/index.js.map +1 -1
  92. package/dist/elements/ConfirmationModal/index.js +116 -129
  93. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  94. package/dist/elements/CopyLocaleData/index.js +217 -276
  95. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  96. package/dist/elements/CopyToClipboard/index.js +47 -70
  97. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  98. package/dist/elements/DatePicker/DatePicker.js +131 -136
  99. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  100. package/dist/elements/DatePicker/getFormattedLocale.js +11 -10
  101. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  102. package/dist/elements/DatePicker/index.js +23 -11
  103. package/dist/elements/DatePicker/index.js.map +1 -1
  104. package/dist/elements/DatePicker/types.js +2 -1
  105. package/dist/elements/DatePicker/types.js.map +1 -1
  106. package/dist/elements/DefaultListViewTabs/index.js +97 -131
  107. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  108. package/dist/elements/DeleteDocument/index.js +177 -149
  109. package/dist/elements/DeleteDocument/index.js.map +1 -1
  110. package/dist/elements/DeleteMany/index.js +394 -345
  111. package/dist/elements/DeleteMany/index.js.map +1 -1
  112. package/dist/elements/DocumentControls/index.js +515 -287
  113. package/dist/elements/DocumentControls/index.js.map +1 -1
  114. package/dist/elements/DocumentDrawer/DrawerContent.js +138 -120
  115. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  116. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +96 -103
  117. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  118. package/dist/elements/DocumentDrawer/Provider.js +24 -18
  119. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  120. package/dist/elements/DocumentDrawer/index.js +134 -210
  121. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  122. package/dist/elements/DocumentDrawer/types.js +12 -1
  123. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  124. package/dist/elements/DocumentFields/index.js +106 -69
  125. package/dist/elements/DocumentFields/index.js.map +1 -1
  126. package/dist/elements/DocumentLocked/index.js +154 -179
  127. package/dist/elements/DocumentLocked/index.js.map +1 -1
  128. package/dist/elements/DocumentStaleData/index.js +81 -91
  129. package/dist/elements/DocumentStaleData/index.js.map +1 -1
  130. package/dist/elements/DocumentTakeOver/index.js +97 -113
  131. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  132. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +26 -60
  133. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  134. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +2 -1
  135. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  136. package/dist/elements/DraggableSortable/index.js +81 -139
  137. package/dist/elements/DraggableSortable/index.js.map +1 -1
  138. package/dist/elements/DraggableSortable/types.js +2 -1
  139. package/dist/elements/DraggableSortable/types.js.map +1 -1
  140. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +25 -85
  141. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  142. package/dist/elements/DraggableSortable/useDraggableSortable/types.js +2 -1
  143. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  144. package/dist/elements/Drawer/index.js +166 -192
  145. package/dist/elements/Drawer/index.js.map +1 -1
  146. package/dist/elements/Drawer/types.js +2 -1
  147. package/dist/elements/Drawer/types.js.map +1 -1
  148. package/dist/elements/Drawer/useDrawerSlug.js +7 -19
  149. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  150. package/dist/elements/DrawerActionHeader/index.js +59 -61
  151. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  152. package/dist/elements/DrawerContentContainer/index.js +14 -9
  153. package/dist/elements/DrawerContentContainer/index.js.map +1 -1
  154. package/dist/elements/Dropzone/index.js +94 -80
  155. package/dist/elements/Dropzone/index.js.map +1 -1
  156. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +145 -87
  157. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  158. package/dist/elements/DuplicateDocument/index.js +154 -144
  159. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  160. package/dist/elements/EditMany/DrawerContent.js +398 -389
  161. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  162. package/dist/elements/EditMany/index.js +79 -131
  163. package/dist/elements/EditMany/index.js.map +1 -1
  164. package/dist/elements/EditUpload/index.js +572 -395
  165. package/dist/elements/EditUpload/index.js.map +1 -1
  166. package/dist/elements/EmailAndUsername/index.js +96 -77
  167. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  168. package/dist/elements/ErrorPill/index.js +38 -24
  169. package/dist/elements/ErrorPill/index.js.map +1 -1
  170. package/dist/elements/FieldDiffContainer/index.js +50 -34
  171. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  172. package/dist/elements/FieldDiffLabel/index.js +10 -7
  173. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  174. package/dist/elements/FieldSelect/index.js +45 -75
  175. package/dist/elements/FieldSelect/index.js.map +1 -1
  176. package/dist/elements/FieldSelect/reduceFieldOptions.js +69 -67
  177. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  178. package/dist/elements/FileDetails/DraggableFileDetails/index.js +113 -105
  179. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  180. package/dist/elements/FileDetails/FileMeta/index.js +72 -33
  181. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  182. package/dist/elements/FileDetails/StaticFileDetails/index.js +76 -58
  183. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  184. package/dist/elements/FileDetails/index.js +20 -14
  185. package/dist/elements/FileDetails/index.js.map +1 -1
  186. package/dist/elements/FolderView/Breadcrumbs/index.js +59 -86
  187. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  188. package/dist/elements/FolderView/BrowseByFolderButton/index.js +30 -30
  189. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  190. package/dist/elements/FolderView/Cell/index.client.js +88 -87
  191. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  192. package/dist/elements/FolderView/Cell/index.server.js +19 -14
  193. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  194. package/dist/elements/FolderView/ColoredFolderIcon/index.js +9 -4
  195. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
  196. package/dist/elements/FolderView/CurrentFolderActions/index.js +174 -138
  197. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  198. package/dist/elements/FolderView/DragOverlaySelection/index.js +70 -51
  199. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  200. package/dist/elements/FolderView/DraggableTableRow/index.js +71 -54
  201. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  202. package/dist/elements/FolderView/DraggableWithClick/index.js +75 -79
  203. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  204. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +35 -33
  205. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  206. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +508 -569
  207. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  208. package/dist/elements/FolderView/FilterFolderTypePill/index.js +61 -89
  209. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
  210. package/dist/elements/FolderView/FolderField/index.server.js +15 -10
  211. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
  212. package/dist/elements/FolderView/FolderFileCard/index.js +218 -188
  213. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  214. package/dist/elements/FolderView/FolderFileTable/index.js +203 -264
  215. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  216. package/dist/elements/FolderView/FolderTypeField/index.js +93 -112
  217. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  218. package/dist/elements/FolderView/ItemCardGrid/index.js +35 -27
  219. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  220. package/dist/elements/FolderView/MoveDocToFolder/index.js +142 -264
  221. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  222. package/dist/elements/FolderView/SimpleTable/index.js +105 -83
  223. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
  224. package/dist/elements/FolderView/SortByPill/index.js +162 -100
  225. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  226. package/dist/elements/FolderView/ToggleViewButtons/index.js +47 -24
  227. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
  228. package/dist/elements/FullscreenModal/index.js +16 -22
  229. package/dist/elements/FullscreenModal/index.js.map +1 -1
  230. package/dist/elements/GenerateConfirmation/index.js +63 -83
  231. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  232. package/dist/elements/GroupByBuilder/index.js +195 -140
  233. package/dist/elements/GroupByBuilder/index.js.map +1 -1
  234. package/dist/elements/Gutter/index.js +22 -19
  235. package/dist/elements/Gutter/index.js.map +1 -1
  236. package/dist/elements/HTMLDiff/diff/index.js +524 -502
  237. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  238. package/dist/elements/HTMLDiff/escapeHtml.js +19 -20
  239. package/dist/elements/HTMLDiff/escapeHtml.js.map +1 -1
  240. package/dist/elements/HTMLDiff/index.js +37 -30
  241. package/dist/elements/HTMLDiff/index.js.map +1 -1
  242. package/dist/elements/Hamburger/index.js +51 -40
  243. package/dist/elements/Hamburger/index.js.map +1 -1
  244. package/dist/elements/HydrateAuthProvider/index.js +15 -27
  245. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  246. package/dist/elements/IDLabel/index.js +31 -57
  247. package/dist/elements/IDLabel/index.js.map +1 -1
  248. package/dist/elements/IframeLoader/index.js +111 -90
  249. package/dist/elements/IframeLoader/index.js.map +1 -1
  250. package/dist/elements/ItemsDrawer/ItemSearch/index.js +43 -48
  251. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
  252. package/dist/elements/ItemsDrawer/index.js +226 -175
  253. package/dist/elements/ItemsDrawer/index.js.map +1 -1
  254. package/dist/elements/LeaveWithoutSaving/index.js +74 -142
  255. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  256. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +115 -131
  257. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  258. package/dist/elements/Link/formatUrl.js +53 -56
  259. package/dist/elements/Link/formatUrl.js.map +1 -1
  260. package/dist/elements/Link/index.js +50 -54
  261. package/dist/elements/Link/index.js.map +1 -1
  262. package/dist/elements/ListControls/getTextFieldsToBeSearched.js +17 -17
  263. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  264. package/dist/elements/ListControls/index.js +253 -168
  265. package/dist/elements/ListControls/index.js.map +1 -1
  266. package/dist/elements/ListControls/types.js +8 -1
  267. package/dist/elements/ListControls/types.js.map +1 -1
  268. package/dist/elements/ListDrawer/DrawerContent.js +183 -168
  269. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  270. package/dist/elements/ListDrawer/Provider.js +28 -19
  271. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  272. package/dist/elements/ListDrawer/index.js +149 -229
  273. package/dist/elements/ListDrawer/index.js.map +1 -1
  274. package/dist/elements/ListDrawer/types.js +6 -1
  275. package/dist/elements/ListDrawer/types.js.map +1 -1
  276. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +43 -84
  277. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  278. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +23 -33
  279. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  280. package/dist/elements/ListHeader/DrawerTitleActions/index.js +1 -0
  281. package/dist/elements/ListHeader/DrawerTitleActions/index.js.map +1 -1
  282. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +49 -73
  283. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  284. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +22 -40
  285. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  286. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +130 -168
  287. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  288. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +169 -148
  289. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  290. package/dist/elements/ListHeader/TitleActions/index.js +1 -0
  291. package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
  292. package/dist/elements/ListHeader/index.js +65 -24
  293. package/dist/elements/ListHeader/index.js.map +1 -1
  294. package/dist/elements/ListSelection/index.js +93 -58
  295. package/dist/elements/ListSelection/index.js.map +1 -1
  296. package/dist/elements/LivePreview/Device/index.js +83 -83
  297. package/dist/elements/LivePreview/Device/index.js.map +1 -1
  298. package/dist/elements/LivePreview/DeviceContainer/index.js +29 -49
  299. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  300. package/dist/elements/LivePreview/Toggler/index.js +32 -26
  301. package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
  302. package/dist/elements/LivePreview/Toolbar/Controls/index.js +210 -141
  303. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  304. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +62 -92
  305. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  306. package/dist/elements/LivePreview/Toolbar/index.js +84 -84
  307. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  308. package/dist/elements/LivePreview/ToolbarArea/index.js +15 -33
  309. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  310. package/dist/elements/LivePreview/Window/index.js +139 -106
  311. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  312. package/dist/elements/Loading/index.js +112 -144
  313. package/dist/elements/Loading/index.js.map +1 -1
  314. package/dist/elements/LoadingOverlay/index.js +68 -67
  315. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  316. package/dist/elements/LoadingOverlay/reducer.js +27 -29
  317. package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
  318. package/dist/elements/LoadingOverlay/types.js +2 -1
  319. package/dist/elements/LoadingOverlay/types.js.map +1 -1
  320. package/dist/elements/Localizer/LocalizerLabel/index.js +55 -51
  321. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  322. package/dist/elements/Localizer/index.js +99 -117
  323. package/dist/elements/Localizer/index.js.map +1 -1
  324. package/dist/elements/Locked/index.js +38 -59
  325. package/dist/elements/Locked/index.js.map +1 -1
  326. package/dist/elements/Logout/index.js +30 -51
  327. package/dist/elements/Logout/index.js.map +1 -1
  328. package/dist/elements/Modal/index.js +1 -1
  329. package/dist/elements/Modal/index.js.map +1 -1
  330. package/dist/elements/Nav/NavToggler/index.js +34 -80
  331. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  332. package/dist/elements/Nav/context.js +107 -103
  333. package/dist/elements/Nav/context.js.map +1 -1
  334. package/dist/elements/NavGroup/index.js +98 -122
  335. package/dist/elements/NavGroup/index.js.map +1 -1
  336. package/dist/elements/NoListResults/index.js +27 -14
  337. package/dist/elements/NoListResults/index.js.map +1 -1
  338. package/dist/elements/PageControls/GroupByPageControls.js +40 -71
  339. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  340. package/dist/elements/PageControls/index.js +77 -107
  341. package/dist/elements/PageControls/index.js.map +1 -1
  342. package/dist/elements/Pagination/ClickableArrow/index.js +24 -16
  343. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  344. package/dist/elements/Pagination/Page/index.js +19 -16
  345. package/dist/elements/Pagination/Page/index.js.map +1 -1
  346. package/dist/elements/Pagination/Separator/index.js +10 -6
  347. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  348. package/dist/elements/Pagination/index.js +102 -99
  349. package/dist/elements/Pagination/index.js.map +1 -1
  350. package/dist/elements/PerPage/index.js +93 -80
  351. package/dist/elements/PerPage/index.js.map +1 -1
  352. package/dist/elements/PermanentlyDeleteButton/index.js +150 -133
  353. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  354. package/dist/elements/Pill/index.js +109 -191
  355. package/dist/elements/Pill/index.js.map +1 -1
  356. package/dist/elements/PillSelector/index.js +79 -56
  357. package/dist/elements/PillSelector/index.js.map +1 -1
  358. package/dist/elements/Popup/PopupButtonList/index.js +65 -52
  359. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  360. package/dist/elements/Popup/PopupDivider/index.js +10 -5
  361. package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
  362. package/dist/elements/Popup/PopupGroupLabel/index.js +11 -8
  363. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
  364. package/dist/elements/Popup/PopupTrigger/index.js +50 -44
  365. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  366. package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
  367. package/dist/elements/Popup/index.js +351 -287
  368. package/dist/elements/Popup/index.js.map +1 -1
  369. package/dist/elements/PreviewButton/index.js +24 -31
  370. package/dist/elements/PreviewButton/index.js.map +1 -1
  371. package/dist/elements/PreviewSizes/index.js +206 -132
  372. package/dist/elements/PreviewSizes/index.js.map +1 -1
  373. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +154 -110
  374. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  375. package/dist/elements/PublishButton/ScheduleDrawer/index.js +460 -308
  376. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  377. package/dist/elements/PublishButton/ScheduleDrawer/types.js +2 -1
  378. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  379. package/dist/elements/PublishButton/index.js +267 -221
  380. package/dist/elements/PublishButton/index.js.map +1 -1
  381. package/dist/elements/PublishMany/DrawerContent.js +137 -134
  382. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  383. package/dist/elements/PublishMany/index.js +58 -109
  384. package/dist/elements/PublishMany/index.js.map +1 -1
  385. package/dist/elements/QueryPresets/QueryPresetBar/index.js +344 -266
  386. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  387. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +80 -87
  388. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  389. package/dist/elements/QueryPresets/cells/AccessCell/index.js +47 -21
  390. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
  391. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +26 -19
  392. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  393. package/dist/elements/QueryPresets/cells/GroupByCell/index.js +61 -48
  394. package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
  395. package/dist/elements/QueryPresets/cells/WhereCell/index.js +29 -27
  396. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
  397. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +145 -104
  398. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  399. package/dist/elements/QueryPresets/fields/GroupByField/index.js +75 -53
  400. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  401. package/dist/elements/QueryPresets/fields/WhereField/index.js +64 -85
  402. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  403. package/dist/elements/ReactSelect/ClearIndicator/index.js +29 -27
  404. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  405. package/dist/elements/ReactSelect/Control/index.js +40 -41
  406. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  407. package/dist/elements/ReactSelect/DropdownIndicator/index.js +26 -23
  408. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  409. package/dist/elements/ReactSelect/Input/index.js +20 -13
  410. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  411. package/dist/elements/ReactSelect/MultiValue/index.js +54 -125
  412. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  413. package/dist/elements/ReactSelect/MultiValueLabel/index.js +29 -32
  414. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  415. package/dist/elements/ReactSelect/MultiValueRemove/index.js +49 -86
  416. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  417. package/dist/elements/ReactSelect/SingleValue/index.js +22 -14
  418. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  419. package/dist/elements/ReactSelect/ValueContainer/index.js +38 -29
  420. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  421. package/dist/elements/ReactSelect/index.js +214 -201
  422. package/dist/elements/ReactSelect/index.js.map +1 -1
  423. package/dist/elements/ReactSelect/types.js +9 -1
  424. package/dist/elements/ReactSelect/types.js.map +1 -1
  425. package/dist/elements/RelationshipTable/AddNewButton.js +68 -58
  426. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  427. package/dist/elements/RelationshipTable/Pagination.js +21 -48
  428. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  429. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +39 -34
  430. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  431. package/dist/elements/RelationshipTable/index.js +389 -267
  432. package/dist/elements/RelationshipTable/index.js.map +1 -1
  433. package/dist/elements/RenderComponent/index.js +29 -20
  434. package/dist/elements/RenderComponent/index.js.map +1 -1
  435. package/dist/elements/RenderCustomComponent/index.js +3 -5
  436. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  437. package/dist/elements/RenderIfInViewport/index.js +27 -58
  438. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  439. package/dist/elements/RenderServerComponent/index.js +57 -56
  440. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  441. package/dist/elements/RenderTitle/index.js +44 -59
  442. package/dist/elements/RenderTitle/index.js.map +1 -1
  443. package/dist/elements/RestoreButton/index.js +187 -154
  444. package/dist/elements/RestoreButton/index.js.map +1 -1
  445. package/dist/elements/RestoreMany/index.js +177 -170
  446. package/dist/elements/RestoreMany/index.js.map +1 -1
  447. package/dist/elements/SaveButton/index.js +46 -49
  448. package/dist/elements/SaveButton/index.js.map +1 -1
  449. package/dist/elements/SaveDraftButton/index.js +84 -88
  450. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  451. package/dist/elements/SearchBar/index.js +37 -19
  452. package/dist/elements/SearchBar/index.js.map +1 -1
  453. package/dist/elements/SearchFilter/index.js +60 -54
  454. package/dist/elements/SearchFilter/index.js.map +1 -1
  455. package/dist/elements/SearchFilter/types.js +20 -1
  456. package/dist/elements/SearchFilter/types.js.map +1 -1
  457. package/dist/elements/SelectAll/index.js +21 -46
  458. package/dist/elements/SelectAll/index.js.map +1 -1
  459. package/dist/elements/SelectMany/index.js +27 -25
  460. package/dist/elements/SelectMany/index.js.map +1 -1
  461. package/dist/elements/SelectRow/index.js +27 -79
  462. package/dist/elements/SelectRow/index.js.map +1 -1
  463. package/dist/elements/ShimmerEffect/index.js +64 -78
  464. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  465. package/dist/elements/SortColumn/index.js +98 -106
  466. package/dist/elements/SortColumn/index.js.map +1 -1
  467. package/dist/elements/SortComplex/index.js +142 -163
  468. package/dist/elements/SortComplex/index.js.map +1 -1
  469. package/dist/elements/SortHeader/index.js +54 -87
  470. package/dist/elements/SortHeader/index.js.map +1 -1
  471. package/dist/elements/SortRow/index.js +21 -27
  472. package/dist/elements/SortRow/index.js.map +1 -1
  473. package/dist/elements/Status/index.js +159 -134
  474. package/dist/elements/Status/index.js.map +1 -1
  475. package/dist/elements/StayLoggedIn/index.js +38 -76
  476. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  477. package/dist/elements/StepNav/SetStepNav.js +10 -27
  478. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  479. package/dist/elements/StepNav/context.js +24 -41
  480. package/dist/elements/StepNav/context.js.map +1 -1
  481. package/dist/elements/StepNav/index.js +148 -92
  482. package/dist/elements/StepNav/index.js.map +1 -1
  483. package/dist/elements/StepNav/types.js +2 -1
  484. package/dist/elements/StepNav/types.js.map +1 -1
  485. package/dist/elements/StickyToolbar/index.js +10 -8
  486. package/dist/elements/StickyToolbar/index.js.map +1 -1
  487. package/dist/elements/Table/DefaultCell/fields/Array/index.js +13 -28
  488. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  489. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +34 -60
  490. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  491. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +18 -27
  492. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  493. package/dist/elements/Table/DefaultCell/fields/Code/index.js +22 -17
  494. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  495. package/dist/elements/Table/DefaultCell/fields/Date/index.js +22 -41
  496. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  497. package/dist/elements/Table/DefaultCell/fields/File/index.js +53 -43
  498. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  499. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +35 -43
  500. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  501. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +115 -183
  502. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  503. package/dist/elements/Table/DefaultCell/fields/Select/index.js +22 -44
  504. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  505. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +11 -9
  506. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  507. package/dist/elements/Table/DefaultCell/fields/index.js +14 -14
  508. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  509. package/dist/elements/Table/DefaultCell/index.js +124 -151
  510. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  511. package/dist/elements/Table/OrderableRow.js +40 -32
  512. package/dist/elements/Table/OrderableRow.js.map +1 -1
  513. package/dist/elements/Table/OrderableRowDragPreview.js +24 -15
  514. package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
  515. package/dist/elements/Table/OrderableTable.js +225 -170
  516. package/dist/elements/Table/OrderableTable.js.map +1 -1
  517. package/dist/elements/Table/RelationshipProvider/index.js +106 -162
  518. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  519. package/dist/elements/Table/RelationshipProvider/reducer.js +42 -42
  520. package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
  521. package/dist/elements/Table/index.js +83 -45
  522. package/dist/elements/Table/index.js.map +1 -1
  523. package/dist/elements/Thumbnail/createThumbnail.js +53 -48
  524. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  525. package/dist/elements/Thumbnail/index.js +127 -148
  526. package/dist/elements/Thumbnail/index.js.map +1 -1
  527. package/dist/elements/ThumbnailCard/index.js +47 -68
  528. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  529. package/dist/elements/TimezonePicker/index.js +53 -44
  530. package/dist/elements/TimezonePicker/index.js.map +1 -1
  531. package/dist/elements/TimezonePicker/types.js +2 -1
  532. package/dist/elements/TimezonePicker/types.js.map +1 -1
  533. package/dist/elements/Toasts/fieldErrors.js +71 -79
  534. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  535. package/dist/elements/Toasts/fieldErrors.spec.js +50 -36
  536. package/dist/elements/Toasts/fieldErrors.spec.js.map +1 -1
  537. package/dist/elements/Tooltip/index.js +98 -65
  538. package/dist/elements/Tooltip/index.js.map +1 -1
  539. package/dist/elements/Translation/index.js +48 -39
  540. package/dist/elements/Translation/index.js.map +1 -1
  541. package/dist/elements/TrashBanner/index.js +33 -26
  542. package/dist/elements/TrashBanner/index.js.map +1 -1
  543. package/dist/elements/UnpublishButton/index.js +189 -170
  544. package/dist/elements/UnpublishButton/index.js.map +1 -1
  545. package/dist/elements/UnpublishMany/DrawerContent.js +130 -127
  546. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  547. package/dist/elements/UnpublishMany/index.js +58 -109
  548. package/dist/elements/UnpublishMany/index.js.map +1 -1
  549. package/dist/elements/Upload/index.js +633 -481
  550. package/dist/elements/Upload/index.js.map +1 -1
  551. package/dist/elements/ViewDescription/index.js +15 -26
  552. package/dist/elements/ViewDescription/index.js.map +1 -1
  553. package/dist/elements/ViewDescription/types.js.map +1 -1
  554. package/dist/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
  555. package/dist/elements/WhereBuilder/Condition/Date/index.js +27 -29
  556. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  557. package/dist/elements/WhereBuilder/Condition/Date/types.js +2 -1
  558. package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
  559. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +95 -76
  560. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  561. package/dist/elements/WhereBuilder/Condition/Number/index.js +74 -129
  562. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  563. package/dist/elements/WhereBuilder/Condition/Number/types.js +2 -1
  564. package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
  565. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +357 -315
  566. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  567. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +83 -67
  568. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
  569. package/dist/elements/WhereBuilder/Condition/Relationship/types.js +2 -1
  570. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  571. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +10 -9
  572. package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -1
  573. package/dist/elements/WhereBuilder/Condition/Select/index.js +69 -154
  574. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  575. package/dist/elements/WhereBuilder/Condition/Select/types.js +2 -1
  576. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  577. package/dist/elements/WhereBuilder/Condition/Text/index.js +73 -121
  578. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  579. package/dist/elements/WhereBuilder/Condition/Text/types.js +2 -1
  580. package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
  581. package/dist/elements/WhereBuilder/Condition/index.js +206 -143
  582. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  583. package/dist/elements/WhereBuilder/Condition/types.js +2 -1
  584. package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
  585. package/dist/elements/WhereBuilder/Condition/validOperators.js +32 -33
  586. package/dist/elements/WhereBuilder/Condition/validOperators.js.map +1 -1
  587. package/dist/elements/WhereBuilder/field-types.js +189 -118
  588. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  589. package/dist/elements/WhereBuilder/index.js +284 -214
  590. package/dist/elements/WhereBuilder/index.js.map +1 -1
  591. package/dist/elements/WhereBuilder/types.js +2 -1
  592. package/dist/elements/WhereBuilder/types.js.map +1 -1
  593. package/dist/elements/WindowInfo/index.js +1 -1
  594. package/dist/elements/WindowInfo/index.js.map +1 -1
  595. package/dist/elements/WithServerSideProps/index.js +20 -19
  596. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  597. package/dist/elements/withMergedProps/index.js +26 -26
  598. package/dist/elements/withMergedProps/index.js.map +1 -1
  599. package/dist/exports/client/index.js +298 -96
  600. package/dist/exports/client/index.js.map +1 -7
  601. package/dist/exports/rsc/index.js +1 -0
  602. package/dist/exports/rsc/index.js.map +1 -1
  603. package/dist/exports/shared/index.js +36 -6
  604. package/dist/exports/shared/index.js.map +1 -7
  605. package/dist/fields/Array/ArrayRow.js +111 -168
  606. package/dist/fields/Array/ArrayRow.js.map +1 -1
  607. package/dist/fields/Array/index.js +532 -398
  608. package/dist/fields/Array/index.js.map +1 -1
  609. package/dist/fields/Blocks/BlockRow.js +163 -198
  610. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  611. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +30 -38
  612. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  613. package/dist/fields/Blocks/BlockSelector/index.js +161 -106
  614. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  615. package/dist/fields/Blocks/BlocksDrawer/index.js +37 -80
  616. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  617. package/dist/fields/Blocks/RowActions.js +50 -106
  618. package/dist/fields/Blocks/RowActions.js.map +1 -1
  619. package/dist/fields/Blocks/SectionTitle/index.js +36 -78
  620. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  621. package/dist/fields/Blocks/index.js +566 -425
  622. package/dist/fields/Blocks/index.js.map +1 -1
  623. package/dist/fields/Checkbox/Input.js +91 -115
  624. package/dist/fields/Checkbox/Input.js.map +1 -1
  625. package/dist/fields/Checkbox/index.js +107 -99
  626. package/dist/fields/Checkbox/index.js.map +1 -1
  627. package/dist/fields/Code/index.js +146 -114
  628. package/dist/fields/Code/index.js.map +1 -1
  629. package/dist/fields/Collapsible/index.js +172 -134
  630. package/dist/fields/Collapsible/index.js.map +1 -1
  631. package/dist/fields/ConfirmPassword/index.js +67 -83
  632. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  633. package/dist/fields/DateTime/index.js +217 -171
  634. package/dist/fields/DateTime/index.js.map +1 -1
  635. package/dist/fields/Email/index.js +111 -86
  636. package/dist/fields/Email/index.js.map +1 -1
  637. package/dist/fields/FieldDescription/index.js +20 -43
  638. package/dist/fields/FieldDescription/index.js.map +1 -1
  639. package/dist/fields/FieldError/index.js +22 -58
  640. package/dist/fields/FieldError/index.js.map +1 -1
  641. package/dist/fields/FieldLabel/index.js +43 -45
  642. package/dist/fields/FieldLabel/index.js.map +1 -1
  643. package/dist/fields/Group/index.js +150 -102
  644. package/dist/fields/Group/index.js.map +1 -1
  645. package/dist/fields/Group/provider.js +13 -12
  646. package/dist/fields/Group/provider.js.map +1 -1
  647. package/dist/fields/Hidden/index.js +27 -67
  648. package/dist/fields/Hidden/index.js.map +1 -1
  649. package/dist/fields/JSON/index.js +185 -143
  650. package/dist/fields/JSON/index.js.map +1 -1
  651. package/dist/fields/Join/index.js +214 -189
  652. package/dist/fields/Join/index.js.map +1 -1
  653. package/dist/fields/Number/index.js +213 -169
  654. package/dist/fields/Number/index.js.map +1 -1
  655. package/dist/fields/Password/index.js +80 -101
  656. package/dist/fields/Password/index.js.map +1 -1
  657. package/dist/fields/Password/input.js +108 -122
  658. package/dist/fields/Password/input.js.map +1 -1
  659. package/dist/fields/Password/types.js +12 -1
  660. package/dist/fields/Password/types.js.map +1 -1
  661. package/dist/fields/Point/index.js +199 -127
  662. package/dist/fields/Point/index.js.map +1 -1
  663. package/dist/fields/RadioGroup/Radio/index.js +56 -81
  664. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  665. package/dist/fields/RadioGroup/index.js +146 -114
  666. package/dist/fields/RadioGroup/index.js.map +1 -1
  667. package/dist/fields/Relationship/Input.js +811 -733
  668. package/dist/fields/Relationship/Input.js.map +1 -1
  669. package/dist/fields/Relationship/createRelationMap.js +31 -33
  670. package/dist/fields/Relationship/createRelationMap.js.map +1 -1
  671. package/dist/fields/Relationship/findOptionsByValue.js +28 -32
  672. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  673. package/dist/fields/Relationship/index.js +152 -160
  674. package/dist/fields/Relationship/index.js.map +1 -1
  675. package/dist/fields/Relationship/optionsReducer.js +144 -139
  676. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  677. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +92 -82
  678. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  679. package/dist/fields/Relationship/select-components/SingleValue/index.js +95 -118
  680. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  681. package/dist/fields/Relationship/types.js +2 -1
  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 +37 -35
  686. package/dist/fields/Row/index.js.map +1 -1
  687. package/dist/fields/Row/provider.js +13 -12
  688. package/dist/fields/Row/provider.js.map +1 -1
  689. package/dist/fields/Select/Input.js +114 -165
  690. package/dist/fields/Select/Input.js.map +1 -1
  691. package/dist/fields/Select/index.js +89 -108
  692. package/dist/fields/Select/index.js.map +1 -1
  693. package/dist/fields/Slug/index.js +103 -134
  694. package/dist/fields/Slug/index.js.map +1 -1
  695. package/dist/fields/Tabs/Tab/index.js +54 -60
  696. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  697. package/dist/fields/Tabs/index.js +213 -383
  698. package/dist/fields/Tabs/index.js.map +1 -1
  699. package/dist/fields/Tabs/provider.js +13 -12
  700. package/dist/fields/Tabs/provider.js.map +1 -1
  701. package/dist/fields/Text/Input.js +169 -191
  702. package/dist/fields/Text/Input.js.map +1 -1
  703. package/dist/fields/Text/index.js +107 -126
  704. package/dist/fields/Text/index.js.map +1 -1
  705. package/dist/fields/Text/types.js +2 -1
  706. package/dist/fields/Text/types.js.map +1 -1
  707. package/dist/fields/Textarea/Input.js +104 -115
  708. package/dist/fields/Textarea/Input.js.map +1 -1
  709. package/dist/fields/Textarea/index.js +61 -88
  710. package/dist/fields/Textarea/index.js.map +1 -1
  711. package/dist/fields/Textarea/types.js +2 -1
  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 +142 -187
  716. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  717. package/dist/fields/Upload/HasOne/index.js +60 -61
  718. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  719. package/dist/fields/Upload/Input.js +755 -566
  720. package/dist/fields/Upload/Input.js.map +1 -1
  721. package/dist/fields/Upload/RelationshipContent/index.js +141 -145
  722. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  723. package/dist/fields/Upload/UploadCard/index.js +15 -10
  724. package/dist/fields/Upload/UploadCard/index.js.map +1 -1
  725. package/dist/fields/Upload/index.js +79 -96
  726. package/dist/fields/Upload/index.js.map +1 -1
  727. package/dist/fields/Upload/types.js +3 -1
  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 +13 -12
  732. package/dist/fields/mergeFieldStyles.js.map +1 -1
  733. package/dist/fields/shared/index.js +8 -17
  734. package/dist/fields/shared/index.js.map +1 -1
  735. package/dist/forms/Form/context.js +17 -24
  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 +378 -412
  742. package/dist/forms/Form/fieldReducer.js.map +1 -1
  743. package/dist/forms/Form/index.js +754 -694
  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 +146 -156
  748. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  749. package/dist/forms/Form/reduceToSerializableFields.js +20 -17
  750. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  751. package/dist/forms/Form/rowHelpers.js +27 -34
  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 +53 -1
  756. package/dist/forms/Form/types.js.map +1 -1
  757. package/dist/forms/NullifyField/index.js +61 -96
  758. package/dist/forms/NullifyField/index.js.map +1 -1
  759. package/dist/forms/RenderFields/RenderField.js +237 -259
  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 +76 -115
  764. package/dist/forms/RenderFields/index.js.map +1 -1
  765. package/dist/forms/RenderFields/types.js +2 -1
  766. package/dist/forms/RenderFields/types.js.map +1 -1
  767. package/dist/forms/RowLabel/Context/index.js +30 -29
  768. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  769. package/dist/forms/RowLabel/index.js +33 -24
  770. package/dist/forms/RowLabel/index.js.map +1 -1
  771. package/dist/forms/RowLabel/types.js +2 -1
  772. package/dist/forms/RowLabel/types.js.map +1 -1
  773. package/dist/forms/Submit/index.js +32 -35
  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 +44 -67
  778. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  779. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +681 -706
  780. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  781. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +14 -22
  782. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  783. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +17 -26
  784. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  785. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +186 -198
  786. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  787. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +67 -60
  788. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
  789. package/dist/forms/fieldSchemasToFormState/index.js +90 -79
  790. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  791. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +12 -16
  792. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  793. package/dist/forms/fieldSchemasToFormState/iterateFields.js +95 -116
  794. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  795. package/dist/forms/fieldSchemasToFormState/renderField.js +275 -276
  796. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  797. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +90 -75
  798. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  799. package/dist/forms/fieldSchemasToFormState/types.js +6 -1
  800. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  801. package/dist/forms/useField/index.js +180 -292
  802. package/dist/forms/useField/index.js.map +1 -1
  803. package/dist/forms/useField/types.js +20 -1
  804. package/dist/forms/useField/types.js.map +1 -1
  805. package/dist/forms/withCondition/WatchCondition.js +9 -27
  806. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  807. package/dist/forms/withCondition/index.js +21 -15
  808. package/dist/forms/withCondition/index.js.map +1 -1
  809. package/dist/graphics/Account/Default/index.js +46 -22
  810. package/dist/graphics/Account/Default/index.js.map +1 -1
  811. package/dist/graphics/Account/Gravatar/index.js +25 -34
  812. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  813. package/dist/graphics/Account/index.js +24 -51
  814. package/dist/graphics/Account/index.js.map +1 -1
  815. package/dist/graphics/DefaultBlockImage/index.js +117 -62
  816. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  817. package/dist/graphics/File/index.js +33 -17
  818. package/dist/graphics/File/index.js.map +1 -1
  819. package/dist/graphics/Icon/index.js +33 -19
  820. package/dist/graphics/Icon/index.js.map +1 -1
  821. package/dist/graphics/Logo/index.js +112 -39
  822. package/dist/graphics/Logo/index.js.map +1 -1
  823. package/dist/hooks/useClickOutside.js +19 -15
  824. package/dist/hooks/useClickOutside.js.map +1 -1
  825. package/dist/hooks/useControllableState.js +25 -35
  826. package/dist/hooks/useControllableState.js.map +1 -1
  827. package/dist/hooks/useDebounce.js +15 -26
  828. package/dist/hooks/useDebounce.js.map +1 -1
  829. package/dist/hooks/useDebouncedCallback.js +15 -23
  830. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  831. package/dist/hooks/useDebouncedEffect.js +18 -53
  832. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  833. package/dist/hooks/useDelay.js +27 -52
  834. package/dist/hooks/useDelay.js.map +1 -1
  835. package/dist/hooks/useDelayedRender.js +42 -76
  836. package/dist/hooks/useDelayedRender.js.map +1 -1
  837. package/dist/hooks/useEffectEvent.js +16 -13
  838. package/dist/hooks/useEffectEvent.js.map +1 -1
  839. package/dist/hooks/useHotkey.js +96 -110
  840. package/dist/hooks/useHotkey.js.map +1 -1
  841. package/dist/hooks/useIntersect.js +28 -59
  842. package/dist/hooks/useIntersect.js.map +1 -1
  843. package/dist/hooks/usePayloadAPI.js +78 -172
  844. package/dist/hooks/usePayloadAPI.js.map +1 -1
  845. package/dist/hooks/usePopupWindow.js +91 -133
  846. package/dist/hooks/usePopupWindow.js.map +1 -1
  847. package/dist/hooks/useQueue.js +48 -38
  848. package/dist/hooks/useQueue.js.map +1 -1
  849. package/dist/hooks/useRelatedCollections.js +15 -27
  850. package/dist/hooks/useRelatedCollections.js.map +1 -1
  851. package/dist/hooks/useResize.js +42 -70
  852. package/dist/hooks/useResize.js.map +1 -1
  853. package/dist/hooks/useThrottledEffect.js +17 -51
  854. package/dist/hooks/useThrottledEffect.js.map +1 -1
  855. package/dist/hooks/useThrottledValue.js +16 -13
  856. package/dist/hooks/useThrottledValue.js.map +1 -1
  857. package/dist/hooks/useUseAsTitle.js +7 -27
  858. package/dist/hooks/useUseAsTitle.js.map +1 -1
  859. package/dist/icons/Calendar/index.js +20 -11
  860. package/dist/icons/Calendar/index.js.map +1 -1
  861. package/dist/icons/Check/index.js +20 -11
  862. package/dist/icons/Check/index.js.map +1 -1
  863. package/dist/icons/Chevron/index.js +30 -22
  864. package/dist/icons/Chevron/index.js.map +1 -1
  865. package/dist/icons/CloseMenu/index.js +20 -11
  866. package/dist/icons/CloseMenu/index.js.map +1 -1
  867. package/dist/icons/CodeBlock/index.js +22 -13
  868. package/dist/icons/CodeBlock/index.js.map +1 -1
  869. package/dist/icons/Copy/index.js +24 -17
  870. package/dist/icons/Copy/index.js.map +1 -1
  871. package/dist/icons/Document/index.js +25 -16
  872. package/dist/icons/Document/index.js.map +1 -1
  873. package/dist/icons/Dots/index.js +32 -11
  874. package/dist/icons/Dots/index.js.map +1 -1
  875. package/dist/icons/DragHandle/index.js +70 -33
  876. package/dist/icons/DragHandle/index.js.map +1 -1
  877. package/dist/icons/Edit/index.js +23 -13
  878. package/dist/icons/Edit/index.js.map +1 -1
  879. package/dist/icons/ExternalLink/index.js +25 -15
  880. package/dist/icons/ExternalLink/index.js.map +1 -1
  881. package/dist/icons/Eye/index.js +53 -25
  882. package/dist/icons/Eye/index.js.map +1 -1
  883. package/dist/icons/Folder/index.js +26 -16
  884. package/dist/icons/Folder/index.js.map +1 -1
  885. package/dist/icons/Gear/index.js +34 -21
  886. package/dist/icons/Gear/index.js.map +1 -1
  887. package/dist/icons/GridView/index.js +57 -31
  888. package/dist/icons/GridView/index.js.map +1 -1
  889. package/dist/icons/Line/index.js +23 -14
  890. package/dist/icons/Line/index.js.map +1 -1
  891. package/dist/icons/Link/index.js +25 -16
  892. package/dist/icons/Link/index.js.map +1 -1
  893. package/dist/icons/ListView/index.js +25 -16
  894. package/dist/icons/ListView/index.js.map +1 -1
  895. package/dist/icons/Lock/index.js +41 -24
  896. package/dist/icons/Lock/index.js.map +1 -1
  897. package/dist/icons/LogOut/index.js +23 -14
  898. package/dist/icons/LogOut/index.js.map +1 -1
  899. package/dist/icons/Menu/index.js +23 -14
  900. package/dist/icons/Menu/index.js.map +1 -1
  901. package/dist/icons/MinimizeMaximize/index.js +33 -19
  902. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  903. package/dist/icons/More/index.js +43 -21
  904. package/dist/icons/More/index.js.map +1 -1
  905. package/dist/icons/MoveFolder/index.js +62 -34
  906. package/dist/icons/MoveFolder/index.js.map +1 -1
  907. package/dist/icons/People/index.js +28 -17
  908. package/dist/icons/People/index.js.map +1 -1
  909. package/dist/icons/Plus/index.js +22 -13
  910. package/dist/icons/Plus/index.js.map +1 -1
  911. package/dist/icons/Search/index.js +21 -12
  912. package/dist/icons/Search/index.js.map +1 -1
  913. package/dist/icons/Sort/index.js +48 -35
  914. package/dist/icons/Sort/index.js.map +1 -1
  915. package/dist/icons/Swap/index.js +20 -11
  916. package/dist/icons/Swap/index.js.map +1 -1
  917. package/dist/icons/ThreeDots/index.js +27 -8
  918. package/dist/icons/ThreeDots/index.js.map +1 -1
  919. package/dist/icons/Trash/index.js +28 -18
  920. package/dist/icons/Trash/index.js.map +1 -1
  921. package/dist/icons/X/index.js +25 -15
  922. package/dist/icons/X/index.js.map +1 -1
  923. package/dist/providers/Actions/index.js +21 -33
  924. package/dist/providers/Actions/index.js.map +1 -1
  925. package/dist/providers/Auth/index.d.ts +2 -1
  926. package/dist/providers/Auth/index.d.ts.map +1 -1
  927. package/dist/providers/Auth/index.js +293 -243
  928. package/dist/providers/Auth/index.js.map +1 -1
  929. package/dist/providers/ClickOutside/index.js +35 -35
  930. package/dist/providers/ClickOutside/index.js.map +1 -1
  931. package/dist/providers/ClientFunction/index.js +63 -104
  932. package/dist/providers/ClientFunction/index.js.map +1 -1
  933. package/dist/providers/Config/index.js +91 -91
  934. package/dist/providers/Config/index.js.map +1 -1
  935. package/dist/providers/DocumentEvents/index.js +19 -30
  936. package/dist/providers/DocumentEvents/index.js.map +1 -1
  937. package/dist/providers/DocumentInfo/index.js +342 -335
  938. package/dist/providers/DocumentInfo/index.js.map +1 -1
  939. package/dist/providers/DocumentInfo/types.js +29 -1
  940. package/dist/providers/DocumentInfo/types.js.map +1 -1
  941. package/dist/providers/DocumentInfo/useGetDocPermissions.js +81 -79
  942. package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
  943. package/dist/providers/DocumentTitle/context.js.map +1 -1
  944. package/dist/providers/DocumentTitle/index.js +51 -55
  945. package/dist/providers/DocumentTitle/index.js.map +1 -1
  946. package/dist/providers/EditDepth/index.js +15 -25
  947. package/dist/providers/EditDepth/index.js.map +1 -1
  948. package/dist/providers/EntityVisibility/index.js +26 -48
  949. package/dist/providers/EntityVisibility/index.js.map +1 -1
  950. package/dist/providers/Folders/groupItemIDsByRelation.js +8 -7
  951. package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -1
  952. package/dist/providers/Folders/index.js +698 -600
  953. package/dist/providers/Folders/index.js.map +1 -1
  954. package/dist/providers/ListQuery/context.js +3 -2
  955. package/dist/providers/ListQuery/context.js.map +1 -1
  956. package/dist/providers/ListQuery/index.js +156 -142
  957. package/dist/providers/ListQuery/index.js.map +1 -1
  958. package/dist/providers/ListQuery/mergeQuery.js +49 -31
  959. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  960. package/dist/providers/ListQuery/sanitizeQuery.js +24 -23
  961. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  962. package/dist/providers/ListQuery/types.js +6 -1
  963. package/dist/providers/ListQuery/types.js.map +1 -1
  964. package/dist/providers/LivePreview/collisionDetection.js +21 -24
  965. package/dist/providers/LivePreview/collisionDetection.js.map +1 -1
  966. package/dist/providers/LivePreview/context.js +65 -56
  967. package/dist/providers/LivePreview/context.js.map +1 -1
  968. package/dist/providers/LivePreview/index.js +239 -220
  969. package/dist/providers/LivePreview/index.js.map +1 -1
  970. package/dist/providers/LivePreview/sizeReducer.js +19 -18
  971. package/dist/providers/LivePreview/sizeReducer.js.map +1 -1
  972. package/dist/providers/Locale/index.js +87 -154
  973. package/dist/providers/Locale/index.js.map +1 -1
  974. package/dist/providers/Operation/index.js +12 -11
  975. package/dist/providers/Operation/index.js.map +1 -1
  976. package/dist/providers/Params/index.js +14 -26
  977. package/dist/providers/Params/index.js.map +1 -1
  978. package/dist/providers/Preferences/index.js +130 -122
  979. package/dist/providers/Preferences/index.js.map +1 -1
  980. package/dist/providers/Root/index.js +191 -116
  981. package/dist/providers/Root/index.js.map +1 -1
  982. package/dist/providers/RouteCache/index.js +53 -103
  983. package/dist/providers/RouteCache/index.js.map +1 -1
  984. package/dist/providers/RouteTransition/ProgressBar/index.js +61 -80
  985. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  986. package/dist/providers/RouteTransition/index.js +69 -94
  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 +36 -35
  991. package/dist/providers/SearchParams/index.js.map +1 -1
  992. package/dist/providers/Selection/index.js +212 -192
  993. package/dist/providers/Selection/index.js.map +1 -1
  994. package/dist/providers/ServerFunctions/index.js +193 -184
  995. package/dist/providers/ServerFunctions/index.js.map +1 -1
  996. package/dist/providers/TableColumns/RenderDefaultCell/index.js +33 -62
  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 +50 -52
  1001. package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js.map +1 -1
  1002. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js +3 -2
  1003. package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js.map +1 -1
  1004. package/dist/providers/TableColumns/buildColumnState/index.js +133 -144
  1005. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  1006. package/dist/providers/TableColumns/buildColumnState/isColumnActive.js +10 -14
  1007. package/dist/providers/TableColumns/buildColumnState/isColumnActive.js.map +1 -1
  1008. package/dist/providers/TableColumns/buildColumnState/renderCell.js +151 -152
  1009. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  1010. package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js +16 -15
  1011. package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js.map +1 -1
  1012. package/dist/providers/TableColumns/context.js +2 -1
  1013. package/dist/providers/TableColumns/context.js.map +1 -1
  1014. package/dist/providers/TableColumns/getInitialColumns.js +42 -28
  1015. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
  1016. package/dist/providers/TableColumns/index.js +88 -85
  1017. package/dist/providers/TableColumns/index.js.map +1 -1
  1018. package/dist/providers/TableColumns/types.js +18 -1
  1019. package/dist/providers/TableColumns/types.js.map +1 -1
  1020. package/dist/providers/Theme/index.js +69 -104
  1021. package/dist/providers/Theme/index.js.map +1 -1
  1022. package/dist/providers/ToastContainer/icons/Error.js +34 -19
  1023. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  1024. package/dist/providers/ToastContainer/icons/Info.js +34 -19
  1025. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  1026. package/dist/providers/ToastContainer/icons/Success.js +34 -19
  1027. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  1028. package/dist/providers/ToastContainer/icons/Warning.js +34 -19
  1029. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  1030. package/dist/providers/ToastContainer/index.js +56 -47
  1031. package/dist/providers/ToastContainer/index.js.map +1 -1
  1032. package/dist/providers/Translation/index.js +66 -112
  1033. package/dist/providers/Translation/index.js.map +1 -1
  1034. package/dist/providers/UploadControls/index.js +28 -40
  1035. package/dist/providers/UploadControls/index.js.map +1 -1
  1036. package/dist/providers/UploadEdits/index.js +31 -73
  1037. package/dist/providers/UploadEdits/index.js.map +1 -1
  1038. package/dist/providers/UploadHandlers/index.js +30 -65
  1039. package/dist/providers/UploadHandlers/index.js.map +1 -1
  1040. package/dist/providers/WindowInfo/index.js +5 -9
  1041. package/dist/providers/WindowInfo/index.js.map +1 -1
  1042. package/dist/styles.css +0 -1
  1043. package/dist/utilities/abortAndIgnore.js +15 -17
  1044. package/dist/utilities/abortAndIgnore.js.map +1 -1
  1045. package/dist/utilities/api.js +78 -77
  1046. package/dist/utilities/api.js.map +1 -1
  1047. package/dist/utilities/buildClientFieldSchemaMap/index.js +78 -83
  1048. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
  1049. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +177 -184
  1050. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  1051. package/dist/utilities/buildFieldSchemaMap/index.js +75 -78
  1052. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  1053. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +117 -126
  1054. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  1055. package/dist/utilities/buildFormState.js +164 -202
  1056. package/dist/utilities/buildFormState.js.map +1 -1
  1057. package/dist/utilities/buildTableState.js +144 -168
  1058. package/dist/utilities/buildTableState.js.map +1 -1
  1059. package/dist/utilities/canUseDOM.js +1 -0
  1060. package/dist/utilities/canUseDOM.js.map +1 -1
  1061. package/dist/utilities/combineFieldLabel.js +53 -26
  1062. package/dist/utilities/combineFieldLabel.js.map +1 -1
  1063. package/dist/utilities/copyDataFromLocale.js +201 -209
  1064. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  1065. package/dist/utilities/dateLocales.js +28 -27
  1066. package/dist/utilities/dateLocales.js.map +1 -1
  1067. package/dist/utilities/deepMerge.js +14 -13
  1068. package/dist/utilities/deepMerge.js.map +1 -1
  1069. package/dist/utilities/fetchPreferences.js.map +1 -1
  1070. package/dist/utilities/filterOutUploadFields.js +17 -4
  1071. package/dist/utilities/filterOutUploadFields.js.map +1 -1
  1072. package/dist/utilities/findLocaleFromCode.js +6 -5
  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 +2 -1
  1077. package/dist/utilities/formatAdminURL.js.map +1 -1
  1078. package/dist/utilities/formatDocTitle/formatDateTitle.js +20 -27
  1079. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  1080. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +14 -13
  1081. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  1082. package/dist/utilities/formatDocTitle/formatRelationshipTitle.js +14 -13
  1083. package/dist/utilities/formatDocTitle/formatRelationshipTitle.js.map +1 -1
  1084. package/dist/utilities/formatDocTitle/index.js +38 -44
  1085. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  1086. package/dist/utilities/formatFields.js +2 -1
  1087. package/dist/utilities/formatFields.js.map +1 -1
  1088. package/dist/utilities/generateFieldID.js +6 -5
  1089. package/dist/utilities/generateFieldID.js.map +1 -1
  1090. package/dist/utilities/getClientConfig.js +25 -29
  1091. package/dist/utilities/getClientConfig.js.map +1 -1
  1092. package/dist/utilities/getClientSchemaMap.js +26 -35
  1093. package/dist/utilities/getClientSchemaMap.js.map +1 -1
  1094. package/dist/utilities/getColumns.js +29 -35
  1095. package/dist/utilities/getColumns.js.map +1 -1
  1096. package/dist/utilities/getDisplayedFieldValue.js +15 -15
  1097. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  1098. package/dist/utilities/getFolderResultsComponentAndData.js +134 -121
  1099. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  1100. package/dist/utilities/getGlobalData.js +55 -59
  1101. package/dist/utilities/getGlobalData.js.map +1 -1
  1102. package/dist/utilities/getNavGroups.js +21 -18
  1103. package/dist/utilities/getNavGroups.js.map +1 -1
  1104. package/dist/utilities/getOffsetTop.js +14 -13
  1105. package/dist/utilities/getOffsetTop.js.map +1 -1
  1106. package/dist/utilities/getRequestLanguage.js +5 -8
  1107. package/dist/utilities/getRequestLanguage.js.map +1 -1
  1108. package/dist/utilities/getSchemaMap.js +24 -31
  1109. package/dist/utilities/getSchemaMap.js.map +1 -1
  1110. package/dist/utilities/getSupportedMonacoLocale.js +14 -13
  1111. package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
  1112. package/dist/utilities/getVisibleEntities.js +15 -26
  1113. package/dist/utilities/getVisibleEntities.js.map +1 -1
  1114. package/dist/utilities/groupNavItems.js +53 -50
  1115. package/dist/utilities/groupNavItems.js.map +1 -1
  1116. package/dist/utilities/handleBackToDashboard.js +8 -11
  1117. package/dist/utilities/handleBackToDashboard.js.map +1 -1
  1118. package/dist/utilities/handleFormStateLocking.js +131 -125
  1119. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  1120. package/dist/utilities/handleGoBack.js +7 -11
  1121. package/dist/utilities/handleGoBack.js.map +1 -1
  1122. package/dist/utilities/handleLivePreview.js +59 -76
  1123. package/dist/utilities/handleLivePreview.js.map +1 -1
  1124. package/dist/utilities/handlePreview.js +41 -52
  1125. package/dist/utilities/handlePreview.js.map +1 -1
  1126. package/dist/utilities/handleStaleDataCheck.js +52 -57
  1127. package/dist/utilities/handleStaleDataCheck.js.map +1 -1
  1128. package/dist/utilities/handleTakeOver.js +28 -39
  1129. package/dist/utilities/handleTakeOver.js.map +1 -1
  1130. package/dist/utilities/hasOptionLabelJSXElement.js +9 -11
  1131. package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -1
  1132. package/dist/utilities/hasSavePermission.js +14 -14
  1133. package/dist/utilities/hasSavePermission.js.map +1 -1
  1134. package/dist/utilities/isClientUserObject.js +3 -2
  1135. package/dist/utilities/isClientUserObject.js.map +1 -1
  1136. package/dist/utilities/isEditing.js +2 -5
  1137. package/dist/utilities/isEditing.js.map +1 -1
  1138. package/dist/utilities/isURLAllowed.js +30 -29
  1139. package/dist/utilities/isURLAllowed.js.map +1 -1
  1140. package/dist/utilities/isValidReactElement.js +3 -3
  1141. package/dist/utilities/isValidReactElement.js.map +1 -1
  1142. package/dist/utilities/normalizeRelationshipValue.js +29 -28
  1143. package/dist/utilities/normalizeRelationshipValue.js.map +1 -1
  1144. package/dist/utilities/normalizeRelationshipValue.spec.js +407 -368
  1145. package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
  1146. package/dist/utilities/parseSearchParams.js +7 -7
  1147. package/dist/utilities/parseSearchParams.js.map +1 -1
  1148. package/dist/utilities/reduceFieldsToOptions.js +145 -154
  1149. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  1150. package/dist/utilities/reduceFieldsToValuesWithValidation.js +20 -20
  1151. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  1152. package/dist/utilities/removeUndefined.js +2 -1
  1153. package/dist/utilities/removeUndefined.js.map +1 -1
  1154. package/dist/utilities/renderTable.js +239 -195
  1155. package/dist/utilities/renderTable.js.map +1 -1
  1156. package/dist/utilities/resolveFilterOptions.js +27 -26
  1157. package/dist/utilities/resolveFilterOptions.js.map +1 -1
  1158. package/dist/utilities/sanitizeFilterOptionsQuery.js +16 -15
  1159. package/dist/utilities/sanitizeFilterOptionsQuery.js.map +1 -1
  1160. package/dist/utilities/sanitizeID.js +8 -7
  1161. package/dist/utilities/sanitizeID.js.map +1 -1
  1162. package/dist/utilities/schedulePublishHandler.js +48 -58
  1163. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  1164. package/dist/utilities/scrollToID.js +10 -9
  1165. package/dist/utilities/scrollToID.js.map +1 -1
  1166. package/dist/utilities/setsAreEqual.js +3 -2
  1167. package/dist/utilities/setsAreEqual.js.map +1 -1
  1168. package/dist/utilities/shouldPermanentlyDelete.js +4 -8
  1169. package/dist/utilities/shouldPermanentlyDelete.js.map +1 -1
  1170. package/dist/utilities/stringifyTruncated.js +9 -8
  1171. package/dist/utilities/stringifyTruncated.js.map +1 -1
  1172. package/dist/utilities/traverseForLocalizedFields.js +36 -35
  1173. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  1174. package/dist/utilities/upsertPreferences.js +76 -76
  1175. package/dist/utilities/upsertPreferences.js.map +1 -1
  1176. package/dist/views/BrowseByFolder/index.js +365 -304
  1177. package/dist/views/BrowseByFolder/index.js.map +1 -1
  1178. package/dist/views/CollectionFolder/ListSelection/index.js +162 -159
  1179. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  1180. package/dist/views/CollectionFolder/index.js +373 -288
  1181. package/dist/views/CollectionFolder/index.js.map +1 -1
  1182. package/dist/views/Edit/Auth/APIKey.js +185 -124
  1183. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  1184. package/dist/views/Edit/Auth/index.js +309 -321
  1185. package/dist/views/Edit/Auth/index.js.map +1 -1
  1186. package/dist/views/Edit/Auth/types.js +2 -1
  1187. package/dist/views/Edit/Auth/types.js.map +1 -1
  1188. package/dist/views/Edit/SetDocumentStepNav/index.js +84 -150
  1189. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  1190. package/dist/views/Edit/SetDocumentTitle/index.js +30 -77
  1191. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  1192. package/dist/views/Edit/index.js +655 -569
  1193. package/dist/views/Edit/index.js.map +1 -1
  1194. package/dist/views/Edit/types.js +2 -1
  1195. package/dist/views/Edit/types.js.map +1 -1
  1196. package/dist/views/List/GroupByHeader/index.js +35 -24
  1197. package/dist/views/List/GroupByHeader/index.js.map +1 -1
  1198. package/dist/views/List/ListHeader/index.js +117 -83
  1199. package/dist/views/List/ListHeader/index.js.map +1 -1
  1200. package/dist/views/List/ListSelection/index.js +105 -117
  1201. package/dist/views/List/ListSelection/index.js.map +1 -1
  1202. package/dist/views/List/index.js +332 -219
  1203. package/dist/views/List/index.js.map +1 -1
  1204. package/dist/views/List/types.js +2 -1
  1205. package/dist/views/List/types.js.map +1 -1
  1206. package/dist/widgets/CollectionCards/index.js +149 -119
  1207. package/dist/widgets/CollectionCards/index.js.map +1 -1
  1208. package/package.json +4 -4
  1209. package/dist/exports/client/CodeEditor-67I2RYO2.js +0 -14
  1210. package/dist/exports/client/CodeEditor-67I2RYO2.js.map +0 -7
  1211. package/dist/exports/client/DatePicker-T2DMDMM5.js +0 -14
  1212. package/dist/exports/client/DatePicker-T2DMDMM5.js.map +0 -7
  1213. package/dist/exports/client/chunk-5LKBKI4T.js +0 -14
  1214. package/dist/exports/client/chunk-5LKBKI4T.js.map +0 -7
  1215. package/dist/exports/client/chunk-QP5KC7MG.js +0 -27
  1216. package/dist/exports/client/chunk-QP5KC7MG.js.map +0 -7
  1217. package/dist/exports/client/chunk-WDZJLNNB.js +0 -29
  1218. package/dist/exports/client/chunk-WDZJLNNB.js.map +0 -7
@@ -1,7 +1,14 @@
1
1
  'use client';
2
-
3
- import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
2
+ import { dequal } from 'dequal/lite';
3
+ // lite: no need for Map and Set support
4
4
  /**
5
+ * If true, will accept all values from the server, overriding any current values in local state.
6
+ * Can also provide an options object for more granular control.
7
+ */ /**
8
+ * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.
9
+ * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.
10
+ * @default undefined
11
+ */ /**
5
12
  * Parses an array field path to extract the array path, row index, and field path.
6
13
  * Handles nested arrays by finding the deepest numeric index.
7
14
  *
@@ -15,26 +22,25 @@ import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
15
22
  * @example
16
23
  * parseArrayFieldPath('blocks.0.items.1.title')
17
24
  * // Returns: { arrayPath: 'blocks.0.items', rowIndex: 1, fieldPath: 'title' }
18
- */
19
- function parseArrayFieldPath(path) {
20
- const segments = path.split('.');
21
- // Find the last numeric index (indicates array row)
22
- let lastNumericIndex = -1;
23
- for (let i = segments.length - 1; i >= 0; i--) {
24
- if (/^\d+$/.test(segments[i])) {
25
- lastNumericIndex = i;
26
- break;
25
+ */ function parseArrayFieldPath(path) {
26
+ const segments = path.split('.');
27
+ // Find the last numeric index (indicates array row)
28
+ let lastNumericIndex = -1;
29
+ for(let i = segments.length - 1; i >= 0; i--){
30
+ if (/^\d+$/.test(segments[i])) {
31
+ lastNumericIndex = i;
32
+ break;
33
+ }
34
+ }
35
+ // Not an array field if no numeric index or nothing after it
36
+ if (lastNumericIndex === -1 || lastNumericIndex === segments.length - 1) {
37
+ return null;
27
38
  }
28
- }
29
- // Not an array field if no numeric index or nothing after it
30
- if (lastNumericIndex === -1 || lastNumericIndex === segments.length - 1) {
31
- return null;
32
- }
33
- return {
34
- arrayPath: segments.slice(0, lastNumericIndex).join('.'),
35
- fieldPath: segments.slice(lastNumericIndex + 1).join('.'),
36
- rowIndex: parseInt(segments[lastNumericIndex], 10)
37
- };
39
+ return {
40
+ arrayPath: segments.slice(0, lastNumericIndex).join('.'),
41
+ fieldPath: segments.slice(lastNumericIndex + 1).join('.'),
42
+ rowIndex: parseInt(segments[lastNumericIndex], 10)
43
+ };
38
44
  }
39
45
  /**
40
46
  * This function receives form state from the server and intelligently merges it into the client state.
@@ -47,145 +53,129 @@ function parseArrayFieldPath(path) {
47
53
  *
48
54
  * This function applies some defaults, as well as cleans up the server response in preparation for the client.
49
55
  * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.
50
- */
51
- export const mergeServerFormState = ({
52
- acceptValues,
53
- currentState = {},
54
- incomingState
55
- }) => {
56
- const newState = {
57
- ...currentState
58
- };
59
- for (const [path, incomingField] of Object.entries(incomingState || {})) {
60
- if (!(path in currentState) && !incomingField.addedByServer) {
61
- continue;
62
- }
63
- /**
64
- * If it's a new field added by the server, always accept the value.
65
- * Otherwise:
66
- * a. accept all values when explicitly requested, e.g. on submit
67
- * b. only accept values for unmodified fields, e.g. on autosave
68
- */
69
- let shouldAcceptValue = incomingField.addedByServer || acceptValues === true || typeof acceptValues === 'object' && acceptValues !== null &&
70
- // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true
71
- acceptValues.overrideLocalChanges === false && !currentState[path]?.isModified;
72
- /**
73
- * For array row fields, verify the row IDs match at the given index before accepting
74
- * server values. If rows were reordered or deleted while the request was in-flight,
75
- * the same index may refer to different rows, and accepting the server value would
76
- * overwrite the wrong row's data.
77
- *
78
- * This guard only applies during autosave. On explicit save (acceptValues === true),
79
- * the server response is authoritative and this check is bypassed.
80
- */
81
- if (shouldAcceptValue && !incomingField.addedByServer && acceptValues !== true) {
82
- const parsed = parseArrayFieldPath(path);
83
- if (parsed) {
84
- const {
85
- arrayPath,
86
- rowIndex
87
- } = parsed;
88
- const clientRowId = currentState[arrayPath]?.rows?.[rowIndex]?.id;
89
- const serverRowId = incomingState[arrayPath]?.rows?.[rowIndex]?.id;
90
- if (clientRowId === undefined || serverRowId && clientRowId !== serverRowId) {
91
- shouldAcceptValue = false;
92
- }
93
- }
94
- }
95
- let sanitizedIncomingField = incomingField;
96
- if (!shouldAcceptValue) {
97
- /**
98
- * Note: do not delete properties off `incomingField` as this will mutate the original object
99
- * Instead, omit them from the destructured object by excluding specific keys
100
- * This will also ensure we don't set `undefined` into the result unnecessarily
101
- */
102
- const {
103
- initialValue,
104
- value,
105
- ...rest
106
- } = incomingField;
107
- sanitizedIncomingField = rest;
108
- }
109
- newState[path] = {
110
- ...currentState[path],
111
- ...sanitizedIncomingField
56
+ */ export const mergeServerFormState = ({ acceptValues, currentState = {}, incomingState })=>{
57
+ const newState = {
58
+ ...currentState
112
59
  };
113
- if (currentState[path] && 'errorPaths' in currentState[path] && !('errorPaths' in incomingField)) {
114
- newState[path].errorPaths = [];
115
- }
116
- /**
117
- * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending
118
- * For example, the server response could come back with a row which has been deleted on the client
119
- * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server
120
- * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above
121
- *
122
- * On explicit save (acceptValues === true), the server is authoritative - accept server row order.
123
- * On autosave (acceptValues !== true), the client is source of truth - use ID-based matching.
124
- */
125
- if (Array.isArray(incomingField.rows) && path in currentState) {
126
- if (acceptValues === true) {
127
- // Explicit save: server is authoritative, use index-based merging
128
- newState[path].rows = incomingField.rows.map((serverRow, index) => ({
129
- ...(currentState[path]?.rows?.[index] || {}),
130
- ...serverRow
131
- }));
132
- } else {
133
- // Autosave: client is source of truth, use ID-based matching
134
- newState[path].rows = [...(currentState[path]?.rows || [])]; // shallow copy to avoid mutating the original array
135
- incomingField.rows.forEach(row => {
136
- const indexInCurrentState = currentState[path].rows?.findIndex(existingRow => existingRow.id === row.id);
137
- if (indexInCurrentState > -1) {
138
- newState[path].rows[indexInCurrentState] = {
139
- ...currentState[path].rows[indexInCurrentState],
140
- ...row
141
- };
142
- } else if (row.addedByServer) {
60
+ for (const [path, incomingField] of Object.entries(incomingState || {})){
61
+ if (!(path in currentState) && !incomingField.addedByServer) {
62
+ continue;
63
+ }
64
+ /**
65
+ * If it's a new field added by the server, always accept the value.
66
+ * Otherwise:
67
+ * a. accept all values when explicitly requested, e.g. on submit
68
+ * b. only accept values for unmodified fields, e.g. on autosave
69
+ */ let shouldAcceptValue = incomingField.addedByServer || acceptValues === true || typeof acceptValues === 'object' && acceptValues !== null && // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true
70
+ acceptValues.overrideLocalChanges === false && !currentState[path]?.isModified;
71
+ /**
72
+ * For array row fields, verify the row IDs match at the given index before accepting
73
+ * server values. If rows were reordered or deleted while the request was in-flight,
74
+ * the same index may refer to different rows, and accepting the server value would
75
+ * overwrite the wrong row's data.
76
+ *
77
+ * This guard only applies during autosave. On explicit save (acceptValues === true),
78
+ * the server response is authoritative and this check is bypassed.
79
+ */ if (shouldAcceptValue && !incomingField.addedByServer && acceptValues !== true) {
80
+ const parsed = parseArrayFieldPath(path);
81
+ if (parsed) {
82
+ const { arrayPath, rowIndex } = parsed;
83
+ const clientRowId = currentState[arrayPath]?.rows?.[rowIndex]?.id;
84
+ const serverRowId = incomingState[arrayPath]?.rows?.[rowIndex]?.id;
85
+ if (clientRowId === undefined || serverRowId && clientRowId !== serverRowId) {
86
+ shouldAcceptValue = false;
87
+ }
88
+ }
89
+ }
90
+ let sanitizedIncomingField = incomingField;
91
+ if (!shouldAcceptValue) {
143
92
  /**
144
- * Note: This is a known limitation of computed array and block rows
145
- * If a new row was added by the server, we append it to the _end_ of this array
146
- * This is because the client is the source of truth, and it has arrays ordered in a certain position
147
- * For example, the user may have re-ordered rows client-side while a long running request is processing
148
- * This means that we _cannot_ slice a new row into the second position on the server, for example
149
- * By the time it gets back to the client, its index is stale
150
- */
151
- const newRow = {
152
- ...row
153
- };
154
- delete newRow.addedByServer;
155
- newState[path].rows.push(newRow);
156
- }
157
- });
93
+ * Note: do not delete properties off `incomingField` as this will mutate the original object
94
+ * Instead, omit them from the destructured object by excluding specific keys
95
+ * This will also ensure we don't set `undefined` into the result unnecessarily
96
+ */ const { initialValue, value, ...rest } = incomingField;
97
+ sanitizedIncomingField = rest;
98
+ }
99
+ newState[path] = {
100
+ ...currentState[path],
101
+ ...sanitizedIncomingField
102
+ };
103
+ if (currentState[path] && 'errorPaths' in currentState[path] && !('errorPaths' in incomingField)) {
104
+ newState[path].errorPaths = [];
105
+ }
158
106
  /**
159
- * Sync the value field to match the actual row count after merging.
160
- * Client is source of truth for row count when rows were added/removed during the request.
161
- */
162
- if ('value' in incomingField && newState[path].rows.length !== incomingField.value) {
163
- newState[path].value = newState[path].rows.length;
107
+ * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending
108
+ * For example, the server response could come back with a row which has been deleted on the client
109
+ * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server
110
+ * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above
111
+ *
112
+ * On explicit save (acceptValues === true), the server is authoritative - accept server row order.
113
+ * On autosave (acceptValues !== true), the client is source of truth - use ID-based matching.
114
+ */ if (Array.isArray(incomingField.rows) && path in currentState) {
115
+ if (acceptValues === true) {
116
+ // Explicit save: server is authoritative, use index-based merging
117
+ newState[path].rows = incomingField.rows.map((serverRow, index)=>({
118
+ ...currentState[path]?.rows?.[index] || {},
119
+ ...serverRow
120
+ }));
121
+ } else {
122
+ // Autosave: client is source of truth, use ID-based matching
123
+ newState[path].rows = [
124
+ ...currentState[path]?.rows || []
125
+ ];
126
+ // shallow copy to avoid mutating the original array
127
+ incomingField.rows.forEach((row)=>{
128
+ const indexInCurrentState = currentState[path].rows?.findIndex((existingRow)=>existingRow.id === row.id);
129
+ if (indexInCurrentState > -1) {
130
+ newState[path].rows[indexInCurrentState] = {
131
+ ...currentState[path].rows[indexInCurrentState],
132
+ ...row
133
+ };
134
+ } else if (row.addedByServer) {
135
+ /**
136
+ * Note: This is a known limitation of computed array and block rows
137
+ * If a new row was added by the server, we append it to the _end_ of this array
138
+ * This is because the client is the source of truth, and it has arrays ordered in a certain position
139
+ * For example, the user may have re-ordered rows client-side while a long running request is processing
140
+ * This means that we _cannot_ slice a new row into the second position on the server, for example
141
+ * By the time it gets back to the client, its index is stale
142
+ */ const newRow = {
143
+ ...row
144
+ };
145
+ delete newRow.addedByServer;
146
+ newState[path].rows.push(newRow);
147
+ }
148
+ });
149
+ /**
150
+ * Sync the value field to match the actual row count after merging.
151
+ * Client is source of truth for row count when rows were added/removed during the request.
152
+ */ if ('value' in incomingField && newState[path].rows.length !== incomingField.value) {
153
+ newState[path].value = newState[path].rows.length;
154
+ }
155
+ }
164
156
  }
165
- }
166
- }
167
- // If `valid` is `undefined`, mark it as `true`
168
- if (incomingField.valid !== false) {
169
- newState[path].valid = true;
170
- }
171
- // If `passesCondition` is `undefined`, mark it as `true`
172
- if (incomingField.passesCondition !== false) {
173
- newState[path].passesCondition = true;
174
- }
175
- /**
176
- * Undefined values for blocksFilterOptions coming back should be treated as "all blocks allowed" and
177
- * should always be merged in.
178
- * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.
179
- */
180
- if (!incomingField.blocksFilterOptions) {
181
- delete newState[path].blocksFilterOptions;
157
+ // If `valid` is `undefined`, mark it as `true`
158
+ if (incomingField.valid !== false) {
159
+ newState[path].valid = true;
160
+ }
161
+ // If `passesCondition` is `undefined`, mark it as `true`
162
+ if (incomingField.passesCondition !== false) {
163
+ newState[path].passesCondition = true;
164
+ }
165
+ /**
166
+ * Undefined values for blocksFilterOptions coming back should be treated as "all blocks allowed" and
167
+ * should always be merged in.
168
+ * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.
169
+ */ if (!incomingField.blocksFilterOptions) {
170
+ delete newState[path].blocksFilterOptions;
171
+ }
172
+ // Strip away the `addedByServer` property from the client
173
+ // This will prevent it from being passed back to the server
174
+ delete newState[path].addedByServer;
182
175
  }
183
- // Strip away the `addedByServer` property from the client
184
- // This will prevent it from being passed back to the server
185
- delete newState[path].addedByServer;
186
- }
187
- // Return the original object reference if the state is unchanged
188
- // This will avoid unnecessary re-renders and dependency updates
189
- return dequal(newState, currentState) ? currentState : newState;
176
+ // Return the original object reference if the state is unchanged
177
+ // This will avoid unnecessary re-renders and dependency updates
178
+ return dequal(newState, currentState) ? currentState : newState;
190
179
  };
180
+
191
181
  //# sourceMappingURL=mergeServerFormState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mergeServerFormState.js","names":["dequal","parseArrayFieldPath","path","segments","split","lastNumericIndex","i","length","test","arrayPath","slice","join","fieldPath","rowIndex","parseInt","mergeServerFormState","acceptValues","currentState","incomingState","newState","incomingField","Object","entries","addedByServer","shouldAcceptValue","overrideLocalChanges","isModified","parsed","clientRowId","rows","id","serverRowId","undefined","sanitizedIncomingField","initialValue","value","rest","errorPaths","Array","isArray","map","serverRow","index","forEach","row","indexInCurrentState","findIndex","existingRow","newRow","push","valid","passesCondition","blocksFilterOptions"],"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\n\n/**\n * If true, will accept all values from the server, overriding any current values in local state.\n * Can also provide an options object for more granular control.\n */\nexport type AcceptValues =\n | {\n /**\n * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.\n * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.\n * @default undefined\n */\n overrideLocalChanges?: boolean\n }\n | boolean\n\ntype Args = {\n acceptValues?: AcceptValues\n currentState?: FormState\n incomingState: FormState\n}\n\n/**\n * Parses an array field path to extract the array path, row index, and field path.\n * Handles nested arrays by finding the deepest numeric index.\n *\n * @param path - The field path to parse (e.g., 'array.1.text' or 'blocks.0.items.1.title')\n * @returns Object with arrayPath, rowIndex, and fieldPath, or null if not an array field\n *\n * @example\n * parseArrayFieldPath('array.1.text')\n * // Returns: { arrayPath: 'array', rowIndex: 1, fieldPath: 'text' }\n *\n * @example\n * parseArrayFieldPath('blocks.0.items.1.title')\n * // Returns: { arrayPath: 'blocks.0.items', rowIndex: 1, fieldPath: 'title' }\n */\nfunction parseArrayFieldPath(path: string): {\n arrayPath: string\n fieldPath: string\n rowIndex: number\n} | null {\n const segments = path.split('.')\n\n // Find the last numeric index (indicates array row)\n let lastNumericIndex = -1\n for (let i = segments.length - 1; i >= 0; i--) {\n if (/^\\d+$/.test(segments[i])) {\n lastNumericIndex = i\n break\n }\n }\n\n // Not an array field if no numeric index or nothing after it\n if (lastNumericIndex === -1 || lastNumericIndex === segments.length - 1) {\n return null\n }\n\n return {\n arrayPath: segments.slice(0, lastNumericIndex).join('.'),\n fieldPath: segments.slice(lastNumericIndex + 1).join('.'),\n rowIndex: parseInt(segments[lastNumericIndex], 10),\n }\n}\n\n/**\n * This function receives form state from the server and intelligently merges it into the client state.\n * The server contains extra properties that the client may not have, e.g. custom components and error states.\n * We typically do not want to merge properties that rely on user input, however, such as values, unless explicitly requested.\n * Doing this would cause the client to lose any local changes to those fields.\n *\n * Note: Local state is the source of truth, not the new server state that is getting merged in. This is critical for array row\n * manipulation specifically, where the user may have added, removed, or reordered rows while a request was pending and is now stale.\n *\n * This function applies some defaults, as well as cleans up the server response in preparation for the client.\n * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.\n */\nexport const mergeServerFormState = ({\n acceptValues,\n currentState = {},\n incomingState,\n}: Args): FormState => {\n const newState = { ...currentState }\n\n for (const [path, incomingField] of Object.entries(incomingState || {})) {\n if (!(path in currentState) && !incomingField.addedByServer) {\n continue\n }\n\n /**\n * If it's a new field added by the server, always accept the value.\n * Otherwise:\n * a. accept all values when explicitly requested, e.g. on submit\n * b. only accept values for unmodified fields, e.g. on autosave\n */\n let shouldAcceptValue =\n incomingField.addedByServer ||\n acceptValues === true ||\n (typeof acceptValues === 'object' &&\n acceptValues !== null &&\n // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true\n acceptValues.overrideLocalChanges === false &&\n !currentState[path]?.isModified)\n\n /**\n * For array row fields, verify the row IDs match at the given index before accepting\n * server values. If rows were reordered or deleted while the request was in-flight,\n * the same index may refer to different rows, and accepting the server value would\n * overwrite the wrong row's data.\n *\n * This guard only applies during autosave. On explicit save (acceptValues === true),\n * the server response is authoritative and this check is bypassed.\n */\n if (shouldAcceptValue && !incomingField.addedByServer && acceptValues !== true) {\n const parsed = parseArrayFieldPath(path)\n if (parsed) {\n const { arrayPath, rowIndex } = parsed\n const clientRowId = currentState[arrayPath]?.rows?.[rowIndex]?.id\n const serverRowId = incomingState[arrayPath]?.rows?.[rowIndex]?.id\n\n if (clientRowId === undefined || (serverRowId && clientRowId !== serverRowId)) {\n shouldAcceptValue = false\n }\n }\n }\n\n let sanitizedIncomingField = incomingField\n\n if (!shouldAcceptValue) {\n /**\n * Note: do not delete properties off `incomingField` as this will mutate the original object\n * Instead, omit them from the destructured object by excluding specific keys\n * This will also ensure we don't set `undefined` into the result unnecessarily\n */\n const { initialValue, value, ...rest } = incomingField\n sanitizedIncomingField = rest\n }\n\n newState[path] = {\n ...currentState[path],\n ...sanitizedIncomingField,\n }\n\n if (\n currentState[path] &&\n 'errorPaths' in currentState[path] &&\n !('errorPaths' in incomingField)\n ) {\n newState[path].errorPaths = []\n }\n\n /**\n * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending\n * For example, the server response could come back with a row which has been deleted on the client\n * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server\n * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above\n *\n * On explicit save (acceptValues === true), the server is authoritative - accept server row order.\n * On autosave (acceptValues !== true), the client is source of truth - use ID-based matching.\n */\n if (Array.isArray(incomingField.rows) && path in currentState) {\n if (acceptValues === true) {\n // Explicit save: server is authoritative, use index-based merging\n newState[path].rows = incomingField.rows.map((serverRow, index) => ({\n ...(currentState[path]?.rows?.[index] || {}),\n ...serverRow,\n }))\n } else {\n // Autosave: client is source of truth, use ID-based matching\n newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array\n\n incomingField.rows.forEach((row) => {\n const indexInCurrentState = currentState[path].rows?.findIndex(\n (existingRow) => existingRow.id === row.id,\n )\n\n if (indexInCurrentState > -1) {\n newState[path].rows[indexInCurrentState] = {\n ...currentState[path].rows[indexInCurrentState],\n ...row,\n }\n } else if (row.addedByServer) {\n /**\n * Note: This is a known limitation of computed array and block rows\n * If a new row was added by the server, we append it to the _end_ of this array\n * This is because the client is the source of truth, and it has arrays ordered in a certain position\n * For example, the user may have re-ordered rows client-side while a long running request is processing\n * This means that we _cannot_ slice a new row into the second position on the server, for example\n * By the time it gets back to the client, its index is stale\n */\n const newRow = { ...row }\n delete newRow.addedByServer\n newState[path].rows.push(newRow)\n }\n })\n\n /**\n * Sync the value field to match the actual row count after merging.\n * Client is source of truth for row count when rows were added/removed during the request.\n */\n if ('value' in incomingField && newState[path].rows.length !== incomingField.value) {\n newState[path].value = newState[path].rows.length\n }\n }\n }\n\n // If `valid` is `undefined`, mark it as `true`\n if (incomingField.valid !== false) {\n newState[path].valid = true\n }\n\n // If `passesCondition` is `undefined`, mark it as `true`\n if (incomingField.passesCondition !== false) {\n newState[path].passesCondition = true\n }\n\n /**\n * Undefined values for blocksFilterOptions coming back should be treated as \"all blocks allowed\" and\n * should always be merged in.\n * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.\n */\n if (!incomingField.blocksFilterOptions) {\n delete newState[path].blocksFilterOptions\n }\n\n // Strip away the `addedByServer` property from the client\n // This will prevent it from being passed back to the server\n delete newState[path].addedByServer\n }\n\n // Return the original object reference if the state is unchanged\n // This will avoid unnecessary re-renders and dependency updates\n return dequal(newState, currentState) ? currentState : newState\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/forms/Form/mergeServerFormState.ts"],"sourcesContent":["'use client'\nimport type { FormState } from 'payload'\n\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\n\n/**\n * If true, will accept all values from the server, overriding any current values in local state.\n * Can also provide an options object for more granular control.\n */\nexport type AcceptValues =\n | {\n /**\n * When `false`, will accept the values from the server _UNLESS_ the value has been modified locally since the request was made.\n * This is useful for autosave, for example, where hooks may have modified the field's value on the server while you were still making changes.\n * @default undefined\n */\n overrideLocalChanges?: boolean\n }\n | boolean\n\ntype Args = {\n acceptValues?: AcceptValues\n currentState?: FormState\n incomingState: FormState\n}\n\n/**\n * Parses an array field path to extract the array path, row index, and field path.\n * Handles nested arrays by finding the deepest numeric index.\n *\n * @param path - The field path to parse (e.g., 'array.1.text' or 'blocks.0.items.1.title')\n * @returns Object with arrayPath, rowIndex, and fieldPath, or null if not an array field\n *\n * @example\n * parseArrayFieldPath('array.1.text')\n * // Returns: { arrayPath: 'array', rowIndex: 1, fieldPath: 'text' }\n *\n * @example\n * parseArrayFieldPath('blocks.0.items.1.title')\n * // Returns: { arrayPath: 'blocks.0.items', rowIndex: 1, fieldPath: 'title' }\n */\nfunction parseArrayFieldPath(path: string): {\n arrayPath: string\n fieldPath: string\n rowIndex: number\n} | null {\n const segments = path.split('.')\n\n // Find the last numeric index (indicates array row)\n let lastNumericIndex = -1\n for (let i = segments.length - 1; i >= 0; i--) {\n if (/^\\d+$/.test(segments[i])) {\n lastNumericIndex = i\n break\n }\n }\n\n // Not an array field if no numeric index or nothing after it\n if (lastNumericIndex === -1 || lastNumericIndex === segments.length - 1) {\n return null\n }\n\n return {\n arrayPath: segments.slice(0, lastNumericIndex).join('.'),\n fieldPath: segments.slice(lastNumericIndex + 1).join('.'),\n rowIndex: parseInt(segments[lastNumericIndex], 10),\n }\n}\n\n/**\n * This function receives form state from the server and intelligently merges it into the client state.\n * The server contains extra properties that the client may not have, e.g. custom components and error states.\n * We typically do not want to merge properties that rely on user input, however, such as values, unless explicitly requested.\n * Doing this would cause the client to lose any local changes to those fields.\n *\n * Note: Local state is the source of truth, not the new server state that is getting merged in. This is critical for array row\n * manipulation specifically, where the user may have added, removed, or reordered rows while a request was pending and is now stale.\n *\n * This function applies some defaults, as well as cleans up the server response in preparation for the client.\n * e.g. it will set `valid` and `passesCondition` to true if undefined, and remove `addedByServer` from the response.\n */\nexport const mergeServerFormState = ({\n acceptValues,\n currentState = {},\n incomingState,\n}: Args): FormState => {\n const newState = { ...currentState }\n\n for (const [path, incomingField] of Object.entries(incomingState || {})) {\n if (!(path in currentState) && !incomingField.addedByServer) {\n continue\n }\n\n /**\n * If it's a new field added by the server, always accept the value.\n * Otherwise:\n * a. accept all values when explicitly requested, e.g. on submit\n * b. only accept values for unmodified fields, e.g. on autosave\n */\n let shouldAcceptValue =\n incomingField.addedByServer ||\n acceptValues === true ||\n (typeof acceptValues === 'object' &&\n acceptValues !== null &&\n // Note: Must be explicitly `false`, allow `null` or `undefined` to mean true\n acceptValues.overrideLocalChanges === false &&\n !currentState[path]?.isModified)\n\n /**\n * For array row fields, verify the row IDs match at the given index before accepting\n * server values. If rows were reordered or deleted while the request was in-flight,\n * the same index may refer to different rows, and accepting the server value would\n * overwrite the wrong row's data.\n *\n * This guard only applies during autosave. On explicit save (acceptValues === true),\n * the server response is authoritative and this check is bypassed.\n */\n if (shouldAcceptValue && !incomingField.addedByServer && acceptValues !== true) {\n const parsed = parseArrayFieldPath(path)\n if (parsed) {\n const { arrayPath, rowIndex } = parsed\n const clientRowId = currentState[arrayPath]?.rows?.[rowIndex]?.id\n const serverRowId = incomingState[arrayPath]?.rows?.[rowIndex]?.id\n\n if (clientRowId === undefined || (serverRowId && clientRowId !== serverRowId)) {\n shouldAcceptValue = false\n }\n }\n }\n\n let sanitizedIncomingField = incomingField\n\n if (!shouldAcceptValue) {\n /**\n * Note: do not delete properties off `incomingField` as this will mutate the original object\n * Instead, omit them from the destructured object by excluding specific keys\n * This will also ensure we don't set `undefined` into the result unnecessarily\n */\n const { initialValue, value, ...rest } = incomingField\n sanitizedIncomingField = rest\n }\n\n newState[path] = {\n ...currentState[path],\n ...sanitizedIncomingField,\n }\n\n if (\n currentState[path] &&\n 'errorPaths' in currentState[path] &&\n !('errorPaths' in incomingField)\n ) {\n newState[path].errorPaths = []\n }\n\n /**\n * Deeply merge the rows array to ensure changes to local state are not lost while the request was pending\n * For example, the server response could come back with a row which has been deleted on the client\n * Loop over the incoming rows, if it exists in client side form state, merge in any new properties from the server\n * Note: read `currentState` and not `newState` here, as the `rows` property have already been merged above\n *\n * On explicit save (acceptValues === true), the server is authoritative - accept server row order.\n * On autosave (acceptValues !== true), the client is source of truth - use ID-based matching.\n */\n if (Array.isArray(incomingField.rows) && path in currentState) {\n if (acceptValues === true) {\n // Explicit save: server is authoritative, use index-based merging\n newState[path].rows = incomingField.rows.map((serverRow, index) => ({\n ...(currentState[path]?.rows?.[index] || {}),\n ...serverRow,\n }))\n } else {\n // Autosave: client is source of truth, use ID-based matching\n newState[path].rows = [...(currentState[path]?.rows || [])] // shallow copy to avoid mutating the original array\n\n incomingField.rows.forEach((row) => {\n const indexInCurrentState = currentState[path].rows?.findIndex(\n (existingRow) => existingRow.id === row.id,\n )\n\n if (indexInCurrentState > -1) {\n newState[path].rows[indexInCurrentState] = {\n ...currentState[path].rows[indexInCurrentState],\n ...row,\n }\n } else if (row.addedByServer) {\n /**\n * Note: This is a known limitation of computed array and block rows\n * If a new row was added by the server, we append it to the _end_ of this array\n * This is because the client is the source of truth, and it has arrays ordered in a certain position\n * For example, the user may have re-ordered rows client-side while a long running request is processing\n * This means that we _cannot_ slice a new row into the second position on the server, for example\n * By the time it gets back to the client, its index is stale\n */\n const newRow = { ...row }\n delete newRow.addedByServer\n newState[path].rows.push(newRow)\n }\n })\n\n /**\n * Sync the value field to match the actual row count after merging.\n * Client is source of truth for row count when rows were added/removed during the request.\n */\n if ('value' in incomingField && newState[path].rows.length !== incomingField.value) {\n newState[path].value = newState[path].rows.length\n }\n }\n }\n\n // If `valid` is `undefined`, mark it as `true`\n if (incomingField.valid !== false) {\n newState[path].valid = true\n }\n\n // If `passesCondition` is `undefined`, mark it as `true`\n if (incomingField.passesCondition !== false) {\n newState[path].passesCondition = true\n }\n\n /**\n * Undefined values for blocksFilterOptions coming back should be treated as \"all blocks allowed\" and\n * should always be merged in.\n * Without this, an undefined value coming back will incorrectly be ignored, and the previous filter will remain.\n */\n if (!incomingField.blocksFilterOptions) {\n delete newState[path].blocksFilterOptions\n }\n\n // Strip away the `addedByServer` property from the client\n // This will prevent it from being passed back to the server\n delete newState[path].addedByServer\n }\n\n // Return the original object reference if the state is unchanged\n // This will avoid unnecessary re-renders and dependency updates\n return dequal(newState, currentState) ? currentState : newState\n}\n"],"names":["dequal","parseArrayFieldPath","path","segments","split","lastNumericIndex","i","length","test","arrayPath","slice","join","fieldPath","rowIndex","parseInt","mergeServerFormState","acceptValues","currentState","incomingState","newState","incomingField","Object","entries","addedByServer","shouldAcceptValue","overrideLocalChanges","isModified","parsed","clientRowId","rows","id","serverRowId","undefined","sanitizedIncomingField","initialValue","value","rest","errorPaths","Array","isArray","map","serverRow","index","forEach","row","indexInCurrentState","findIndex","existingRow","newRow","push","valid","passesCondition","blocksFilterOptions"],"mappings":"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"}
@@ -1,23 +1,26 @@
1
- const blacklistedKeys = ['validate', 'customComponents'];
2
- const sanitizeField = incomingField => {
3
- const field = {
4
- ...incomingField
5
- } // shallow copy, as we only need to remove top-level keys
6
- ;
7
- for (const key of blacklistedKeys) {
8
- delete field[key];
9
- }
10
- return field;
1
+ const blacklistedKeys = [
2
+ 'validate',
3
+ 'customComponents'
4
+ ];
5
+ const sanitizeField = (incomingField)=>{
6
+ const field = {
7
+ ...incomingField
8
+ };
9
+ // shallow copy, as we only need to remove top-level keys
10
+ for (const key of blacklistedKeys){
11
+ delete field[key];
12
+ }
13
+ return field;
11
14
  };
12
15
  /**
13
16
  * Takes in FormState and removes fields that are not serializable.
14
17
  * Returns FormState without blacklisted keys.
15
- */
16
- export const reduceToSerializableFields = fields => {
17
- const result = {};
18
- for (const key in fields) {
19
- result[key] = sanitizeField(fields[key]);
20
- }
21
- return result;
18
+ */ export const reduceToSerializableFields = (fields)=>{
19
+ const result = {};
20
+ for(const key in fields){
21
+ result[key] = sanitizeField(fields[key]);
22
+ }
23
+ return result;
22
24
  };
25
+
23
26
  //# sourceMappingURL=reduceToSerializableFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reduceToSerializableFields.js","names":["blacklistedKeys","sanitizeField","incomingField","field","key","reduceToSerializableFields","fields","result"],"sources":["../../../src/forms/Form/reduceToSerializableFields.ts"],"sourcesContent":["import { type FormField, type FormState } from 'payload'\n\ntype BlacklistedKeys = 'customComponents' | 'validate'\nconst blacklistedKeys: BlacklistedKeys[] = ['validate', 'customComponents']\n\nconst sanitizeField = (incomingField: FormField): FormField => {\n const field = { ...incomingField } // shallow copy, as we only need to remove top-level keys\n\n for (const key of blacklistedKeys) {\n delete field[key]\n }\n\n return field\n}\n\n/**\n * Takes in FormState and removes fields that are not serializable.\n * Returns FormState without blacklisted keys.\n */\nexport const reduceToSerializableFields = (\n fields: FormState,\n): {\n [key: string]: Omit<FormField, BlacklistedKeys>\n} => {\n const result: Record<string, Omit<FormField, BlacklistedKeys>> = {}\n\n for (const key in fields) {\n result[key] = sanitizeField(fields[key])\n }\n\n return result\n}\n"],"mappings":"AAGA,MAAMA,eAAA,GAAqC,CAAC,YAAY,mBAAmB;AAE3E,MAAMC,aAAA,GAAiBC,aAAA;EACrB,MAAMC,KAAA,GAAQ;IAAE,GAAGD;EAAc,EAAE;AAAA;EAEnC,KAAK,MAAME,GAAA,IAAOJ,eAAA,EAAiB;IACjC,OAAOG,KAAK,CAACC,GAAA,CAAI;EACnB;EAEA,OAAOD,KAAA;AACT;AAEA;;;;AAIA,OAAO,MAAME,0BAAA,GACXC,MAAA;EAIA,MAAMC,MAAA,GAA2D,CAAC;EAElE,KAAK,MAAMH,GAAA,IAAOE,MAAA,EAAQ;IACxBC,MAAM,CAACH,GAAA,CAAI,GAAGH,aAAA,CAAcK,MAAM,CAACF,GAAA,CAAI;EACzC;EAEA,OAAOG,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/forms/Form/reduceToSerializableFields.ts"],"sourcesContent":["import { type FormField, type FormState } from 'payload'\n\ntype BlacklistedKeys = 'customComponents' | 'validate'\nconst blacklistedKeys: BlacklistedKeys[] = ['validate', 'customComponents']\n\nconst sanitizeField = (incomingField: FormField): FormField => {\n const field = { ...incomingField } // shallow copy, as we only need to remove top-level keys\n\n for (const key of blacklistedKeys) {\n delete field[key]\n }\n\n return field\n}\n\n/**\n * Takes in FormState and removes fields that are not serializable.\n * Returns FormState without blacklisted keys.\n */\nexport const reduceToSerializableFields = (\n fields: FormState,\n): {\n [key: string]: Omit<FormField, BlacklistedKeys>\n} => {\n const result: Record<string, Omit<FormField, BlacklistedKeys>> = {}\n\n for (const key in fields) {\n result[key] = sanitizeField(fields[key])\n }\n\n return result\n}\n"],"names":["blacklistedKeys","sanitizeField","incomingField","field","key","reduceToSerializableFields","fields","result"],"mappings":"AAGA,MAAMA,kBAAqC;IAAC;IAAY;CAAmB;AAE3E,MAAMC,gBAAgB,CAACC;IACrB,MAAMC,QAAQ;QAAE,GAAGD,aAAa;IAAC;IAAE,yDAAyD;IAE5F,KAAK,MAAME,OAAOJ,gBAAiB;QACjC,OAAOG,KAAK,CAACC,IAAI;IACnB;IAEA,OAAOD;AACT;AAEA;;;CAGC,GACD,OAAO,MAAME,6BAA6B,CACxCC;IAIA,MAAMC,SAA2D,CAAC;IAElE,IAAK,MAAMH,OAAOE,OAAQ;QACxBC,MAAM,CAACH,IAAI,GAAGH,cAAcK,MAAM,CAACF,IAAI;IACzC;IAEA,OAAOG;AACT,EAAC"}
@@ -1,38 +1,31 @@
1
1
  'use client';
2
-
3
- export const extractRowsAndCollapsedIDs = ({
4
- collapsed,
5
- rowID,
6
- rows
7
- }) => {
8
- return rows.reduce((acc, row) => {
9
- if (rowID === row.id) {
10
- row.collapsed = collapsed;
11
- }
12
- if (row.collapsed) {
13
- acc.collapsedIDs.push(row.id);
14
- }
15
- acc.updatedRows.push(row);
16
- return acc;
17
- }, {
18
- collapsedIDs: [],
19
- updatedRows: []
20
- });
2
+ export const extractRowsAndCollapsedIDs = ({ collapsed, rowID, rows })=>{
3
+ return rows.reduce((acc, row)=>{
4
+ if (rowID === row.id) {
5
+ row.collapsed = collapsed;
6
+ }
7
+ if (row.collapsed) {
8
+ acc.collapsedIDs.push(row.id);
9
+ }
10
+ acc.updatedRows.push(row);
11
+ return acc;
12
+ }, {
13
+ collapsedIDs: [],
14
+ updatedRows: []
15
+ });
21
16
  };
22
- export const toggleAllRows = ({
23
- collapsed,
24
- rows
25
- }) => {
26
- return rows.reduce((acc, row) => {
27
- row.collapsed = collapsed;
28
- if (collapsed) {
29
- acc.collapsedIDs.push(row.id);
30
- }
31
- acc.updatedRows.push(row);
32
- return acc;
33
- }, {
34
- collapsedIDs: [],
35
- updatedRows: []
36
- });
17
+ export const toggleAllRows = ({ collapsed, rows })=>{
18
+ return rows.reduce((acc, row)=>{
19
+ row.collapsed = collapsed;
20
+ if (collapsed) {
21
+ acc.collapsedIDs.push(row.id);
22
+ }
23
+ acc.updatedRows.push(row);
24
+ return acc;
25
+ }, {
26
+ collapsedIDs: [],
27
+ updatedRows: []
28
+ });
37
29
  };
30
+
38
31
  //# sourceMappingURL=rowHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rowHelpers.js","names":["extractRowsAndCollapsedIDs","collapsed","rowID","rows","reduce","acc","row","id","collapsedIDs","push","updatedRows","toggleAllRows"],"sources":["../../../src/forms/Form/rowHelpers.ts"],"sourcesContent":["'use client'\nimport type { Row } from 'payload'\n\nexport const extractRowsAndCollapsedIDs = ({\n collapsed,\n rowID,\n rows,\n}: {\n collapsed: boolean\n rowID: string\n rows: Row[]\n}): {\n collapsedIDs: string[]\n updatedRows: Row[]\n} => {\n return rows.reduce(\n (acc, row) => {\n if (rowID === row.id) {\n row.collapsed = collapsed\n }\n if (row.collapsed) {\n acc.collapsedIDs.push(row.id)\n }\n acc.updatedRows.push(row)\n return acc\n },\n {\n collapsedIDs: [],\n updatedRows: [],\n },\n )\n}\n\nexport const toggleAllRows = ({\n collapsed,\n rows,\n}): {\n collapsedIDs: string[]\n updatedRows: Row[]\n} => {\n return rows.reduce(\n (acc, row) => {\n row.collapsed = collapsed\n if (collapsed) {\n acc.collapsedIDs.push(row.id)\n }\n acc.updatedRows.push(row)\n return acc\n },\n {\n collapsedIDs: [],\n updatedRows: [],\n },\n )\n}\n"],"mappings":"AAAA;;AAGA,OAAO,MAAMA,0BAAA,GAA6BA,CAAC;EACzCC,SAAS;EACTC,KAAK;EACLC;AAAI,CAKL;EAIC,OAAOA,IAAA,CAAKC,MAAM,CAChB,CAACC,GAAA,EAAKC,GAAA;IACJ,IAAIJ,KAAA,KAAUI,GAAA,CAAIC,EAAE,EAAE;MACpBD,GAAA,CAAIL,SAAS,GAAGA,SAAA;IAClB;IACA,IAAIK,GAAA,CAAIL,SAAS,EAAE;MACjBI,GAAA,CAAIG,YAAY,CAACC,IAAI,CAACH,GAAA,CAAIC,EAAE;IAC9B;IACAF,GAAA,CAAIK,WAAW,CAACD,IAAI,CAACH,GAAA;IACrB,OAAOD,GAAA;EACT,GACA;IACEG,YAAA,EAAc,EAAE;IAChBE,WAAA,EAAa;EACf;AAEJ;AAEA,OAAO,MAAMC,aAAA,GAAgBA,CAAC;EAC5BV,SAAS;EACTE;AAAI,CACL;EAIC,OAAOA,IAAA,CAAKC,MAAM,CAChB,CAACC,GAAA,EAAKC,GAAA;IACJA,GAAA,CAAIL,SAAS,GAAGA,SAAA;IAChB,IAAIA,SAAA,EAAW;MACbI,GAAA,CAAIG,YAAY,CAACC,IAAI,CAACH,GAAA,CAAIC,EAAE;IAC9B;IACAF,GAAA,CAAIK,WAAW,CAACD,IAAI,CAACH,GAAA;IACrB,OAAOD,GAAA;EACT,GACA;IACEG,YAAA,EAAc,EAAE;IAChBE,WAAA,EAAa;EACf;AAEJ","ignoreList":[]}
1
+ {"version":3,"sources":["../../../src/forms/Form/rowHelpers.ts"],"sourcesContent":["'use client'\nimport type { Row } from 'payload'\n\nexport const extractRowsAndCollapsedIDs = ({\n collapsed,\n rowID,\n rows,\n}: {\n collapsed: boolean\n rowID: string\n rows: Row[]\n}): {\n collapsedIDs: string[]\n updatedRows: Row[]\n} => {\n return rows.reduce(\n (acc, row) => {\n if (rowID === row.id) {\n row.collapsed = collapsed\n }\n if (row.collapsed) {\n acc.collapsedIDs.push(row.id)\n }\n acc.updatedRows.push(row)\n return acc\n },\n {\n collapsedIDs: [],\n updatedRows: [],\n },\n )\n}\n\nexport const toggleAllRows = ({\n collapsed,\n rows,\n}): {\n collapsedIDs: string[]\n updatedRows: Row[]\n} => {\n return rows.reduce(\n (acc, row) => {\n row.collapsed = collapsed\n if (collapsed) {\n acc.collapsedIDs.push(row.id)\n }\n acc.updatedRows.push(row)\n return acc\n },\n {\n collapsedIDs: [],\n updatedRows: [],\n },\n )\n}\n"],"names":["extractRowsAndCollapsedIDs","collapsed","rowID","rows","reduce","acc","row","id","collapsedIDs","push","updatedRows","toggleAllRows"],"mappings":"AAAA;AAGA,OAAO,MAAMA,6BAA6B,CAAC,EACzCC,SAAS,EACTC,KAAK,EACLC,IAAI,EAKL;IAIC,OAAOA,KAAKC,MAAM,CAChB,CAACC,KAAKC;QACJ,IAAIJ,UAAUI,IAAIC,EAAE,EAAE;YACpBD,IAAIL,SAAS,GAAGA;QAClB;QACA,IAAIK,IAAIL,SAAS,EAAE;YACjBI,IAAIG,YAAY,CAACC,IAAI,CAACH,IAAIC,EAAE;QAC9B;QACAF,IAAIK,WAAW,CAACD,IAAI,CAACH;QACrB,OAAOD;IACT,GACA;QACEG,cAAc,EAAE;QAChBE,aAAa,EAAE;IACjB;AAEJ,EAAC;AAED,OAAO,MAAMC,gBAAgB,CAAC,EAC5BV,SAAS,EACTE,IAAI,EACL;IAIC,OAAOA,KAAKC,MAAM,CAChB,CAACC,KAAKC;QACJA,IAAIL,SAAS,GAAGA;QAChB,IAAIA,WAAW;YACbI,IAAIG,YAAY,CAACC,IAAI,CAACH,IAAIC,EAAE;QAC9B;QACAF,IAAIK,WAAW,CAACD,IAAI,CAACH;QACrB,OAAOD;IACT,GACA;QACEG,cAAc,EAAE;QAChBE,aAAa,EAAE;IACjB;AAEJ,EAAC"}
@@ -1,38 +1,38 @@
1
1
  'use client';
2
-
3
- export const separateRows = (path, fields) => {
4
- const remainingFields = {};
5
- const rows = Object.entries(fields).reduce((incomingRows, [fieldPath, field]) => {
6
- const newRows = incomingRows;
7
- if (fieldPath.indexOf(`${path}.`) === 0) {
8
- const [rowIndex] = fieldPath.replace(`${path}.`, '').split('.');
9
- if (!newRows[rowIndex]) {
10
- newRows[rowIndex] = {};
11
- }
12
- newRows[rowIndex][fieldPath.replace(`${path}.${String(rowIndex)}.`, '')] = {
13
- ...field
14
- };
15
- } else {
16
- remainingFields[fieldPath] = field;
17
- }
18
- return newRows;
19
- }, []);
20
- return {
21
- remainingFields,
22
- rows
23
- };
24
- };
25
- export const flattenRows = (path, rows) => {
26
- return rows.reduce((fields, row, i) => ({
27
- ...fields,
28
- ...Object.entries(row).reduce((subFields, [subPath, subField]) => {
29
- return {
30
- ...subFields,
31
- [`${path}.${i}.${subPath}`]: {
32
- ...subField
2
+ export const separateRows = (path, fields)=>{
3
+ const remainingFields = {};
4
+ const rows = Object.entries(fields).reduce((incomingRows, [fieldPath, field])=>{
5
+ const newRows = incomingRows;
6
+ if (fieldPath.indexOf(`${path}.`) === 0) {
7
+ const [rowIndex] = fieldPath.replace(`${path}.`, '').split('.');
8
+ if (!newRows[rowIndex]) {
9
+ newRows[rowIndex] = {};
10
+ }
11
+ newRows[rowIndex][fieldPath.replace(`${path}.${String(rowIndex)}.`, '')] = {
12
+ ...field
13
+ };
14
+ } else {
15
+ remainingFields[fieldPath] = field;
33
16
  }
34
- };
35
- }, {})
36
- }), {});
17
+ return newRows;
18
+ }, []);
19
+ return {
20
+ remainingFields,
21
+ rows
22
+ };
37
23
  };
24
+ export const flattenRows = (path, rows)=>{
25
+ return rows.reduce((fields, row, i)=>({
26
+ ...fields,
27
+ ...Object.entries(row).reduce((subFields, [subPath, subField])=>{
28
+ return {
29
+ ...subFields,
30
+ [`${path}.${i}.${subPath}`]: {
31
+ ...subField
32
+ }
33
+ };
34
+ }, {})
35
+ }), {});
36
+ };
37
+
38
38
  //# sourceMappingURL=rows.js.map