@payloadcms/ui 4.0.0-internal.cc18726 → 4.0.0-internal.cd47d20

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 (752) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/preflight.css +1 -0
  3. package/dist/css/spacing.css +3 -0
  4. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  5. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  6. package/dist/elements/APIKeyInput/index.js +27 -29
  7. package/dist/elements/APIKeyInput/index.js.map +1 -1
  8. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  9. package/dist/elements/AddNewRelation/index.js +1 -0
  10. package/dist/elements/AddNewRelation/index.js.map +1 -1
  11. package/dist/elements/AppHeader/index.css +3 -0
  12. package/dist/elements/ArrayAction/index.d.ts +1 -0
  13. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  14. package/dist/elements/ArrayAction/index.js +35 -32
  15. package/dist/elements/ArrayAction/index.js.map +1 -1
  16. package/dist/elements/Banner/index.css +4 -0
  17. package/dist/elements/Banner/index.d.ts.map +1 -1
  18. package/dist/elements/Banner/index.js +1 -0
  19. package/dist/elements/Banner/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  21. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  22. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  23. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
  24. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  25. package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
  26. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js +16 -9
  29. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/index.css +2 -0
  31. package/dist/elements/Button/index.d.ts.map +1 -1
  32. package/dist/elements/Button/index.js +11 -0
  33. package/dist/elements/Button/index.js.map +1 -1
  34. package/dist/elements/Button/types.d.ts +7 -2
  35. package/dist/elements/Button/types.d.ts.map +1 -1
  36. package/dist/elements/Button/types.js.map +1 -1
  37. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  38. package/dist/elements/ClipboardAction/index.js +1 -0
  39. package/dist/elements/ClipboardAction/index.js.map +1 -1
  40. package/dist/elements/Collapsible/index.css +1 -0
  41. package/dist/elements/ColumnSelection/index.d.ts.map +1 -1
  42. package/dist/elements/ColumnSelection/index.js +59 -55
  43. package/dist/elements/ColumnSelection/index.js.map +1 -1
  44. package/dist/elements/Combobox/index.d.ts.map +1 -1
  45. package/dist/elements/Combobox/index.js +2 -0
  46. package/dist/elements/Combobox/index.js.map +1 -1
  47. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  48. package/dist/elements/CreateDocumentButton/index.js +1 -0
  49. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  50. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  51. package/dist/elements/DatePicker/DatePicker.js +113 -83
  52. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  53. package/dist/elements/DatePicker/index.css +7 -0
  54. package/dist/elements/Dialog/DialogModal/index.d.ts +1 -1
  55. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  56. package/dist/elements/Dialog/DialogModal/index.js +1 -1
  57. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  58. package/dist/elements/Dialog/index.css +1 -0
  59. package/dist/elements/DocumentControls/index.css +1 -0
  60. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  61. package/dist/elements/DocumentControls/index.js +1 -0
  62. package/dist/elements/DocumentControls/index.js.map +1 -1
  63. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -2
  64. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  65. package/dist/elements/DocumentFields/index.css +2 -0
  66. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  67. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  68. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  69. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  70. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  71. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  72. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  73. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  74. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  75. package/dist/elements/DocumentHeader/index.css +1 -0
  76. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  77. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  78. package/dist/elements/DocumentHeader/index.js +4 -2
  79. package/dist/elements/DocumentHeader/index.js.map +1 -1
  80. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +1 -1
  81. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  82. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  83. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  84. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +11 -8
  85. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  86. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  87. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  88. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  89. package/dist/elements/Drawer/index.d.ts.map +1 -1
  90. package/dist/elements/Drawer/index.js +3 -1
  91. package/dist/elements/Drawer/index.js.map +1 -1
  92. package/dist/elements/EditUpload/index.css +2 -1
  93. package/dist/elements/EditUpload/index.js +53 -12
  94. package/dist/elements/EditUpload/index.js.map +1 -1
  95. package/dist/elements/FieldDiffContainer/index.css +1 -0
  96. package/dist/elements/FieldDiffContainer/index.js +1 -1
  97. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  98. package/dist/elements/FieldDiffLabel/index.css +1 -0
  99. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  100. package/dist/elements/FieldSelect/index.js +41 -24
  101. package/dist/elements/FieldSelect/index.js.map +1 -1
  102. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +5 -1
  103. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  104. package/dist/elements/FieldSelect/reduceFieldOptions.js +24 -4
  105. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  106. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  107. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  108. package/dist/elements/FileManager/FileToolbar/index.js +1 -0
  109. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  110. package/dist/elements/FilterTrigger/index.d.ts +5 -1
  111. package/dist/elements/FilterTrigger/index.d.ts.map +1 -1
  112. package/dist/elements/FilterTrigger/index.js +6 -0
  113. package/dist/elements/FilterTrigger/index.js.map +1 -1
  114. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  115. package/dist/elements/FullscreenModal/index.js +1 -1
  116. package/dist/elements/FullscreenModal/index.js.map +1 -1
  117. package/dist/elements/GroupBy/Popup.d.ts.map +1 -1
  118. package/dist/elements/GroupBy/Popup.js +74 -45
  119. package/dist/elements/GroupBy/Popup.js.map +1 -1
  120. package/dist/elements/GroupBy/index.d.ts.map +1 -1
  121. package/dist/elements/GroupBy/index.js +2 -0
  122. package/dist/elements/GroupBy/index.js.map +1 -1
  123. package/dist/elements/HTMLDiff/index.css +1 -0
  124. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +3 -0
  125. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  126. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +60 -47
  127. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  128. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  129. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +34 -27
  130. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  131. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -2
  132. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -1
  133. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -1
  134. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  135. package/dist/elements/Hierarchy/Search/index.js +6 -7
  136. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  137. package/dist/elements/ItemsDrawer/index.css +3 -0
  138. package/dist/elements/ListControls/index.css +1 -0
  139. package/dist/elements/ListControls/index.d.ts.map +1 -1
  140. package/dist/elements/ListControls/index.js +8 -1
  141. package/dist/elements/ListControls/index.js.map +1 -1
  142. package/dist/elements/ListControls/types.d.ts +3 -1
  143. package/dist/elements/ListControls/types.d.ts.map +1 -1
  144. package/dist/elements/ListControls/types.js.map +1 -1
  145. package/dist/elements/ListControlsBar/index.css +1 -0
  146. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  147. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  148. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  149. package/dist/elements/LivePreview/Toolbar/Controls/index.js +3 -0
  150. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  151. package/dist/elements/LivePreview/Window/index.css +1 -0
  152. package/dist/elements/Localizer/index.d.ts +3 -6
  153. package/dist/elements/Localizer/index.d.ts.map +1 -1
  154. package/dist/elements/Localizer/index.js +19 -11
  155. package/dist/elements/Localizer/index.js.map +1 -1
  156. package/dist/elements/Modal/index.d.ts +5 -1
  157. package/dist/elements/Modal/index.d.ts.map +1 -1
  158. package/dist/elements/Modal/index.js +69 -1
  159. package/dist/elements/Modal/index.js.map +1 -1
  160. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  161. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -0
  162. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  163. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +3 -2
  164. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  165. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  166. package/dist/elements/Nav/getNavPrefs.js +2 -0
  167. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  168. package/dist/elements/Nav/index.css +2 -0
  169. package/dist/elements/PageControls/GroupByPageControls.d.ts +1 -0
  170. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -1
  171. package/dist/elements/PageControls/GroupByPageControls.js +9 -6
  172. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  173. package/dist/elements/PageControls/index.css +1 -0
  174. package/dist/elements/PageControls/index.d.ts +2 -0
  175. package/dist/elements/PageControls/index.d.ts.map +1 -1
  176. package/dist/elements/PageControls/index.js +21 -12
  177. package/dist/elements/PageControls/index.js.map +1 -1
  178. package/dist/elements/Pagination/ClickableArrow/index.d.ts +1 -0
  179. package/dist/elements/Pagination/ClickableArrow/index.d.ts.map +1 -1
  180. package/dist/elements/Pagination/ClickableArrow/index.js +2 -0
  181. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  182. package/dist/elements/Pagination/SimplePagination/index.d.ts +1 -0
  183. package/dist/elements/Pagination/SimplePagination/index.d.ts.map +1 -1
  184. package/dist/elements/Pagination/SimplePagination/index.js +14 -8
  185. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  186. package/dist/elements/Pagination/index.d.ts +1 -0
  187. package/dist/elements/Pagination/index.d.ts.map +1 -1
  188. package/dist/elements/Pagination/index.js +17 -12
  189. package/dist/elements/Pagination/index.js.map +1 -1
  190. package/dist/elements/PerPage/index.d.ts +1 -0
  191. package/dist/elements/PerPage/index.d.ts.map +1 -1
  192. package/dist/elements/PerPage/index.js +22 -15
  193. package/dist/elements/PerPage/index.js.map +1 -1
  194. package/dist/elements/PillSelector/index.css +1 -0
  195. package/dist/elements/Popup/PopupButtonList/index.d.ts +8 -0
  196. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  197. package/dist/elements/Popup/PopupButtonList/index.js +50 -6
  198. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  199. package/dist/elements/Popup/PopupTrigger/index.d.ts +9 -2
  200. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  201. package/dist/elements/Popup/PopupTrigger/index.js +58 -6
  202. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  203. package/dist/elements/Popup/index.css +4 -2
  204. package/dist/elements/Popup/index.d.ts +6 -27
  205. package/dist/elements/Popup/index.d.ts.map +1 -1
  206. package/dist/elements/Popup/index.js +114 -75
  207. package/dist/elements/Popup/index.js.map +1 -1
  208. package/dist/elements/PreviewSizes/index.css +2 -0
  209. package/dist/elements/PublishButton/index.css +1 -0
  210. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  211. package/dist/elements/PublishButton/index.js +11 -25
  212. package/dist/elements/PublishButton/index.js.map +1 -1
  213. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  214. package/dist/elements/QueryPresets/QueryPresetBar/index.js +18 -2
  215. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  216. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +3 -2
  217. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  218. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  219. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +3 -2
  220. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  221. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  222. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  223. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +3 -2
  224. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  225. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  226. package/dist/elements/ReactSelect/ClearIndicator/index.css +5 -0
  227. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  228. package/dist/elements/ReactSelect/ClearIndicator/index.js +51 -20
  229. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  230. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  231. package/dist/elements/ReactSelect/DefaultMenuPortal.js +2 -1
  232. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  233. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -4
  234. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  235. package/dist/elements/ReactSelect/DropdownIndicator/index.js +16 -21
  236. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  237. package/dist/elements/ReactSelect/MultiValue/context.d.ts +6 -0
  238. package/dist/elements/ReactSelect/MultiValue/context.d.ts.map +1 -0
  239. package/dist/elements/ReactSelect/MultiValue/context.js +5 -0
  240. package/dist/elements/ReactSelect/MultiValue/context.js.map +1 -0
  241. package/dist/elements/ReactSelect/MultiValue/index.css +5 -0
  242. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  243. package/dist/elements/ReactSelect/MultiValue/index.js +89 -35
  244. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  245. package/dist/elements/ReactSelect/MultiValueLabel/index.css +41 -1
  246. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts +5 -1
  247. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  248. package/dist/elements/ReactSelect/MultiValueLabel/index.js +49 -4
  249. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  250. package/dist/elements/ReactSelect/MultiValueRemove/index.css +30 -4
  251. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  252. package/dist/elements/ReactSelect/MultiValueRemove/index.js +92 -66
  253. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  254. package/dist/elements/ReactSelect/Option/index.d.ts +6 -0
  255. package/dist/elements/ReactSelect/Option/index.d.ts.map +1 -0
  256. package/dist/elements/ReactSelect/Option/index.js +30 -0
  257. package/dist/elements/ReactSelect/Option/index.js.map +1 -0
  258. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  259. package/dist/elements/ReactSelect/index.js +4 -1
  260. package/dist/elements/ReactSelect/index.js.map +1 -1
  261. package/dist/elements/ReactSelect/types.d.ts +7 -1
  262. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  263. package/dist/elements/ReactSelect/types.js.map +1 -1
  264. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  265. package/dist/elements/RelationshipTable/AddNewButton.js +1 -0
  266. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  267. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  268. package/dist/elements/RelationshipTable/index.js +61 -57
  269. package/dist/elements/RelationshipTable/index.js.map +1 -1
  270. package/dist/elements/RenderTitle/index.css +1 -0
  271. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  272. package/dist/elements/SortColumn/index.js +59 -95
  273. package/dist/elements/SortColumn/index.js.map +1 -1
  274. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  275. package/dist/elements/SortHeader/index.js +18 -36
  276. package/dist/elements/SortHeader/index.js.map +1 -1
  277. package/dist/elements/StepNav/index.d.ts.map +1 -1
  278. package/dist/elements/StepNav/index.js +1 -0
  279. package/dist/elements/StepNav/index.js.map +1 -1
  280. package/dist/elements/Table/OrderableTable.d.ts +1 -0
  281. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  282. package/dist/elements/Table/OrderableTable.js +6 -2
  283. package/dist/elements/Table/OrderableTable.js.map +1 -1
  284. package/dist/elements/Table/TableIdentity.d.ts +7 -0
  285. package/dist/elements/Table/TableIdentity.d.ts.map +1 -0
  286. package/dist/elements/Table/TableIdentity.js +47 -0
  287. package/dist/elements/Table/TableIdentity.js.map +1 -0
  288. package/dist/elements/Table/index.css +1 -0
  289. package/dist/elements/Table/index.d.ts +1 -0
  290. package/dist/elements/Table/index.d.ts.map +1 -1
  291. package/dist/elements/Table/index.js +91 -42
  292. package/dist/elements/Table/index.js.map +1 -1
  293. package/dist/elements/Table/useAriaSort.d.ts +7 -0
  294. package/dist/elements/Table/useAriaSort.d.ts.map +1 -0
  295. package/dist/elements/Table/useAriaSort.js +53 -0
  296. package/dist/elements/Table/useAriaSort.js.map +1 -0
  297. package/dist/elements/TableSection/index.css +1 -0
  298. package/dist/elements/Tabs/index.css +1 -0
  299. package/dist/elements/Thumbnail/index.css +1 -0
  300. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  301. package/dist/elements/ThumbnailCard/index.js +10 -8
  302. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  303. package/dist/elements/TimezonePicker/index.css +1 -0
  304. package/dist/elements/Tooltip/index.css +7 -0
  305. package/dist/elements/Tooltip/index.d.ts +1 -1
  306. package/dist/elements/Tooltip/index.js +1 -1
  307. package/dist/elements/Tooltip/index.js.map +1 -1
  308. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  309. package/dist/elements/UserMenu/LanguageMenu/index.js +3 -0
  310. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  311. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  312. package/dist/elements/UserMenu/SettingsMenu/index.js +3 -0
  313. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  314. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  315. package/dist/elements/UserMenu/SubMenuHeader/index.js +2 -0
  316. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  317. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  318. package/dist/elements/UserMenu/ThemeMenu/index.js +3 -0
  319. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  320. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  321. package/dist/elements/UserMenu/index.js +21 -4
  322. package/dist/elements/UserMenu/index.js.map +1 -1
  323. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  324. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  325. package/dist/elements/WhereBuilder/Condition/index.js +7 -1
  326. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  327. package/dist/elements/WhereBuilder/index.css +2 -0
  328. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  329. package/dist/fields/Array/ArrayRow.js +1 -0
  330. package/dist/fields/Array/ArrayRow.js.map +1 -1
  331. package/dist/fields/Array/index.css +1 -0
  332. package/dist/fields/Array/index.d.ts +3 -7
  333. package/dist/fields/Array/index.d.ts.map +1 -1
  334. package/dist/fields/Array/index.js.map +1 -1
  335. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  336. package/dist/fields/Blocks/RowActions.js +25 -16
  337. package/dist/fields/Blocks/RowActions.js.map +1 -1
  338. package/dist/fields/Blocks/index.css +1 -0
  339. package/dist/fields/Blocks/index.d.ts +2 -5
  340. package/dist/fields/Blocks/index.d.ts.map +1 -1
  341. package/dist/fields/Blocks/index.js.map +1 -1
  342. package/dist/fields/Checkbox/index.d.ts +2 -12
  343. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  344. package/dist/fields/Checkbox/index.js.map +1 -1
  345. package/dist/fields/Code/index.d.ts +2 -8
  346. package/dist/fields/Code/index.d.ts.map +1 -1
  347. package/dist/fields/Code/index.js.map +1 -1
  348. package/dist/fields/Collapsible/index.d.ts +2 -3
  349. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  350. package/dist/fields/Collapsible/index.js.map +1 -1
  351. package/dist/fields/DateTime/index.d.ts +3 -7
  352. package/dist/fields/DateTime/index.d.ts.map +1 -1
  353. package/dist/fields/DateTime/index.js +1 -1
  354. package/dist/fields/DateTime/index.js.map +1 -1
  355. package/dist/fields/Email/index.d.ts +2 -7
  356. package/dist/fields/Email/index.d.ts.map +1 -1
  357. package/dist/fields/Email/index.js.map +1 -1
  358. package/dist/fields/Group/index.css +1 -0
  359. package/dist/fields/Group/index.d.ts +3 -5
  360. package/dist/fields/Group/index.d.ts.map +1 -1
  361. package/dist/fields/Group/index.js.map +1 -1
  362. package/dist/fields/JSON/index.d.ts +2 -6
  363. package/dist/fields/JSON/index.d.ts.map +1 -1
  364. package/dist/fields/JSON/index.js.map +1 -1
  365. package/dist/fields/Join/index.d.ts +2 -6
  366. package/dist/fields/Join/index.d.ts.map +1 -1
  367. package/dist/fields/Join/index.js.map +1 -1
  368. package/dist/fields/Number/index.d.ts +2 -7
  369. package/dist/fields/Number/index.d.ts.map +1 -1
  370. package/dist/fields/Number/index.js.map +1 -1
  371. package/dist/fields/Point/index.d.ts +3 -8
  372. package/dist/fields/Point/index.d.ts.map +1 -1
  373. package/dist/fields/Point/index.js.map +1 -1
  374. package/dist/fields/RadioGroup/index.js.map +1 -1
  375. package/dist/fields/Relationship/index.d.ts +2 -6
  376. package/dist/fields/Relationship/index.d.ts.map +1 -1
  377. package/dist/fields/Relationship/index.js.map +1 -1
  378. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  379. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +24 -2
  380. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  381. package/dist/fields/Row/index.css +2 -0
  382. package/dist/fields/Row/index.d.ts +2 -3
  383. package/dist/fields/Row/index.d.ts.map +1 -1
  384. package/dist/fields/Row/index.js.map +1 -1
  385. package/dist/fields/Select/index.d.ts +2 -9
  386. package/dist/fields/Select/index.d.ts.map +1 -1
  387. package/dist/fields/Select/index.js.map +1 -1
  388. package/dist/fields/Tabs/index.css +1 -0
  389. package/dist/fields/Tabs/index.d.ts +2 -4
  390. package/dist/fields/Tabs/index.d.ts.map +1 -1
  391. package/dist/fields/Tabs/index.js.map +1 -1
  392. package/dist/fields/Text/index.d.ts +2 -8
  393. package/dist/fields/Text/index.d.ts.map +1 -1
  394. package/dist/fields/Text/index.js.map +1 -1
  395. package/dist/fields/Textarea/index.d.ts +2 -9
  396. package/dist/fields/Textarea/index.d.ts.map +1 -1
  397. package/dist/fields/Textarea/index.js.map +1 -1
  398. package/dist/forms/Form/context.d.ts +3 -1
  399. package/dist/forms/Form/context.d.ts.map +1 -1
  400. package/dist/forms/Form/context.js +3 -1
  401. package/dist/forms/Form/context.js.map +1 -1
  402. package/dist/forms/Form/index.d.ts.map +1 -1
  403. package/dist/forms/Form/index.js +13 -4
  404. package/dist/forms/Form/index.js.map +1 -1
  405. package/dist/forms/RenderFields/context.d.ts +2 -2
  406. package/dist/forms/RenderFields/context.js +2 -2
  407. package/dist/forms/RenderFields/context.js.map +1 -1
  408. package/dist/forms/RenderFields/index.css +1 -0
  409. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  410. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +12 -4
  411. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  412. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  413. package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
  414. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  415. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  416. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  417. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  418. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  419. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  420. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  421. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  422. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  423. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  424. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  425. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  426. package/dist/hooks/useControllableState.js +3 -3
  427. package/dist/hooks/useControllableState.js.map +1 -1
  428. package/dist/layouts/Root/index.d.ts +3 -6
  429. package/dist/layouts/Root/index.d.ts.map +1 -1
  430. package/dist/layouts/Root/index.js +9 -10
  431. package/dist/layouts/Root/index.js.map +1 -1
  432. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  433. package/dist/providers/DocumentInfo/index.js +30 -21
  434. package/dist/providers/DocumentInfo/index.js.map +1 -1
  435. package/dist/providers/DocumentInfo/types.d.ts +0 -10
  436. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  437. package/dist/providers/DocumentInfo/types.js.map +1 -1
  438. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  439. package/dist/providers/LivePreview/index.js +13 -6
  440. package/dist/providers/LivePreview/index.js.map +1 -1
  441. package/dist/providers/Locale/index.d.ts.map +1 -1
  442. package/dist/providers/Locale/index.js +6 -7
  443. package/dist/providers/Locale/index.js.map +1 -1
  444. package/dist/providers/ModalAccessibility/index.d.ts +3 -0
  445. package/dist/providers/ModalAccessibility/index.d.ts.map +1 -0
  446. package/dist/providers/ModalAccessibility/index.js +102 -0
  447. package/dist/providers/ModalAccessibility/index.js.map +1 -0
  448. package/dist/providers/Root/index.d.ts.map +1 -1
  449. package/dist/providers/Root/index.js +7 -6
  450. package/dist/providers/Root/index.js.map +1 -1
  451. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  452. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  453. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  454. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  455. package/dist/providers/ToastContainer/index.js +100 -33
  456. package/dist/providers/ToastContainer/index.js.map +1 -1
  457. package/dist/styles.css +5 -1
  458. package/dist/templates/Default/Wrapper/index.css +2 -0
  459. package/dist/templates/Default/index.css +1 -0
  460. package/dist/utilities/buildFormState.d.ts.map +1 -1
  461. package/dist/utilities/buildFormState.js +6 -2
  462. package/dist/utilities/buildFormState.js.map +1 -1
  463. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  464. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  465. package/dist/utilities/formatAbsoluteURL.js +18 -8
  466. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  467. package/dist/utilities/getActiveModal.d.ts +6 -0
  468. package/dist/utilities/getActiveModal.d.ts.map +1 -0
  469. package/dist/utilities/getActiveModal.js +8 -0
  470. package/dist/utilities/getActiveModal.js.map +1 -0
  471. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  472. package/dist/utilities/getDocPreferences.js +1 -0
  473. package/dist/utilities/getDocPreferences.js.map +1 -1
  474. package/dist/utilities/getPreferences.d.ts.map +1 -1
  475. package/dist/utilities/getPreferences.js +1 -0
  476. package/dist/utilities/getPreferences.js.map +1 -1
  477. package/dist/utilities/getVersions.d.ts.map +1 -1
  478. package/dist/utilities/getVersions.js +8 -0
  479. package/dist/utilities/getVersions.js.map +1 -1
  480. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  481. package/dist/utilities/handleAuthRedirect.js +4 -1
  482. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  483. package/dist/utilities/handleServerFunctions.d.ts +9 -9
  484. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  485. package/dist/utilities/handleServerFunctions.js +7 -5
  486. package/dist/utilities/handleServerFunctions.js.map +1 -1
  487. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  488. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  489. package/dist/utilities/isAbsoluteURL.js +15 -0
  490. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  491. package/dist/utilities/isHttpURL.d.ts +3 -0
  492. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  493. package/dist/utilities/isHttpURL.js +12 -0
  494. package/dist/utilities/isHttpURL.js.map +1 -0
  495. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  496. package/dist/utilities/isPathMatchingRoute.js +7 -5
  497. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  498. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  499. package/dist/utilities/isPublicAdminRoute.js +9 -6
  500. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  501. package/dist/utilities/renderTable.d.ts.map +1 -1
  502. package/dist/utilities/renderTable.js +9 -4
  503. package/dist/utilities/renderTable.js.map +1 -1
  504. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  505. package/dist/utilities/schedulePublishHandler.js +6 -1
  506. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  507. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  508. package/dist/utilities/upsertPreferences.js +3 -0
  509. package/dist/utilities/upsertPreferences.js.map +1 -1
  510. package/dist/views/API/index.css +1 -0
  511. package/dist/views/Account/index.d.ts +1 -1
  512. package/dist/views/Account/index.d.ts.map +1 -1
  513. package/dist/views/Account/index.js +8 -5
  514. package/dist/views/Account/index.js.map +1 -1
  515. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  516. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +1 -0
  517. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  518. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +1 -0
  519. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  520. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
  521. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  522. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  523. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  524. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  525. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  526. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  527. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  528. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -0
  529. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  530. package/dist/views/Dashboard/index.d.ts.map +1 -1
  531. package/dist/views/Dashboard/index.js +2 -3
  532. package/dist/views/Dashboard/index.js.map +1 -1
  533. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  534. package/dist/views/Document/handleServerFunction.js +3 -0
  535. package/dist/views/Document/handleServerFunction.js.map +1 -1
  536. package/dist/views/Document/index.d.ts +1 -1
  537. package/dist/views/Document/index.d.ts.map +1 -1
  538. package/dist/views/Document/index.js +9 -4
  539. package/dist/views/Document/index.js.map +1 -1
  540. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  541. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  542. package/dist/views/Document/renderDocumentSlots.js +7 -4
  543. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  544. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  545. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  546. package/dist/views/Edit/Auth/APIKey.js +233 -59
  547. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  548. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  549. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  550. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  551. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  552. package/dist/views/Edit/Auth/index.css +91 -0
  553. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  554. package/dist/views/Edit/Auth/index.js +10 -28
  555. package/dist/views/Edit/Auth/index.js.map +1 -1
  556. package/dist/views/Edit/Auth/types.d.ts +3 -1
  557. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  558. package/dist/views/Edit/Auth/types.js.map +1 -1
  559. package/dist/views/Edit/index.css +1 -0
  560. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  561. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  562. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  563. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  564. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  565. package/dist/views/ForgotPassword/index.js +2 -11
  566. package/dist/views/ForgotPassword/index.js.map +1 -1
  567. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  568. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  569. package/dist/views/HierarchyList/TypeFilter/index.js +6 -7
  570. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  571. package/dist/views/HierarchyList/index.css +1 -0
  572. package/dist/views/List/ListHeader/index.css +1 -0
  573. package/dist/views/List/ListHeader/index.d.ts +0 -1
  574. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  575. package/dist/views/List/ListHeader/index.js +2 -6
  576. package/dist/views/List/ListHeader/index.js.map +1 -1
  577. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  578. package/dist/views/List/enrichDocsWithVersionStatus.js +1 -0
  579. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  580. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  581. package/dist/views/List/handleServerFunction.js +4 -1
  582. package/dist/views/List/handleServerFunction.js.map +1 -1
  583. package/dist/views/List/index.client.d.ts.map +1 -1
  584. package/dist/views/List/index.client.js +130 -124
  585. package/dist/views/List/index.client.js.map +1 -1
  586. package/dist/views/List/index.css +2 -0
  587. package/dist/views/List/index.d.ts.map +1 -1
  588. package/dist/views/List/index.js +2 -1
  589. package/dist/views/List/index.js.map +1 -1
  590. package/dist/views/NotFound/client.d.ts +2 -0
  591. package/dist/views/NotFound/client.d.ts.map +1 -0
  592. package/dist/views/NotFound/client.js +4 -0
  593. package/dist/views/NotFound/client.js.map +1 -0
  594. package/dist/views/NotFound/page.d.ts +4 -11
  595. package/dist/views/NotFound/page.d.ts.map +1 -1
  596. package/dist/views/NotFound/page.js +6 -5
  597. package/dist/views/NotFound/page.js.map +1 -1
  598. package/dist/views/Root/index.d.ts +6 -7
  599. package/dist/views/Root/index.d.ts.map +1 -1
  600. package/dist/views/Root/index.js +33 -24
  601. package/dist/views/Root/index.js.map +1 -1
  602. package/dist/views/Verify/index.d.ts +1 -1
  603. package/dist/views/Verify/index.d.ts.map +1 -1
  604. package/dist/views/Verify/index.js +4 -4
  605. package/dist/views/Verify/index.js.map +1 -1
  606. package/dist/views/Version/Default/index.css +2 -0
  607. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  608. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  609. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  610. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  611. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  612. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  613. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  614. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts +3 -2
  615. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts.map +1 -1
  616. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  617. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +3 -2
  618. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  619. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  620. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  621. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +3 -2
  622. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -1
  623. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  624. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +3 -2
  625. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  626. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  627. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  628. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  629. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  630. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  631. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +1 -0
  632. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  633. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  634. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -2
  635. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  636. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  637. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +3 -2
  638. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -1
  639. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  640. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -2
  641. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  642. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  643. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -2
  644. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  645. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  646. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +3 -2
  647. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  648. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  649. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  650. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +2 -2
  651. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  652. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  653. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  654. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  655. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  656. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  657. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  658. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  659. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  660. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  661. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  662. package/dist/views/Version/Restore/index.js +9 -6
  663. package/dist/views/Version/Restore/index.js.map +1 -1
  664. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  665. package/dist/views/Version/SelectLocales/index.js +1 -0
  666. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  667. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  668. package/dist/views/Versions/index.css +1 -0
  669. package/dist/widgets/CollectionCards/index.css +4 -0
  670. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -2
  671. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  672. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  673. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +3 -2
  674. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  675. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  676. package/package.json +10 -5
  677. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  678. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  679. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  680. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  681. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -885
  682. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  683. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  684. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  685. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  686. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  687. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  688. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  689. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  690. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  691. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  692. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  693. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  694. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  695. package/dist/elements/WhereBuilder/conditionValue.spec.js +0 -65
  696. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +0 -1
  697. package/dist/fields/Upload/Input.spec.js +0 -242
  698. package/dist/fields/Upload/Input.spec.js.map +0 -1
  699. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  700. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  701. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  702. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  703. package/dist/layouts/Root/index.spec.js +0 -20
  704. package/dist/layouts/Root/index.spec.js.map +0 -1
  705. package/dist/providers/Auth/authSessionRequests.spec.js +0 -121
  706. package/dist/providers/Auth/authSessionRequests.spec.js.map +0 -1
  707. package/dist/providers/Auth/sessionActivity.spec.js +0 -44
  708. package/dist/providers/Auth/sessionActivity.spec.js.map +0 -1
  709. package/dist/providers/Auth/tabSessionSync/index.spec.js +0 -463
  710. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +0 -1
  711. package/dist/providers/Auth/useAuthSessionTimers.spec.js +0 -311
  712. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +0 -1
  713. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +0 -44
  714. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +0 -1
  715. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  716. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  717. package/dist/utilities/appendCacheTag.spec.js +0 -34
  718. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  719. package/dist/utilities/formatMetadata.spec.js +0 -83
  720. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  721. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  722. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  723. package/dist/utilities/getRequestLocale.d.ts +0 -7
  724. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  725. package/dist/utilities/getRequestLocale.js +0 -20
  726. package/dist/utilities/getRequestLocale.js.map +0 -1
  727. package/dist/utilities/initReq.d.ts +0 -16
  728. package/dist/utilities/initReq.d.ts.map +0 -1
  729. package/dist/utilities/initReq.js +0 -111
  730. package/dist/utilities/initReq.js.map +0 -1
  731. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  732. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  733. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  734. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  735. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  736. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  737. package/dist/utilities/recentlyViewed.spec.js +0 -92
  738. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  739. package/dist/utilities/selectiveCache.d.ts +0 -12
  740. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  741. package/dist/utilities/selectiveCache.js +0 -37
  742. package/dist/utilities/selectiveCache.js.map +0 -1
  743. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  744. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  745. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  746. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  747. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  748. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  749. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  750. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  751. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  752. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useMemo","useField","withCondition","useConfig","useLocale","useTranslation","mergeFieldStyles","isFieldRTL","TextareaInput","TextareaFieldComponent","props","field","admin","className","description","placeholder","rows","rtl","label","localized","maxLength","minLength","required","path","pathFromProps","readOnly","validate","i18n","config","localization","locale","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","styles","_jsx","onChange","e","target","style","TextareaField"],"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { TextareaFieldClientComponent, TextareaFieldValidation } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.css'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\n\nexport { TextareaInput, TextAreaInputProps }\n\nconst TextareaFieldComponent: TextareaFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rows, rtl } = {},\n label,\n localized,\n maxLength,\n minLength,\n required,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const locale = useLocale()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: TextareaFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, required, maxLength, minLength],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField<string>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n Label={Label}\n label={label}\n localized={localized}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly || disabled}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAI5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAE9B,SAASA,aAAa;AAEtB,MAAMC,sBAAA,GAAwDC,KAAA;EAC5D,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,WAAW;QAAEC,IAAI;QAAEC;MAAG,CAAE,GAAG,CAAC,CAAC;MAC9DC,KAAK;MACLC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IAAQ,CACT;IACDC,IAAA,EAAMC,aAAa;IACnBC,QAAQ;IACRC;EAAQ,CACT,GAAGhB,KAAA;EAEJ,MAAM;IAAEiB;EAAI,CAAE,GAAGtB,cAAA;EAEjB,MAAM;IACJuB,MAAA,EAAQ;MAAEC;IAAY;EAAE,CACzB,GAAG1B,SAAA;EAEJ,MAAM2B,MAAA,GAAS1B,SAAA;EAEf,MAAM2B,KAAA,GAAQxB,UAAA,CAAW;IACvByB,cAAA,EAAgBb,SAAA;IAChBc,QAAA,EAAUhB,GAAA;IACVa,MAAA;IACAI,kBAAA,EAAoBL,YAAA,IAAgBM;EACtC;EAEA,MAAMC,gBAAA,GAA4CrC,WAAA,CAChD,CAACsC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOZ,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASW,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAElB,SAAA;QAAWC,SAAA;QAAWC;MAAS;IACtE;EACF,GACA,CAACI,QAAA,EAAUJ,QAAA,EAAUF,SAAA,EAAWC,SAAA,CAAU;EAG5C,MAAM;IACJkB,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRtB,IAAI;IACJuB,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAGpC,QAAA,CAAiB;IACnB+C,oBAAA,EAAsBxB,aAAA;IACtBE,QAAA,EAAUU;EACZ;EAEA,MAAMa,MAAA,GAASjD,OAAA,CAAQ,MAAMM,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEuC,IAAA,CAAC1C,aAAA;IACCgC,UAAA,EAAYA,UAAA;IACZC,WAAA,EAAaA,WAAA;IACb5B,SAAA,EAAWA,SAAA;IACX6B,WAAA,EAAaA,WAAA;IACb5B,WAAA,EAAaA,WAAA;IACb6B,KAAA,EAAOA,KAAA;IACPC,KAAA,EAAOA,KAAA;IACP1B,KAAA,EAAOA,KAAA;IACPC,SAAA,EAAWA,SAAA;IACXgC,QAAA,EAAWC,CAAA;MACTN,QAAA,CAASM,CAAA,CAAEC,MAAM,CAAChB,KAAK;IACzB;IACAd,IAAA,EAAMA,IAAA;IACNR,WAAA,EAAalB,cAAA,CAAekB,WAAA,EAAaY,IAAA;IACzCF,QAAA,EAAUA,QAAA,IAAYoB,QAAA;IACtBvB,QAAA,EAAUA,QAAA;IACVN,IAAA,EAAMA,IAAA;IACNC,GAAA,EAAKc,KAAA;IACLgB,SAAA,EAAWA,SAAA;IACXO,KAAA,EAAOL,MAAA;IACPZ,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMkB,aAAA,GAAgBrD,aAAA,CAAcO,sBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useMemo","useField","withCondition","useConfig","useLocale","useTranslation","mergeFieldStyles","isFieldRTL","TextareaInput","TextareaFieldComponent","props","field","admin","className","description","placeholder","rows","rtl","label","localized","maxLength","minLength","required","path","pathFromProps","readOnly","validate","i18n","config","localization","locale","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","styles","_jsx","onChange","e","target","style","TextareaField"],"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { TextareaFieldClientProps, TextareaFieldValidation } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.css'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\n\nexport { TextareaInput, TextAreaInputProps }\n\nconst TextareaFieldComponent: React.FC<TextareaFieldClientProps> = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rows, rtl } = {},\n label,\n localized,\n maxLength,\n minLength,\n required,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const locale = useLocale()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: TextareaFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, required, maxLength, minLength],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField<string>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n Label={Label}\n label={label}\n localized={localized}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly || disabled}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAI5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAE9B,SAASA,aAAa;AAEtB,MAAMC,sBAAA,GAA8DC,KAAA;EAClE,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,WAAW;QAAEC,IAAI;QAAEC;MAAG,CAAE,GAAG,CAAC,CAAC;MAC9DC,KAAK;MACLC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IAAQ,CACT;IACDC,IAAA,EAAMC,aAAa;IACnBC,QAAQ;IACRC;EAAQ,CACT,GAAGhB,KAAA;EAEJ,MAAM;IAAEiB;EAAI,CAAE,GAAGtB,cAAA;EAEjB,MAAM;IACJuB,MAAA,EAAQ;MAAEC;IAAY;EAAE,CACzB,GAAG1B,SAAA;EAEJ,MAAM2B,MAAA,GAAS1B,SAAA;EAEf,MAAM2B,KAAA,GAAQxB,UAAA,CAAW;IACvByB,cAAA,EAAgBb,SAAA;IAChBc,QAAA,EAAUhB,GAAA;IACVa,MAAA;IACAI,kBAAA,EAAoBL,YAAA,IAAgBM;EACtC;EAEA,MAAMC,gBAAA,GAA4CrC,WAAA,CAChD,CAACsC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOZ,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASW,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAElB,SAAA;QAAWC,SAAA;QAAWC;MAAS;IACtE;EACF,GACA,CAACI,QAAA,EAAUJ,QAAA,EAAUF,SAAA,EAAWC,SAAA,CAAU;EAG5C,MAAM;IACJkB,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRtB,IAAI;IACJuB,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAGpC,QAAA,CAAiB;IACnB+C,oBAAA,EAAsBxB,aAAA;IACtBE,QAAA,EAAUU;EACZ;EAEA,MAAMa,MAAA,GAASjD,OAAA,CAAQ,MAAMM,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEuC,IAAA,CAAC1C,aAAA;IACCgC,UAAA,EAAYA,UAAA;IACZC,WAAA,EAAaA,WAAA;IACb5B,SAAA,EAAWA,SAAA;IACX6B,WAAA,EAAaA,WAAA;IACb5B,WAAA,EAAaA,WAAA;IACb6B,KAAA,EAAOA,KAAA;IACPC,KAAA,EAAOA,KAAA;IACP1B,KAAA,EAAOA,KAAA;IACPC,SAAA,EAAWA,SAAA;IACXgC,QAAA,EAAWC,CAAA;MACTN,QAAA,CAASM,CAAA,CAAEC,MAAM,CAAChB,KAAK;IACzB;IACAd,IAAA,EAAMA,IAAA;IACNR,WAAA,EAAalB,cAAA,CAAekB,WAAA,EAAaY,IAAA;IACzCF,QAAA,EAAUA,QAAA,IAAYoB,QAAA;IACtBvB,QAAA,EAAUA,QAAA;IACVN,IAAA,EAAMA,IAAA;IACNC,GAAA,EAAKc,KAAA;IACLgB,SAAA,EAAWA,SAAA;IACXO,KAAA,EAAOL,MAAA;IACPZ,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMkB,aAAA,GAAgBrD,aAAA,CAAcO,sBAAA","ignoreList":[]}
