@payloadcms/ui 3.0.0-alpha.49 → 3.0.0-alpha.50

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 (442) hide show
  1. package/dist/elements/Autosave/index.d.ts.map +1 -1
  2. package/dist/elements/Autosave/index.js +2 -43
  3. package/dist/elements/Autosave/index.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +2 -5
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/DeleteDocument/index.js +2 -2
  8. package/dist/elements/DeleteDocument/index.js.map +1 -1
  9. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  10. package/dist/elements/DocumentControls/index.js +13 -4
  11. package/dist/elements/DocumentControls/index.js.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.js +31 -112
  14. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  15. package/dist/elements/DocumentDrawer/types.d.ts +0 -2
  16. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  17. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  18. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +8 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  23. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +1 -0
  24. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  25. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/index.js +4 -0
  27. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  28. package/dist/elements/EditMany/index.d.ts.map +1 -1
  29. package/dist/elements/EditMany/index.js +3 -25
  30. package/dist/elements/EditMany/index.js.map +1 -1
  31. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  32. package/dist/elements/FieldSelect/index.js +39 -12
  33. package/dist/elements/FieldSelect/index.js.map +1 -1
  34. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  35. package/dist/elements/FileDetails/index.js +2 -1
  36. package/dist/elements/FileDetails/index.js.map +1 -1
  37. package/dist/elements/ListControls/index.d.ts +0 -1
  38. package/dist/elements/ListControls/index.d.ts.map +1 -1
  39. package/dist/elements/ListControls/index.js +7 -6
  40. package/dist/elements/ListControls/index.js.map +1 -1
  41. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  42. package/dist/elements/ListDrawer/DrawerContent.js +5 -9
  43. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  44. package/dist/elements/Nav/index.client.d.ts +3 -0
  45. package/dist/elements/Nav/index.client.d.ts.map +1 -0
  46. package/dist/elements/Nav/index.client.js +77 -0
  47. package/dist/elements/Nav/index.client.js.map +1 -0
  48. package/dist/elements/Nav/index.d.ts +3 -7
  49. package/dist/elements/Nav/index.d.ts.map +1 -1
  50. package/dist/elements/Nav/index.js +4 -66
  51. package/dist/elements/Nav/index.js.map +1 -1
  52. package/dist/elements/PerPage/index.d.ts +1 -0
  53. package/dist/elements/PerPage/index.d.ts.map +1 -1
  54. package/dist/elements/PerPage/index.js +6 -4
  55. package/dist/elements/PerPage/index.js.map +1 -1
  56. package/dist/elements/PreviewButton/index.d.ts +4 -6
  57. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  58. package/dist/elements/PreviewButton/index.js +11 -65
  59. package/dist/elements/PreviewButton/index.js.map +1 -1
  60. package/dist/elements/PreviewButton/usePreviewURL.d.ts +9 -0
  61. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -0
  62. package/dist/elements/PreviewButton/usePreviewURL.js +57 -0
  63. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -0
  64. package/dist/elements/Publish/index.d.ts +4 -2
  65. package/dist/elements/Publish/index.d.ts.map +1 -1
  66. package/dist/elements/Publish/index.js +15 -25
  67. package/dist/elements/Publish/index.js.map +1 -1
  68. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  69. package/dist/elements/ReactSelect/MultiValue/index.js +2 -1
  70. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  71. package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -0
  72. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  73. package/dist/elements/ReactSelect/index.js +4 -1
  74. package/dist/elements/ReactSelect/index.js.map +1 -1
  75. package/dist/elements/ReactSelect/types.d.ts +2 -0
  76. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  77. package/dist/elements/ReactSelect/types.js.map +1 -1
  78. package/dist/elements/Save/index.d.ts +4 -2
  79. package/dist/elements/Save/index.d.ts.map +1 -1
  80. package/dist/elements/Save/index.js +7 -14
  81. package/dist/elements/Save/index.js.map +1 -1
  82. package/dist/elements/SaveDraft/index.d.ts +1 -2
  83. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  84. package/dist/elements/SaveDraft/index.js +33 -42
  85. package/dist/elements/SaveDraft/index.js.map +1 -1
  86. package/dist/elements/SortColumn/index.d.ts +3 -1
  87. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  88. package/dist/elements/SortColumn/index.js +5 -6
  89. package/dist/elements/SortColumn/index.js.map +1 -1
  90. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts +3 -3
  91. package/dist/elements/Table/DefaultCell/fields/Array/index.d.ts.map +1 -1
  92. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  93. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts +4 -4
  94. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  95. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  96. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts +2 -2
  97. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  98. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  99. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -2
  100. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  101. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  102. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts +2 -5
  103. package/dist/elements/Table/DefaultCell/fields/Date/index.d.ts.map +1 -1
  104. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  105. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -2
  106. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  107. package/dist/elements/Table/DefaultCell/fields/File/index.js +4 -3
  108. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  109. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts +2 -2
  110. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  111. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  112. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts +4 -4
  113. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  115. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts +3 -3
  116. package/dist/elements/Table/DefaultCell/fields/Select/index.d.ts.map +1 -1
  117. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  118. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts +2 -2
  119. package/dist/elements/Table/DefaultCell/fields/Textarea/index.d.ts.map +1 -1
  120. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  121. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -4
  122. package/dist/elements/Table/DefaultCell/index.d.ts +2 -2
  123. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  124. package/dist/elements/Table/DefaultCell/index.js +4 -2
  125. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  126. package/dist/elements/Table/TableCellProvider/index.d.ts +11 -11
  127. package/dist/elements/Table/TableCellProvider/index.d.ts.map +1 -1
  128. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  129. package/dist/elements/Table/index.d.ts +8 -4
  130. package/dist/elements/Table/index.d.ts.map +1 -1
  131. package/dist/elements/Table/index.js +1 -0
  132. package/dist/elements/Table/index.js.map +1 -1
  133. package/dist/elements/TableColumns/{buildColumns.d.ts → buildColumnState.d.ts} +8 -6
  134. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -0
  135. package/dist/elements/TableColumns/{buildColumns.js → buildColumnState.js} +37 -13
  136. package/dist/elements/TableColumns/buildColumnState.js.map +1 -0
  137. package/dist/elements/TableColumns/filterFields.d.ts +3 -0
  138. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -0
  139. package/dist/elements/TableColumns/filterFields.js +27 -0
  140. package/dist/elements/TableColumns/filterFields.js.map +1 -0
  141. package/dist/elements/TableColumns/getInitialColumns.d.ts +5 -0
  142. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -0
  143. package/dist/elements/TableColumns/getInitialColumns.js +48 -0
  144. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -0
  145. package/dist/elements/TableColumns/index.d.ts +2 -2
  146. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  147. package/dist/elements/TableColumns/index.js +11 -7
  148. package/dist/elements/TableColumns/index.js.map +1 -1
  149. package/dist/elements/Thumbnail/index.d.ts +6 -0
  150. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  151. package/dist/elements/Thumbnail/index.js +32 -16
  152. package/dist/elements/Thumbnail/index.js.map +1 -1
  153. package/dist/elements/ThumbnailCard/index.d.ts +1 -1
  154. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  155. package/dist/elements/ThumbnailCard/index.js +2 -6
  156. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  157. package/dist/elements/Tooltip/index.scss +4 -4
  158. package/dist/elements/Translation/index.d.ts.map +1 -1
  159. package/dist/elements/Translation/index.js +12 -9
  160. package/dist/elements/Translation/index.js.map +1 -1
  161. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  162. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -7
  163. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  164. package/dist/elements/WhereBuilder/Condition/index.d.ts +21 -4
  165. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  166. package/dist/elements/WhereBuilder/Condition/index.js +45 -61
  167. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  168. package/dist/elements/WhereBuilder/Condition/index.scss +6 -0
  169. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  170. package/dist/elements/WhereBuilder/index.js +134 -55
  171. package/dist/elements/WhereBuilder/index.js.map +1 -1
  172. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +3 -0
  173. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -0
  174. package/dist/elements/WhereBuilder/reduceFieldMap.js +36 -0
  175. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -0
  176. package/dist/elements/withMergedProps/index.js +1 -1
  177. package/dist/elements/withMergedProps/index.js.map +1 -1
  178. package/dist/fields/Array/ArrayRow.d.ts +2 -0
  179. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  180. package/dist/fields/Array/ArrayRow.js +3 -3
  181. package/dist/fields/Array/ArrayRow.js.map +1 -1
  182. package/dist/fields/Array/index.d.ts +1 -1
  183. package/dist/fields/Array/index.d.ts.map +1 -1
  184. package/dist/fields/Array/index.js +23 -8
  185. package/dist/fields/Array/index.js.map +1 -1
  186. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  187. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  188. package/dist/fields/Blocks/BlockRow.js +2 -3
  189. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  190. package/dist/fields/Blocks/index.d.ts +0 -1
  191. package/dist/fields/Blocks/index.d.ts.map +1 -1
  192. package/dist/fields/Blocks/index.js +17 -5
  193. package/dist/fields/Blocks/index.js.map +1 -1
  194. package/dist/fields/Checkbox/Input.d.ts +2 -1
  195. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  196. package/dist/fields/Checkbox/Input.js +3 -1
  197. package/dist/fields/Checkbox/Input.js.map +1 -1
  198. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  199. package/dist/fields/Checkbox/index.js +6 -2
  200. package/dist/fields/Checkbox/index.js.map +1 -1
  201. package/dist/fields/Code/index.d.ts.map +1 -1
  202. package/dist/fields/Code/index.js +8 -3
  203. package/dist/fields/Code/index.js.map +1 -1
  204. package/dist/fields/Collapsible/index.d.ts +2 -1
  205. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  206. package/dist/fields/Collapsible/index.js +4 -3
  207. package/dist/fields/Collapsible/index.js.map +1 -1
  208. package/dist/fields/DateTime/index.d.ts.map +1 -1
  209. package/dist/fields/DateTime/index.js +7 -2
  210. package/dist/fields/DateTime/index.js.map +1 -1
  211. package/dist/fields/Email/index.d.ts.map +1 -1
  212. package/dist/fields/Email/index.js +7 -2
  213. package/dist/fields/Email/index.js.map +1 -1
  214. package/dist/fields/Group/index.d.ts +0 -1
  215. package/dist/fields/Group/index.d.ts.map +1 -1
  216. package/dist/fields/Group/index.js +9 -8
  217. package/dist/fields/Group/index.js.map +1 -1
  218. package/dist/fields/HiddenInput/index.d.ts +1 -0
  219. package/dist/fields/HiddenInput/index.d.ts.map +1 -1
  220. package/dist/fields/HiddenInput/index.js +4 -2
  221. package/dist/fields/HiddenInput/index.js.map +1 -1
  222. package/dist/fields/JSON/index.d.ts.map +1 -1
  223. package/dist/fields/JSON/index.js +8 -4
  224. package/dist/fields/JSON/index.js.map +1 -1
  225. package/dist/fields/Number/index.d.ts.map +1 -1
  226. package/dist/fields/Number/index.js +7 -2
  227. package/dist/fields/Number/index.js.map +1 -1
  228. package/dist/fields/Password/index.d.ts +0 -1
  229. package/dist/fields/Password/index.d.ts.map +1 -1
  230. package/dist/fields/Password/index.js +5 -2
  231. package/dist/fields/Password/index.js.map +1 -1
  232. package/dist/fields/Point/index.d.ts.map +1 -1
  233. package/dist/fields/Point/index.js +15 -10
  234. package/dist/fields/Point/index.js.map +1 -1
  235. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  236. package/dist/fields/RadioGroup/index.js +7 -2
  237. package/dist/fields/RadioGroup/index.js.map +1 -1
  238. package/dist/fields/Relationship/index.d.ts.map +1 -1
  239. package/dist/fields/Relationship/index.js +45 -14
  240. package/dist/fields/Relationship/index.js.map +1 -1
  241. package/dist/fields/Relationship/types.d.ts +3 -1
  242. package/dist/fields/Relationship/types.d.ts.map +1 -1
  243. package/dist/fields/Relationship/types.js.map +1 -1
  244. package/dist/fields/RichText/index.d.ts +2 -0
  245. package/dist/fields/RichText/index.d.ts.map +1 -1
  246. package/dist/fields/RichText/index.js.map +1 -1
  247. package/dist/fields/Row/index.d.ts.map +1 -1
  248. package/dist/fields/Row/index.js +2 -1
  249. package/dist/fields/Row/index.js.map +1 -1
  250. package/dist/fields/Select/index.d.ts +0 -1
  251. package/dist/fields/Select/index.d.ts.map +1 -1
  252. package/dist/fields/Select/index.js +8 -3
  253. package/dist/fields/Select/index.js.map +1 -1
  254. package/dist/fields/Tabs/index.d.ts +0 -1
  255. package/dist/fields/Tabs/index.d.ts.map +1 -1
  256. package/dist/fields/Tabs/index.js +2 -2
  257. package/dist/fields/Tabs/index.js.map +1 -1
  258. package/dist/fields/Text/Input.d.ts.map +1 -1
  259. package/dist/fields/Text/Input.js +4 -1
  260. package/dist/fields/Text/Input.js.map +1 -1
  261. package/dist/fields/Text/index.d.ts.map +1 -1
  262. package/dist/fields/Text/index.js +3 -1
  263. package/dist/fields/Text/index.js.map +1 -1
  264. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  265. package/dist/fields/Textarea/Input.js +4 -1
  266. package/dist/fields/Textarea/Input.js.map +1 -1
  267. package/dist/fields/Textarea/index.d.ts.map +1 -1
  268. package/dist/fields/Textarea/index.js +3 -1
  269. package/dist/fields/Textarea/index.js.map +1 -1
  270. package/dist/fields/Upload/Input.d.ts.map +1 -1
  271. package/dist/fields/Upload/Input.js +10 -8
  272. package/dist/fields/Upload/Input.js.map +1 -1
  273. package/dist/fields/Upload/index.d.ts.map +1 -1
  274. package/dist/fields/Upload/index.js +6 -2
  275. package/dist/fields/Upload/index.js.map +1 -1
  276. package/dist/fields/shared/index.d.ts +1 -2
  277. package/dist/fields/shared/index.d.ts.map +1 -1
  278. package/dist/fields/shared/index.js.map +1 -1
  279. package/dist/forms/FieldDescription/index.d.ts +1 -2
  280. package/dist/forms/FieldDescription/index.d.ts.map +1 -1
  281. package/dist/forms/FieldDescription/index.js.map +1 -1
  282. package/dist/forms/FieldError/index.js +1 -1
  283. package/dist/forms/FieldError/index.js.map +1 -1
  284. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  285. package/dist/forms/FieldLabel/index.js +4 -4
  286. package/dist/forms/FieldLabel/index.js.map +1 -1
  287. package/dist/forms/FieldLabel/index.scss +1 -1
  288. package/dist/forms/FieldPropsProvider/index.d.ts +5 -0
  289. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  290. package/dist/forms/FieldPropsProvider/index.js +5 -1
  291. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  292. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  293. package/dist/forms/Form/fieldReducer.js +6 -8
  294. package/dist/forms/Form/fieldReducer.js.map +1 -1
  295. package/dist/forms/Form/index.d.ts.map +1 -1
  296. package/dist/forms/Form/index.js +37 -20
  297. package/dist/forms/Form/index.js.map +1 -1
  298. package/dist/forms/Form/initContextState.d.ts.map +1 -1
  299. package/dist/forms/Form/initContextState.js +1 -0
  300. package/dist/forms/Form/initContextState.js.map +1 -1
  301. package/dist/forms/Form/mergeErrorPaths.d.ts +5 -0
  302. package/dist/forms/Form/mergeErrorPaths.d.ts.map +1 -0
  303. package/dist/forms/Form/mergeErrorPaths.js +29 -0
  304. package/dist/forms/Form/mergeErrorPaths.js.map +1 -0
  305. package/dist/forms/Form/mergeServerFormState.d.ts +1 -1
  306. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  307. package/dist/forms/Form/mergeServerFormState.js +36 -19
  308. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  309. package/dist/forms/Form/types.d.ts +8 -2
  310. package/dist/forms/Form/types.d.ts.map +1 -1
  311. package/dist/forms/Form/types.js.map +1 -1
  312. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  313. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  314. package/dist/forms/RenderFields/RenderField.js +12 -4
  315. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  316. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  317. package/dist/forms/RenderFields/index.js +3 -3
  318. package/dist/forms/RenderFields/index.js.map +1 -1
  319. package/dist/forms/RenderFields/types.d.ts +1 -0
  320. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  321. package/dist/forms/RenderFields/types.js.map +1 -1
  322. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +4 -3
  323. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  324. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +67 -42
  325. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  326. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +11 -0
  327. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -0
  328. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +13 -0
  329. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -0
  330. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +11 -0
  331. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -0
  332. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +16 -0
  333. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -0
  334. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +12 -0
  335. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -0
  336. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +122 -0
  337. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -0
  338. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  339. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  340. package/dist/forms/buildStateFromSchema/index.js +10 -2
  341. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  342. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  343. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  344. package/dist/forms/buildStateFromSchema/iterateFields.js +4 -3
  345. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  346. package/dist/forms/useField/index.d.ts.map +1 -1
  347. package/dist/forms/useField/index.js +32 -12
  348. package/dist/forms/useField/index.js.map +1 -1
  349. package/dist/forms/useField/types.d.ts +1 -0
  350. package/dist/forms/useField/types.d.ts.map +1 -1
  351. package/dist/forms/useField/types.js.map +1 -1
  352. package/dist/forms/withCondition/WatchCondition.d.ts +3 -0
  353. package/dist/forms/withCondition/WatchCondition.d.ts.map +1 -1
  354. package/dist/forms/withCondition/WatchCondition.js +10 -2
  355. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  356. package/dist/forms/withCondition/index.js +4 -2
  357. package/dist/forms/withCondition/index.js.map +1 -1
  358. package/dist/hooks/usePayloadAPI.js +1 -1
  359. package/dist/hooks/usePayloadAPI.js.map +1 -1
  360. package/dist/hooks/useUseAsTitle.d.ts +3 -2
  361. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  362. package/dist/hooks/useUseAsTitle.js +5 -6
  363. package/dist/hooks/useUseAsTitle.js.map +1 -1
  364. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  365. package/dist/providers/ClientFunction/index.js +27 -5
  366. package/dist/providers/ClientFunction/index.js.map +1 -1
  367. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.d.ts → actions.d.ts} +1 -1
  368. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -0
  369. package/dist/providers/ComponentMap/buildComponentMap/{mapActions.js → actions.js} +1 -1
  370. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -0
  371. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +13 -0
  372. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -0
  373. package/dist/providers/ComponentMap/buildComponentMap/collections.js +74 -0
  374. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -0
  375. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.d.ts → fields.d.ts} +1 -1
  376. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -0
  377. package/dist/providers/ComponentMap/buildComponentMap/{mapFields.js → fields.js} +43 -23
  378. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -0
  379. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +12 -0
  380. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -0
  381. package/dist/providers/ComponentMap/buildComponentMap/globals.js +49 -0
  382. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -0
  383. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +2 -2
  384. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  385. package/dist/providers/ComponentMap/buildComponentMap/index.js +16 -83
  386. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  387. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +8 -3
  388. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  389. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  390. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  391. package/dist/providers/DocumentInfo/index.js +120 -96
  392. package/dist/providers/DocumentInfo/index.js.map +1 -1
  393. package/dist/providers/DocumentInfo/types.d.ts +12 -13
  394. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  395. package/dist/providers/DocumentInfo/types.js.map +1 -1
  396. package/dist/providers/EntityVisibility/index.d.ts +16 -0
  397. package/dist/providers/EntityVisibility/index.d.ts.map +1 -0
  398. package/dist/providers/EntityVisibility/index.js +25 -0
  399. package/dist/providers/EntityVisibility/index.js.map +1 -0
  400. package/dist/providers/ListInfo/index.d.ts +0 -1
  401. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  402. package/dist/providers/ListInfo/index.js +2 -7
  403. package/dist/providers/ListInfo/index.js.map +1 -1
  404. package/dist/templates/Default/index.d.ts +2 -7
  405. package/dist/templates/Default/index.d.ts.map +1 -1
  406. package/dist/templates/Default/index.js +10 -12
  407. package/dist/templates/Default/index.js.map +1 -1
  408. package/dist/utilities/buildComponentMap.d.ts +1 -1
  409. package/dist/utilities/buildComponentMap.d.ts.map +1 -1
  410. package/dist/utilities/buildComponentMap.js +1 -1
  411. package/dist/utilities/buildComponentMap.js.map +1 -1
  412. package/dist/utilities/flattenFieldMap.d.ts +10 -0
  413. package/dist/utilities/flattenFieldMap.d.ts.map +1 -0
  414. package/dist/utilities/flattenFieldMap.js +33 -0
  415. package/dist/utilities/flattenFieldMap.js.map +1 -0
  416. package/dist/utilities/getFormState.d.ts +2 -0
  417. package/dist/utilities/getFormState.d.ts.map +1 -1
  418. package/dist/utilities/getFormState.js +8 -3
  419. package/dist/utilities/getFormState.js.map +1 -1
  420. package/package.json +10 -4
  421. package/dist/elements/TableColumns/buildColumns.d.ts.map +0 -1
  422. package/dist/elements/TableColumns/buildColumns.js.map +0 -1
  423. package/dist/elements/WhereBuilder/reducer.d.ts +0 -5
  424. package/dist/elements/WhereBuilder/reducer.d.ts.map +0 -1
  425. package/dist/elements/WhereBuilder/reducer.js +0 -78
  426. package/dist/elements/WhereBuilder/reducer.js.map +0 -1
  427. package/dist/forms/FieldDescription/types.d.ts +0 -8
  428. package/dist/forms/FieldDescription/types.d.ts.map +0 -1
  429. package/dist/forms/FieldDescription/types.js +0 -3
  430. package/dist/forms/FieldDescription/types.js.map +0 -1
  431. package/dist/hooks/useAdminThumbnail.d.ts +0 -3
  432. package/dist/hooks/useAdminThumbnail.d.ts.map +0 -1
  433. package/dist/hooks/useAdminThumbnail.js +0 -8
  434. package/dist/hooks/useAdminThumbnail.js.map +0 -1
  435. package/dist/hooks/useThumbnail.d.ts +0 -3
  436. package/dist/hooks/useThumbnail.d.ts.map +0 -1
  437. package/dist/hooks/useThumbnail.js +0 -45
  438. package/dist/hooks/useThumbnail.js.map +0 -1
  439. package/dist/providers/ComponentMap/buildComponentMap/mapActions.d.ts.map +0 -1
  440. package/dist/providers/ComponentMap/buildComponentMap/mapActions.js.map +0 -1
  441. package/dist/providers/ComponentMap/buildComponentMap/mapFields.d.ts.map +0 -1
  442. package/dist/providers/ComponentMap/buildComponentMap/mapFields.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { DocumentPreferences } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { toKebabCase } from 'payload/utilities'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { MappedTab } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { TabComponent } from './Tab/index.js'\nimport './index.scss'\nimport { TabsProvider } from './provider.js'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nexport type TabsFieldProps = FormFieldBase & {\n forceRender?: boolean\n indexPath: string\n name?: string\n path?: string\n permissions: FieldPermissions\n tabs?: MappedTab[]\n width?: string\n}\n\nconst TabsField: React.FC<TabsFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n className,\n descriptionProps,\n forceRender = false,\n indexPath,\n path: pathFromProps,\n readOnly,\n tabs = [],\n } = props\n\n const { path: pathFromContext, permissions, schemaPath } = useFieldProps()\n const path = pathFromContext || pathFromProps || name\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const isWithinCollapsible = useCollapsible()\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0)\n const tabsPrefKey = `tabs-${indexPath}`\n\n useEffect(() => {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n setActiveTabIndex(initialIndex || 0)\n }\n void getInitialPref()\n }, [path, getPreference, preferencesKey, tabsPrefKey])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number) => {\n setActiveTabIndex(incomingTabIndex)\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n },\n [preferencesKey, getPreference, setPreference, path, tabsPrefKey],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabs.map((tab, tabIndex) => {\n return (\n <TabComponent\n isActive={activeTabIndex === tabIndex}\n key={tabIndex}\n parentPath={path}\n setIsActive={() => handleTabChange(tabIndex)}\n tab={tab}\n />\n )\n })}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <React.Fragment>\n <div\n className={[\n `${baseClass}__tab`,\n activeTabConfig.label &&\n `${baseClass}__tabConfigLabel-${toKebabCase(\n getTranslation(activeTabConfig.label, i18n),\n )}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {CustomDescription ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n <RenderFields\n fieldMap={activeTabConfig.fieldMap}\n forceRender={forceRender}\n key={\n activeTabConfig.label\n ? getTranslation(activeTabConfig.label, i18n)\n : activeTabConfig['name']\n }\n margins=\"small\"\n path={`${path ? `${path}.` : ''}${activeTabConfig.name ? `${activeTabConfig.name}` : ''}`}\n permissions={\n 'name' in activeTabConfig && permissions?.fields?.[activeTabConfig.name]?.fields\n ? permissions?.fields?.[activeTabConfig.name]?.fields\n : permissions?.fields\n }\n readOnly={readOnly}\n schemaPath={`${schemaPath ? `${schemaPath}` : ''}${activeTabConfig.name ? `.${activeTabConfig.name}` : ''}`}\n />\n </div>\n </React.Fragment>\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const Tabs = withCondition(TabsField)\n"],"names":["getTranslation","FieldDescription","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","useFieldProps","RenderFields","withCondition","useDocumentInfo","usePreferences","useTranslation","fieldBaseClass","TabComponent","TabsProvider","baseClass","TabsField","props","name","CustomDescription","className","descriptionProps","forceRender","indexPath","path","pathFromProps","readOnly","tabs","pathFromContext","permissions","schemaPath","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","handleTabChange","incomingTabIndex","activeTabConfig","div","filter","Boolean","join","map","tab","isActive","key","parentPath","setIsActive","Fragment","label","fieldMap","margins","Tabs"],"mappings":"AAAA;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,WAAW,QAAQ,oBAAmB;AAC/C,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAK/D,SAASC,cAAc,QAAQ,yCAAwC;AACvE,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AACnD,SAASC,YAAY,QAAQ,iBAAgB;AAE7C,SAASC,YAAY,QAAQ,gBAAe;AAE5C,MAAMC,YAAY;AAElB,SAASD,YAAY,GAAE;AAYvB,MAAME,YAAsC,CAACC;IAC3C,MAAM,EACJC,IAAI,EACJC,iBAAiB,EACjBC,SAAS,EACTC,gBAAgB,EAChBC,cAAc,KAAK,EACnBC,SAAS,EACTC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,OAAO,EAAE,EACV,GAAGV;IAEJ,MAAM,EAAEO,MAAMI,eAAe,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGxB;IAC3D,MAAMkB,OAAOI,mBAAmBH,iBAAiBP;IACjD,MAAM,EAAEa,aAAa,EAAEC,aAAa,EAAE,GAAGtB;IACzC,MAAM,EAAEuB,cAAc,EAAE,GAAGxB;IAC3B,MAAM,EAAEyB,IAAI,EAAE,GAAGvB;IACjB,MAAMwB,sBAAsB9B;IAC5B,MAAM,CAAC+B,gBAAgBC,kBAAkB,GAAGjC,SAAiB;IAC7D,MAAMkC,cAAc,CAAC,KAAK,EAAEf,UAAU,CAAC;IAEvCpB,UAAU;QACR,MAAMoC,iBAAiB;YACrB,MAAMC,sBAA2C,MAAMT,cAAcE;YACrE,MAAMQ,eAAejB,OACjBgB,qBAAqBE,QAAQ,CAAClB,KAAK,EAAEmB,WACrCH,qBAAqBE,QAAQ,CAACJ,YAAY,EAAEK;YAChDN,kBAAkBI,gBAAgB;QACpC;QACA,KAAKF;IACP,GAAG;QAACf;QAAMO;QAAeE;QAAgBK;KAAY;IAErD,MAAMM,kBAAkB1C,YACtB,OAAO2C;QACLR,kBAAkBQ;QAElB,MAAML,sBAA2C,MAAMT,cAAcE;QAErE,KAAKD,cAAcC,gBAAgB;YACjC,GAAGO,mBAAmB;YACtB,GAAIhB,OACA;gBACEkB,QAAQ;oBACN,GAAIF,qBAAqBE,UAAU,CAAC,CAAC;oBACrC,CAAClB,KAAK,EAAE;wBACN,GAAGgB,qBAAqBE,QAAQ,CAAClB,KAAK;wBACtCmB,UAAUE;oBACZ;gBACF;YACF,IACA;gBACEH,QAAQ;oBACN,GAAGF,qBAAqBE,MAAM;oBAC9B,CAACJ,YAAY,EAAE;wBACb,GAAGE,qBAAqBE,QAAQ,CAACJ,YAAY;wBAC7CK,UAAUE;oBACZ;gBACF;YACF,CAAC;QACP;IACF,GACA;QAACZ;QAAgBF;QAAeC;QAAeR;QAAMc;KAAY;IAGnE,MAAMQ,kBAAkBnB,IAAI,CAACS,eAAe;IAE5C,qBACE,oBAACW;QACC3B,WAAW;YACTR;YACAQ;YACAL;YACAoB,uBAAuB,CAAC,EAAEpB,UAAU,oBAAoB,CAAC;SAC1D,CACEiC,MAAM,CAACC,SACPC,IAAI,CAAC;qBAER,oBAACpC,kCACC,oBAACiC;QAAI3B,WAAW,CAAC,EAAEL,UAAU,WAAW,CAAC;qBACvC,oBAACgC;QAAI3B,WAAW,CAAC,EAAEL,UAAU,MAAM,CAAC;OACjCY,KAAKwB,GAAG,CAAC,CAACC,KAAKT;QACd,qBACE,oBAAC9B;YACCwC,UAAUjB,mBAAmBO;YAC7BW,KAAKX;YACLY,YAAY/B;YACZgC,aAAa,IAAMZ,gBAAgBD;YACnCS,KAAKA;;IAGX,oBAGJ,oBAACL;QAAI3B,WAAW,CAAC,EAAEL,UAAU,cAAc,CAAC;OACzC+B,iCACC,oBAAC7C,MAAMwD,QAAQ,sBACb,oBAACV;QACC3B,WAAW;YACT,CAAC,EAAEL,UAAU,KAAK,CAAC;YACnB+B,gBAAgBY,KAAK,IACnB,CAAC,EAAE3C,UAAU,iBAAiB,EAAEf,YAC9BF,eAAegD,gBAAgBY,KAAK,EAAExB,OACtC,CAAC;SACN,CACEc,MAAM,CAACC,SACPC,IAAI,CAAC;OAEP/B,oBACCA,kCAEA,oBAACpB,kBAAsBsB,oBAAoB,CAAC,kBAE9C,oBAACd;QACCoD,UAAUb,gBAAgBa,QAAQ;QAClCrC,aAAaA;QACbgC,KACER,gBAAgBY,KAAK,GACjB5D,eAAegD,gBAAgBY,KAAK,EAAExB,QACtCY,eAAe,CAAC,OAAO;QAE7Bc,SAAQ;QACRpC,MAAM,CAAC,EAAEA,OAAO,CAAC,EAAEA,KAAK,CAAC,CAAC,GAAG,GAAG,EAAEsB,gBAAgB5B,IAAI,GAAG,CAAC,EAAE4B,gBAAgB5B,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QACzFW,aACE,UAAUiB,mBAAmBjB,aAAaa,QAAQ,CAACI,gBAAgB5B,IAAI,CAAC,EAAEwB,SACtEb,aAAaa,QAAQ,CAACI,gBAAgB5B,IAAI,CAAC,EAAEwB,SAC7Cb,aAAaa;QAEnBhB,UAAUA;QACVI,YAAY,CAAC,EAAEA,aAAa,CAAC,EAAEA,WAAW,CAAC,GAAG,GAAG,EAAEgB,gBAAgB5B,IAAI,GAAG,CAAC,CAAC,EAAE4B,gBAAgB5B,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;;AAS7H;AAEA,OAAO,MAAM2C,OAAOrD,cAAcQ,WAAU"}
1
+ {"version":3,"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { DocumentPreferences } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { toKebabCase } from 'payload/utilities'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { MappedTab } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { TabComponent } from './Tab/index.js'\nimport './index.scss'\nimport { TabsProvider } from './provider.js'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nexport type TabsFieldProps = FormFieldBase & {\n forceRender?: boolean\n name?: string\n path?: string\n permissions: FieldPermissions\n tabs?: MappedTab[]\n width?: string\n}\n\nconst TabsField: React.FC<TabsFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n className,\n descriptionProps,\n forceRender = false,\n path: pathFromProps,\n readOnly,\n tabs = [],\n } = props\n\n const { indexPath, path: pathFromContext, permissions, schemaPath } = useFieldProps()\n const path = pathFromContext || pathFromProps || name\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const isWithinCollapsible = useCollapsible()\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0)\n const tabsPrefKey = `tabs-${indexPath}`\n\n useEffect(() => {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n setActiveTabIndex(initialIndex || 0)\n }\n void getInitialPref()\n }, [path, getPreference, preferencesKey, tabsPrefKey])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number) => {\n setActiveTabIndex(incomingTabIndex)\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n },\n [preferencesKey, getPreference, setPreference, path, tabsPrefKey],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabs.map((tab, tabIndex) => {\n return (\n <TabComponent\n isActive={activeTabIndex === tabIndex}\n key={tabIndex}\n parentPath={path}\n setIsActive={() => handleTabChange(tabIndex)}\n tab={tab}\n />\n )\n })}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <React.Fragment>\n <div\n className={[\n `${baseClass}__tab`,\n activeTabConfig.label &&\n `${baseClass}__tabConfigLabel-${toKebabCase(\n getTranslation(activeTabConfig.label, i18n),\n )}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {CustomDescription ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n <RenderFields\n fieldMap={activeTabConfig.fieldMap}\n forceRender={forceRender}\n key={\n activeTabConfig.label\n ? getTranslation(activeTabConfig.label, i18n)\n : activeTabConfig['name']\n }\n margins=\"small\"\n path={`${path ? `${path}.` : ''}${activeTabConfig.name ? `${activeTabConfig.name}` : ''}`}\n permissions={\n 'name' in activeTabConfig && permissions?.fields?.[activeTabConfig.name]?.fields\n ? permissions?.fields?.[activeTabConfig.name]?.fields\n : permissions?.fields\n }\n readOnly={readOnly}\n schemaPath={`${schemaPath ? `${schemaPath}` : ''}${activeTabConfig.name ? `.${activeTabConfig.name}` : ''}`}\n />\n </div>\n </React.Fragment>\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const Tabs = withCondition(TabsField)\n"],"names":["getTranslation","FieldDescription","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","useFieldProps","RenderFields","withCondition","useDocumentInfo","usePreferences","useTranslation","fieldBaseClass","TabComponent","TabsProvider","baseClass","TabsField","props","name","CustomDescription","className","descriptionProps","forceRender","path","pathFromProps","readOnly","tabs","indexPath","pathFromContext","permissions","schemaPath","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","handleTabChange","incomingTabIndex","activeTabConfig","div","filter","Boolean","join","map","tab","isActive","key","parentPath","setIsActive","Fragment","label","fieldMap","margins","Tabs"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/Input.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkG9C,CAAA"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/Input.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyG9C,CAAA"}
@@ -8,7 +8,7 @@ import { ReactSelect } from '../../elements/ReactSelect/index.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
9
  import { fieldBaseClass } from '../shared/index.js';
10
10
  export const TextInput = (props)=>{
11
- const { AfterInput, BeforeInput, CustomDescription, CustomError, CustomLabel, className, descriptionProps, errorProps, hasMany, inputRef, labelProps, maxRows, onChange, onKeyDown, path, placeholder, readOnly, rtl, showError, style, value, valueToRender, width } = props;
11
+ const { AfterInput, BeforeInput, CustomDescription, CustomError, CustomLabel, className, descriptionProps, errorProps, hasMany, inputRef, label, labelProps, maxRows, onChange, onKeyDown, path, placeholder, readOnly, required, rtl, showError, style, value, valueToRender, width } = props;
12
12
  const { i18n, t } = useTranslation();
13
13
  return /*#__PURE__*/ React.createElement("div", {
14
14
  className: [
@@ -25,9 +25,12 @@ export const TextInput = (props)=>{
25
25
  }
26
26
  }, /*#__PURE__*/ React.createElement(FieldError, {
27
27
  CustomError: CustomError,
28
+ path: path,
28
29
  ...errorProps || {}
29
30
  }), /*#__PURE__*/ React.createElement(FieldLabel, {
30
31
  CustomLabel: CustomLabel,
32
+ label: label,
33
+ required: required,
31
34
  ...labelProps || {}
32
35
  }), hasMany ? /*#__PURE__*/ React.createElement(ReactSelect, {
33
36
  className: `field-${path.replace(/\./g, '__')}`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Text/Input.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React from 'react'\n\nimport type { TextInputProps } from './types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n hasMany,\n inputRef,\n labelProps,\n maxRows,\n onChange,\n onKeyDown,\n path,\n placeholder,\n readOnly,\n rtl,\n showError,\n style,\n value,\n valueToRender,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n <FieldLabel CustomLabel={CustomLabel} {...(labelProps || {})} />\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly}\n // prevent adding additional options if maxRows is reached\n filterOption={() =>\n !maxRows ? true : !(Array.isArray(value) && maxRows && value.length >= maxRows)\n }\n isClearable\n isCreatable\n isMulti\n isSortable\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n onChange={onChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender}\n />\n ) : (\n <div>\n {BeforeInput}\n <input\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange}\n onKeyDown={onKeyDown}\n placeholder={getTranslation(placeholder, i18n)}\n ref={inputRef}\n type=\"text\"\n value={value || ''}\n />\n {AfterInput}\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","ReactSelect","useTranslation","fieldBaseClass","TextInput","props","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","hasMany","inputRef","labelProps","maxRows","onChange","onKeyDown","path","placeholder","readOnly","rtl","showError","style","value","valueToRender","width","i18n","t","div","filter","Boolean","join","replace","disabled","filterOption","Array","isArray","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","isOverHasMany","max","options","input","data-rtl","id","name","ref","type","undefined"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,OAAOC,WAAW,QAAO;AAIzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AAGnD,OAAO,MAAMC,YAAsC,CAACC;IAClD,MAAM,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,GAAG,EACHC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,aAAa,EACbC,KAAK,EACN,GAAGvB;IAEJ,MAAM,EAAEwB,IAAI,EAAEC,CAAC,EAAE,GAAG5B;IAEpB,qBACE,oBAAC6B;QACCpB,WAAW;YACTR;YACA;YACAQ;YACAa,aAAa;YACbF,YAAY;YACZR,WAAW;SACZ,CACEkB,MAAM,CAACC,SACPC,IAAI,CAAC;QACRT,OAAO;YACL,GAAGA,KAAK;YACRG;QACF;qBAEA,oBAAC9B;QAAWW,aAAaA;QAAc,GAAII,cAAc,CAAC,CAAC;sBAC3D,oBAACd;QAAWW,aAAaA;QAAc,GAAIM,cAAc,CAAC,CAAC;QAC1DF,wBACC,oBAACb;QACCU,WAAW,CAAC,MAAM,EAAES,KAAKe,OAAO,CAAC,OAAO,MAAM,CAAC;QAC/CC,UAAUd;QACV,0DAA0D;QAC1De,cAAc,IACZ,CAACpB,UAAU,OAAO,CAAEqB,CAAAA,MAAMC,OAAO,CAACb,UAAUT,WAAWS,MAAMc,MAAM,IAAIvB,OAAM;QAE/EwB,aAAAA;QACAC,aAAAA;QACAC,SAAAA;QACAC,YAAAA;QACAC,kBAAkB;YAChB,MAAMC,gBAAgBR,MAAMC,OAAO,CAACb,UAAUA,MAAMc,MAAM,IAAIvB;YAC9D,IAAI6B,eAAe;gBACjB,OAAOhB,EAAE,2BAA2B;oBAAEiB,KAAK9B;oBAASS,OAAOA,MAAMc,MAAM,GAAG;gBAAE;YAC9E;YACA,OAAO;QACT;QACAtB,UAAUA;QACV8B,SAAS,EAAE;QACX3B,aAAaS,EAAE;QACfN,WAAWA;QACXE,OAAOC;uBAGT,oBAACI,aACExB,2BACD,oBAAC0C;QACCC,YAAU3B;QACVa,UAAUd;QACV6B,IAAI,CAAC,MAAM,EAAE/B,MAAMe,QAAQ,OAAO,MAAM,CAAC;QACzCiB,MAAMhC;QACNF,UAAUA;QACVC,WAAWA;QACXE,aAAazB,eAAeyB,aAAaQ;QACzCwB,KAAKtC;QACLuC,MAAK;QACL5B,OAAOA,SAAS;QAEjBpB,aAGJE,sBAAsB+C,YACrB/C,kCAEA,oBAACX,kBAAsBe,oBAAoB,CAAC;AAIpD,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/Text/Input.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React from 'react'\n\nimport type { TextInputProps } from './types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n hasMany,\n inputRef,\n label,\n labelProps,\n maxRows,\n onChange,\n onKeyDown,\n path,\n placeholder,\n readOnly,\n required,\n rtl,\n showError,\n style,\n value,\n valueToRender,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly}\n // prevent adding additional options if maxRows is reached\n filterOption={() =>\n !maxRows ? true : !(Array.isArray(value) && maxRows && value.length >= maxRows)\n }\n isClearable\n isCreatable\n isMulti\n isSortable\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n onChange={onChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender}\n />\n ) : (\n <div>\n {BeforeInput}\n <input\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange}\n onKeyDown={onKeyDown}\n placeholder={getTranslation(placeholder, i18n)}\n ref={inputRef}\n type=\"text\"\n value={value || ''}\n />\n {AfterInput}\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","ReactSelect","useTranslation","fieldBaseClass","TextInput","props","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","hasMany","inputRef","label","labelProps","maxRows","onChange","onKeyDown","path","placeholder","readOnly","required","rtl","showError","style","value","valueToRender","width","i18n","t","div","filter","Boolean","join","replace","disabled","filterOption","Array","isArray","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","isOverHasMany","max","options","input","data-rtl","id","name","ref","type","undefined"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,OAAOC,WAAW,QAAO;AAIzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AAGnD,OAAO,MAAMC,YAAsC,CAACC;IAClD,MAAM,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,KAAK,EACLC,UAAU,EACVC,OAAO,EACPC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,GAAG,EACHC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,aAAa,EACbC,KAAK,EACN,GAAGzB;IAEJ,MAAM,EAAE0B,IAAI,EAAEC,CAAC,EAAE,GAAG9B;IAEpB,qBACE,oBAAC+B;QACCtB,WAAW;YACTR;YACA;YACAQ;YACAe,aAAa;YACbH,YAAY;YACZT,WAAW;SACZ,CACEoB,MAAM,CAACC,SACPC,IAAI,CAAC;QACRT,OAAO;YACL,GAAGA,KAAK;YACRG;QACF;qBAEA,oBAAChC;QAAWW,aAAaA;QAAaY,MAAMA;QAAO,GAAIR,cAAc,CAAC,CAAC;sBACvE,oBAACd;QACCW,aAAaA;QACbM,OAAOA;QACPQ,UAAUA;QACT,GAAIP,cAAc,CAAC,CAAC;QAEtBH,wBACC,oBAACb;QACCU,WAAW,CAAC,MAAM,EAAEU,KAAKgB,OAAO,CAAC,OAAO,MAAM,CAAC;QAC/CC,UAAUf;QACV,0DAA0D;QAC1DgB,cAAc,IACZ,CAACrB,UAAU,OAAO,CAAEsB,CAAAA,MAAMC,OAAO,CAACb,UAAUV,WAAWU,MAAMc,MAAM,IAAIxB,OAAM;QAE/EyB,aAAAA;QACAC,aAAAA;QACAC,SAAAA;QACAC,YAAAA;QACAC,kBAAkB;YAChB,MAAMC,gBAAgBR,MAAMC,OAAO,CAACb,UAAUA,MAAMc,MAAM,IAAIxB;YAC9D,IAAI8B,eAAe;gBACjB,OAAOhB,EAAE,2BAA2B;oBAAEiB,KAAK/B;oBAASU,OAAOA,MAAMc,MAAM,GAAG;gBAAE;YAC9E;YACA,OAAO;QACT;QACAvB,UAAUA;QACV+B,SAAS,EAAE;QACX5B,aAAaU,EAAE;QACfN,WAAWA;QACXE,OAAOC;uBAGT,oBAACI,aACE1B,2BACD,oBAAC4C;QACCC,YAAU3B;QACVa,UAAUf;QACV8B,IAAI,CAAC,MAAM,EAAEhC,MAAMgB,QAAQ,OAAO,MAAM,CAAC;QACzCiB,MAAMjC;QACNF,UAAUA;QACVC,WAAWA;QACXE,aAAa1B,eAAe0B,aAAaS;QACzCwB,KAAKxC;QACLyC,MAAK;QACL5B,OAAOA,SAAS;QAEjBtB,aAGJE,sBAAsBiD,YACrBjD,kCAEA,oBAACX,kBAAsBe,oBAAoB,CAAC;AAIpD,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAOhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAmIpD,eAAO,MAAM,IAAI,0BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAOhE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAqIpD,eAAO,MAAM,IAAI,0BAA2B,CAAA"}
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
2
3
  import React, { useCallback, useEffect, useState } from 'react';
3
4
  import { useField } from '../../forms/useField/index.js';
4
5
  import { withCondition } from '../../forms/withCondition/index.js';
@@ -24,8 +25,9 @@ const TextField = (props)=>{
24
25
  maxLength,
25
26
  required
26
27
  ]);
28
+ const { path: pathFromContext } = useFieldProps();
27
29
  const { path, readOnly, setValue, showError, value } = useField({
28
- path: pathFromProps || name,
30
+ path: pathFromContext || pathFromProps || name,
29
31
  validate: memoizedValidate
30
32
  });
31
33
  const renderRTL = isFieldRTL({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\nimport type {} from 'payload/types'\n\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextFieldProps, TextInputProps } 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 { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextFieldProps, TextInput, TextInputProps }\n\nconst TextField: React.FC<TextFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n hasMany,\n inputRef,\n labelProps,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n path: pathFromProps,\n placeholder,\n required,\n rtl,\n style,\n validate,\n width,\n } = props\n\n const locale = useLocale()\n\n const { localization: localizationConfig } = useConfig()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, maxLength, minLength, required })\n },\n [validate, minLength, maxLength, required],\n )\n\n const { path, readOnly, setValue, showError, value } = useField({\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!readOnly) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n className={className}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n hasMany={hasMany}\n inputRef={inputRef}\n labelProps={labelProps}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={style}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n width={width}\n />\n )\n}\n\nexport const Text = withCondition(TextField)\n"],"names":["React","useCallback","useEffect","useState","useField","withCondition","useConfig","useLocale","isFieldRTL","TextInput","TextField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","hasMany","inputRef","labelProps","localized","maxLength","maxRows","minLength","minRows","path","pathFromProps","placeholder","required","rtl","style","validate","width","locale","localization","localizationConfig","memoizedValidate","value","options","readOnly","setValue","showError","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","label","toString","onChange","e","target","Text"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\nimport type {} from 'payload/types'\n\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextFieldProps, TextInputProps } 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 { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextFieldProps, TextInput, TextInputProps }\n\nconst TextField: React.FC<TextFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n hasMany,\n inputRef,\n labelProps,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n path: pathFromProps,\n placeholder,\n required,\n rtl,\n style,\n validate,\n width,\n } = props\n\n const locale = useLocale()\n\n const { localization: localizationConfig } = useConfig()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, maxLength, minLength, required })\n },\n [validate, minLength, maxLength, required],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const { path, readOnly, setValue, showError, value } = useField({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!readOnly) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n className={className}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n hasMany={hasMany}\n inputRef={inputRef}\n labelProps={labelProps}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={style}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n width={width}\n />\n )\n}\n\nexport const Text = withCondition(TextField)\n"],"names":["useFieldProps","React","useCallback","useEffect","useState","useField","withCondition","useConfig","useLocale","isFieldRTL","TextInput","TextField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","hasMany","inputRef","labelProps","localized","maxLength","maxRows","minLength","minRows","path","pathFromProps","placeholder","required","rtl","style","validate","width","locale","localization","localizationConfig","memoizedValidate","value","options","pathFromContext","readOnly","setValue","showError","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","label","toString","onChange","e","target","Text"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/Input.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoEtD,CAAA"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/Input.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIpD,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2EtD,CAAA"}
