@payloadcms/ui 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f1f97ff

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 (356) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +5 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -1
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +1 -1
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +53 -28
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/Collapsible/index.d.ts +1 -1
  12. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  13. package/dist/elements/Collapsible/index.js +1 -1
  14. package/dist/elements/Collapsible/index.js.map +1 -1
  15. package/dist/elements/DatePicker/index.scss +3 -1
  16. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  17. package/dist/elements/DeleteDocument/index.js +7 -3
  18. package/dist/elements/DeleteDocument/index.js.map +1 -1
  19. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  20. package/dist/elements/DeleteMany/index.js +4 -2
  21. package/dist/elements/DeleteMany/index.js.map +1 -1
  22. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentControls/index.js +5 -1
  24. package/dist/elements/DocumentControls/index.js.map +1 -1
  25. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  26. package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
  27. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  28. package/dist/elements/DocumentFields/index.d.ts +1 -2
  29. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  30. package/dist/elements/DocumentFields/index.js +46 -48
  31. package/dist/elements/DocumentFields/index.js.map +1 -1
  32. package/dist/elements/Drawer/index.d.ts.map +1 -1
  33. package/dist/elements/Drawer/index.js +3 -0
  34. package/dist/elements/Drawer/index.js.map +1 -1
  35. package/dist/elements/Drawer/index.scss +2 -1
  36. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  37. package/dist/elements/DuplicateDocument/index.js +10 -6
  38. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  39. package/dist/elements/EditMany/index.d.ts +1 -2
  40. package/dist/elements/EditMany/index.d.ts.map +1 -1
  41. package/dist/elements/EditMany/index.js.map +1 -1
  42. package/dist/elements/EditUpload/index.d.ts +3 -6
  43. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  44. package/dist/elements/EditUpload/index.js +20 -25
  45. package/dist/elements/EditUpload/index.js.map +1 -1
  46. package/dist/elements/FieldSelect/index.d.ts +1 -2
  47. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  48. package/dist/elements/FieldSelect/index.js.map +1 -1
  49. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  50. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  51. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  52. package/dist/elements/ListControls/index.d.ts +1 -2
  53. package/dist/elements/ListControls/index.d.ts.map +1 -1
  54. package/dist/elements/ListControls/index.js +38 -3
  55. package/dist/elements/ListControls/index.js.map +1 -1
  56. package/dist/elements/Localizer/index.d.ts.map +1 -1
  57. package/dist/elements/Localizer/index.js +6 -13
  58. package/dist/elements/Localizer/index.js.map +1 -1
  59. package/dist/elements/Logout/index.d.ts.map +1 -1
  60. package/dist/elements/Logout/index.js +6 -3
  61. package/dist/elements/Logout/index.js.map +1 -1
  62. package/dist/elements/SearchFilter/index.d.ts +5 -3
  63. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  64. package/dist/elements/SearchFilter/index.js +14 -53
  65. package/dist/elements/SearchFilter/index.js.map +1 -1
  66. package/dist/elements/SortColumn/index.d.ts +2 -2
  67. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  68. package/dist/elements/SortColumn/index.js +4 -4
  69. package/dist/elements/SortColumn/index.js.map +1 -1
  70. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  71. package/dist/elements/StayLoggedIn/index.js +6 -2
  72. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  73. package/dist/elements/StepNav/types.d.ts +2 -2
  74. package/dist/elements/StepNav/types.d.ts.map +1 -1
  75. package/dist/elements/StepNav/types.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  77. package/dist/elements/Table/DefaultCell/index.js +5 -1
  78. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  79. package/dist/elements/Table/index.d.ts +1 -2
  80. package/dist/elements/Table/index.d.ts.map +1 -1
  81. package/dist/elements/Table/index.js.map +1 -1
  82. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  83. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  84. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  85. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  86. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  87. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  88. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  89. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  90. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  91. package/dist/elements/Upload/index.d.ts.map +1 -1
  92. package/dist/elements/Upload/index.js +13 -28
  93. package/dist/elements/Upload/index.js.map +1 -1
  94. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  95. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -5
  96. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  97. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  98. package/dist/elements/WhereBuilder/Condition/index.js +4 -2
  99. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  100. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  101. package/dist/elements/WhereBuilder/index.js +7 -4
  102. package/dist/elements/WhereBuilder/index.js.map +1 -1
  103. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
  104. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  105. package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
  106. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  107. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  108. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  109. package/dist/elements/WhereBuilder/types.js.map +1 -1
  110. package/dist/elements/withMergedProps/index.js +8 -2
  111. package/dist/elements/withMergedProps/index.js.map +1 -1
  112. package/dist/exports/client/index.d.ts +6 -7
  113. package/dist/exports/client/index.d.ts.map +1 -1
  114. package/dist/exports/client/index.js +19 -18
  115. package/dist/exports/client/index.js.map +4 -4
  116. package/dist/exports/shared/index.d.ts +1 -0
  117. package/dist/exports/shared/index.d.ts.map +1 -1
  118. package/dist/exports/shared/index.js +2 -2
  119. package/dist/exports/shared/index.js.map +4 -4
  120. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  121. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  122. package/dist/fields/Array/ArrayRow.js.map +1 -1
  123. package/dist/fields/Array/index.d.ts +2 -15
  124. package/dist/fields/Array/index.d.ts.map +1 -1
  125. package/dist/fields/Array/index.js +25 -8
  126. package/dist/fields/Array/index.js.map +1 -1
  127. package/dist/fields/Blocks/BlockRow.d.ts +2 -3
  128. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  129. package/dist/fields/Blocks/BlockRow.js +5 -1
  130. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  131. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  132. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  133. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  134. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  135. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  136. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  137. package/dist/fields/Blocks/RowActions.js +1 -1
  138. package/dist/fields/Blocks/RowActions.js.map +1 -1
  139. package/dist/fields/Blocks/index.d.ts +1 -14
  140. package/dist/fields/Blocks/index.d.ts.map +1 -1
  141. package/dist/fields/Blocks/index.js +22 -9
  142. package/dist/fields/Blocks/index.js.map +1 -1
  143. package/dist/fields/Checkbox/Input.d.ts +1 -1
  144. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  145. package/dist/fields/Checkbox/Input.js.map +1 -1
  146. package/dist/fields/Checkbox/index.d.ts +1 -1
  147. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  148. package/dist/fields/Checkbox/index.js +2 -2
  149. package/dist/fields/Checkbox/index.js.map +1 -1
  150. package/dist/fields/Code/index.d.ts +1 -9
  151. package/dist/fields/Code/index.d.ts.map +1 -1
  152. package/dist/fields/Code/index.js +2 -2
  153. package/dist/fields/Code/index.js.map +1 -1
  154. package/dist/fields/Collapsible/index.d.ts +1 -7
  155. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  156. package/dist/fields/Collapsible/index.js +2 -2
  157. package/dist/fields/Collapsible/index.js.map +1 -1
  158. package/dist/fields/DateTime/index.d.ts +1 -9
  159. package/dist/fields/DateTime/index.d.ts.map +1 -1
  160. package/dist/fields/DateTime/index.js +2 -2
  161. package/dist/fields/DateTime/index.js.map +1 -1
  162. package/dist/fields/Email/index.d.ts +1 -9
  163. package/dist/fields/Email/index.d.ts.map +1 -1
  164. package/dist/fields/Email/index.js +2 -2
  165. package/dist/fields/Email/index.js.map +1 -1
  166. package/dist/fields/FieldDescription/index.d.ts +2 -2
  167. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  168. package/dist/fields/FieldDescription/index.js.map +1 -1
  169. package/dist/fields/FieldError/index.d.ts +2 -2
  170. package/dist/fields/FieldError/index.d.ts.map +1 -1
  171. package/dist/fields/FieldError/index.js.map +1 -1
  172. package/dist/fields/FieldLabel/index.d.ts +2 -2
  173. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  174. package/dist/fields/FieldLabel/index.js.map +1 -1
  175. package/dist/fields/Group/index.d.ts +2 -10
  176. package/dist/fields/Group/index.d.ts.map +1 -1
  177. package/dist/fields/Group/index.js +2 -2
  178. package/dist/fields/Group/index.js.map +1 -1
  179. package/dist/fields/Hidden/index.d.ts +2 -9
  180. package/dist/fields/Hidden/index.d.ts.map +1 -1
  181. package/dist/fields/Hidden/index.js +2 -2
  182. package/dist/fields/Hidden/index.js.map +1 -1
  183. package/dist/fields/JSON/index.d.ts +1 -9
  184. package/dist/fields/JSON/index.d.ts.map +1 -1
  185. package/dist/fields/JSON/index.js +2 -2
  186. package/dist/fields/JSON/index.js.map +1 -1
  187. package/dist/fields/Number/index.d.ts +1 -14
  188. package/dist/fields/Number/index.d.ts.map +1 -1
  189. package/dist/fields/Number/index.js +2 -2
  190. package/dist/fields/Number/index.js.map +1 -1
  191. package/dist/fields/Password/index.d.ts +1 -2
  192. package/dist/fields/Password/index.d.ts.map +1 -1
  193. package/dist/fields/Password/index.js +2 -2
  194. package/dist/fields/Password/index.js.map +1 -1
  195. package/dist/fields/Point/index.d.ts +2 -9
  196. package/dist/fields/Point/index.d.ts.map +1 -1
  197. package/dist/fields/Point/index.js +2 -2
  198. package/dist/fields/Point/index.js.map +1 -1
  199. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  200. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  201. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  202. package/dist/fields/RadioGroup/index.d.ts +1 -12
  203. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  204. package/dist/fields/RadioGroup/index.js +2 -2
  205. package/dist/fields/RadioGroup/index.js.map +1 -1
  206. package/dist/fields/Relationship/index.d.ts +1 -2
  207. package/dist/fields/Relationship/index.d.ts.map +1 -1
  208. package/dist/fields/Relationship/index.js +2 -2
  209. package/dist/fields/Relationship/index.js.map +1 -1
  210. package/dist/fields/Relationship/types.d.ts +1 -11
  211. package/dist/fields/Relationship/types.d.ts.map +1 -1
  212. package/dist/fields/Relationship/types.js.map +1 -1
  213. package/dist/fields/RichText/index.d.ts +2 -8
  214. package/dist/fields/RichText/index.d.ts.map +1 -1
  215. package/dist/fields/RichText/index.js.map +1 -1
  216. package/dist/fields/Row/index.d.ts +1 -2
  217. package/dist/fields/Row/index.d.ts.map +1 -1
  218. package/dist/fields/Row/index.js +2 -2
  219. package/dist/fields/Row/index.js.map +1 -1
  220. package/dist/fields/Row/index.scss +1 -5
  221. package/dist/fields/Select/Input.d.ts +1 -2
  222. package/dist/fields/Select/Input.d.ts.map +1 -1
  223. package/dist/fields/Select/Input.js.map +1 -1
  224. package/dist/fields/Select/index.d.ts +1 -13
  225. package/dist/fields/Select/index.d.ts.map +1 -1
  226. package/dist/fields/Select/index.js +2 -2
  227. package/dist/fields/Select/index.js.map +1 -1
  228. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  229. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  230. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  231. package/dist/fields/Tabs/index.d.ts +1 -9
  232. package/dist/fields/Tabs/index.d.ts.map +1 -1
  233. package/dist/fields/Tabs/index.js +24 -24
  234. package/dist/fields/Tabs/index.js.map +1 -1
  235. package/dist/fields/Text/index.d.ts +3 -2
  236. package/dist/fields/Text/index.d.ts.map +1 -1
  237. package/dist/fields/Text/index.js +2 -2
  238. package/dist/fields/Text/index.js.map +1 -1
  239. package/dist/fields/Text/types.d.ts +1 -15
  240. package/dist/fields/Text/types.d.ts.map +1 -1
  241. package/dist/fields/Text/types.js.map +1 -1
  242. package/dist/fields/Textarea/index.d.ts +3 -2
  243. package/dist/fields/Textarea/index.d.ts.map +1 -1
  244. package/dist/fields/Textarea/index.js +2 -2
  245. package/dist/fields/Textarea/index.js.map +1 -1
  246. package/dist/fields/Textarea/types.d.ts +1 -11
  247. package/dist/fields/Textarea/types.d.ts.map +1 -1
  248. package/dist/fields/Textarea/types.js.map +1 -1
  249. package/dist/fields/Upload/Input.d.ts +5 -2
  250. package/dist/fields/Upload/Input.d.ts.map +1 -1
  251. package/dist/fields/Upload/Input.js +2 -2
  252. package/dist/fields/Upload/Input.js.map +1 -1
  253. package/dist/fields/Upload/index.d.ts +1 -1
  254. package/dist/fields/Upload/index.d.ts.map +1 -1
  255. package/dist/fields/Upload/index.js +20 -5
  256. package/dist/fields/Upload/index.js.map +1 -1
  257. package/dist/fields/shared/index.d.ts +1 -25
  258. package/dist/fields/shared/index.d.ts.map +1 -1
  259. package/dist/fields/shared/index.js.map +1 -1
  260. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  261. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  262. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  263. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  264. package/dist/forms/Form/fieldReducer.js +11 -38
  265. package/dist/forms/Form/fieldReducer.js.map +1 -1
  266. package/dist/forms/Form/index.d.ts.map +1 -1
  267. package/dist/forms/Form/index.js +5 -15
  268. package/dist/forms/Form/index.js.map +1 -1
  269. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  270. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  271. package/dist/forms/Form/rowHelpers.js +24 -0
  272. package/dist/forms/Form/rowHelpers.js.map +1 -0
  273. package/dist/forms/Form/types.d.ts +3 -10
  274. package/dist/forms/Form/types.d.ts.map +1 -1
  275. package/dist/forms/Form/types.js.map +1 -1
  276. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  277. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  278. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  279. package/dist/forms/RenderFields/types.d.ts +1 -2
  280. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  281. package/dist/forms/RenderFields/types.js.map +1 -1
  282. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  283. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  284. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  285. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  286. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  287. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  288. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  289. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +39 -18
  290. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  291. package/dist/graphics/Account/index.d.ts.map +1 -1
  292. package/dist/graphics/Account/index.js +5 -1
  293. package/dist/graphics/Account/index.js.map +1 -1
  294. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  295. package/dist/hooks/usePayloadAPI.js +5 -1
  296. package/dist/hooks/usePayloadAPI.js.map +1 -1
  297. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  298. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  299. package/dist/hooks/useUseAsTitle.js.map +1 -1
  300. package/dist/providers/Auth/index.d.ts +1 -1
  301. package/dist/providers/Auth/index.d.ts.map +1 -1
  302. package/dist/providers/Auth/index.js +47 -76
  303. package/dist/providers/Auth/index.js.map +1 -1
  304. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +1 -2
  305. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  306. package/dist/providers/ComponentMap/buildComponentMap/fields.js +128 -95
  307. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  308. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -55
  309. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  310. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  311. package/dist/providers/ComponentMap/index.d.ts +2 -1
  312. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  313. package/dist/providers/ComponentMap/index.js.map +1 -1
  314. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  315. package/dist/providers/DocumentInfo/index.js +58 -16
  316. package/dist/providers/DocumentInfo/index.js.map +1 -1
  317. package/dist/providers/ListQuery/index.d.ts +16 -9
  318. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  319. package/dist/providers/ListQuery/index.js +8 -6
  320. package/dist/providers/ListQuery/index.js.map +1 -1
  321. package/dist/providers/UploadEdits/index.d.ts +12 -0
  322. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  323. package/dist/providers/UploadEdits/index.js +30 -0
  324. package/dist/providers/UploadEdits/index.js.map +1 -0
  325. package/dist/styles.css +1 -1
  326. package/dist/utilities/buildFormState.d.ts.map +1 -1
  327. package/dist/utilities/buildFormState.js +3 -2
  328. package/dist/utilities/buildFormState.js.map +1 -1
  329. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  330. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  331. package/dist/utilities/flattenFieldMap.js.map +1 -1
  332. package/dist/utilities/formatAdminURL.d.ts +8 -0
  333. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  334. package/dist/utilities/formatAdminURL.js +15 -0
  335. package/dist/utilities/formatAdminURL.js.map +1 -0
  336. package/package.json +4 -4
  337. package/dist/fields/Checkbox/types.d.ts +0 -12
  338. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  339. package/dist/fields/Checkbox/types.js +0 -3
  340. package/dist/fields/Checkbox/types.js.map +0 -1
  341. package/dist/fields/Row/types.d.ts +0 -12
  342. package/dist/fields/Row/types.d.ts.map +0 -1
  343. package/dist/fields/Row/types.js +0 -3
  344. package/dist/fields/Row/types.js.map +0 -1
  345. package/dist/fields/Upload/types.d.ts +0 -10
  346. package/dist/fields/Upload/types.d.ts.map +0 -1
  347. package/dist/fields/Upload/types.js +0 -3
  348. package/dist/fields/Upload/types.js.map +0 -1
  349. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  350. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  351. package/dist/providers/FormQueryParams/index.js +0 -53
  352. package/dist/providers/FormQueryParams/index.js.map +0 -1
  353. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  354. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  355. package/dist/providers/FormQueryParams/types.js +0 -3
  356. package/dist/providers/FormQueryParams/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, MeOperationResult, Permissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { useConfig } from '../Config/index.js'\nimport { useSearchParams } from '../SearchParams/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => void\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\nexport const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const { searchParams } = useSearchParams()\n const [user, setUser] = useState<ClientUser | null>()\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const [strategy, setStrategy] = useState<string>()\n const pathname = usePathname()\n const router = useRouter()\n // const { code } = useLocale()\n const code = 'en' // TODO: re-enable i18n asap\n\n const config = useConfig()\n\n const {\n admin: {\n autoLogin,\n routes: { inactivity: logoutInactivityRoute },\n routes: { login: loginRoute },\n user: userSlug,\n },\n routes: { admin, api },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>()\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(admin)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(`${admin}${logoutInactivityRoute}${redirectParam}`)\n } else {\n router.replace(`${admin}${logoutInactivityRoute}`)\n }\n closeAllModals()\n }, [router, admin, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n setStrategy(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n if (json.strategy) setStrategy(json.strategy)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(async () => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n api,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${api}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, api, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${api}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, api, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(async () => {\n const params = {\n locale: code,\n }\n\n try {\n const request = await requests.get(`${serverURL}${api}/access?${qs.stringify(params)}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n }, [serverURL, api, i18n, code])\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${api}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else if (autoLogin && autoLogin.prefillOnly !== true) {\n // auto log-in with the provided autoLogin credentials. This is used in dev mode\n // so you don't have to log in over and over again\n const autoLoginResult = await requests.post(\n `${serverURL}${api}/${userSlug}${loginRoute}`,\n {\n body: JSON.stringify({\n email: autoLogin.email,\n password: autoLogin.password,\n username: autoLogin.username,\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n if (autoLoginResult.status === 200) {\n const autoLoginJson = await autoLoginResult.json()\n setUser(autoLoginJson.user)\n if (autoLoginJson?.token) {\n setTokenAndExpiration(autoLoginJson)\n }\n router.replace(\n typeof searchParams['redirect'] === 'string' ? searchParams['redirect'] : admin,\n )\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [\n serverURL,\n api,\n userSlug,\n i18n.language,\n autoLogin,\n setTokenAndExpiration,\n router,\n searchParams,\n admin,\n revokeTokenAndExpire,\n strategy,\n tokenExpiration,\n loginRoute,\n ])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","useConfig","useSearchParams","Context","maxTimeoutTime","AuthProvider","children","searchParams","user","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","strategy","setStrategy","pathname","router","code","config","admin","autoLogin","routes","inactivity","logoutInactivityRoute","login","loginRoute","userSlug","api","serverURL","permissions","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","params","locale","get","stringify","Error","fetchFullUser","prefillOnly","autoLoginResult","body","JSON","email","password","username","autoLoginJson","reminder","max","min","clearTimeout","forceLogOut","Provider","value","useAuth"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/providers/Auth/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientUser, MeOperationResult, Permissions } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { usePathname, useRouter } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\nimport React, { createContext, useCallback, useContext, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { stayLoggedInModalSlug } from '../../elements/StayLoggedIn/index.js'\nimport { useDebounce } from '../../hooks/useDebounce.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { useConfig } from '../Config/index.js'\n\nexport type AuthContext<T = ClientUser> = {\n fetchFullUser: () => Promise<void>\n logOut: () => Promise<void>\n permissions?: Permissions\n refreshCookie: (forceRefresh?: boolean) => void\n refreshCookieAsync: () => Promise<ClientUser>\n refreshPermissions: () => Promise<void>\n setPermissions: (permissions: Permissions) => void\n setUser: (user: T) => void\n strategy?: string\n token?: string\n tokenExpiration?: number\n user?: T | null\n}\n\nconst Context = createContext({} as AuthContext)\n\nconst maxTimeoutTime = 2147483647\n\nexport const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [user, setUser] = useState<ClientUser | null>()\n const [tokenInMemory, setTokenInMemory] = useState<string>()\n const [tokenExpiration, setTokenExpiration] = useState<number>()\n const pathname = usePathname()\n const router = useRouter()\n\n const config = useConfig()\n\n const {\n admin: {\n routes: { inactivity: logoutInactivityRoute },\n user: userSlug,\n },\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n } = config\n\n const [permissions, setPermissions] = useState<Permissions>()\n\n const { i18n } = useTranslation()\n const { closeAllModals, openModal } = useModal()\n const [lastLocationChange, setLastLocationChange] = useState(0)\n const debouncedLocationChange = useDebounce(lastLocationChange, 10000)\n\n const id = user?.id\n\n const redirectToInactivityRoute = useCallback(() => {\n if (window.location.pathname.startsWith(adminRoute)) {\n const redirectParam = `?redirect=${encodeURIComponent(window.location.pathname)}`\n router.replace(\n formatAdminURL({\n adminRoute,\n path: `${logoutInactivityRoute}${redirectParam}`,\n }),\n )\n } else {\n router.replace(\n formatAdminURL({\n adminRoute,\n path: logoutInactivityRoute,\n }),\n )\n }\n closeAllModals()\n }, [router, adminRoute, logoutInactivityRoute, closeAllModals])\n\n const revokeTokenAndExpire = useCallback(() => {\n setTokenInMemory(undefined)\n setTokenExpiration(undefined)\n }, [])\n\n const setTokenAndExpiration = useCallback(\n (json) => {\n const token = json?.token || json?.refreshedToken\n if (token && json?.exp) {\n setTokenInMemory(token)\n setTokenExpiration(json.exp)\n } else {\n revokeTokenAndExpire()\n }\n },\n [revokeTokenAndExpire],\n )\n\n const refreshCookie = useCallback(\n (forceRefresh?: boolean) => {\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = (typeof tokenExpiration === 'number' ? tokenExpiration : 0) - now\n\n if (forceRefresh || (tokenExpiration && remainingTime < 120)) {\n setTimeout(() => {\n async function refresh() {\n try {\n const request = await requests.post(\n `${serverURL}${apiRoute}/${userSlug}/refresh-token`,\n {\n headers: {\n 'Accept-Language': i18n.language,\n },\n },\n )\n\n if (request.status === 200) {\n const json = await request.json()\n setUser(json.user)\n\n setTokenAndExpiration(json)\n } else {\n setUser(null)\n redirectToInactivityRoute()\n }\n } catch (e) {\n toast.error(e.message)\n }\n }\n\n void refresh()\n }, 1000)\n }\n },\n [\n tokenExpiration,\n serverURL,\n apiRoute,\n userSlug,\n i18n,\n redirectToInactivityRoute,\n setTokenAndExpiration,\n ],\n )\n\n const refreshCookieAsync = useCallback(\n async (skipSetUser?: boolean): Promise<ClientUser> => {\n try {\n const request = await requests.post(`${serverURL}${apiRoute}/${userSlug}/refresh-token`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json = await request.json()\n if (!skipSetUser) {\n setUser(json.user)\n setTokenAndExpiration(json)\n }\n return json.user\n }\n\n setUser(null)\n redirectToInactivityRoute()\n return null\n } catch (e) {\n toast.error(`Refreshing token failed: ${e.message}`)\n return null\n }\n },\n [serverURL, apiRoute, userSlug, i18n, redirectToInactivityRoute, setTokenAndExpiration],\n )\n\n const logOut = useCallback(async () => {\n setUser(null)\n revokeTokenAndExpire()\n try {\n await requests.post(`${serverURL}${apiRoute}/${userSlug}/logout`)\n } catch (e) {\n toast.error(`Logging out failed: ${e.message}`)\n }\n }, [serverURL, apiRoute, userSlug, revokeTokenAndExpire])\n\n const refreshPermissions = useCallback(\n async ({ locale }: { locale?: string } = {}) => {\n const params = qs.stringify(\n {\n locale,\n },\n {\n addQueryPrefix: true,\n },\n )\n\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/access${params}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: Permissions = await request.json()\n setPermissions(json)\n } else {\n throw new Error(`Fetching permissions failed with status code ${request.status}`)\n }\n } catch (e) {\n toast.error(`Refreshing permissions failed: ${e.message}`)\n }\n },\n [serverURL, apiRoute, i18n],\n )\n\n const fetchFullUser = React.useCallback(async () => {\n try {\n const request = await requests.get(`${serverURL}${apiRoute}/${userSlug}/me`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (request.status === 200) {\n const json: MeOperationResult = await request.json()\n\n if (json?.user) {\n setUser(json.user)\n\n if (json?.token) {\n setTokenAndExpiration(json)\n }\n } else {\n setUser(null)\n revokeTokenAndExpire()\n }\n }\n } catch (e) {\n toast.error(`Fetching user failed: ${e.message}`)\n }\n }, [serverURL, apiRoute, userSlug, i18n.language, setTokenAndExpiration, revokeTokenAndExpire])\n\n // On mount, get user and set\n useEffect(() => {\n void fetchFullUser()\n }, [fetchFullUser])\n\n // When location changes, refresh cookie\n useEffect(() => {\n if (id) {\n refreshCookie()\n }\n }, [debouncedLocationChange, refreshCookie, id])\n\n useEffect(() => {\n setLastLocationChange(Date.now())\n }, [pathname])\n\n useEffect(() => {\n let reminder: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n reminder = setTimeout(\n () => {\n openModal(stayLoggedInModalSlug)\n },\n Math.max(Math.min((remainingTime - 60) * 1000, maxTimeoutTime)),\n )\n }\n\n return () => {\n if (reminder) clearTimeout(reminder)\n }\n }, [tokenExpiration, openModal])\n\n useEffect(() => {\n let forceLogOut: ReturnType<typeof setTimeout>\n const now = Math.round(new Date().getTime() / 1000)\n const remainingTime = typeof tokenExpiration === 'number' ? tokenExpiration - now : 0\n\n if (remainingTime > 0) {\n forceLogOut = setTimeout(\n () => {\n setUser(null)\n revokeTokenAndExpire()\n redirectToInactivityRoute()\n },\n Math.max(Math.min(remainingTime * 1000, maxTimeoutTime), 0),\n )\n }\n\n return () => {\n if (forceLogOut) clearTimeout(forceLogOut)\n }\n }, [tokenExpiration, closeAllModals, i18n, redirectToInactivityRoute, revokeTokenAndExpire])\n\n return (\n <Context.Provider\n value={{\n fetchFullUser,\n logOut,\n permissions,\n refreshCookie,\n refreshCookieAsync,\n refreshPermissions,\n setPermissions,\n setUser,\n token: tokenInMemory,\n user,\n }}\n >\n {children}\n </Context.Provider>\n )\n}\n\nexport const useAuth = <T = ClientUser,>(): AuthContext<T> => useContext(Context) as AuthContext<T>\n"],"names":["useModal","usePathname","useRouter","qs","React","createContext","useCallback","useContext","useEffect","useState","toast","stayLoggedInModalSlug","useDebounce","useTranslation","requests","formatAdminURL","useConfig","Context","maxTimeoutTime","AuthProvider","children","user","setUser","tokenInMemory","setTokenInMemory","tokenExpiration","setTokenExpiration","pathname","router","config","admin","routes","inactivity","logoutInactivityRoute","userSlug","adminRoute","api","apiRoute","serverURL","permissions","setPermissions","i18n","closeAllModals","openModal","lastLocationChange","setLastLocationChange","debouncedLocationChange","id","redirectToInactivityRoute","window","location","startsWith","redirectParam","encodeURIComponent","replace","path","revokeTokenAndExpire","undefined","setTokenAndExpiration","json","token","refreshedToken","exp","refreshCookie","forceRefresh","now","Math","round","Date","getTime","remainingTime","setTimeout","refresh","request","post","headers","language","status","e","error","message","refreshCookieAsync","skipSetUser","logOut","refreshPermissions","locale","params","stringify","addQueryPrefix","get","Error","fetchFullUser","reminder","max","min","clearTimeout","forceLogOut","Provider","value","useAuth"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import type { I18nClient } from '@payloadcms/translations';
2
- import type { Field, FieldWithPath, SanitizedConfig } from 'payload';
2
+ import type { Field, FieldMap, FieldWithPath, SanitizedConfig } from 'payload';
3
3
  import type { WithServerSidePropsPrePopulated } from './index.js';
4
- import type { FieldMap } from './types.js';
5
4
  export declare const mapFields: (args: {
6
5
  WithServerSideProps: WithServerSidePropsPrePopulated;
7
6
  config: SanitizedConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAGV,KAAK,EAEL,aAAa,EAGb,eAAe,EAChB,MAAM,SAAS,CAAA;AA2BhB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;AAkBnB,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,+BAA+B,CAAA;IACpD,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAG,QA+uBH,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAWV,KAAK,EAGL,QAAQ,EACR,aAAa,EAeb,eAAe,EAMhB,MAAM,SAAS,CAAA;AAMhB,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAA;AA8BjE,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,+BAA+B,CAAA;IACpD,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,KAAG,QAoxBH,CAAA"}
@@ -1,11 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { MissingEditorProp } from 'payload';
3
- import { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared';
3
+ import { deepCopyObject, fieldAffectsData, fieldIsPresentationalOnly } from 'payload/shared';
4
4
  import React, { Fragment } from 'react';
5
5
  // eslint-disable-next-line payload/no-imports-from-exports-dir
6
- import { FieldDescription } from '../../../exports/client/index.js';
7
- // eslint-disable-next-line payload/no-imports-from-exports-dir
8
- import { HiddenField } from '../../../exports/client/index.js';
6
+ import { FieldDescription, HiddenField } from '../../../exports/client/index.js';
9
7
  function generateFieldPath(parentPath, name) {
10
8
  let tabPath = parentPath || '';
11
9
  if (parentPath && name) {
@@ -15,6 +13,15 @@ function generateFieldPath(parentPath, name) {
15
13
  }
16
14
  return tabPath;
17
15
  }
16
+ function prepareCustomComponentProps(props) {
17
+ return deepCopyObject({
18
+ ...props,
19
+ fieldMap: undefined,
20
+ richTextComponentMap: undefined,
21
+ rows: undefined,
22
+ tabs: undefined
23
+ });
24
+ }
18
25
  export const mapFields = (args)=>{
19
26
  const { WithServerSideProps, config, disableAddingID, fieldSchema, filter, i18n, i18n: { t }, parentPath, readOnly: readOnlyOverride } = args;
20
27
  const result = fieldSchema.reduce((acc, field)=>{
@@ -51,64 +58,17 @@ export const mapFields = (args)=>{
51
58
  });
52
59
  }
53
60
  }
54
- const labelProps = {
55
- label,
56
- required: 'required' in field ? field.required : undefined,
57
- schemaPath: path
58
- };
59
- const CustomLabelComponent = 'admin' in field && field.admin?.components && 'Label' in field.admin.components && field.admin.components?.Label || undefined;
60
- // If we return undefined here (so if no CUSTOM label component is set), the field client component is responsible for falling back to the default label
61
- const CustomLabel = CustomLabelComponent !== undefined ? /*#__PURE__*/ _jsx(WithServerSideProps, {
62
- Component: CustomLabelComponent,
63
- ...labelProps || {}
64
- }) : undefined;
65
- let description = undefined;
66
- if (field.admin && 'description' in field.admin) {
67
- if (typeof field.admin?.description === 'string' || typeof field.admin?.description === 'object') {
68
- description = field.admin.description;
69
- } else if (typeof field.admin?.description === 'function') {
70
- description = field.admin?.description({
71
- t
72
- });
73
- }
74
- }
75
- const descriptionProps = {
76
- description
77
- };
78
- let CustomDescriptionComponent = undefined;
79
- if (field.admin?.components && 'Description' in field.admin.components && field.admin.components?.Description) {
80
- CustomDescriptionComponent = field.admin.components.Description;
81
- } else if (description) {
82
- CustomDescriptionComponent = FieldDescription;
83
- }
84
- const CustomDescription = CustomDescriptionComponent !== undefined ? /*#__PURE__*/ _jsx(WithServerSideProps, {
85
- Component: CustomDescriptionComponent,
86
- ...descriptionProps || {}
87
- }) : undefined;
88
- const errorProps = {
89
- path
90
- };
91
- const CustomErrorComponent = 'admin' in field && field.admin?.components && 'Error' in field.admin.components && field.admin?.components?.Error || undefined;
92
- const CustomError = CustomErrorComponent !== undefined ? /*#__PURE__*/ _jsx(WithServerSideProps, {
93
- Component: CustomErrorComponent,
94
- ...errorProps || {}
95
- }) : undefined;
96
61
  // These fields are shared across all field types even if they are not used in the default field, as the custom field component can use them
97
62
  const baseFieldProps = {
98
63
  AfterInput,
99
64
  BeforeInput,
100
- CustomDescription,
101
- CustomError,
102
- CustomLabel,
103
65
  custom: 'admin' in field && 'custom' in field.admin ? field.admin?.custom : undefined,
104
- descriptionProps,
105
66
  disabled: 'admin' in field && 'disabled' in field.admin ? field.admin?.disabled : false,
106
- errorProps,
107
- label: labelProps?.label,
67
+ label,
108
68
  path,
109
69
  required: 'required' in field ? field.required : undefined
110
70
  };
111
- let fieldComponentProps;
71
+ let fieldComponentPropsBase;
112
72
  let fieldOptions;
113
73
  if ('options' in field) {
114
74
  fieldOptions = field.options.map((option)=>{
@@ -127,7 +87,7 @@ export const mapFields = (args)=>{
127
87
  name: 'name' in field ? field.name : undefined,
128
88
  fieldType: field.type,
129
89
  isFieldAffectingData,
130
- label: labelProps?.label || undefined,
90
+ label,
131
91
  labels: 'labels' in field ? field.labels : undefined,
132
92
  options: 'options' in field ? fieldOptions : undefined,
133
93
  relationTo: 'relationTo' in field ? field.relationTo : undefined,
@@ -136,18 +96,9 @@ export const mapFields = (args)=>{
136
96
  switch(field.type){
137
97
  case 'array':
138
98
  {
139
- let CustomRowLabel;
140
- if ('admin' in field && field.admin.components && 'RowLabel' in field.admin.components && field.admin.components.RowLabel) {
141
- const CustomRowLabelComponent = field.admin.components.RowLabel;
142
- CustomRowLabel = /*#__PURE__*/ _jsx(WithServerSideProps, {
143
- Component: CustomRowLabelComponent,
144
- ...labelProps || {}
145
- });
146
- }
147
99
  const arrayFieldProps = {
148
100
  ...baseFieldProps,
149
101
  name: field.name,
150
- CustomRowLabel,
151
102
  className: field.admin?.className,
152
103
  disabled: field.admin?.disabled,
153
104
  fieldMap: mapFields({
@@ -168,7 +119,7 @@ export const mapFields = (args)=>{
168
119
  style: field.admin?.style,
169
120
  width: field.admin?.width
170
121
  };
171
- fieldComponentProps = arrayFieldProps;
122
+ fieldComponentPropsBase = arrayFieldProps;
172
123
  break;
173
124
  }
174
125
  case 'blocks':
@@ -185,6 +136,7 @@ export const mapFields = (args)=>{
185
136
  });
186
137
  const reducedBlock = {
187
138
  slug: block.slug,
139
+ LabelComponent: block.admin?.components?.Label,
188
140
  custom: block.admin?.custom,
189
141
  fieldMap: blockFieldMap,
190
142
  imageAltText: block.imageAltText,
@@ -208,7 +160,7 @@ export const mapFields = (args)=>{
208
160
  style: field.admin?.style,
209
161
  width: field.admin?.width
210
162
  };
211
- fieldComponentProps = blocksField;
163
+ fieldComponentPropsBase = blocksField;
212
164
  cellComponentProps.blocks = field.blocks.map((b)=>({
213
165
  slug: b.slug,
214
166
  labels: b.labels
@@ -227,7 +179,7 @@ export const mapFields = (args)=>{
227
179
  style: field.admin?.style,
228
180
  width: field.admin?.width
229
181
  };
230
- fieldComponentProps = checkboxField;
182
+ fieldComponentPropsBase = checkboxField;
231
183
  break;
232
184
  }
233
185
  case 'code':
@@ -244,22 +196,13 @@ export const mapFields = (args)=>{
244
196
  style: field.admin?.style,
245
197
  width: field.admin?.width
246
198
  };
247
- fieldComponentProps = codeField;
199
+ fieldComponentPropsBase = codeField;
248
200
  break;
249
201
  }
250
202
  case 'collapsible':
251
203
  {
252
- let CustomCollapsibleLabel;
253
- if (field?.admin?.components && 'RowLabel' in field.admin.components && field?.admin?.components?.RowLabel) {
254
- const CustomCollapsibleLabelComponent = field.admin.components.RowLabel;
255
- CustomCollapsibleLabel = /*#__PURE__*/ _jsx(WithServerSideProps, {
256
- Component: CustomCollapsibleLabelComponent,
257
- ...labelProps || {}
258
- });
259
- }
260
204
  const collapsibleField = {
261
205
  ...baseFieldProps,
262
- CustomLabel: CustomCollapsibleLabel,
263
206
  className: field.admin?.className,
264
207
  disabled: field.admin?.disabled,
265
208
  fieldMap: mapFields({
@@ -278,7 +221,7 @@ export const mapFields = (args)=>{
278
221
  style: field.admin?.style,
279
222
  width: field.admin?.width
280
223
  };
281
- fieldComponentProps = collapsibleField // TODO: dunno why this is needed
224
+ fieldComponentPropsBase = collapsibleField // TODO: dunno why this is needed
282
225
  ;
283
226
  break;
284
227
  }
@@ -296,7 +239,7 @@ export const mapFields = (args)=>{
296
239
  style: field.admin?.style,
297
240
  width: field.admin?.width
298
241
  };
299
- fieldComponentProps = dateField;
242
+ fieldComponentPropsBase = dateField;
300
243
  cellComponentProps.dateDisplayFormat = field.admin?.date?.displayFormat;
301
244
  break;
302
245
  }
@@ -305,6 +248,7 @@ export const mapFields = (args)=>{
305
248
  const emailField = {
306
249
  ...baseFieldProps,
307
250
  name: field.name,
251
+ autoComplete: field.admin?.autoComplete,
308
252
  className: field.admin?.className,
309
253
  disabled: field.admin?.disabled,
310
254
  placeholder: field.admin?.placeholder,
@@ -313,7 +257,7 @@ export const mapFields = (args)=>{
313
257
  style: field.admin?.style,
314
258
  width: field.admin?.width
315
259
  };
316
- fieldComponentProps = emailField;
260
+ fieldComponentPropsBase = emailField;
317
261
  break;
318
262
  }
319
263
  case 'group':
@@ -338,7 +282,7 @@ export const mapFields = (args)=>{
338
282
  style: field.admin?.style,
339
283
  width: field.admin?.width
340
284
  };
341
- fieldComponentProps = groupField;
285
+ fieldComponentPropsBase = groupField;
342
286
  break;
343
287
  }
344
288
  case 'json':
@@ -355,7 +299,7 @@ export const mapFields = (args)=>{
355
299
  style: field.admin?.style,
356
300
  width: field.admin?.width
357
301
  };
358
- fieldComponentProps = jsonField;
302
+ fieldComponentPropsBase = jsonField;
359
303
  break;
360
304
  }
361
305
  case 'number':
@@ -375,7 +319,7 @@ export const mapFields = (args)=>{
375
319
  style: field.admin?.style,
376
320
  width: field.admin?.width
377
321
  };
378
- fieldComponentProps = numberField;
322
+ fieldComponentPropsBase = numberField;
379
323
  break;
380
324
  }
381
325
  case 'point':
@@ -390,7 +334,7 @@ export const mapFields = (args)=>{
390
334
  style: field.admin?.style,
391
335
  width: field.admin?.width
392
336
  };
393
- fieldComponentProps = pointField;
337
+ fieldComponentPropsBase = pointField;
394
338
  break;
395
339
  }
396
340
  case 'relationship':
@@ -411,7 +355,7 @@ export const mapFields = (args)=>{
411
355
  width: field.admin?.width
412
356
  };
413
357
  cellComponentProps.relationTo = field.relationTo;
414
- fieldComponentProps = relationshipField;
358
+ fieldComponentPropsBase = relationshipField;
415
359
  break;
416
360
  }
417
361
  case 'radio':
@@ -429,7 +373,7 @@ export const mapFields = (args)=>{
429
373
  width: field.admin?.width
430
374
  };
431
375
  cellComponentProps.options = fieldOptions;
432
- fieldComponentProps = radioField;
376
+ fieldComponentPropsBase = radioField;
433
377
  break;
434
378
  }
435
379
  case 'richText':
@@ -469,7 +413,7 @@ export const mapFields = (args)=>{
469
413
  if (RichTextCellComponent) {
470
414
  CustomCellComponent = RichTextCellComponent;
471
415
  }
472
- fieldComponentProps = richTextField;
416
+ fieldComponentPropsBase = richTextField;
473
417
  break;
474
418
  }
475
419
  case 'row':
@@ -493,7 +437,7 @@ export const mapFields = (args)=>{
493
437
  style: field.admin?.style,
494
438
  width: field.admin?.width
495
439
  };
496
- fieldComponentProps = rowField;
440
+ fieldComponentPropsBase = rowField;
497
441
  break;
498
442
  }
499
443
  case 'tabs':
@@ -528,7 +472,7 @@ export const mapFields = (args)=>{
528
472
  tabs,
529
473
  width: field.admin?.width
530
474
  };
531
- fieldComponentProps = tabsField;
475
+ fieldComponentPropsBase = tabsField;
532
476
  break;
533
477
  }
534
478
  case 'text':
@@ -547,7 +491,7 @@ export const mapFields = (args)=>{
547
491
  style: field.admin?.style,
548
492
  width: field.admin?.width
549
493
  };
550
- fieldComponentProps = textField;
494
+ fieldComponentPropsBase = textField;
551
495
  break;
552
496
  }
553
497
  case 'textarea':
@@ -566,12 +510,12 @@ export const mapFields = (args)=>{
566
510
  style: field.admin?.style,
567
511
  width: field.admin?.width
568
512
  };
569
- fieldComponentProps = textareaField;
513
+ fieldComponentPropsBase = textareaField;
570
514
  break;
571
515
  }
572
516
  case 'ui':
573
517
  {
574
- fieldComponentProps = baseFieldProps;
518
+ fieldComponentPropsBase = baseFieldProps;
575
519
  break;
576
520
  }
577
521
  case 'upload':
@@ -589,7 +533,7 @@ export const mapFields = (args)=>{
589
533
  width: field.admin?.width
590
534
  };
591
535
  cellComponentProps.relationTo = field.relationTo;
592
- fieldComponentProps = uploadField;
536
+ fieldComponentPropsBase = uploadField;
593
537
  break;
594
538
  }
595
539
  case 'select':
@@ -608,7 +552,7 @@ export const mapFields = (args)=>{
608
552
  width: field.admin?.width
609
553
  };
610
554
  cellComponentProps.options = fieldOptions;
611
- fieldComponentProps = selectField;
555
+ fieldComponentPropsBase = selectField;
612
556
  break;
613
557
  }
614
558
  default:
@@ -616,6 +560,94 @@ export const mapFields = (args)=>{
616
560
  break;
617
561
  }
618
562
  }
563
+ const labelProps = prepareCustomComponentProps({
564
+ ...fieldComponentPropsBase,
565
+ type: undefined,
566
+ schemaPath: path
567
+ });
568
+ const CustomLabelComponent = 'admin' in field && field.admin?.components && 'Label' in field.admin.components && field.admin.components?.Label || undefined;
569
+ // If we return undefined here (so if no CUSTOM label component is set),
570
+ // the field client component is responsible for falling back to the default label
571
+ let CustomLabel = CustomLabelComponent !== undefined ? /*#__PURE__*/ _jsx(WithServerSideProps, {
572
+ Component: CustomLabelComponent,
573
+ ...labelProps || {}
574
+ }) : undefined;
575
+ switch(field.type){
576
+ case 'array':
577
+ {
578
+ let CustomRowLabel;
579
+ if ('admin' in field && field.admin.components && 'RowLabel' in field.admin.components && field.admin.components.RowLabel) {
580
+ const CustomRowLabelComponent = field.admin.components.RowLabel;
581
+ CustomRowLabel = /*#__PURE__*/ _jsx(WithServerSideProps, {
582
+ Component: CustomRowLabelComponent,
583
+ ...labelProps || {}
584
+ });
585
+ }
586
+ // @ts-expect-error
587
+ fieldComponentPropsBase.CustomRowLabel = CustomRowLabel;
588
+ break;
589
+ }
590
+ case 'collapsible':
591
+ {
592
+ let CustomCollapsibleLabel;
593
+ if (field?.admin?.components && 'RowLabel' in field.admin.components && field?.admin?.components?.RowLabel) {
594
+ const CustomCollapsibleLabelComponent = field.admin.components.RowLabel;
595
+ CustomCollapsibleLabel = /*#__PURE__*/ _jsx(WithServerSideProps, {
596
+ Component: CustomCollapsibleLabelComponent,
597
+ ...labelProps || {}
598
+ });
599
+ }
600
+ CustomLabel = CustomCollapsibleLabel;
601
+ break;
602
+ }
603
+ default:
604
+ break;
605
+ }
606
+ let description = undefined;
607
+ if (field.admin && 'description' in field.admin) {
608
+ if (typeof field.admin?.description === 'string' || typeof field.admin?.description === 'object') {
609
+ description = field.admin.description;
610
+ } else if (typeof field.admin?.description === 'function') {
611
+ description = field.admin?.description({
612
+ t
613
+ });
614
+ }
615
+ }
616
+ const descriptionProps = prepareCustomComponentProps({
617
+ ...fieldComponentPropsBase,
618
+ type: undefined,
619
+ description
620
+ });
621
+ let CustomDescriptionComponent = undefined;
622
+ if (field.admin?.components && 'Description' in field.admin.components && field.admin.components?.Description) {
623
+ CustomDescriptionComponent = field.admin.components.Description;
624
+ } else if (description) {
625
+ CustomDescriptionComponent = FieldDescription;
626
+ }
627
+ const CustomDescription = CustomDescriptionComponent !== undefined ? /*#__PURE__*/ _jsx(WithServerSideProps, {
628
+ Component: CustomDescriptionComponent,
629
+ ...descriptionProps || {}
630
+ }) : undefined;
631
+ const errorProps = prepareCustomComponentProps({
632
+ ...fieldComponentPropsBase,
633
+ type: undefined,
634
+ path
635
+ });
636
+ const CustomErrorComponent = 'admin' in field && field.admin?.components && 'Error' in field.admin.components && field.admin?.components?.Error || undefined;
637
+ const CustomError = CustomErrorComponent !== undefined ? /*#__PURE__*/ _jsx(WithServerSideProps, {
638
+ Component: CustomErrorComponent,
639
+ ...errorProps || {}
640
+ }) : undefined;
641
+ const fieldComponentProps = {
642
+ ...fieldComponentPropsBase,
643
+ type: undefined,
644
+ CustomDescription,
645
+ CustomError,
646
+ CustomLabel,
647
+ descriptionProps,
648
+ errorProps,
649
+ labelProps
650
+ };
619
651
  const reducedField = {
620
652
  name: 'name' in field ? field.name : undefined,
621
653
  type: field.type,
@@ -625,7 +657,7 @@ export const mapFields = (args)=>{
625
657
  }) : undefined,
626
658
  CustomField: CustomFieldComponent ? /*#__PURE__*/ _jsx(WithServerSideProps, {
627
659
  Component: CustomFieldComponent,
628
- ...fieldComponentProps
660
+ ...fieldComponentPropsBase
629
661
  }) : undefined,
630
662
  cellComponentProps,
631
663
  custom: field?.admin?.custom,
@@ -647,7 +679,7 @@ export const mapFields = (args)=>{
647
679
  }, []);
648
680
  const hasID = result.findIndex((f)=>'name' in f && f.isFieldAffectingData && f.name === 'id') > -1;
649
681
  if (!disableAddingID && !hasID) {
650
- // TODO: For all fields (not just this one) we need to add the name to both .fieldComponentProps.name AND .name. This can probably be improved
682
+ // TODO: For all fields (not just this one) we need to add the name to both .fieldComponentPropsBase.name AND .name. This can probably be improved
651
683
  result.push({
652
684
  name: 'id',
653
685
  type: 'text',
@@ -659,6 +691,7 @@ export const mapFields = (args)=>{
659
691
  disableBulkEdit: true,
660
692
  fieldComponentProps: {
661
693
  name: 'id',
694
+ type: undefined,
662
695
  label: 'ID'
663
696
  },
664
697
  fieldIsPresentational: false,