@@ -12,6 +12,7 @@ declare const ProcessingContext: import("react").Context<boolean>;
12
12
  declare const BackgroundProcessingContext: import("react").Context<boolean>;
13
13
  declare const ModifiedContext: import("react").Context<boolean>;
14
14
  declare const InitializingContext: import("react").Context<boolean>;
15
+ declare const SuccessfulSubmitCountContext: import("react").Context<number>;
15
16
  declare const FormFieldsContext: import("use-context-selector").Context<FormFieldsContextType>;
16
17
  export type RenderedFieldSlots = Map<string, RenderedField>;
17
18
  /**
@@ -35,6 +36,7 @@ declare const useFormProcessing: () => boolean;
35
36
  declare const useFormBackgroundProcessing: () => boolean;
36
37
  declare const useFormModified: () => boolean;
37
38
  declare const useFormInitializing: () => boolean;
39
+ declare const useFormSuccessfulSubmitCount: () => number;
38
40
  /**
39
41
  * Get and set the value of a form field based on a selector
40
42
  *
@@ -47,5 +49,5 @@ declare const useFormFields: <Value = unknown>(selector: (context: FormFieldsCon
47
49
  * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields
48
50
  */
49
51
  declare const useAllFormFields: () => FormFieldsContextType;
50
- export { BackgroundProcessingContext, DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useAllFormFields, useDocumentForm, useForm, useFormBackgroundProcessing, useFormFields, useFormInitializing, useFormModified, useFormProcessing, useFormSubmitted, useWatchForm, };
52
+ export { BackgroundProcessingContext, DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, SuccessfulSubmitCountContext, useAllFormFields, useDocumentForm, useForm, useFormBackgroundProcessing, useFormFields, useFormInitializing, useFormModified, useFormProcessing, useFormSubmitted, useFormSuccessfulSubmitCount, useWatchForm, };
51
53
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAS5C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAErF,QAAA,MAAM,WAAW,kCAA+B,CAAA;AAChD,QAAA,MAAM,mBAAmB,kCAA+B,CAAA;AACxD,QAAA,MAAM,gBAAgB,kCAA+B,CAAA;AACrD,QAAA,MAAM,gBAAgB,kCAAuB,CAAA;AAC7C,QAAA,MAAM,iBAAiB,kCAAuB,CAAA;AAC9C;;;GAGG;AACH,QAAA,MAAM,2BAA2B,kCAAuB,CAAA;AACxD,QAAA,MAAM,eAAe,kCAAuB,CAAA;AAC5C,QAAA,MAAM,mBAAmB,kCAAuB,CAAA;AAChD,QAAA,MAAM,iBAAiB,+DAAiE,CAAA;AAExF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,OAAO,QAAO,OAA2B,CAAA;AAC/C;;;GAGG;AACH,QAAA,MAAM,eAAe,QAAO,OAAmC,CAAA;AAE/D,QAAA,MAAM,YAAY,QAAO,OAAgC,CAAA;AACzD,QAAA,MAAM,gBAAgB,QAAO,OAAgC,CAAA;AAC7D,QAAA,MAAM,iBAAiB,QAAO,OAAiC,CAAA;AAC/D;;;GAGG;AACH,QAAA,MAAM,2BAA2B,QAAO,OAA2C,CAAA;AACnF,QAAA,MAAM,eAAe,QAAO,OAA+B,CAAA;AAC3D,QAAA,MAAM,mBAAmB,QAAO,OAAmC,CAAA;AAEnE;;;;GAIG;AACH,QAAA,MAAM,aAAa,GAAI,KAAK,GAAG,OAAO,YAC1B,CAAC,OAAO,EAAE,qBAAqB,KAAK,KAAK,KAClD,KAAwD,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,QAAO,qBAA0D,CAAA;AAEvF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,2BAA2B,EAC3B,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAS5C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAErF,QAAA,MAAM,WAAW,kCAA+B,CAAA;AAChD,QAAA,MAAM,mBAAmB,kCAA+B,CAAA;AACxD,QAAA,MAAM,gBAAgB,kCAA+B,CAAA;AACrD,QAAA,MAAM,gBAAgB,kCAAuB,CAAA;AAC7C,QAAA,MAAM,iBAAiB,kCAAuB,CAAA;AAC9C;;;GAGG;AACH,QAAA,MAAM,2BAA2B,kCAAuB,CAAA;AACxD,QAAA,MAAM,eAAe,kCAAuB,CAAA;AAC5C,QAAA,MAAM,mBAAmB,kCAAuB,CAAA;AAChD,QAAA,MAAM,4BAA4B,iCAAmB,CAAA;AACrD,QAAA,MAAM,iBAAiB,+DAAiE,CAAA;AAExF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,OAAO,QAAO,OAA2B,CAAA;AAC/C;;;GAGG;AACH,QAAA,MAAM,eAAe,QAAO,OAAmC,CAAA;AAE/D,QAAA,MAAM,YAAY,QAAO,OAAgC,CAAA;AACzD,QAAA,MAAM,gBAAgB,QAAO,OAAgC,CAAA;AAC7D,QAAA,MAAM,iBAAiB,QAAO,OAAiC,CAAA;AAC/D;;;GAGG;AACH,QAAA,MAAM,2BAA2B,QAAO,OAA2C,CAAA;AACnF,QAAA,MAAM,eAAe,QAAO,OAA+B,CAAA;AAC3D,QAAA,MAAM,mBAAmB,QAAO,OAAmC,CAAA;AACnE,QAAA,MAAM,4BAA4B,QAAO,MAA2C,CAAA;AAEpF;;;;GAIG;AACH,QAAA,MAAM,aAAa,GAAI,KAAK,GAAG,OAAO,YAC1B,CAAC,OAAO,EAAE,qBAAqB,KAAK,KAAK,KAClD,KAAwD,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,QAAO,qBAA0D,CAAA;AAEvF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC5B,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,2BAA2B,EAC3B,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC5B,YAAY,GACb,CAAA"}
@@ -14,6 +14,7 @@ const ProcessingContext = createContext(false);
14
14
  const BackgroundProcessingContext = createContext(false);