@@ -7,7 +7,7 @@ import React from 'react';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
8
8
  import { fieldBaseClass } from '../shared/index.js';
9
9
  export const TextareaInput = (props)=>{
10
- const { AfterInput, BeforeInput, CustomDescription, CustomError, CustomLabel, className, descriptionProps, errorProps, labelProps, onChange, path, placeholder, readOnly, rows, rtl, showError, style, value, width } = props;
10
+ const { AfterInput, BeforeInput, CustomDescription, CustomError, CustomLabel, className, descriptionProps, errorProps, label, labelProps, onChange, path, placeholder, readOnly, required, rows, rtl, showError, style, value, width } = props;
11
11
  const { i18n } = useTranslation();
12
12
  return /*#__PURE__*/ React.createElement("div", {
13
13
  className: [
@@ -23,9 +23,12 @@ export const TextareaInput = (props)=>{
23
23
  }
24
24
  }, /*#__PURE__*/ React.createElement(FieldError, {
25
25
  CustomError: CustomError,
26
+ path: path,
26
27
  ...errorProps || {}
27
28
  }), /*#__PURE__*/ React.createElement(FieldLabel, {
28
29
  CustomLabel: CustomLabel,
30
+ label: label,
31
+ required: required,
29
32
  ...labelProps || {}
30
33
  }), BeforeInput, /*#__PURE__*/ React.createElement("label", {
31
34
  className: "textarea-outer",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Textarea/Input.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextareaInput: React.FC<TextAreaInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n labelProps,\n onChange,\n path,\n placeholder,\n readOnly,\n rows,\n rtl,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'textarea',\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n <FieldLabel CustomLabel={CustomLabel} {...(labelProps || {})} />\n {BeforeInput}\n <label className=\"textarea-outer\" htmlFor={`field-${path.replace(/\\./g, '__')}`}>\n <div className=\"textarea-inner\">\n <div className=\"textarea-clone\" data-value={value || placeholder || ''} />\n <textarea\n className=\"textarea-element\"\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange}\n placeholder={getTranslation(placeholder, i18n)}\n rows={rows}\n value={value || ''}\n />\n </div>\n </label>\n {AfterInput}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","useTranslation","fieldBaseClass","TextareaInput","props","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","labelProps","onChange","path","placeholder","readOnly","rows","rtl","showError","style","value","width","i18n","div","filter","Boolean","join","label","htmlFor","replace","data-value","textarea","data-rtl","disabled","id","name","undefined"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AAGnD,OAAO,MAAMC,gBAA8C,CAACC;IAC1D,MAAM,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,QAAQ,EACRC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,KAAK,EACN,GAAGnB;IAEJ,MAAM,EAAEoB,IAAI,EAAE,GAAGvB;IAEjB,qBACE,oBAACwB;QACCf,WAAW;YACTR;YACA;YACAQ;YACAU,aAAa;YACbH,YAAY;SACb,CACES,MAAM,CAACC,SACPC,IAAI,CAAC;QACRP,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;qBAEA,oBAACzB;QAAWU,aAAaA;QAAc,GAAII,cAAc,CAAC,CAAC;sBAC3D,oBAACb;QAAWU,aAAaA;QAAc,GAAII,cAAc,CAAC,CAAC;QAC1DP,2BACD,oBAACuB;QAAMnB,WAAU;QAAiBoB,SAAS,CAAC,MAAM,EAAEf,KAAKgB,OAAO,CAAC,OAAO,MAAM,CAAC;qBAC7E,oBAACN;QAAIf,WAAU;qBACb,oBAACe;QAAIf,WAAU;QAAiBsB,cAAYV,SAASN,eAAe;sBACpE,oBAACiB;QACCvB,WAAU;QACVwB,YAAUf;QACVgB,UAAUlB;QACVmB,IAAI,CAAC,MAAM,EAAErB,KAAKgB,OAAO,CAAC,OAAO,MAAM,CAAC;QACxCM,MAAMtB;QACND,UAAUA;QACVE,aAAapB,eAAeoB,aAAaQ;QACzCN,MAAMA;QACNI,OAAOA,SAAS;UAIrBjB,YACAE,sBAAsB+B,YACrB/B,kCAEA,oBAACV,kBAAsBc,oBAAoB,CAAC;AAIpD,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/Textarea/Input.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextareaInput: React.FC<TextAreaInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n onChange,\n path,\n placeholder,\n readOnly,\n required,\n rows,\n rtl,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'textarea',\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n {BeforeInput}\n <label className=\"textarea-outer\" htmlFor={`field-${path.replace(/\\./g, '__')}`}>\n <div className=\"textarea-inner\">\n <div className=\"textarea-clone\" data-value={value || placeholder || ''} />\n <textarea\n className=\"textarea-element\"\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange}\n placeholder={getTranslation(placeholder, i18n)}\n rows={rows}\n value={value || ''}\n />\n </div>\n </label>\n {AfterInput}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","useTranslation","fieldBaseClass","TextareaInput","props","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","label","labelProps","onChange","path","placeholder","readOnly","required","rows","rtl","showError","style","value","width","i18n","div","filter","Boolean","join","htmlFor","replace","data-value","textarea","data-rtl","disabled","id","name","undefined"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AAGnD,OAAO,MAAMC,gBAA8C,CAACC;IAC1D,MAAM,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,QAAQ,EACRC,IAAI,EACJC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,IAAI,EACJC,GAAG,EACHC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,KAAK,EACN,GAAGrB;IAEJ,MAAM,EAAEsB,IAAI,EAAE,GAAGzB;IAEjB,qBACE,oBAAC0B;QACCjB,WAAW;YACTR;YACA;YACAQ;YACAY,aAAa;YACbJ,YAAY;SACb,CACEU,MAAM,CAACC,SACPC,IAAI,CAAC;QACRP,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;qBAEA,oBAAC3B;QAAWU,aAAaA;QAAaQ,MAAMA;QAAO,GAAIJ,cAAc,CAAC,CAAC;sBACvE,oBAACb;QACCU,aAAaA;QACbI,OAAOA;QACPM,UAAUA;QACT,GAAIL,cAAc,CAAC,CAAC;QAEtBR,2BACD,oBAACO;QAAMH,WAAU;QAAiBqB,SAAS,CAAC,MAAM,EAAEf,KAAKgB,OAAO,CAAC,OAAO,MAAM,CAAC;qBAC7E,oBAACL;QAAIjB,WAAU;qBACb,oBAACiB;QAAIjB,WAAU;QAAiBuB,cAAYT,SAASP,eAAe;sBACpE,oBAACiB;QACCxB,WAAU;QACVyB,YAAUd;QACVe,UAAUlB;QACVmB,IAAI,CAAC,MAAM,EAAErB,KAAKgB,OAAO,CAAC,OAAO,MAAM,CAAC;QACxCM,MAAMtB;QACND,UAAUA;QACVE,aAAarB,eAAeqB,aAAaS;QACzCN,MAAMA;QACNI,OAAOA,SAAS;UAIrBnB,YACAE,sBAAsBgC,YACrBhC,kCAEA,oBAACV,kBAAsBc,oBAAoB,CAAC;AAIpD,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAOxE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAA;AAgFhE,eAAO,MAAM,QAAQ,8BAA+B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAOxE,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAA;AAkFhE,eAAO,MAAM,QAAQ,8BAA+B,CAAA"}
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable react/destructuring-assignment */ 'use client';
2
2
  import { getTranslation } from '@payloadcms/translations';
3
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
3
4
  import React, { useCallback } from 'react';
4
5
  import { useField } from '../../forms/useField/index.js';
5
6
  import { withCondition } from '../../forms/withCondition/index.js';
@@ -31,8 +32,9 @@ const TextareaField = (props)=>{
31
32
  maxLength,
32
33
  minLength
33
34
  ]);
35
+ const { path: pathFromContext } = useFieldProps();
34
36
  const { path, readOnly, setValue, showError, value } = useField({
35
- path: pathFromProps || name,
37
+ path: pathFromContext || pathFromProps || name,
36
38
  validate: memoizedValidate
37
39
  });
38
40
  return /*#__PURE__*/ React.createElement(TextareaInput, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { TextAreaInputProps, TextareaFieldProps } 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 { useTranslation } from '../../providers/Translation/index.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\nimport './index.scss'\n\nexport { TextAreaInputProps, TextareaFieldProps, TextareaInput }\n\nconst TextareaField: React.FC<TextareaFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n labelProps,\n locale,\n localized,\n maxLength,\n minLength,\n path: pathFromProps,\n placeholder,\n required,\n rows,\n rtl,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const { localization } = useConfig()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, maxLength, minLength, required })\n },\n [validate, required, maxLength, minLength],\n )\n\n const { path, readOnly, setValue, showError, value } = useField<string>({\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n className={className}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n labelProps={labelProps}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const Textarea = withCondition(TextareaField)\n"],"names":["getTranslation","React","useCallback","useField","withCondition","useConfig","useTranslation","isFieldRTL","TextareaInput","TextareaField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","labelProps","locale","localized","maxLength","minLength","path","pathFromProps","placeholder","required","rows","rtl","style","validate","width","i18n","localization","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","readOnly","setValue","showError","onChange","e","target","Textarea"],"mappings":"AAAA,iDAAiD,GACjD;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,UAAU,QAAQ,qBAAoB;AAC/C,SAASC,aAAa,QAAQ,aAAY;AAG1C,SAAiDA,aAAa,GAAE;AAEhE,MAAMC,gBAA8C,CAACC;IACnD,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,MAAMC,aAAa,EACnBC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGvB;IAEJ,MAAM,EAAEwB,IAAI,EAAE,GAAG5B;IAEjB,MAAM,EAAE6B,YAAY,EAAE,GAAG9B;IAEzB,MAAM+B,QAAQ7B,WAAW;QACvB8B,gBAAgBf;QAChBgB,UAAUR;QACVT;QACAkB,oBAAoBJ,gBAAgBK;IACtC;IAEA,MAAMC,mBAAmCvC,YACvC,CAACwC,OAAOC;QACN,IAAI,OAAOX,aAAa,YACtB,OAAOA,SAASU,OAAO;YAAE,GAAGC,OAAO;YAAEpB;YAAWC;YAAWI;QAAS;IACxE,GACA;QAACI;QAAUJ;QAAUL;QAAWC;KAAU;IAG5C,MAAM,EAAEC,IAAI,EAAEmB,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,EAAEJ,KAAK,EAAE,GAAGvC,SAAiB;QACtEsB,MAAMC,iBAAiBf;QACvBqB,UAAUS;IACZ;IAEA,qBACE,oBAACjC;QACCI,YAAYA;QACZC,aAAaA;QACbC,mBAAmBA;QACnBC,aAAaA;QACbC,aAAaA;QACbC,WAAWA;QACXC,kBAAkBA;QAClBC,YAAYA;QACZC,YAAYA;QACZ2B,UAAU,CAACC;YACTH,SAASG,EAAEC,MAAM,CAACP,KAAK;QACzB;QACAjB,MAAMA;QACNE,aAAa3B,eAAe2B,aAAaO;QACzCU,UAAUA;QACVhB,UAAUA;QACVC,MAAMA;QACNC,KAAKM;QACLU,WAAWA;QACXf,OAAOA;QACPW,OAAOA;QACPT,OAAOA;;AAGb;AAEA,OAAO,MAAMiB,WAAW9C,cAAcK,eAAc"}
1
+ {"version":3,"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport React, { useCallback } from 'react'\n\nimport type { TextAreaInputProps, TextareaFieldProps } 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 { useTranslation } from '../../providers/Translation/index.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\nimport './index.scss'\n\nexport { TextAreaInputProps, TextareaFieldProps, TextareaInput }\n\nconst TextareaField: React.FC<TextareaFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n labelProps,\n locale,\n localized,\n maxLength,\n minLength,\n path: pathFromProps,\n placeholder,\n required,\n rows,\n rtl,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const { localization } = useConfig()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, maxLength, minLength, required })\n },\n [validate, required, maxLength, minLength],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const { path, readOnly, setValue, showError, value } = useField<string>({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n className={className}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n labelProps={labelProps}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const Textarea = withCondition(TextareaField)\n"],"names":["getTranslation","useFieldProps","React","useCallback","useField","withCondition","useConfig","useTranslation","isFieldRTL","TextareaInput","TextareaField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","labelProps","locale","localized","maxLength","minLength","path","pathFromProps","placeholder","required","rows","rtl","style","validate","width","i18n","localization","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","pathFromContext","readOnly","setValue","showError","onChange","e","target","Textarea"],"mappings":"AAAA,iDAAiD,GACjD;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,aAAa,QAAQ,0CAAyC;AACvE,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,UAAU,QAAQ,qBAAoB;AAC/C,SAASC,aAAa,QAAQ,aAAY;AAG1C,SAAiDA,aAAa,GAAE;AAEhE,MAAMC,gBAA8C,CAACC;IACnD,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,MAAMC,aAAa,EACnBC,WAAW,EACXC,QAAQ,EACRC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGvB;IAEJ,MAAM,EAAEwB,IAAI,EAAE,GAAG5B;IAEjB,MAAM,EAAE6B,YAAY,EAAE,GAAG9B;IAEzB,MAAM+B,QAAQ7B,WAAW;QACvB8B,gBAAgBf;QAChBgB,UAAUR;QACVT;QACAkB,oBAAoBJ,gBAAgBK;IACtC;IAEA,MAAMC,mBAAmCvC,YACvC,CAACwC,OAAOC;QACN,IAAI,OAAOX,aAAa,YACtB,OAAOA,SAASU,OAAO;YAAE,GAAGC,OAAO;YAAEpB;YAAWC;YAAWI;QAAS;IACxE,GACA;QAACI;QAAUJ;QAAUL;QAAWC;KAAU;IAG5C,MAAM,EAAEC,MAAMmB,eAAe,EAAE,GAAG5C;IAElC,MAAM,EAAEyB,IAAI,EAAEoB,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,EAAEL,KAAK,EAAE,GAAGvC,SAAiB;QACtEsB,MAAMmB,mBAAmBlB,iBAAiBf;QAC1CqB,UAAUS;IACZ;IAEA,qBACE,oBAACjC;QACCI,YAAYA;QACZC,aAAaA;QACbC,mBAAmBA;QACnBC,aAAaA;QACbC,aAAaA;QACbC,WAAWA;QACXC,kBAAkBA;QAClBC,YAAYA;QACZC,YAAYA;QACZ4B,UAAU,CAACC;YACTH,SAASG,EAAEC,MAAM,CAACR,KAAK;QACzB;QACAjB,MAAMA;QACNE,aAAa5B,eAAe4B,aAAaO;QACzCW,UAAUA;QACVjB,UAAUA;QACVC,MAAMA;QACNC,KAAKM;QACLW,WAAWA;QACXhB,OAAOA;QACPW,OAAOA;QACPT,OAAOA;;AAGb;AAEA,OAAO,MAAMkB,WAAW/C,cAAcK,eAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAM7F,OAAO,KAA2C,MAAM,OAAO,CAAA;AAI/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAQlD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG;IACvE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAoJlD,CAAA"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAM7F,OAAO,KAA2C,MAAM,OAAO,CAAA;AAI/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAQlD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG;IACvE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2JlD,CAAA"}
@@ -12,9 +12,9 @@ import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { fieldBaseClass } from '../shared/index.js';
13
13
  const baseClass = 'upload';
14
14
  export const UploadInput = (props)=>{
15
- const { CustomDescription, CustomError, CustomLabel, api = '/api', className, collection, descriptionProps, errorProps, filterOptions, labelProps, onChange, readOnly, relationTo, serverURL, showError, style, value, width } = props;
15
+ const { CustomDescription, CustomError, CustomLabel, api = '/api', className, collection, descriptionProps, errorProps, filterOptions, label, labelProps, onChange, readOnly, relationTo, required, serverURL, showError, style, value, width } = props;
16
16
  const { i18n, t } = useTranslation();
17
- const [file, setFile] = useState(undefined);
17
+ const [fileDoc, setFileDoc] = useState(undefined);
18
18
  const [missingFile, setMissingFile] = useState(false);
19
19
  const [collectionSlugs] = useState([
20
20
  collection?.slug
@@ -37,15 +37,15 @@ export const UploadInput = (props)=>{
37
37
  });
38
38
  if (response.ok) {
39
39
  const json = await response.json();
40
- setFile(json);
40
+ setFileDoc(json);
41
41
  } else {
42
42
  setMissingFile(true);
43
- setFile(undefined);
43
+ setFileDoc(undefined);
44
44
  }
45
45
  };
46
46
  void fetchFile();
47
47
  } else {
48
- setFile(undefined);
48
+ setFileDoc(undefined);
49
49
  }
50
50
  }, [
51
51
  value,
@@ -90,15 +90,17 @@ export const UploadInput = (props)=>{
90
90
  ...errorProps || {}
91
91
  }), /*#__PURE__*/ React.createElement(FieldLabel, {
92
92
  CustomLabel: CustomLabel,
93
+ label: label,
94
+ required: required,
93
95
  ...labelProps || {}
94
- }), collection?.upload && /*#__PURE__*/ React.createElement(React.Fragment, null, file && !missingFile && /*#__PURE__*/ React.createElement(FileDetails, {
96
+ }), collection?.upload && /*#__PURE__*/ React.createElement(React.Fragment, null, fileDoc && !missingFile && /*#__PURE__*/ React.createElement(FileDetails, {
95
97
  collectionSlug: relationTo,
96
- doc: file,
98
+ doc: fileDoc,
97
99
  handleRemove: readOnly ? undefined : ()=>{
98
100
  onChange(null);
99
101
  },
100
102
  uploadConfig: collection.upload
101
- }), (!file || missingFile) && /*#__PURE__*/ React.createElement("div", {
103
+ }), (!fileDoc || missingFile) && /*#__PURE__*/ React.createElement("div", {
102
104
  className: `${baseClass}__wrap`
103
105
  }, /*#__PURE__*/ React.createElement("div", {
104
106
  className: `${baseClass}__buttons`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, FilterOptionsResult, UploadField } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { UploadFieldProps } from './types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { FileDetails } from '../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'upload'\n\nexport type UploadInputProps = Omit<UploadFieldProps, 'filterOptions'> & {\n api?: string\n collection?: ClientCollectionConfig\n filterOptions?: FilterOptionsResult\n onChange?: (e) => void\n relationTo?: UploadField['relationTo']\n serverURL?: string\n showError?: boolean\n value?: string\n}\n\nexport const UploadInput: React.FC<UploadInputProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n api = '/api',\n className,\n collection,\n descriptionProps,\n errorProps,\n filterOptions,\n labelProps,\n onChange,\n readOnly,\n relationTo,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const [file, setFile] = useState(undefined)\n const [missingFile, setMissingFile] = useState(false)\n const [collectionSlugs] = useState([collection?.slug])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n collectionSlug: collectionSlugs[0],\n })\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer: closeListDrawer }] = useListDrawer({\n collectionSlugs,\n filterOptions,\n })\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value !== '') {\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n if (response.ok) {\n const json = await response.json()\n setFile(json)\n } else {\n setMissingFile(true)\n setFile(undefined)\n }\n }\n\n void fetchFile()\n } else {\n setFile(undefined)\n }\n }, [value, relationTo, api, serverURL, i18n])\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setMissingFile(false)\n onChange(args.doc)\n closeDrawer()\n },\n [onChange, closeDrawer],\n )\n\n const onSelect = useCallback<ListDrawerProps['onSelect']>(\n (args) => {\n setMissingFile(false)\n onChange({\n id: args.docID,\n })\n closeListDrawer()\n },\n [onChange, closeListDrawer],\n )\n\n if (collection.upload) {\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n <FieldLabel CustomLabel={CustomLabel} {...(labelProps || {})} />\n {collection?.upload && (\n <React.Fragment>\n {file && !missingFile && (\n <FileDetails\n collectionSlug={relationTo}\n doc={file}\n handleRemove={\n readOnly\n ? undefined\n : () => {\n onChange(null)\n }\n }\n uploadConfig={collection.upload}\n />\n )}\n {(!file || missingFile) && (\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__buttons`}>\n <DocumentDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:uploadNewLabel', {\n label: getTranslation(collection.labels.singular, i18n),\n })}\n </Button>\n </DocumentDrawerToggler>\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:chooseFromExisting')}\n </Button>\n </ListDrawerToggler>\n </div>\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </React.Fragment>\n )}\n {!readOnly && <DocumentDrawer onSave={onSave} />}\n {!readOnly && <ListDrawer onSelect={onSelect} />}\n </div>\n )\n }\n\n return null\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","useCallback","useEffect","useState","Button","useDocumentDrawer","FileDetails","useListDrawer","useTranslation","fieldBaseClass","baseClass","UploadInput","props","CustomDescription","CustomError","CustomLabel","api","className","collection","descriptionProps","errorProps","filterOptions","labelProps","onChange","readOnly","relationTo","serverURL","showError","style","value","width","i18n","t","file","setFile","undefined","missingFile","setMissingFile","collectionSlugs","slug","DocumentDrawer","DocumentDrawerToggler","closeDrawer","collectionSlug","ListDrawer","ListDrawerToggler","closeListDrawer","fetchFile","response","fetch","credentials","headers","language","ok","json","onSave","args","doc","onSelect","id","docID","upload","div","filter","Boolean","join","Fragment","handleRemove","uploadConfig","disabled","buttonStyle","el","label","labels","singular"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, FilterOptionsResult, UploadField } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { UploadFieldProps } from './types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { FileDetails } from '../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'upload'\n\nexport type UploadInputProps = Omit<UploadFieldProps, 'filterOptions'> & {\n api?: string\n collection?: ClientCollectionConfig\n filterOptions?: FilterOptionsResult\n onChange?: (e) => void\n relationTo?: UploadField['relationTo']\n serverURL?: string\n showError?: boolean\n value?: string\n}\n\nexport const UploadInput: React.FC<UploadInputProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n api = '/api',\n className,\n collection,\n descriptionProps,\n errorProps,\n filterOptions,\n label,\n labelProps,\n onChange,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const [fileDoc, setFileDoc] = useState(undefined)\n const [missingFile, setMissingFile] = useState(false)\n const [collectionSlugs] = useState([collection?.slug])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n collectionSlug: collectionSlugs[0],\n })\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer: closeListDrawer }] = useListDrawer({\n collectionSlugs,\n filterOptions,\n })\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value !== '') {\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n if (response.ok) {\n const json = await response.json()\n setFileDoc(json)\n } else {\n setMissingFile(true)\n setFileDoc(undefined)\n }\n }\n\n void fetchFile()\n } else {\n setFileDoc(undefined)\n }\n }, [value, relationTo, api, serverURL, i18n])\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setMissingFile(false)\n onChange(args.doc)\n closeDrawer()\n },\n [onChange, closeDrawer],\n )\n\n const onSelect = useCallback<ListDrawerProps['onSelect']>(\n (args) => {\n setMissingFile(false)\n onChange({\n id: args.docID,\n })\n closeListDrawer()\n },\n [onChange, closeListDrawer],\n )\n\n if (collection.upload) {\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n {collection?.upload && (\n <React.Fragment>\n {fileDoc && !missingFile && (\n <FileDetails\n collectionSlug={relationTo}\n doc={fileDoc}\n handleRemove={\n readOnly\n ? undefined\n : () => {\n onChange(null)\n }\n }\n uploadConfig={collection.upload}\n />\n )}\n {(!fileDoc || missingFile) && (\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__buttons`}>\n <DocumentDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:uploadNewLabel', {\n label: getTranslation(collection.labels.singular, i18n),\n })}\n </Button>\n </DocumentDrawerToggler>\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:chooseFromExisting')}\n </Button>\n </ListDrawerToggler>\n </div>\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </React.Fragment>\n )}\n {!readOnly && <DocumentDrawer onSave={onSave} />}\n {!readOnly && <ListDrawer onSelect={onSelect} />}\n </div>\n )\n }\n\n return null\n}\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","React","useCallback","useEffect","useState","Button","useDocumentDrawer","FileDetails","useListDrawer","useTranslation","fieldBaseClass","baseClass","UploadInput","props","CustomDescription","CustomError","CustomLabel","api","className","collection","descriptionProps","errorProps","filterOptions","label","labelProps","onChange","readOnly","relationTo","required","serverURL","showError","style","value","width","i18n","t","fileDoc","setFileDoc","undefined","missingFile","setMissingFile","collectionSlugs","slug","DocumentDrawer","DocumentDrawerToggler","closeDrawer","collectionSlug","ListDrawer","ListDrawerToggler","closeListDrawer","fetchFile","response","fetch","credentials","headers","language","ok","json","onSave","args","doc","onSelect","id","docID","upload","div","filter","Boolean","join","Fragment","handleRemove","uploadConfig","disabled","buttonStyle","el","labels","singular"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6E7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAIlD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAmFhC,eAAO,MAAM,MAAM,4BAAyB,CAAA"}