15
15
  const ModifiedContext = createContext(false);
16
16
  const InitializingContext = createContext(false);
17
+ const SuccessfulSubmitCountContext = createContext(0);
17
18
  const FormFieldsContext = createSelectorContext([{}, () => null]);
18
19
  /**
19
20
  * Get the state of the form, can be used to submit & validate the form.
@@ -36,6 +37,7 @@ const useFormProcessing = () => use(ProcessingContext);
36
37
  const useFormBackgroundProcessing = () => use(BackgroundProcessingContext);
37
38
  const useFormModified = () => use(ModifiedContext);
38
39
  const useFormInitializing = () => use(InitializingContext);
40
+ const useFormSuccessfulSubmitCount = () => use(SuccessfulSubmitCountContext);
39
41
  /**
40
42
  * Get and set the value of a form field based on a selector
41
43
  *
@@ -52,5 +54,5 @@ const useFormFields = selector => {
52
54
  const useAllFormFields = () => {
53
55
  return useFullContext(FormFieldsContext);
54
56
  };
55
- export { BackgroundProcessingContext, DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useAllFormFields, useDocumentForm, useForm, useFormBackgroundProcessing, useFormFields, useFormInitializing, useFormModified, useFormProcessing, useFormSubmitted, useWatchForm };
57
+ export { BackgroundProcessingContext, DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, SuccessfulSubmitCountContext, useAllFormFields, useDocumentForm, useForm, useFormBackgroundProcessing, useFormFields, useFormInitializing, useFormModified, useFormProcessing, useFormSubmitted, useFormSuccessfulSubmitCount, useWatchForm };
56
58
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","use","createSelectorContext","useContextSelector","useContext","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","BackgroundProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormBackgroundProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, use } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst BackgroundProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useform\n */\nconst useForm = (): Context => use(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => use(DocumentFormContext)\n\nconst useWatchForm = (): Context => use(FormWatchContext)\nconst useFormSubmitted = (): boolean => use(SubmittedContext)\nconst useFormProcessing = (): boolean => use(ProcessingContext)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst useFormBackgroundProcessing = (): boolean => use(BackgroundProcessingContext)\nconst useFormModified = (): boolean => use(ModifiedContext)\nconst useFormInitializing = (): boolean => use(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormBackgroundProcessing,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AACnC,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBC,UAAA,IAAcC,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcN,aAAA,CAAc,CAAC;AACnC,MAAMO,mBAAA,GAAsBP,aAAA,CAAc,CAAC;AAC3C,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc,CAAC;AACxC,MAAMS,gBAAA,GAAmBT,aAAA,CAAc;AACvC,MAAMU,iBAAA,GAAoBV,aAAA,CAAc;AACxC;;;;AAIA,MAAMW,2BAAA,GAA8BX,aAAA,CAAc;AAClD,MAAMY,eAAA,GAAkBZ,aAAA,CAAc;AACtC,MAAMa,mBAAA,GAAsBb,aAAA,CAAc;AAC1C,MAAMc,iBAAA,GAAoBZ,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMa,OAAA,GAAUA,CAAA,KAAed,GAAA,CAAIK,WAAA;AACnC;;;;AAIA,MAAMU,eAAA,GAAkBA,CAAA,KAAef,GAAA,CAAIM,mBAAA;AAE3C,MAAMU,YAAA,GAAeA,CAAA,KAAehB,GAAA,CAAIO,gBAAA;AACxC,MAAMU,gBAAA,GAAmBA,CAAA,KAAejB,GAAA,CAAIQ,gBAAA;AAC5C,MAAMU,iBAAA,GAAoBA,CAAA,KAAelB,GAAA,CAAIS,iBAAA;AAC7C;;;;AAIA,MAAMU,2BAAA,GAA8BA,CAAA,KAAenB,GAAA,CAAIU,2BAAA;AACvD,MAAMU,eAAA,GAAkBA,CAAA,KAAepB,GAAA,CAAIW,eAAA;AAC3C,MAAMU,mBAAA,GAAsBA,CAAA,KAAerB,GAAA,CAAIY,mBAAA;AAE/C;;;;;AAKA,MAAMU,aAAA,GAAgBC,QAAA;EAAA,OAEVrB,kBAAA,CAAAW,iBAAA,EAAsCU,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BpB,cAAA,CAAAS,iBAAe;AAAA;AAErE,SACEH,2BAA2B,EAC3BJ,mBAAmB,EACnBD,WAAW,EACXQ,iBAAiB,EACjBN,gBAAgB,EAChBK,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBgB,gBAAgB,EAChBT,eAAe,EACfD,OAAO,EACPK,2BAA2B,EAC3BG,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["createContext","use","createSelectorContext","useContextSelector","useContext","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","BackgroundProcessingContext","ModifiedContext","InitializingContext","SuccessfulSubmitCountContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormBackgroundProcessing","useFormModified","useFormInitializing","useFormSuccessfulSubmitCount","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, use } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst BackgroundProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst SuccessfulSubmitCountContext = createContext(0)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useform\n */\nconst useForm = (): Context => use(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => use(DocumentFormContext)\n\nconst useWatchForm = (): Context => use(FormWatchContext)\nconst useFormSubmitted = (): boolean => use(SubmittedContext)\nconst useFormProcessing = (): boolean => use(ProcessingContext)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst useFormBackgroundProcessing = (): boolean => use(BackgroundProcessingContext)\nconst useFormModified = (): boolean => use(ModifiedContext)\nconst useFormInitializing = (): boolean => use(InitializingContext)\nconst useFormSuccessfulSubmitCount = (): number => use(SuccessfulSubmitCountContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n SuccessfulSubmitCountContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormBackgroundProcessing,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useFormSuccessfulSubmitCount,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AACnC,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBC,UAAA,IAAcC,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcN,aAAA,CAAc,CAAC;AACnC,MAAMO,mBAAA,GAAsBP,aAAA,CAAc,CAAC;AAC3C,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc,CAAC;AACxC,MAAMS,gBAAA,GAAmBT,aAAA,CAAc;AACvC,MAAMU,iBAAA,GAAoBV,aAAA,CAAc;AACxC;;;;AAIA,MAAMW,2BAAA,GAA8BX,aAAA,CAAc;AAClD,MAAMY,eAAA,GAAkBZ,aAAA,CAAc;AACtC,MAAMa,mBAAA,GAAsBb,aAAA,CAAc;AAC1C,MAAMc,4BAAA,GAA+Bd,aAAA,CAAc;AACnD,MAAMe,iBAAA,GAAoBb,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMc,OAAA,GAAUA,CAAA,KAAef,GAAA,CAAIK,WAAA;AACnC;;;;AAIA,MAAMW,eAAA,GAAkBA,CAAA,KAAehB,GAAA,CAAIM,mBAAA;AAE3C,MAAMW,YAAA,GAAeA,CAAA,KAAejB,GAAA,CAAIO,gBAAA;AACxC,MAAMW,gBAAA,GAAmBA,CAAA,KAAelB,GAAA,CAAIQ,gBAAA;AAC5C,MAAMW,iBAAA,GAAoBA,CAAA,KAAenB,GAAA,CAAIS,iBAAA;AAC7C;;;;AAIA,MAAMW,2BAAA,GAA8BA,CAAA,KAAepB,GAAA,CAAIU,2BAAA;AACvD,MAAMW,eAAA,GAAkBA,CAAA,KAAerB,GAAA,CAAIW,eAAA;AAC3C,MAAMW,mBAAA,GAAsBA,CAAA,KAAetB,GAAA,CAAIY,mBAAA;AAC/C,MAAMW,4BAAA,GAA+BA,CAAA,KAAcvB,GAAA,CAAIa,4BAAA;AAEvD;;;;;AAKA,MAAMW,aAAA,GAAgBC,QAAA;EAAA,OAEVvB,kBAAA,CAAAY,iBAAA,EAAsCW,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BtB,cAAA,CAAAU,iBAAe;AAAA;AAErE,SACEJ,2BAA2B,EAC3BJ,mBAAmB,EACnBD,WAAW,EACXS,iBAAiB,EACjBP,gBAAgB,EAChBK,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBK,4BAA4B,EAC5Ba,gBAAgB,EAChBV,eAAe,EACfD,OAAO,EACPK,2BAA2B,EAC3BI,aAAa,EACbF,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBK,4BAA4B,EAC5BN,YAAY","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAIV,MAAM,YAAY,CAAA;AAsCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA41BpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAGV,SAAS,EAIV,MAAM,YAAY,CAAA;AAuCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAw2BpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -3,7 +3,7 @@
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
5
5
  import { serialize } from 'object-to-formdata';
6
- import { deepCopyObjectSimpleWithoutReactComponents, getDataByPath as getDataByPathFunc, getSiblingData as getSiblingDataFunc, hasDraftValidationEnabled, reduceFieldsToValues, wait } from 'payload/shared';
6
+ import { deepCopyObjectSimpleWithoutReactComponents, getDataByPath as getDataByPathFunc, getSiblingData as getSiblingDataFunc, hasDraftValidationEnabled, reduceFieldsToValues, uploadRequiresServerValidation, wait } from 'payload/shared';
7
7
  import React, { useCallback, useEffect, useReducer, useRef, useState } from 'react';
8
8
  import { toast } from 'sonner';
9
9
  import { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js';
@@ -24,7 +24,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
24
24
  import { useUploadHandlers } from '../../providers/UploadHandlers/index.js';
25
25
  import { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js';
26
26
  import { requests } from '../../utilities/api.js';
27
- import { BackgroundProcessingContext, DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useDocumentForm } from './context.js';
27
+ import { BackgroundProcessingContext, DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, SuccessfulSubmitCountContext, useDocumentForm } from './context.js';
28
28
  import { errorMessages } from './errorMessages.js';
29
29
  import { fieldReducer } from './fieldReducer.js';
30
30
  import { initContextState } from './initContextState.js';
@@ -94,6 +94,7 @@ export const Form = props => {
94
94
  const [disabled, setDisabled] = useState(disabledFromProps || false);
95
95
  const [isMounted, setIsMounted] = useState(false);
96
96
  const [submitted, setSubmitted] = useState(false);
97
+ const [successfulSubmitCount, setSuccessfulSubmitCount] = useState(0);
97
98
  /**
98
99
  * Tracks wether the form state passes validation.
99
100
  * For example the state could be submitted but invalid as field errors have been returned.
@@ -346,6 +347,7 @@ export const Form = props => {
346
347
  json = await res.json();
347
348
  }
348
349
  if (res.status < 400) {
350
+ setSuccessfulSubmitCount(count => count + 1);
349
351
  if (typeof onSuccess === 'function') {
350
352
  const newFormState = await onSuccess(json, {
351
353
  context,
@@ -453,7 +455,11 @@ export const Form = props => {
453
455
  const handler = getUploadHandler({
454
456
  collectionSlug
455
457
  });
456
- if (typeof handler === 'function') {
458
+ if (typeof handler === 'function' && !uploadRequiresServerValidation({
459
+ allowRestrictedFileTypes: docConfig.upload.allowRestrictedFileTypes,
460
+ filename: file.name,
461
+ mimeType: file.type
462
+ })) {
457
463
  file = JSON.stringify(await handler({
458
464
  docPrefix: typeof data_5?.prefix === 'string' ? data_5.prefix : undefined,
459
465
  file
@@ -723,7 +729,10 @@ export const Form = props => {
723
729
  value: modified,
724
730
  children: /*#__PURE__*/_jsx(FormFieldsContext.Provider, {
725
731
  value: fieldsReducer,
726
- children: children
732
+ children: /*#__PURE__*/_jsx(SuccessfulSubmitCountContext, {
733
+ value: successfulSubmitCount,
734
+ children: children
735
+ })
727
736
  })
728
737
  })
729
738
  })
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","hasDraftValidationEnabled","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueue","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useFormErrorHandler","useLocale","useOperation","useRouter","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","baseClass","Form","props","id","collectionSlug","docConfig","docPermissions","getDocPreferences","globalSlug","validateDrafts","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","currentLocale","locale","code","i18n","t","refreshCookie","user","onNonFieldError","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","setSubmitted","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","_setBackgroundProcessing","backgroundProcessingRef","modifiedWhileProcessingRef","setBackgroundProcessing","current","modified","_setModified","setModified","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","formState","dispatchFields","fields","prevFormState","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","acceptValues","actionArg","context","disableFormWhileProcessing","disableSuccessStatusFromArgs","methodToUse","overrides","overridesFromArgs","skipValidation","disableToast","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","serializableFormState","excludeFiles","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","prevStateRef","serverState","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","dataFromArgs","file","upload","handler","JSON","stringify","docPrefix","prefix","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","newState","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","moveFieldRow","moveFromIndex","moveToIndex","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","optimize","sanitize","handleLocaleChange","classes","filter","join","executeOnChange","onChangeFn","DocumentFormContextComponent","Fragment","documentFormContextProps","El","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n hasDraftValidationEnabled,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n Submit,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueue } from '../../hooks/useQueue.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormErrorHandler } from '../../providers/FormErrorHandler/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docConfig, docPermissions, getDocPreferences, globalSlug } =\n useDocumentInfo()\n\n const validateDrafts = hasDraftValidationEnabled(docConfig)\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const onNonFieldError = useFormErrorHandler()\n const operation = useOperation()\n const { queueTask } = useQueue()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n\n const [processing, setProcessing] = useState(false)\n\n /**\n * Determines whether the form is processing asynchronously in the background, e.g. autosave is running.\n * Useful to determine whether to disable the form or queue other processes while in flight, e.g. disable manual submits while an autosave is running.\n */\n const [backgroundProcessing, _setBackgroundProcessing] = useState(false)\n\n /**\n * A ref that can be read within the `setModified` interceptor.\n * Dependents of this state can read it immediately without needing to wait for a render cycle.\n */\n const backgroundProcessingRef = useRef(backgroundProcessing)\n\n /**\n * Flag to track if the form was modified _during a submission_, e.g. while autosave is running.\n * Useful in order to avoid resetting `modified` to false wrongfully after a submit.\n * For example, if the user modifies a field while the a background process (autosave) is running,\n * we need to ensure that after the submit completes, the `modified` state remains true.\n */\n const modifiedWhileProcessingRef = useRef(false)\n\n /**\n * Intercept the `setBackgroundProcessing` method to keep the ref in sync.\n * See the `backgroundProcessingRef` for more details.\n */\n const setBackgroundProcessing = useCallback((backgroundProcessing: boolean) => {\n backgroundProcessingRef.current = backgroundProcessing\n _setBackgroundProcessing(backgroundProcessing)\n }, [])\n\n const [modified, _setModified] = useState(false)\n\n /**\n * Intercept the `setModified` method to track whether the event happened during background processing.\n * See the `modifiedWhileProcessingRef` ref for more details.\n */\n const setModified = useCallback((modified: boolean) => {\n if (backgroundProcessingRef.current) {\n modifiedWhileProcessingRef.current = true\n }\n\n _setModified(modified)\n }, [])\n\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [formState, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = formState\n\n const prevFormState = useRef(formState)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback<Submit>(\n async (options, e) => {\n const {\n acceptValues = true,\n action: actionArg = action,\n context,\n disableFormWhileProcessing = true,\n disableSuccessStatus: disableSuccessStatusFromArgs,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options || ({} as SubmitOptions)\n\n const disableToast = disableSuccessStatusFromArgs ?? disableSuccessStatus\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableToast || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n if (disableFormWhileProcessing) {\n setProcessing(true)\n setDisabled(true)\n }\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const serializableFormState = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n {\n excludeFiles: true,\n },\n )\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFormState,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(contextRef.current.fields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n try {\n const formData = await contextRef.current.createFormData(overrides, {\n data,\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n if (!modifiedWhileProcessingRef.current) {\n setModified(false)\n } else {\n modifiedWhileProcessingRef.current = false\n }\n\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json, {\n context,\n formState: serializableFormState,\n })\n\n if (newFormState) {\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n acceptValues,\n prevStateRef: prevFormState,\n serverState: newFormState,\n })\n }\n }\n\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableToast) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n // When there was an error submitting a draft,\n // set the form state to unsubmitted, to not trigger visible form validation on changes after the failed submit.\n // Also keep the form as modified so the save button remains enabled for retry.\n if (overridesFromArgs['_status'] === 'draft') {\n setModified(true)\n\n if (!validateDrafts) {\n setSubmitted(false)\n }\n }\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n\n if (json.message) {\n errorToast(json.message)\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n // Pass overridesFromArgs (not the computed overrides) so a retry re-evaluates any function overrides against current fields.\n if (onNonFieldError?.(err, () => void submit({ overrides: overridesFromArgs }))) {\n return\n }\n errorToast(<FieldErrorsToast errorMessage={err.message || t('error:unknown')} />)\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n\n return { formState: contextRef.current.fields, res }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n validateDrafts,\n waitForAutocomplete,\n setModified,\n setSubmitted,\n onNonFieldError,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { data: dataFromArgs, mergeOverrideData = true }) => {\n let data = dataFromArgs || reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n delete data.file\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (typeof handler === 'function') {\n file = JSON.stringify(\n await handler({\n docPrefix: typeof data?.prefix === 'string' ? data.prefix : undefined,\n file,\n }),\n )\n }\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize: Record<string, unknown> = {\n _payload: JSON.stringify(data),\n }\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n dataToSerialize.file = file\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, {\n indices: true,\n nullsAsUndefineds: false,\n })\n\n return formData\n },\n [collectionSlug, docConfig, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n setModified,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields, setModified],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n const moveFieldRow: FormContextType['moveFieldRow'] = useCallback(\n ({ moveFromIndex, moveToIndex, path }) => {\n dispatchFields({\n type: 'MOVE_ROW',\n moveFromIndex,\n moveToIndex,\n path,\n })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.moveFieldRow = moveFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [formState],\n )\n\n const handleLocaleChange = useEffectEvent(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n })\n\n useEffect(() => {\n handleLocaleChange()\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent((submitted: boolean) => {\n queueTask(async () => {\n if (Array.isArray(onChange)) {\n let serverState: FormState\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n serverState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(formState, {\n excludeFiles: true,\n }),\n submitted,\n })\n }\n\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n prevStateRef: prevFormState,\n serverState,\n })\n }\n })\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(formState, prevFormState.current)) && modified) {\n executeOnChange(submitted)\n }\n\n prevFormState.current = formState\n isFirstRenderRef.current = false\n },\n [modified, submitted, formState],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n /**\n * data-form-ready signals if the form is ready to be used. This is used by our e2e tests\n * to wait for the form to be ready before interacting with it, reducing flakiness if the test is run in\n * slow network conditions.\n */\n data-form-ready={!processing && isMounted && !initializing}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields: formState,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","hasDraftValidationEnabled","reduceFieldsToValues","uploadRequiresServerValidation","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueue","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useFormErrorHandler","useLocale","useOperation","useRouter","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","SuccessfulSubmitCountContext","useDocumentForm","errorMessages","fieldReducer","initContextState","baseClass","Form","props","id","collectionSlug","docConfig","docPermissions","getDocPreferences","globalSlug","validateDrafts","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","currentLocale","locale","code","i18n","t","refreshCookie","user","onNonFieldError","operation","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","setSubmitted","successfulSubmitCount","setSuccessfulSubmitCount","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","_setBackgroundProcessing","backgroundProcessingRef","modifiedWhileProcessingRef","setBackgroundProcessing","current","modified","_setModified","setModified","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","formState","dispatchFields","fields","prevFormState","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","acceptValues","actionArg","context","disableFormWhileProcessing","disableSuccessStatusFromArgs","methodToUse","overrides","overridesFromArgs","skipValidation","disableToast","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","serializableFormState","excludeFiles","revalidatedFormState","reduce","priorOnChange","beforeSubmitFn","result","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","count","newFormState","prevStateRef","serverState","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","_jsx","statusText","console","getFields","getField","dataFromArgs","file","upload","handler","allowRestrictedFileTypes","filename","name","mimeType","JSON","stringify","docPrefix","prefix","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","newState","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","moveFieldRow","moveFromIndex","moveToIndex","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","optimize","sanitize","handleLocaleChange","classes","filter","join","executeOnChange","onChangeFn","DocumentFormContextComponent","Fragment","documentFormContextProps","El","noValidate","ref","Provider","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n hasDraftValidationEnabled,\n reduceFieldsToValues,\n uploadRequiresServerValidation,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n Submit,\n SubmitOptions,\n} from './types.js'\n\nimport { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueue } from '../../hooks/useQueue.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormErrorHandler } from '../../providers/FormErrorHandler/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouter } from '../../providers/RouterAdapter/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n SuccessfulSubmitCountContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docConfig, docPermissions, getDocPreferences, globalSlug } =\n useDocumentInfo()\n\n const validateDrafts = hasDraftValidationEnabled(docConfig)\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const onNonFieldError = useFormErrorHandler()\n const operation = useOperation()\n const { queueTask } = useQueue()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const [successfulSubmitCount, setSuccessfulSubmitCount] = useState(0)\n\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n\n const [processing, setProcessing] = useState(false)\n\n /**\n * Determines whether the form is processing asynchronously in the background, e.g. autosave is running.\n * Useful to determine whether to disable the form or queue other processes while in flight, e.g. disable manual submits while an autosave is running.\n */\n const [backgroundProcessing, _setBackgroundProcessing] = useState(false)\n\n /**\n * A ref that can be read within the `setModified` interceptor.\n * Dependents of this state can read it immediately without needing to wait for a render cycle.\n */\n const backgroundProcessingRef = useRef(backgroundProcessing)\n\n /**\n * Flag to track if the form was modified _during a submission_, e.g. while autosave is running.\n * Useful in order to avoid resetting `modified` to false wrongfully after a submit.\n * For example, if the user modifies a field while the a background process (autosave) is running,\n * we need to ensure that after the submit completes, the `modified` state remains true.\n */\n const modifiedWhileProcessingRef = useRef(false)\n\n /**\n * Intercept the `setBackgroundProcessing` method to keep the ref in sync.\n * See the `backgroundProcessingRef` for more details.\n */\n const setBackgroundProcessing = useCallback((backgroundProcessing: boolean) => {\n backgroundProcessingRef.current = backgroundProcessing\n _setBackgroundProcessing(backgroundProcessing)\n }, [])\n\n const [modified, _setModified] = useState(false)\n\n /**\n * Intercept the `setModified` method to track whether the event happened during background processing.\n * See the `modifiedWhileProcessingRef` ref for more details.\n */\n const setModified = useCallback((modified: boolean) => {\n if (backgroundProcessingRef.current) {\n modifiedWhileProcessingRef.current = true\n }\n\n _setModified(modified)\n }, [])\n\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [formState, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = formState\n\n const prevFormState = useRef(formState)\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n const pathSegments = path ? path.split('.') : []\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n path: pathSegments,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback<Submit>(\n async (options, e) => {\n const {\n acceptValues = true,\n action: actionArg = action,\n context,\n disableFormWhileProcessing = true,\n disableSuccessStatus: disableSuccessStatusFromArgs,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options || ({} as SubmitOptions)\n\n const disableToast = disableSuccessStatusFromArgs ?? disableSuccessStatus\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableToast || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n if (disableFormWhileProcessing) {\n setProcessing(true)\n setDisabled(true)\n }\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n const data = reduceFieldsToValues(contextRef.current.fields, true)\n\n const serializableFormState = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n {\n excludeFiles: true,\n },\n )\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFormState,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(contextRef.current.fields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n try {\n const formData = await contextRef.current.createFormData(overrides, {\n data,\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n if (!modifiedWhileProcessingRef.current) {\n setModified(false)\n } else {\n modifiedWhileProcessingRef.current = false\n }\n\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n\n if (res.status < 400) {\n setSuccessfulSubmitCount((count) => count + 1)\n\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json, {\n context,\n formState: serializableFormState,\n })\n\n if (newFormState) {\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n acceptValues,\n prevStateRef: prevFormState,\n serverState: newFormState,\n })\n }\n }\n\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableToast) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n // When there was an error submitting a draft,\n // set the form state to unsubmitted, to not trigger visible form validation on changes after the failed submit.\n // Also keep the form as modified so the save button remains enabled for retry.\n if (overridesFromArgs['_status'] === 'draft') {\n setModified(true)\n\n if (!validateDrafts) {\n setSubmitted(false)\n }\n }\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n\n if (json.message) {\n errorToast(json.message)\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n // Pass overridesFromArgs (not the computed overrides) so a retry re-evaluates any function overrides against current fields.\n if (onNonFieldError?.(err, () => void submit({ overrides: overridesFromArgs }))) {\n return\n }\n errorToast(<FieldErrorsToast errorMessage={err.message || t('error:unknown')} />)\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n\n return { formState: contextRef.current.fields, res }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n validateDrafts,\n waitForAutocomplete,\n setModified,\n setSubmitted,\n onNonFieldError,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { data: dataFromArgs, mergeOverrideData = true }) => {\n let data = dataFromArgs || reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n delete data.file\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (\n typeof handler === 'function' &&\n !uploadRequiresServerValidation({\n allowRestrictedFileTypes: docConfig.upload.allowRestrictedFileTypes,\n filename: file.name,\n mimeType: file.type,\n })\n ) {\n file = JSON.stringify(\n await handler({\n docPrefix: typeof data?.prefix === 'string' ? data.prefix : undefined,\n file,\n }),\n )\n }\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const dataToSerialize: Record<string, unknown> = {\n _payload: JSON.stringify(data),\n }\n\n if (docConfig && 'upload' in docConfig && docConfig.upload && file) {\n dataToSerialize.file = file\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, {\n indices: true,\n nullsAsUndefineds: false,\n })\n\n return formData\n },\n [collectionSlug, docConfig, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n setModified,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields, setModified],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n const moveFieldRow: FormContextType['moveFieldRow'] = useCallback(\n ({ moveFromIndex, moveToIndex, path }) => {\n dispatchFields({\n type: 'MOVE_ROW',\n moveFromIndex,\n moveToIndex,\n path,\n })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n\n setModified(true)\n },\n [dispatchFields, setModified],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath, setModified],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.moveFieldRow = moveFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [formState],\n )\n\n const handleLocaleChange = useEffectEvent(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n })\n\n useEffect(() => {\n handleLocaleChange()\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent((submitted: boolean) => {\n queueTask(async () => {\n if (Array.isArray(onChange)) {\n let serverState: FormState\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n serverState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(formState, {\n excludeFiles: true,\n }),\n submitted,\n })\n }\n\n dispatchFields({\n type: 'MERGE_SERVER_STATE',\n prevStateRef: prevFormState,\n serverState,\n })\n }\n })\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(formState, prevFormState.current)) && modified) {\n executeOnChange(submitted)\n }\n\n prevFormState.current = formState\n isFirstRenderRef.current = false\n },\n [modified, submitted, formState],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n /**\n * data-form-ready signals if the form is ready to be used. This is used by our e2e tests\n * to wait for the form to be ready before interacting with it, reducing flakiness if the test is run in\n * slow network conditions.\n */\n data-form-ready={!processing && isMounted && !initializing}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext value={contextRef.current}>\n <FormWatchContext\n value={{\n fields: formState,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n <SuccessfulSubmitCountContext value={successfulSubmitCount}>\n {children}\n </SuccessfulSubmitCountContext>\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
@@ -9,9 +9,9 @@ import React from 'react';
9
9
  * 'use client'
10
10
  * import React from 'react'
11
11
  * import { TextField, FieldPathContext } from '@payloadcms/ui'
12
- * import type { TextFieldClientComponent } from 'payload'
12
+ * import type { TextFieldClientProps } from 'payload'
13
13
  *
14
- * export const MyCustomField: TextFieldClientComponent = (props) => {
14
+ * export const MyCustomField: React.FC<TextFieldClientProps> = (props) => {
15
15
  * return (
16
16
  * <FieldPathContext value="path.to.some.other.field">
17
17
  * <TextField {...props} />
@@ -9,9 +9,9 @@ import React from 'react';
9
9
  * 'use client'
10
10
  * import React from 'react'
11
11
  * import { TextField, FieldPathContext } from '@payloadcms/ui'
12
- * import type { TextFieldClientComponent } from 'payload'
12
+ * import type { TextFieldClientProps } from 'payload'
13
13
  *
14
- * export const MyCustomField: TextFieldClientComponent = (props) => {
14
+ * export const MyCustomField: React.FC<TextFieldClientProps> = (props) => {
15
15
  * return (
16
16
  * <FieldPathContext value="path.to.some.other.field">
17
17
  * <TextField {...props} />
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["React","FieldPathContext","createContext","undefined","useFieldPath","context","useContext"],"sources":["../../../src/forms/RenderFields/context.ts"],"sourcesContent":["import React from 'react'\n\n/**\n * All fields are wrapped in a `FieldPathContext` provider by default.\n * The `useFieldPath` hook will return this value if it exists, not the path the field was explicitly given.\n * This means if you render a field directly, you will need to wrap it with a new `FieldPathContext` provider.\n * Otherwise, it will return the parent's path, not the path it was explicitly given.\n * @example\n * ```tsx\n * 'use client'\n * import React from 'react'\n * import { TextField, FieldPathContext } from '@payloadcms/ui'\n * import type { TextFieldClientComponent } from 'payload'\n *\n * export const MyCustomField: TextFieldClientComponent = (props) => {\n * return (\n * <FieldPathContext value=\"path.to.some.other.field\">\n * <TextField {...props} />\n * </FieldPathContext>\n * )\n * }\n * ```\n *\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport const FieldPathContext = React.createContext<string>(undefined)\n\n/**\n * Gets the current field path from the nearest `FieldPathContext` provider.\n * All fields are wrapped in this context by default.\n *\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport const useFieldPath = () => {\n const context = React.useContext(FieldPathContext)\n\n if (!context) {\n // swallow the error, not all fields are wrapped in a FieldPathContext\n return undefined\n }\n\n return context\n}\n"],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAElB;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,gBAAA,GAAmBD,KAAA,CAAME,aAAa,CAASC,SAAA;AAE5D;;;;;;AAMA,OAAO,MAAMC,YAAA,GAAeA,CAAA;EAC1B,MAAAC,OAAA,GAAgBL,KAAA,CAAAM,UAAA,CAAAL,gBAAiB;EAAA,KAE5BI,OAAA;IAAA;EAAA;EAAA,OAKEA,OAAA;AAAA,CACT","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["React","FieldPathContext","createContext","undefined","useFieldPath","context","useContext"],"sources":["../../../src/forms/RenderFields/context.ts"],"sourcesContent":["import React from 'react'\n\n/**\n * All fields are wrapped in a `FieldPathContext` provider by default.\n * The `useFieldPath` hook will return this value if it exists, not the path the field was explicitly given.\n * This means if you render a field directly, you will need to wrap it with a new `FieldPathContext` provider.\n * Otherwise, it will return the parent's path, not the path it was explicitly given.\n * @example\n * ```tsx\n * 'use client'\n * import React from 'react'\n * import { TextField, FieldPathContext } from '@payloadcms/ui'\n * import type { TextFieldClientProps } from 'payload'\n *\n * export const MyCustomField: React.FC<TextFieldClientProps> = (props) => {\n * return (\n * <FieldPathContext value=\"path.to.some.other.field\">\n * <TextField {...props} />\n * </FieldPathContext>\n * )\n * }\n * ```\n *\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport const FieldPathContext = React.createContext<string>(undefined)\n\n/**\n * Gets the current field path from the nearest `FieldPathContext` provider.\n * All fields are wrapped in this context by default.\n *\n * @experimental This is an experimental API and may change at any time. Use at your own risk.\n */\nexport const useFieldPath = () => {\n const context = React.useContext(FieldPathContext)\n\n if (!context) {\n // swallow the error, not all fields are wrapped in a FieldPathContext\n return undefined\n }\n\n return context\n}\n"],"mappings":"AAAA,OAAOA,KAAA,MAAW;AAElB;;;;;;;;;;;;;;;;;;;;;;;AAuBA,OAAO,MAAMC,gBAAA,GAAmBD,KAAA,CAAME,aAAa,CAASC,SAAA;AAE5D;;;;;;AAMA,OAAO,MAAMC,YAAA,GAAeA,CAAA;EAC1B,MAAAC,OAAA,GAAgBL,KAAA,CAAAM,UAAA,CAAAL,gBAAiB;EAAA,KAE5BI,OAAA;IAAA;EAAA;EAAA,OAKEA,OAAA;AAAA,CACT","ignoreList":[]}
@@ -66,6 +66,7 @@
66
66
  }
67
67
  }
68
68
 
69
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
69
70
  @media (max-width: 768px) {
70
71
  .render-fields {
71
72
  --spacing-field: var(--spacer-2-5);
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAGd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAs7BvF,CAAA"}
1
+ {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAGd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAi8BvF,CAAA"}
@@ -310,6 +310,7 @@ export const addFieldStatePromise = async args => {
310
310
  const rowPath = path + '.' + i;
311
311
  if (block) {
312
312
  row.id = row?.id || new ObjectId().toHexString();
313
+ const previousRow = (previousFormState?.[path]?.rows || []).find(prevRow => prevRow.id === row.id);
313
314
  if (!omitParents && (!filter || filter(args))) {
314
315
  // Handle block `id` field
315
316
  const idKey = rowPath + '.id';
@@ -317,6 +318,9 @@ export const addFieldStatePromise = async args => {
317
318
  initialValue: row.id,
318
319
  value: row.id
319
320
  };
321
+ if (!previousRow) {
322
+ state[idKey].addedByServer = true;
323
+ }
320
324
  // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed
321
325
  if (filterOptionsValidationResult?.invalidBlockSlugs?.length && filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)) {
322
326
  state[idKey].errorMessage = req.t('validation:invalidBlock', {
@@ -339,8 +343,8 @@ export const addFieldStatePromise = async args => {
339
343
  initialValue: row.blockType,
340
344
  value: row.blockType
341
345
  };
342
- if (addedByServer) {
343
- state[fieldKey].addedByServer = addedByServer;
346
+ if (!previousRow) {
347
+ state[fieldKey].addedByServer = true;
344
348
  }
345
349
  if (includeSchema) {
346
350
  state[fieldKey].fieldSchema = block.fields.find(blockField => 'name' in blockField && blockField.name === 'blockType');
@@ -348,6 +352,9 @@ export const addFieldStatePromise = async args => {
348
352
  // Handle `blockName` field
349
353
  const blockNameKey = rowPath + '.blockName';
350
354
  state[blockNameKey] = {};
355
+ if (!previousRow) {
356
+ state[blockNameKey].addedByServer = true;
357
+ }
351
358
  if (row.blockName) {
352
359
  state[blockNameKey].initialValue = row.blockName;
353
360
  state[blockNameKey].value = row.blockName;
@@ -390,8 +397,6 @@ export const addFieldStatePromise = async args => {
390
397
  skipValidation,
391
398
  state
392
399
  }));
393
- // First, check if `previousFormState` has a matching row
394
- const previousRow = (previousFormState?.[path]?.rows || []).find(prevRow => prevRow.id === row.id);
395
400
  const newRow = {
396
401
  id: row.id,
397
402
  blockType: row.blockType,
@@ -400,6 +405,9 @@ export const addFieldStatePromise = async args => {
400
405
  if (previousRow?.lastRenderedPath) {
401
406
  newRow.lastRenderedPath = previousRow.lastRenderedPath;
402
407
  }
408
+ if (!previousRow) {
409
+ newRow.addedByServer = true;
410
+ }
403
411
  acc.rowMetadata.push(newRow);
404
412
  const isCollapsed = isRowCollapsed({
405
413
  collapsedPrefs: preferences?.fields?.[path]?.collapsed,