@@ -1,10 +1,12 @@
1
1
  'use client';
2
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
3
+ import { withCondition } from '@payloadcms/ui/forms/withCondition';
2
4
  import React, { useCallback } from 'react';
3
5
  import { useField } from '../../forms/useField/index.js';
4
6
  import { useConfig } from '../../providers/Config/index.js';
5
7
  import { UploadInput } from './Input.js';
6
8
  export { UploadInput };
7
- export const Upload = (props)=>{
9
+ const _Upload = (props)=>{
8
10
  const { CustomDescription, CustomError, CustomLabel, className, descriptionProps, errorProps, label, labelProps, path: pathFromProps, readOnly, relationTo, required, style, validate, width } = props;
9
11
  const { collections, routes: { api }, serverURL } = useConfig();
10
12
  const collection = collections.find((coll)=>coll.slug === relationTo);
@@ -19,8 +21,9 @@ export const Upload = (props)=>{
19
21
  validate,
20
22
  required
21
23
  ]);
24
+ const { path: pathFromContext } = useFieldProps();
22
25
  const { filterOptions, path, setValue, showError, value } = useField({
23
- path: pathFromProps,
26
+ path: pathFromContext || pathFromProps,
24
27
  validate: memoizedValidate
25
28
  });
26
29
  const onChange = useCallback((incomingValue)=>{
@@ -55,5 +58,6 @@ export const Upload = (props)=>{
55
58
  }
56
59
  return null;
57
60
  };
61
+ export const Upload = withCondition(_Upload);
58
62
 
59
63
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { UploadInputProps } from './Input.js'\nimport type { UploadFieldProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadFieldProps, UploadInput }\nexport type { UploadInputProps }\n\nexport const Upload: React.FC<UploadFieldProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n readOnly,\n relationTo,\n required,\n style,\n validate,\n width,\n } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { filterOptions, path, setValue, showError, value } = useField<string>({\n path: pathFromProps,\n validate: memoizedValidate,\n })\n\n const onChange = useCallback(\n (incomingValue) => {\n const incomingID = incomingValue?.id || incomingValue\n setValue(incomingID)\n },\n [setValue],\n )\n\n if (collection.upload) {\n return (\n <UploadInput\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n api={api}\n className={className}\n collection={collection}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n filterOptions={filterOptions}\n labelProps={labelProps}\n onChange={onChange}\n path={path}\n readOnly={readOnly}\n relationTo={relationTo}\n required={required}\n serverURL={serverURL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n }\n\n return null\n}\n"],"names":["React","useCallback","useField","useConfig","UploadInput","Upload","props","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","label","labelProps","path","pathFromProps","readOnly","relationTo","required","style","validate","width","collections","routes","api","serverURL","collection","find","coll","slug","memoizedValidate","value","options","filterOptions","setValue","showError","onChange","incomingValue","incomingID","id","upload"],"mappings":"AAAA;AACA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAK1C,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,WAAW,QAAQ,aAAY;AAGxC,SAA2BA,WAAW,GAAE;AAGxC,OAAO,MAAMC,SAAqC,CAACC;IACjD,MAAM,EACJC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGhB;IAEJ,MAAM,EACJiB,WAAW,EACXC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGvB;IAEJ,MAAMwB,aAAaJ,YAAYK,IAAI,CAAC,CAACC,OAASA,KAAKC,IAAI,KAAKZ;IAE5D,MAAMa,mBAAmB9B,YACvB,CAAC+B,OAAOC;QACN,IAAI,OAAOZ,aAAa,YAAY;YAClC,OAAOA,SAASW,OAAO;gBAAE,GAAGC,OAAO;gBAAEd;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEe,aAAa,EAAEnB,IAAI,EAAEoB,QAAQ,EAAEC,SAAS,EAAEJ,KAAK,EAAE,GAAG9B,SAAiB;QAC3Ea,MAAMC;QACNK,UAAUU;IACZ;IAEA,MAAMM,WAAWpC,YACf,CAACqC;QACC,MAAMC,aAAaD,eAAeE,MAAMF;QACxCH,SAASI;IACX,GACA;QAACJ;KAAS;IAGZ,IAAIR,WAAWc,MAAM,EAAE;QACrB,qBACE,oBAACrC;YACCG,mBAAmBA;YACnBC,aAAaA;YACbC,aAAaA;YACbgB,KAAKA;YACLf,WAAWA;YACXiB,YAAYA;YACZhB,kBAAkBA;YAClBC,YAAYA;YACZsB,eAAeA;YACfpB,YAAYA;YACZuB,UAAUA;YACVtB,MAAMA;YACNE,UAAUA;YACVC,YAAYA;YACZC,UAAUA;YACVO,WAAWA;YACXU,WAAWA;YACXhB,OAAOA;YACPY,OAAOA;YACPV,OAAOA;;IAGb;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { UploadInputProps } from './Input.js'\nimport type { UploadFieldProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadFieldProps, UploadInput }\nexport type { UploadInputProps }\n\nconst _Upload: React.FC<UploadFieldProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n readOnly,\n relationTo,\n required,\n style,\n validate,\n width,\n } = props\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const { filterOptions, path, setValue, showError, value } = useField<string>({\n path: pathFromContext || pathFromProps,\n validate: memoizedValidate,\n })\n\n const onChange = useCallback(\n (incomingValue) => {\n const incomingID = incomingValue?.id || incomingValue\n setValue(incomingID)\n },\n [setValue],\n )\n\n if (collection.upload) {\n return (\n <UploadInput\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n api={api}\n className={className}\n collection={collection}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n filterOptions={filterOptions}\n labelProps={labelProps}\n onChange={onChange}\n path={path}\n readOnly={readOnly}\n relationTo={relationTo}\n required={required}\n serverURL={serverURL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n }\n\n return null\n}\n\nexport const Upload = withCondition(_Upload)\n"],"names":["useFieldProps","withCondition","React","useCallback","useField","useConfig","UploadInput","_Upload","props","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","label","labelProps","path","pathFromProps","readOnly","relationTo","required","style","validate","width","collections","routes","api","serverURL","collection","find","coll","slug","memoizedValidate","value","options","pathFromContext","filterOptions","setValue","showError","onChange","incomingValue","incomingID","id","upload","Upload"],"mappings":"AAAA;AACA,SAASA,aAAa,QAAQ,0CAAyC;AACvE,SAASC,aAAa,QAAQ,qCAAoC;AAClE,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAK1C,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,WAAW,QAAQ,aAAY;AAGxC,SAA2BA,WAAW,GAAE;AAGxC,MAAMC,UAAsC,CAACC;IAC3C,MAAM,EACJC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGhB;IAEJ,MAAM,EACJiB,WAAW,EACXC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGvB;IAEJ,MAAMwB,aAAaJ,YAAYK,IAAI,CAAC,CAACC,OAASA,KAAKC,IAAI,KAAKZ;IAE5D,MAAMa,mBAAmB9B,YACvB,CAAC+B,OAAOC;QACN,IAAI,OAAOZ,aAAa,YAAY;YAClC,OAAOA,SAASW,OAAO;gBAAE,GAAGC,OAAO;gBAAEd;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEJ,MAAMmB,eAAe,EAAE,GAAGpC;IAElC,MAAM,EAAEqC,aAAa,EAAEpB,IAAI,EAAEqB,QAAQ,EAAEC,SAAS,EAAEL,KAAK,EAAE,GAAG9B,SAAiB;QAC3Ea,MAAMmB,mBAAmBlB;QACzBK,UAAUU;IACZ;IAEA,MAAMO,WAAWrC,YACf,CAACsC;QACC,MAAMC,aAAaD,eAAeE,MAAMF;QACxCH,SAASI;IACX,GACA;QAACJ;KAAS;IAGZ,IAAIT,WAAWe,MAAM,EAAE;QACrB,qBACE,oBAACtC;YACCG,mBAAmBA;YACnBC,aAAaA;YACbC,aAAaA;YACbgB,KAAKA;YACLf,WAAWA;YACXiB,YAAYA;YACZhB,kBAAkBA;YAClBC,YAAYA;YACZuB,eAAeA;YACfrB,YAAYA;YACZwB,UAAUA;YACVvB,MAAMA;YACNE,UAAUA;YACVC,YAAYA;YACZC,UAAUA;YACVO,WAAWA;YACXW,WAAWA;YACXjB,OAAOA;YACPY,OAAOA;YACPV,OAAOA;;IAGb;IAEA,OAAO;AACT;AAEA,OAAO,MAAMqB,SAAS5C,cAAcM,SAAQ"}
@@ -1,8 +1,7 @@
1
1
  /// <reference types="react" resolution-mode="require"/>
2
2
  import type { User } from 'payload/auth';
3
3
  import type { Locale, SanitizedLocalizationConfig } from 'payload/config';
4
- import type { DocumentPreferences, ErrorProps, LabelProps, Validate } from 'payload/types';
5
- import type { FieldDescriptionProps } from '../../forms/FieldDescription/types.js';
4
+ import type { DocumentPreferences, ErrorProps, FieldDescriptionProps, LabelProps, Validate } from 'payload/types';
6
5
  export declare const fieldBaseClass = "field-type";
7
6
  export type FormFieldBase = {
8
7
  AfterInput?: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/shared/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE1F,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAElF,eAAO,MAAM,cAAc,eAAe,CAAA;AAE1C,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,cAAc,EACd,QAAQ,EACR,MAAM,EACN,kBAAkB,GACnB,EAAE;IACD,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD,WAiBA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/shared/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAA;AACzE,OAAO,KAAK,EACV,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,UAAU,EACV,QAAQ,EACT,MAAM,eAAe,CAAA;AAEtB,eAAO,MAAM,cAAc,eAAe,CAAA;AAE1C,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACnC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,qBAAqB,CAAA;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,mBAAmB,CAAA;IACpC,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,cAAc,EACd,QAAQ,EACR,MAAM,EACN,kBAAkB,GACnB,EAAE;IACD,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD,WAiBA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/shared/index.tsx"],"sourcesContent":["import type { User } from 'payload/auth'\nimport type { Locale, SanitizedLocalizationConfig } from 'payload/config'\nimport type { DocumentPreferences, ErrorProps, LabelProps, Validate } from 'payload/types'\n\nimport type { FieldDescriptionProps } from '../../forms/FieldDescription/types.js'\n\nexport const fieldBaseClass = 'field-type'\n\nexport type FormFieldBase = {\n AfterInput?: React.ReactNode\n BeforeInput?: React.ReactNode\n CustomDescription?: React.ReactNode\n CustomError?: React.ReactNode\n CustomLabel?: React.ReactNode\n className?: string\n descriptionProps?: FieldDescriptionProps\n disabled?: boolean\n docPreferences?: DocumentPreferences\n errorProps?: ErrorProps\n labelProps?: LabelProps\n locale?: Locale\n localized?: boolean\n path?: string\n readOnly?: boolean\n required?: boolean\n rtl?: boolean\n style?: React.CSSProperties\n user?: User\n validate?: Validate\n}\n\n/**\n * Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.\n\n * @returns Whether the field should be displayed as RTL.\n */\nexport function isFieldRTL({\n fieldLocalized,\n fieldRTL,\n locale,\n localizationConfig,\n}: {\n fieldLocalized: boolean\n fieldRTL: boolean\n locale: Locale\n localizationConfig?: SanitizedLocalizationConfig\n}) {\n const hasMultipleLocales =\n locale &&\n localizationConfig &&\n localizationConfig.locales &&\n localizationConfig.locales.length > 1\n\n const isCurrentLocaleDefaultLocale = locale?.code === localizationConfig?.defaultLocale\n\n return (\n (fieldRTL !== false &&\n locale?.rtl === true &&\n (fieldLocalized ||\n (!fieldLocalized && !hasMultipleLocales) || // If there is only one locale which is also rtl, that field is rtl too\n (!fieldLocalized && isCurrentLocaleDefaultLocale))) || // If the current locale is the default locale, but the field is not localized, that field is rtl too\n fieldRTL === true\n ) // If fieldRTL is true. This should be useful for when no localization is set at all in the payload config, but you still want fields to be rtl.\n}\n"],"names":["fieldBaseClass","isFieldRTL","fieldLocalized","fieldRTL","locale","localizationConfig","hasMultipleLocales","locales","length","isCurrentLocaleDefaultLocale","code","defaultLocale","rtl"],"mappings":"AAMA,OAAO,MAAMA,iBAAiB,aAAY;AAyB1C;;;;CAIC,GACD,OAAO,SAASC,WAAW,EACzBC,cAAc,EACdC,QAAQ,EACRC,MAAM,EACNC,kBAAkB,EAMnB;IACC,MAAMC,qBACJF,UACAC,sBACAA,mBAAmBE,OAAO,IAC1BF,mBAAmBE,OAAO,CAACC,MAAM,GAAG;IAEtC,MAAMC,+BAA+BL,QAAQM,SAASL,oBAAoBM;IAE1E,OACE,AAACR,aAAa,SACZC,QAAQQ,QAAQ,QACfV,CAAAA,kBACE,CAACA,kBAAkB,CAACI,sBAAuB,uEAAuE;IAClH,CAACJ,kBAAkBO,4BAA4B,KAAO,qGAAqG;IAChKN,aAAa,KACb,gJAAgJ;;AACpJ"}
1
+ {"version":3,"sources":["../../../src/fields/shared/index.tsx"],"sourcesContent":["import type { User } from 'payload/auth'\nimport type { Locale, SanitizedLocalizationConfig } from 'payload/config'\nimport type {\n DocumentPreferences,\n ErrorProps,\n FieldDescriptionProps,\n LabelProps,\n Validate,\n} from 'payload/types'\n\nexport const fieldBaseClass = 'field-type'\n\nexport type FormFieldBase = {\n AfterInput?: React.ReactNode\n BeforeInput?: React.ReactNode\n CustomDescription?: React.ReactNode\n CustomError?: React.ReactNode\n CustomLabel?: React.ReactNode\n className?: string\n descriptionProps?: FieldDescriptionProps\n disabled?: boolean\n docPreferences?: DocumentPreferences\n errorProps?: ErrorProps\n labelProps?: LabelProps\n locale?: Locale\n localized?: boolean\n path?: string\n readOnly?: boolean\n required?: boolean\n rtl?: boolean\n style?: React.CSSProperties\n user?: User\n validate?: Validate\n}\n\n/**\n * Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.\n\n * @returns Whether the field should be displayed as RTL.\n */\nexport function isFieldRTL({\n fieldLocalized,\n fieldRTL,\n locale,\n localizationConfig,\n}: {\n fieldLocalized: boolean\n fieldRTL: boolean\n locale: Locale\n localizationConfig?: SanitizedLocalizationConfig\n}) {\n const hasMultipleLocales =\n locale &&\n localizationConfig &&\n localizationConfig.locales &&\n localizationConfig.locales.length > 1\n\n const isCurrentLocaleDefaultLocale = locale?.code === localizationConfig?.defaultLocale\n\n return (\n (fieldRTL !== false &&\n locale?.rtl === true &&\n (fieldLocalized ||\n (!fieldLocalized && !hasMultipleLocales) || // If there is only one locale which is also rtl, that field is rtl too\n (!fieldLocalized && isCurrentLocaleDefaultLocale))) || // If the current locale is the default locale, but the field is not localized, that field is rtl too\n fieldRTL === true\n ) // If fieldRTL is true. This should be useful for when no localization is set at all in the payload config, but you still want fields to be rtl.\n}\n"],"names":["fieldBaseClass","isFieldRTL","fieldLocalized","fieldRTL","locale","localizationConfig","hasMultipleLocales","locales","length","isCurrentLocaleDefaultLocale","code","defaultLocale","rtl"],"mappings":"AAUA,OAAO,MAAMA,iBAAiB,aAAY;AAyB1C;;;;CAIC,GACD,OAAO,SAASC,WAAW,EACzBC,cAAc,EACdC,QAAQ,EACRC,MAAM,EACNC,kBAAkB,EAMnB;IACC,MAAMC,qBACJF,UACAC,sBACAA,mBAAmBE,OAAO,IAC1BF,mBAAmBE,OAAO,CAACC,MAAM,GAAG;IAEtC,MAAMC,+BAA+BL,QAAQM,SAASL,oBAAoBM;IAE1E,OACE,AAACR,aAAa,SACZC,QAAQQ,QAAQ,QACfV,CAAAA,kBACE,CAACA,kBAAkB,CAACI,sBAAuB,uEAAuE;IAClH,CAACJ,kBAAkBO,4BAA4B,KAAO,qGAAqG;IAChKN,aAAa,KACb,gJAAgJ;;AACpJ"}
@@ -1,6 +1,5 @@
1
+ import type { FieldDescriptionProps } from 'payload/types';
1
2
  import React from 'react';
2
- import type { FieldDescriptionProps } from './types.js';
3
3
  import './index.scss';
4
- export { FieldDescriptionProps };
5
4
  export declare const FieldDescription: React.FC<FieldDescriptionProps>;
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/FieldDescription/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAIvD,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,qBAAqB,EAAE,CAAA;AA+BhC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAQ5D,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/FieldDescription/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAG1D,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AA+BrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAQ5D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/FieldDescription/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { FieldDescriptionProps } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport './index.scss'\n\nexport { FieldDescriptionProps }\n\nconst baseClass = 'field-description'\n\nconst DefaultFieldDescription: React.FC<FieldDescriptionProps> = (props) => {\n const { className, description, marginPlacement } = props\n\n const { path } = useFieldProps()\n\n const { i18n } = useTranslation()\n\n if (description) {\n return (\n <div\n className={[\n baseClass,\n className,\n `field-description-${path.replace(/\\./g, '__')}`,\n marginPlacement && `${baseClass}--margin-${marginPlacement}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {getTranslation(description, i18n)}\n </div>\n )\n }\n\n return null\n}\n\nexport const FieldDescription: React.FC<FieldDescriptionProps> = (props) => {\n const { CustomDescription } = props\n\n if (CustomDescription !== undefined) {\n return CustomDescription\n }\n\n return <DefaultFieldDescription {...props} />\n}\n"],"names":["getTranslation","React","useTranslation","useFieldProps","baseClass","DefaultFieldDescription","props","className","description","marginPlacement","path","i18n","div","replace","filter","Boolean","join","FieldDescription","CustomDescription","undefined"],"mappings":"AAAA;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,aAAa,QAAQ,iCAAgC;AAK9D,MAAMC,YAAY;AAElB,MAAMC,0BAA2D,CAACC;IAChE,MAAM,EAAEC,SAAS,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGH;IAEpD,MAAM,EAAEI,IAAI,EAAE,GAAGP;IAEjB,MAAM,EAAEQ,IAAI,EAAE,GAAGT;IAEjB,IAAIM,aAAa;QACf,qBACE,oBAACI;YACCL,WAAW;gBACTH;gBACAG;gBACA,CAAC,kBAAkB,EAAEG,KAAKG,OAAO,CAAC,OAAO,MAAM,CAAC;gBAChDJ,mBAAmB,CAAC,EAAEL,UAAU,SAAS,EAAEK,gBAAgB,CAAC;aAC7D,CACEK,MAAM,CAACC,SACPC,IAAI,CAAC;WAEPhB,eAAeQ,aAAaG;IAGnC;IAEA,OAAO;AACT;AAEA,OAAO,MAAMM,mBAAoD,CAACX;IAChE,MAAM,EAAEY,iBAAiB,EAAE,GAAGZ;IAE9B,IAAIY,sBAAsBC,WAAW;QACnC,OAAOD;IACT;IAEA,qBAAO,oBAACb,yBAA4BC;AACtC,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/FieldDescription/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldDescriptionProps } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-description'\n\nconst DefaultFieldDescription: React.FC<FieldDescriptionProps> = (props) => {\n const { className, description, marginPlacement } = props\n\n const { path } = useFieldProps()\n\n const { i18n } = useTranslation()\n\n if (description) {\n return (\n <div\n className={[\n baseClass,\n className,\n `field-description-${path.replace(/\\./g, '__')}`,\n marginPlacement && `${baseClass}--margin-${marginPlacement}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n {getTranslation(description, i18n)}\n </div>\n )\n }\n\n return null\n}\n\nexport const FieldDescription: React.FC<FieldDescriptionProps> = (props) => {\n const { CustomDescription } = props\n\n if (CustomDescription !== undefined) {\n return CustomDescription\n }\n\n return <DefaultFieldDescription {...props} />\n}\n"],"names":["getTranslation","React","useTranslation","useFieldProps","baseClass","DefaultFieldDescription","props","className","description","marginPlacement","path","i18n","div","replace","filter","Boolean","join","FieldDescription","CustomDescription","undefined"],"mappings":"AAAA;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAEzB,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,aAAa,QAAQ,iCAAgC;AAG9D,MAAMC,YAAY;AAElB,MAAMC,0BAA2D,CAACC;IAChE,MAAM,EAAEC,SAAS,EAAEC,WAAW,EAAEC,eAAe,EAAE,GAAGH;IAEpD,MAAM,EAAEI,IAAI,EAAE,GAAGP;IAEjB,MAAM,EAAEQ,IAAI,EAAE,GAAGT;IAEjB,IAAIM,aAAa;QACf,qBACE,oBAACI;YACCL,WAAW;gBACTH;gBACAG;gBACA,CAAC,kBAAkB,EAAEG,KAAKG,OAAO,CAAC,OAAO,MAAM,CAAC;gBAChDJ,mBAAmB,CAAC,EAAEL,UAAU,SAAS,EAAEK,gBAAgB,CAAC;aAC7D,CACEK,MAAM,CAACC,SACPC,IAAI,CAAC;WAEPhB,eAAeQ,aAAaG;IAGnC;IAEA,OAAO;AACT;AAEA,OAAO,MAAMM,mBAAoD,CAACX;IAChE,MAAM,EAAEY,iBAAiB,EAAE,GAAGZ;IAE9B,IAAIY,sBAAsBC,WAAW;QACnC,OAAOD;IACT;IAEA,qBAAO,oBAACb,yBAA4BC;AACtC,EAAC"}
@@ -12,7 +12,7 @@ const DefaultFieldError = (props)=>{
12
12
  const field = useFormFields(([fields])=>fields && fields?.[path] || null);
13
13
  const { errorMessage, valid } = field || {};
14
14
  const message = messageFromProps || errorMessage;
15
- const showMessage = showErrorFromProps || hasSubmitted && !valid;
15
+ const showMessage = showErrorFromProps || hasSubmitted && valid === false;
16
16
  if (showMessage) {
17
17
  return /*#__PURE__*/ React.createElement(Tooltip, {
18
18
  alignCaret: alignCaret,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/forms/FieldError/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ErrorProps } from 'payload/types'\n\nimport React from 'react'\n\nimport { Tooltip } from '../../elements/Tooltip/index.js'\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport { useFormFields, useFormSubmitted } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'field-error'\n\nconst DefaultFieldError: React.FC<ErrorProps> = (props) => {\n const {\n alignCaret = 'right',\n message: messageFromProps,\n path: pathFromProps,\n showError: showErrorFromProps,\n } = props\n\n const { path: pathFromContext } = useFieldProps()\n const path = pathFromContext || pathFromProps\n\n const hasSubmitted = useFormSubmitted()\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { errorMessage, valid } = field || {}\n\n const message = messageFromProps || errorMessage\n const showMessage = showErrorFromProps || (hasSubmitted && !valid)\n\n if (showMessage) {\n return (\n <Tooltip alignCaret={alignCaret} className={baseClass} delay={0}>\n {message}\n </Tooltip>\n )\n }\n\n return null\n}\n\nexport const FieldError: React.FC<ErrorProps> = (props) => {\n const { CustomError } = props\n\n if (CustomError !== undefined) {\n return CustomError\n }\n\n return <DefaultFieldError {...props} />\n}\n"],"names":["React","Tooltip","useFieldProps","useFormFields","useFormSubmitted","baseClass","DefaultFieldError","props","alignCaret","message","messageFromProps","path","pathFromProps","showError","showErrorFromProps","pathFromContext","hasSubmitted","field","fields","errorMessage","valid","showMessage","className","delay","FieldError","CustomError","undefined"],"mappings":"AAAA;AAIA,OAAOA,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,kCAAiC;AACzD,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,qBAAoB;AAGpE,MAAMC,YAAY;AAElB,MAAMC,oBAA0C,CAACC;IAC/C,MAAM,EACJC,aAAa,OAAO,EACpBC,SAASC,gBAAgB,EACzBC,MAAMC,aAAa,EACnBC,WAAWC,kBAAkB,EAC9B,GAAGP;IAEJ,MAAM,EAAEI,MAAMI,eAAe,EAAE,GAAGb;IAClC,MAAMS,OAAOI,mBAAmBH;IAEhC,MAAMI,eAAeZ;IACrB,MAAMa,QAAQd,cAAc,CAAC,CAACe,OAAO,GAAK,AAACA,UAAUA,QAAQ,CAACP,KAAK,IAAK;IAExE,MAAM,EAAEQ,YAAY,EAAEC,KAAK,EAAE,GAAGH,SAAS,CAAC;IAE1C,MAAMR,UAAUC,oBAAoBS;IACpC,MAAME,cAAcP,sBAAuBE,gBAAgB,CAACI;IAE5D,IAAIC,aAAa;QACf,qBACE,oBAACpB;YAAQO,YAAYA;YAAYc,WAAWjB;YAAWkB,OAAO;WAC3Dd;IAGP;IAEA,OAAO;AACT;AAEA,OAAO,MAAMe,aAAmC,CAACjB;IAC/C,MAAM,EAAEkB,WAAW,EAAE,GAAGlB;IAExB,IAAIkB,gBAAgBC,WAAW;QAC7B,OAAOD;IACT;IAEA,qBAAO,oBAACnB,mBAAsBC;AAChC,EAAC"}
1
+ {"version":3,"sources":["../../../src/forms/FieldError/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ErrorProps } from 'payload/types'\n\nimport React from 'react'\n\nimport { Tooltip } from '../../elements/Tooltip/index.js'\nimport { useFieldProps } from '../FieldPropsProvider/index.js'\nimport { useFormFields, useFormSubmitted } from '../Form/context.js'\nimport './index.scss'\n\nconst baseClass = 'field-error'\n\nconst DefaultFieldError: React.FC<ErrorProps> = (props) => {\n const {\n alignCaret = 'right',\n message: messageFromProps,\n path: pathFromProps,\n showError: showErrorFromProps,\n } = props\n\n const { path: pathFromContext } = useFieldProps()\n const path = pathFromContext || pathFromProps\n\n const hasSubmitted = useFormSubmitted()\n const field = useFormFields(([fields]) => (fields && fields?.[path]) || null)\n\n const { errorMessage, valid } = field || {}\n\n const message = messageFromProps || errorMessage\n const showMessage = showErrorFromProps || (hasSubmitted && valid === false)\n\n if (showMessage) {\n return (\n <Tooltip alignCaret={alignCaret} className={baseClass} delay={0}>\n {message}\n </Tooltip>\n )\n }\n\n return null\n}\n\nexport const FieldError: React.FC<ErrorProps> = (props) => {\n const { CustomError } = props\n\n if (CustomError !== undefined) {\n return CustomError\n }\n\n return <DefaultFieldError {...props} />\n}\n"],"names":["React","Tooltip","useFieldProps","useFormFields","useFormSubmitted","baseClass","DefaultFieldError","props","alignCaret","message","messageFromProps","path","pathFromProps","showError","showErrorFromProps","pathFromContext","hasSubmitted","field","fields","errorMessage","valid","showMessage","className","delay","FieldError","CustomError","undefined"],"mappings":"AAAA;AAIA,OAAOA,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,kCAAiC;AACzD,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,aAAa,EAAEC,gBAAgB,QAAQ,qBAAoB;AAGpE,MAAMC,YAAY;AAElB,MAAMC,oBAA0C,CAACC;IAC/C,MAAM,EACJC,aAAa,OAAO,EACpBC,SAASC,gBAAgB,EACzBC,MAAMC,aAAa,EACnBC,WAAWC,kBAAkB,EAC9B,GAAGP;IAEJ,MAAM,EAAEI,MAAMI,eAAe,EAAE,GAAGb;IAClC,MAAMS,OAAOI,mBAAmBH;IAEhC,MAAMI,eAAeZ;IACrB,MAAMa,QAAQd,cAAc,CAAC,CAACe,OAAO,GAAK,AAACA,UAAUA,QAAQ,CAACP,KAAK,IAAK;IAExE,MAAM,EAAEQ,YAAY,EAAEC,KAAK,EAAE,GAAGH,SAAS,CAAC;IAE1C,MAAMR,UAAUC,oBAAoBS;IACpC,MAAME,cAAcP,sBAAuBE,gBAAgBI,UAAU;IAErE,IAAIC,aAAa;QACf,qBACE,oBAACpB;YAAQO,YAAYA;YAAYc,WAAWjB;YAAWkB,OAAO;WAC3Dd;IAGP;IAEA,OAAO;AACT;AAEA,OAAO,MAAMe,aAAmC,CAACjB;IAC/C,MAAM,EAAEkB,WAAW,EAAE,GAAGlB;IAExB,IAAIkB,gBAAgBC,WAAW;QAC7B,OAAOD;IACT;IAEA,qBAAO,oBAACnB,mBAAsBC;AAChC,EAAC"}