@payloadcms/ui 3.0.0-canary.926cbeb → 3.0.0-canary.95fcd13

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 (688) hide show
  1. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  2. package/dist/elements/AppHeader/index.js +5 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -1
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +1 -1
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/ArrayAction/index.scss +0 -13
  9. package/dist/elements/Autosave/index.d.ts.map +1 -1
  10. package/dist/elements/Autosave/index.js +53 -28
  11. package/dist/elements/Autosave/index.js.map +1 -1
  12. package/dist/elements/Banner/index.scss +5 -5
  13. package/dist/elements/Button/index.js +1 -1
  14. package/dist/elements/Button/index.js.map +1 -1
  15. package/dist/elements/Button/index.scss +112 -118
  16. package/dist/elements/Button/types.d.ts +1 -1
  17. package/dist/elements/Button/types.d.ts.map +1 -1
  18. package/dist/elements/Button/types.js.map +1 -1
  19. package/dist/elements/Card/index.scss +38 -9
  20. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  21. package/dist/elements/CodeEditor/CodeEditor.js +2 -1
  22. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  23. package/dist/elements/CodeEditor/types.d.ts +2 -2
  24. package/dist/elements/CodeEditor/types.d.ts.map +1 -1
  25. package/dist/elements/CodeEditor/types.js.map +1 -1
  26. package/dist/elements/Collapsible/index.d.ts +1 -1
  27. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  28. package/dist/elements/Collapsible/index.js +1 -1
  29. package/dist/elements/Collapsible/index.js.map +1 -1
  30. package/dist/elements/Collapsible/index.scss +74 -77
  31. package/dist/elements/ColumnSelector/index.scss +20 -2
  32. package/dist/elements/DatePicker/index.scss +3 -1
  33. package/dist/elements/DatePicker/types.d.ts +2 -2
  34. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  35. package/dist/elements/DatePicker/types.js.map +1 -1
  36. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  37. package/dist/elements/DeleteDocument/index.js +7 -3
  38. package/dist/elements/DeleteDocument/index.js.map +1 -1
  39. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  40. package/dist/elements/DeleteMany/index.js +4 -2
  41. package/dist/elements/DeleteMany/index.js.map +1 -1
  42. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  43. package/dist/elements/DocumentControls/index.js +5 -1
  44. package/dist/elements/DocumentControls/index.js.map +1 -1
  45. package/dist/elements/DocumentControls/index.scss +2 -2
  46. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  47. package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
  48. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  49. package/dist/elements/DocumentDrawer/index.scss +4 -6
  50. package/dist/elements/DocumentDrawer/types.d.ts +4 -4
  51. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  52. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  53. package/dist/elements/DocumentFields/index.d.ts +1 -2
  54. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  55. package/dist/elements/DocumentFields/index.js +46 -48
  56. package/dist/elements/DocumentFields/index.js.map +1 -1
  57. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts +2 -2
  58. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  59. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +4 -2
  60. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  61. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +4 -4
  62. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  63. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  64. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  65. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +10 -4
  66. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  67. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  68. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  69. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  70. package/dist/elements/Drawer/index.d.ts.map +1 -1
  71. package/dist/elements/Drawer/index.js +3 -0
  72. package/dist/elements/Drawer/index.js.map +1 -1
  73. package/dist/elements/Drawer/index.scss +13 -8
  74. package/dist/elements/Drawer/types.d.ts +2 -2
  75. package/dist/elements/Drawer/types.d.ts.map +1 -1
  76. package/dist/elements/Drawer/types.js.map +1 -1
  77. package/dist/elements/Dropzone/index.d.ts +1 -0
  78. package/dist/elements/Dropzone/index.d.ts.map +1 -1
  79. package/dist/elements/Dropzone/index.js +9 -2
  80. package/dist/elements/Dropzone/index.js.map +1 -1
  81. package/dist/elements/Dropzone/index.scss +7 -3
  82. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  83. package/dist/elements/DuplicateDocument/index.js +10 -6
  84. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  85. package/dist/elements/EditMany/index.d.ts +1 -2
  86. package/dist/elements/EditMany/index.d.ts.map +1 -1
  87. package/dist/elements/EditMany/index.js.map +1 -1
  88. package/dist/elements/EditMany/index.scss +2 -2
  89. package/dist/elements/EditUpload/index.d.ts +3 -6
  90. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  91. package/dist/elements/EditUpload/index.js +20 -25
  92. package/dist/elements/EditUpload/index.js.map +1 -1
  93. package/dist/elements/EditUpload/index.scss +4 -1
  94. package/dist/elements/ErrorPill/index.scss +2 -14
  95. package/dist/elements/FieldSelect/index.d.ts +1 -2
  96. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  97. package/dist/elements/FieldSelect/index.js.map +1 -1
  98. package/dist/elements/FileDetails/FileMeta/index.scss +1 -0
  99. package/dist/elements/FileDetails/index.d.ts +2 -2
  100. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  101. package/dist/elements/FileDetails/index.js +3 -1
  102. package/dist/elements/FileDetails/index.js.map +1 -1
  103. package/dist/elements/FileDetails/index.scss +28 -12
  104. package/dist/elements/GenerateConfirmation/index.scss +1 -0
  105. package/dist/elements/Hamburger/index.d.ts.map +1 -1
  106. package/dist/elements/Hamburger/index.js +17 -41
  107. package/dist/elements/Hamburger/index.js.map +1 -1
  108. package/dist/elements/Hamburger/index.scss +22 -102
  109. package/dist/elements/IDLabel/index.js +1 -1
  110. package/dist/elements/IDLabel/index.js.map +1 -1
  111. package/dist/elements/IDLabel/index.scss +2 -2
  112. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  113. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  114. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  115. package/dist/elements/ListControls/index.d.ts +1 -2
  116. package/dist/elements/ListControls/index.d.ts.map +1 -1
  117. package/dist/elements/ListControls/index.js +43 -4
  118. package/dist/elements/ListControls/index.js.map +1 -1
  119. package/dist/elements/ListControls/index.scss +6 -12
  120. package/dist/elements/ListDrawer/types.d.ts +2 -2
  121. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  122. package/dist/elements/ListDrawer/types.js.map +1 -1
  123. package/dist/elements/Localizer/index.d.ts.map +1 -1
  124. package/dist/elements/Localizer/index.js +6 -13
  125. package/dist/elements/Localizer/index.js.map +1 -1
  126. package/dist/elements/Logout/index.d.ts.map +1 -1
  127. package/dist/elements/Logout/index.js +7 -2
  128. package/dist/elements/Logout/index.js.map +1 -1
  129. package/dist/elements/NavGroup/index.scss +2 -2
  130. package/dist/elements/Pill/index.d.ts +2 -2
  131. package/dist/elements/Pill/index.d.ts.map +1 -1
  132. package/dist/elements/Pill/index.js +1 -5
  133. package/dist/elements/Pill/index.js.map +1 -1
  134. package/dist/elements/Pill/index.scss +17 -42
  135. package/dist/elements/Popup/index.scss +6 -0
  136. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  137. package/dist/elements/PreviewButton/index.js +3 -1
  138. package/dist/elements/PreviewButton/index.js.map +1 -1
  139. package/dist/elements/PreviewSizes/index.d.ts +4 -4
  140. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  141. package/dist/elements/PreviewSizes/index.js.map +1 -1
  142. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  143. package/dist/elements/PublishButton/index.js +17 -1
  144. package/dist/elements/PublishButton/index.js.map +1 -1
  145. package/dist/elements/ReactSelect/Control/index.js +0 -1
  146. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  147. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -2
  148. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  149. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  150. package/dist/elements/ReactSelect/MultiValue/index.scss +25 -3
  151. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +1 -1
  152. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts +2 -2
  153. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  154. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  155. package/dist/elements/ReactSelect/MultiValueRemove/index.scss +3 -3
  156. package/dist/elements/ReactSelect/ValueContainer/index.scss +4 -11
  157. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  158. package/dist/elements/ReactSelect/index.js +0 -1
  159. package/dist/elements/ReactSelect/index.js.map +1 -1
  160. package/dist/elements/ReactSelect/index.scss +11 -5
  161. package/dist/elements/ReactSelect/types.d.ts +1 -1
  162. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  163. package/dist/elements/ReactSelect/types.js.map +1 -1
  164. package/dist/elements/RenderTitle/index.scss +1 -1
  165. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  166. package/dist/elements/SaveButton/index.js +4 -2
  167. package/dist/elements/SaveButton/index.js.map +1 -1
  168. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  169. package/dist/elements/SaveDraftButton/index.js +4 -2
  170. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  171. package/dist/elements/SearchFilter/index.d.ts +5 -3
  172. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  173. package/dist/elements/SearchFilter/index.js +20 -63
  174. package/dist/elements/SearchFilter/index.js.map +1 -1
  175. package/dist/elements/SearchFilter/index.scss +2 -1
  176. package/dist/elements/SelectRow/index.scss +1 -0
  177. package/dist/elements/SortColumn/index.d.ts +2 -2
  178. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  179. package/dist/elements/SortColumn/index.js +4 -4
  180. package/dist/elements/SortColumn/index.js.map +1 -1
  181. package/dist/elements/SortComplex/index.js +1 -1
  182. package/dist/elements/SortComplex/index.js.map +1 -1
  183. package/dist/elements/Status/index.scss +1 -0
  184. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  185. package/dist/elements/StayLoggedIn/index.js +8 -2
  186. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  187. package/dist/elements/StepNav/types.d.ts +2 -2
  188. package/dist/elements/StepNav/types.d.ts.map +1 -1
  189. package/dist/elements/StepNav/types.js.map +1 -1
  190. package/dist/elements/Table/DefaultCell/fields/Code/index.scss +1 -1
  191. package/dist/elements/Table/DefaultCell/fields/JSON/index.scss +1 -1
  192. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  193. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -4
  194. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  195. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  196. package/dist/elements/Table/DefaultCell/index.js +5 -1
  197. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  198. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  199. package/dist/elements/Table/index.d.ts +1 -2
  200. package/dist/elements/Table/index.d.ts.map +1 -1
  201. package/dist/elements/Table/index.js.map +1 -1
  202. package/dist/elements/Table/index.scss +10 -1
  203. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  204. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  205. package/dist/elements/TableColumns/buildColumnState.js +0 -1
  206. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  207. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  208. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  209. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  210. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  211. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  212. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  213. package/dist/elements/ThumbnailCard/index.d.ts +2 -2
  214. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  215. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  216. package/dist/elements/ThumbnailCard/index.scss +10 -1
  217. package/dist/elements/Upload/index.d.ts.map +1 -1
  218. package/dist/elements/Upload/index.js +106 -35
  219. package/dist/elements/Upload/index.js.map +1 -1
  220. package/dist/elements/Upload/index.scss +8 -4
  221. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  222. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +12 -6
  223. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  224. package/dist/elements/WhereBuilder/Condition/Relationship/index.scss +2 -2
  225. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  226. package/dist/elements/WhereBuilder/Condition/index.js +4 -2
  227. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  228. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  229. package/dist/elements/WhereBuilder/index.js +16 -8
  230. package/dist/elements/WhereBuilder/index.js.map +1 -1
  231. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +13 -2
  232. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  233. package/dist/elements/WhereBuilder/reduceFieldMap.js +52 -6
  234. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  235. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  236. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  237. package/dist/elements/WhereBuilder/types.js.map +1 -1
  238. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -1
  239. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  240. package/dist/elements/withMergedProps/index.js +8 -2
  241. package/dist/elements/withMergedProps/index.js.map +1 -1
  242. package/dist/exports/client/{CodeEditor-UTZFZWZG.js → CodeEditor-UPOVAXRP.js} +2 -2
  243. package/dist/exports/client/{CodeEditor-UTZFZWZG.js.map → CodeEditor-UPOVAXRP.js.map} +3 -3
  244. package/dist/exports/client/{DatePicker-BN5AOAME.js → DatePicker-XJHHMZP7.js} +2 -2
  245. package/dist/exports/client/chunk-TIH7OFW3.js +30 -0
  246. package/dist/exports/client/{chunk-3X2D2TP2.js.map → chunk-TIH7OFW3.js.map} +4 -4
  247. package/dist/exports/client/index.d.ts +7 -7
  248. package/dist/exports/client/index.d.ts.map +1 -1
  249. package/dist/exports/client/index.js +20 -33
  250. package/dist/exports/client/index.js.map +4 -4
  251. package/dist/exports/shared/index.d.ts +1 -1
  252. package/dist/exports/shared/index.d.ts.map +1 -1
  253. package/dist/exports/shared/index.js +2 -12
  254. package/dist/exports/shared/index.js.map +4 -4
  255. package/dist/fields/Array/ArrayRow.d.ts +4 -5
  256. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  257. package/dist/fields/Array/ArrayRow.js +4 -2
  258. package/dist/fields/Array/ArrayRow.js.map +1 -1
  259. package/dist/fields/Array/index.d.ts +2 -15
  260. package/dist/fields/Array/index.d.ts.map +1 -1
  261. package/dist/fields/Array/index.js +25 -8
  262. package/dist/fields/Array/index.js.map +1 -1
  263. package/dist/fields/Array/index.scss +3 -1
  264. package/dist/fields/Blocks/BlockRow.d.ts +4 -5
  265. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  266. package/dist/fields/Blocks/BlockRow.js +5 -1
  267. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  268. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.scss +3 -4
  269. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  270. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  271. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  272. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  273. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  274. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  275. package/dist/fields/Blocks/RowActions.js +1 -1
  276. package/dist/fields/Blocks/RowActions.js.map +1 -1
  277. package/dist/fields/Blocks/SectionTitle/index.scss +1 -0
  278. package/dist/fields/Blocks/index.d.ts +1 -14
  279. package/dist/fields/Blocks/index.d.ts.map +1 -1
  280. package/dist/fields/Blocks/index.js +22 -9
  281. package/dist/fields/Blocks/index.js.map +1 -1
  282. package/dist/fields/Checkbox/Input.d.ts +1 -1
  283. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  284. package/dist/fields/Checkbox/Input.js.map +1 -1
  285. package/dist/fields/Checkbox/index.d.ts +1 -1
  286. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  287. package/dist/fields/Checkbox/index.js +4 -3
  288. package/dist/fields/Checkbox/index.js.map +1 -1
  289. package/dist/fields/Checkbox/index.scss +9 -9
  290. package/dist/fields/Code/index.d.ts +1 -9
  291. package/dist/fields/Code/index.d.ts.map +1 -1
  292. package/dist/fields/Code/index.js +3 -3
  293. package/dist/fields/Code/index.js.map +1 -1
  294. package/dist/fields/Code/index.scss +6 -18
  295. package/dist/fields/Collapsible/index.d.ts +1 -7
  296. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  297. package/dist/fields/Collapsible/index.js +2 -2
  298. package/dist/fields/Collapsible/index.js.map +1 -1
  299. package/dist/fields/Collapsible/index.scss +0 -4
  300. package/dist/fields/ConfirmPassword/index.d.ts +1 -0
  301. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  302. package/dist/fields/ConfirmPassword/index.js +12 -19
  303. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  304. package/dist/fields/DateTime/index.d.ts +1 -9
  305. package/dist/fields/DateTime/index.d.ts.map +1 -1
  306. package/dist/fields/DateTime/index.js +3 -3
  307. package/dist/fields/DateTime/index.js.map +1 -1
  308. package/dist/fields/Email/index.d.ts +1 -9
  309. package/dist/fields/Email/index.d.ts.map +1 -1
  310. package/dist/fields/Email/index.js +2 -2
  311. package/dist/fields/Email/index.js.map +1 -1
  312. package/dist/fields/FieldDescription/index.d.ts +2 -2
  313. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  314. package/dist/fields/FieldDescription/index.js.map +1 -1
  315. package/dist/fields/FieldError/index.d.ts +2 -2
  316. package/dist/fields/FieldError/index.d.ts.map +1 -1
  317. package/dist/fields/FieldError/index.js.map +1 -1
  318. package/dist/fields/FieldError/index.scss +6 -5
  319. package/dist/fields/FieldLabel/index.d.ts +2 -2
  320. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  321. package/dist/fields/FieldLabel/index.js.map +1 -1
  322. package/dist/fields/Group/index.d.ts +2 -10
  323. package/dist/fields/Group/index.d.ts.map +1 -1
  324. package/dist/fields/Group/index.js +2 -2
  325. package/dist/fields/Group/index.js.map +1 -1
  326. package/dist/fields/Hidden/index.d.ts +2 -9
  327. package/dist/fields/Hidden/index.d.ts.map +1 -1
  328. package/dist/fields/Hidden/index.js +2 -2
  329. package/dist/fields/Hidden/index.js.map +1 -1
  330. package/dist/fields/JSON/index.d.ts +1 -9
  331. package/dist/fields/JSON/index.d.ts.map +1 -1
  332. package/dist/fields/JSON/index.js +2 -7
  333. package/dist/fields/JSON/index.js.map +1 -1
  334. package/dist/fields/JSON/index.scss +6 -25
  335. package/dist/fields/Number/index.d.ts +1 -14
  336. package/dist/fields/Number/index.d.ts.map +1 -1
  337. package/dist/fields/Number/index.js +3 -5
  338. package/dist/fields/Number/index.js.map +1 -1
  339. package/dist/fields/Password/index.d.ts +14 -4
  340. package/dist/fields/Password/index.d.ts.map +1 -1
  341. package/dist/fields/Password/index.js +58 -45
  342. package/dist/fields/Password/index.js.map +1 -1
  343. package/dist/fields/Password/input.d.ts +5 -0
  344. package/dist/fields/Password/input.d.ts.map +1 -0
  345. package/dist/fields/Password/input.js +65 -0
  346. package/dist/fields/Password/input.js.map +1 -0
  347. package/dist/fields/Password/types.d.ts +27 -0
  348. package/dist/fields/Password/types.d.ts.map +1 -0
  349. package/dist/fields/Password/types.js.map +1 -0
  350. package/dist/fields/Point/index.d.ts +2 -9
  351. package/dist/fields/Point/index.d.ts.map +1 -1
  352. package/dist/fields/Point/index.js +8 -8
  353. package/dist/fields/Point/index.js.map +1 -1
  354. package/dist/fields/Point/index.scss +4 -0
  355. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  356. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  357. package/dist/fields/RadioGroup/Radio/index.js +4 -1
  358. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  359. package/dist/fields/RadioGroup/Radio/index.scss +13 -6
  360. package/dist/fields/RadioGroup/index.d.ts +1 -12
  361. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  362. package/dist/fields/RadioGroup/index.js +9 -8
  363. package/dist/fields/RadioGroup/index.js.map +1 -1
  364. package/dist/fields/RadioGroup/index.scss +12 -1
  365. package/dist/fields/Relationship/AddNew/index.scss +3 -0
  366. package/dist/fields/Relationship/index.d.ts +1 -2
  367. package/dist/fields/Relationship/index.d.ts.map +1 -1
  368. package/dist/fields/Relationship/index.js +5 -4
  369. package/dist/fields/Relationship/index.js.map +1 -1
  370. package/dist/fields/Relationship/index.scss +9 -2
  371. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +8 -5
  372. package/dist/fields/Relationship/types.d.ts +1 -11
  373. package/dist/fields/Relationship/types.d.ts.map +1 -1
  374. package/dist/fields/Relationship/types.js.map +1 -1
  375. package/dist/fields/RichText/index.d.ts +2 -8
  376. package/dist/fields/RichText/index.d.ts.map +1 -1
  377. package/dist/fields/RichText/index.js.map +1 -1
  378. package/dist/fields/Row/index.d.ts +1 -2
  379. package/dist/fields/Row/index.d.ts.map +1 -1
  380. package/dist/fields/Row/index.js +2 -2
  381. package/dist/fields/Row/index.js.map +1 -1
  382. package/dist/fields/Row/index.scss +1 -5
  383. package/dist/fields/Select/Input.d.ts +3 -4
  384. package/dist/fields/Select/Input.d.ts.map +1 -1
  385. package/dist/fields/Select/Input.js +0 -5
  386. package/dist/fields/Select/Input.js.map +1 -1
  387. package/dist/fields/Select/index.d.ts +1 -13
  388. package/dist/fields/Select/index.d.ts.map +1 -1
  389. package/dist/fields/Select/index.js +3 -3
  390. package/dist/fields/Select/index.js.map +1 -1
  391. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  392. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  393. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  394. package/dist/fields/Tabs/index.d.ts +1 -9
  395. package/dist/fields/Tabs/index.d.ts.map +1 -1
  396. package/dist/fields/Tabs/index.js +24 -24
  397. package/dist/fields/Tabs/index.js.map +1 -1
  398. package/dist/fields/Text/Input.d.ts.map +1 -1
  399. package/dist/fields/Text/Input.js +13 -17
  400. package/dist/fields/Text/Input.js.map +1 -1
  401. package/dist/fields/Text/index.d.ts +3 -2
  402. package/dist/fields/Text/index.d.ts.map +1 -1
  403. package/dist/fields/Text/index.js +2 -2
  404. package/dist/fields/Text/index.js.map +1 -1
  405. package/dist/fields/Text/types.d.ts +3 -17
  406. package/dist/fields/Text/types.d.ts.map +1 -1
  407. package/dist/fields/Text/types.js.map +1 -1
  408. package/dist/fields/Textarea/index.d.ts +3 -2
  409. package/dist/fields/Textarea/index.d.ts.map +1 -1
  410. package/dist/fields/Textarea/index.js +3 -3
  411. package/dist/fields/Textarea/index.js.map +1 -1
  412. package/dist/fields/Textarea/index.scss +1 -6
  413. package/dist/fields/Textarea/types.d.ts +3 -13
  414. package/dist/fields/Textarea/types.d.ts.map +1 -1
  415. package/dist/fields/Textarea/types.js.map +1 -1
  416. package/dist/fields/Upload/Input.d.ts +7 -4
  417. package/dist/fields/Upload/Input.d.ts.map +1 -1
  418. package/dist/fields/Upload/Input.js +2 -2
  419. package/dist/fields/Upload/Input.js.map +1 -1
  420. package/dist/fields/Upload/index.d.ts +1 -1
  421. package/dist/fields/Upload/index.d.ts.map +1 -1
  422. package/dist/fields/Upload/index.js +20 -5
  423. package/dist/fields/Upload/index.js.map +1 -1
  424. package/dist/fields/Upload/index.scss +10 -3
  425. package/dist/fields/shared/index.d.ts +1 -25
  426. package/dist/fields/shared/index.d.ts.map +1 -1
  427. package/dist/fields/shared/index.js.map +1 -1
  428. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  429. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  430. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  431. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  432. package/dist/forms/Form/fieldReducer.js +11 -38
  433. package/dist/forms/Form/fieldReducer.js.map +1 -1
  434. package/dist/forms/Form/index.d.ts.map +1 -1
  435. package/dist/forms/Form/index.js +23 -28
  436. package/dist/forms/Form/index.js.map +1 -1
  437. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  438. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  439. package/dist/forms/Form/rowHelpers.js +24 -0
  440. package/dist/forms/Form/rowHelpers.js.map +1 -0
  441. package/dist/forms/Form/types.d.ts +10 -17
  442. package/dist/forms/Form/types.d.ts.map +1 -1
  443. package/dist/forms/Form/types.js.map +1 -1
  444. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  445. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  446. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  447. package/dist/forms/RenderFields/index.scss +8 -5
  448. package/dist/forms/RenderFields/types.d.ts +1 -2
  449. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  450. package/dist/forms/RenderFields/types.js.map +1 -1
  451. package/dist/forms/RowLabel/Context/index.d.ts +2 -2
  452. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  453. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  454. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  455. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  456. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  457. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  458. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  459. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  460. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +1 -0
  461. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  462. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +42 -20
  463. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  464. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js +1 -1
  465. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js.map +1 -1
  466. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts +2 -2
  467. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts.map +1 -1
  468. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.js.map +1 -1
  469. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  470. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  471. package/dist/forms/buildStateFromSchema/index.js +2 -1
  472. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  473. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -1
  474. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  475. package/dist/forms/buildStateFromSchema/iterateFields.js +2 -1
  476. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  477. package/dist/forms/useField/index.d.ts.map +1 -1
  478. package/dist/forms/useField/index.js +14 -7
  479. package/dist/forms/useField/index.js.map +1 -1
  480. package/dist/forms/useField/types.d.ts +2 -2
  481. package/dist/forms/useField/types.d.ts.map +1 -1
  482. package/dist/forms/useField/types.js.map +1 -1
  483. package/dist/graphics/Account/index.d.ts.map +1 -1
  484. package/dist/graphics/Account/index.js +5 -1
  485. package/dist/graphics/Account/index.js.map +1 -1
  486. package/dist/hooks/useHotkey.js +1 -1
  487. package/dist/hooks/useHotkey.js.map +1 -1
  488. package/dist/hooks/useIntersect.js +1 -1
  489. package/dist/hooks/useIntersect.js.map +1 -1
  490. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  491. package/dist/hooks/usePayloadAPI.js +6 -2
  492. package/dist/hooks/usePayloadAPI.js.map +1 -1
  493. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  494. package/dist/hooks/useThrottledEffect.js +1 -1
  495. package/dist/hooks/useThrottledEffect.js.map +1 -1
  496. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  497. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  498. package/dist/hooks/useUseAsTitle.js.map +1 -1
  499. package/dist/icons/Calendar/index.d.ts.map +1 -1
  500. package/dist/icons/Calendar/index.js +8 -33
  501. package/dist/icons/Calendar/index.js.map +1 -1
  502. package/dist/icons/Calendar/index.scss +1 -1
  503. package/dist/icons/Check/index.d.ts.map +1 -1
  504. package/dist/icons/Check/index.js +8 -17
  505. package/dist/icons/Check/index.js.map +1 -1
  506. package/dist/icons/Check/index.scss +1 -1
  507. package/dist/icons/Chevron/index.js +5 -4
  508. package/dist/icons/Chevron/index.js.map +1 -1
  509. package/dist/icons/Chevron/index.scss +2 -5
  510. package/dist/icons/CloseMenu/index.d.ts.map +1 -1
  511. package/dist/icons/CloseMenu/index.js +8 -22
  512. package/dist/icons/CloseMenu/index.js.map +1 -1
  513. package/dist/icons/CloseMenu/index.scss +2 -2
  514. package/dist/icons/CodeBlock/index.d.ts.map +1 -1
  515. package/dist/icons/CodeBlock/index.js +8 -14
  516. package/dist/icons/CodeBlock/index.js.map +1 -1
  517. package/dist/icons/Copy/index.d.ts.map +1 -1
  518. package/dist/icons/Copy/index.js +12 -16
  519. package/dist/icons/Copy/index.js.map +1 -1
  520. package/dist/icons/Copy/index.scss +1 -1
  521. package/dist/icons/DragHandle/index.d.ts.map +1 -1
  522. package/dist/icons/DragHandle/index.js +19 -25
  523. package/dist/icons/DragHandle/index.js.map +1 -1
  524. package/dist/icons/DragHandle/index.scss +2 -0
  525. package/dist/icons/Edit/index.d.ts.map +1 -1
  526. package/dist/icons/Edit/index.js +8 -21
  527. package/dist/icons/Edit/index.js.map +1 -1
  528. package/dist/icons/Edit/index.scss +3 -3
  529. package/dist/icons/Line/index.d.ts.map +1 -1
  530. package/dist/icons/Line/index.js +7 -6
  531. package/dist/icons/Line/index.js.map +1 -1
  532. package/dist/icons/Line/index.scss +1 -1
  533. package/dist/icons/Link/index.d.ts.map +1 -1
  534. package/dist/icons/Link/index.js +11 -14
  535. package/dist/icons/Link/index.js.map +1 -1
  536. package/dist/icons/Link/index.scss +1 -1
  537. package/dist/icons/LogOut/index.d.ts.map +1 -1
  538. package/dist/icons/LogOut/index.js +9 -24
  539. package/dist/icons/LogOut/index.js.map +1 -1
  540. package/dist/icons/LogOut/index.scss +1 -1
  541. package/dist/icons/Menu/index.d.ts.map +1 -1
  542. package/dist/icons/Menu/index.js +10 -28
  543. package/dist/icons/Menu/index.js.map +1 -1
  544. package/dist/icons/Menu/index.scss +3 -2
  545. package/dist/icons/MinimizeMaximize/index.d.ts.map +1 -1
  546. package/dist/icons/MinimizeMaximize/index.js +8 -35
  547. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  548. package/dist/icons/More/index.d.ts.map +1 -1
  549. package/dist/icons/More/index.js +10 -13
  550. package/dist/icons/More/index.js.map +1 -1
  551. package/dist/icons/More/index.scss +1 -0
  552. package/dist/icons/Plus/index.d.ts.map +1 -1
  553. package/dist/icons/Plus/index.js +10 -20
  554. package/dist/icons/Plus/index.js.map +1 -1
  555. package/dist/icons/Plus/index.scss +1 -1
  556. package/dist/icons/Search/index.d.ts.map +1 -1
  557. package/dist/icons/Search/index.js +8 -18
  558. package/dist/icons/Search/index.js.map +1 -1
  559. package/dist/icons/Search/index.scss +1 -1
  560. package/dist/icons/Swap/index.d.ts.map +1 -1
  561. package/dist/icons/Swap/index.js +8 -28
  562. package/dist/icons/Swap/index.js.map +1 -1
  563. package/dist/icons/Swap/index.scss +2 -2
  564. package/dist/icons/X/index.d.ts.map +1 -1
  565. package/dist/icons/X/index.js +10 -21
  566. package/dist/icons/X/index.js.map +1 -1
  567. package/dist/icons/X/index.scss +3 -3
  568. package/dist/providers/Auth/index.d.ts +1 -1
  569. package/dist/providers/Auth/index.d.ts.map +1 -1
  570. package/dist/providers/Auth/index.js +48 -77
  571. package/dist/providers/Auth/index.js.map +1 -1
  572. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -1
  573. package/dist/providers/ComponentMap/buildComponentMap/actions.js +3 -3
  574. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
  575. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  576. package/dist/providers/ComponentMap/buildComponentMap/collections.js +8 -8
  577. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  578. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +1 -2
  579. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  580. package/dist/providers/ComponentMap/buildComponentMap/fields.js +118 -94
  581. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  582. package/dist/providers/ComponentMap/buildComponentMap/index.js +2 -2
  583. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  584. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +3 -57
  585. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  586. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  587. package/dist/providers/ComponentMap/index.d.ts +2 -1
  588. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  589. package/dist/providers/ComponentMap/index.js.map +1 -1
  590. package/dist/providers/DocumentInfo/index.d.ts +2 -2
  591. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  592. package/dist/providers/DocumentInfo/index.js +60 -18
  593. package/dist/providers/DocumentInfo/index.js.map +1 -1
  594. package/dist/providers/DocumentInfo/types.d.ts +6 -6
  595. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  596. package/dist/providers/DocumentInfo/types.js.map +1 -1
  597. package/dist/providers/ListInfo/index.d.ts +2 -2
  598. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  599. package/dist/providers/ListInfo/index.js.map +1 -1
  600. package/dist/providers/ListQuery/index.d.ts +17 -10
  601. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  602. package/dist/providers/ListQuery/index.js +9 -7
  603. package/dist/providers/ListQuery/index.js.map +1 -1
  604. package/dist/providers/SearchParams/index.d.ts +1 -1
  605. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  606. package/dist/providers/SearchParams/index.js +1 -1
  607. package/dist/providers/SearchParams/index.js.map +1 -1
  608. package/dist/providers/Selection/index.js +1 -1
  609. package/dist/providers/Selection/index.js.map +1 -1
  610. package/dist/providers/ToastContainer/icons/Error.js +2 -2
  611. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  612. package/dist/providers/ToastContainer/icons/Info.js +2 -2
  613. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  614. package/dist/providers/ToastContainer/icons/Success.js +2 -2
  615. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  616. package/dist/providers/ToastContainer/icons/Warning.js +2 -2
  617. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  618. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  619. package/dist/providers/ToastContainer/index.js +3 -1
  620. package/dist/providers/ToastContainer/index.js.map +1 -1
  621. package/dist/providers/UploadEdits/index.d.ts +12 -0
  622. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  623. package/dist/providers/UploadEdits/index.js +30 -0
  624. package/dist/providers/UploadEdits/index.js.map +1 -0
  625. package/dist/scss/app.scss +4 -3
  626. package/dist/scss/colors.scss +76 -76
  627. package/dist/scss/toasts.scss +75 -45
  628. package/dist/scss/type.scss +14 -23
  629. package/dist/scss/vars.scss +26 -47
  630. package/dist/styles.css +1 -1
  631. package/dist/utilities/api.d.ts +2 -2
  632. package/dist/utilities/api.d.ts.map +1 -1
  633. package/dist/utilities/api.js +1 -1
  634. package/dist/utilities/api.js.map +1 -1
  635. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  636. package/dist/utilities/buildFieldSchemaMap/index.js +24 -0
  637. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  638. package/dist/utilities/buildFormState.d.ts.map +1 -1
  639. package/dist/utilities/buildFormState.js +4 -10
  640. package/dist/utilities/buildFormState.js.map +1 -1
  641. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  642. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  643. package/dist/utilities/flattenFieldMap.js.map +1 -1
  644. package/dist/utilities/formatAdminURL.d.ts +9 -0
  645. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  646. package/dist/utilities/formatAdminURL.js +15 -0
  647. package/dist/utilities/formatAdminURL.js.map +1 -0
  648. package/dist/utilities/reduceFieldsToValuesWithValidation.js +1 -1
  649. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  650. package/package.json +16 -25
  651. package/dist/exports/client/chunk-3X2D2TP2.js +0 -30
  652. package/dist/fields/Checkbox/types.d.ts +0 -12
  653. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  654. package/dist/fields/Checkbox/types.js.map +0 -1
  655. package/dist/fields/Row/types.d.ts +0 -12
  656. package/dist/fields/Row/types.d.ts.map +0 -1
  657. package/dist/fields/Row/types.js +0 -3
  658. package/dist/fields/Row/types.js.map +0 -1
  659. package/dist/fields/Upload/types.d.ts +0 -10
  660. package/dist/fields/Upload/types.d.ts.map +0 -1
  661. package/dist/fields/Upload/types.js +0 -3
  662. package/dist/fields/Upload/types.js.map +0 -1
  663. package/dist/forms/Form/getDataByPath.d.ts +0 -3
  664. package/dist/forms/Form/getDataByPath.d.ts.map +0 -1
  665. package/dist/forms/Form/getDataByPath.js +0 -18
  666. package/dist/forms/Form/getDataByPath.js.map +0 -1
  667. package/dist/forms/Form/getSiblingData.d.ts +0 -3
  668. package/dist/forms/Form/getSiblingData.d.ts.map +0 -1
  669. package/dist/forms/Form/getSiblingData.js +0 -33
  670. package/dist/forms/Form/getSiblingData.js.map +0 -1
  671. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  672. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  673. package/dist/providers/FormQueryParams/index.js +0 -53
  674. package/dist/providers/FormQueryParams/index.js.map +0 -1
  675. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  676. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  677. package/dist/providers/FormQueryParams/types.js +0 -3
  678. package/dist/providers/FormQueryParams/types.js.map +0 -1
  679. package/dist/utilities/reduceFieldsToValues.d.ts +0 -10
  680. package/dist/utilities/reduceFieldsToValues.d.ts.map +0 -1
  681. package/dist/utilities/reduceFieldsToValues.js +0 -22
  682. package/dist/utilities/reduceFieldsToValues.js.map +0 -1
  683. package/dist/utilities/unflatten.d.ts +0 -9
  684. package/dist/utilities/unflatten.d.ts.map +0 -1
  685. package/dist/utilities/unflatten.js +0 -58
  686. package/dist/utilities/unflatten.js.map +0 -1
  687. /package/dist/exports/client/{DatePicker-BN5AOAME.js.map → DatePicker-XJHHMZP7.js.map} +0 -0
  688. /package/dist/fields/{Checkbox → Password}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Dropzone/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst handleDragOver = (e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n}\n\nconst baseClass = 'dropzone'\n\nexport type Props = {\n className?: string\n mimeTypes?: string[]\n onChange: (e: FileList) => void\n}\n\nexport const Dropzone: React.FC<Props> = ({ className, mimeTypes, onChange }) => {\n const dropRef = React.useRef<HTMLDivElement>(null)\n const [dragging, setDragging] = React.useState(false)\n const inputRef = React.useRef(null)\n\n const { t } = useTranslation()\n\n const handlePaste = React.useCallback(\n (e: ClipboardEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (e.clipboardData.files && e.clipboardData.files.length > 0) {\n onChange(e.clipboardData.files)\n }\n },\n [onChange],\n )\n\n const handleDragEnter = React.useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragging(true)\n }, [])\n\n const handleDragLeave = React.useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragging(false)\n }, [])\n\n const handleDrop = React.useCallback(\n (e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragging(false)\n\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n onChange(e.dataTransfer.files)\n setDragging(false)\n\n e.dataTransfer.clearData()\n }\n },\n [onChange],\n )\n\n const handleFileSelection = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n onChange(e.target.files)\n }\n },\n [onChange],\n )\n\n React.useEffect(() => {\n const div = dropRef.current\n\n if (div) {\n div.addEventListener('dragenter', handleDragEnter)\n div.addEventListener('dragleave', handleDragLeave)\n div.addEventListener('dragover', handleDragOver)\n div.addEventListener('drop', handleDrop)\n div.addEventListener('paste', handlePaste)\n\n return () => {\n div.removeEventListener('dragenter', handleDragEnter)\n div.removeEventListener('dragleave', handleDragLeave)\n div.removeEventListener('dragover', handleDragOver)\n div.removeEventListener('drop', handleDrop)\n div.removeEventListener('paste', handlePaste)\n }\n }\n\n return () => null\n }, [handleDragEnter, handleDragLeave, handleDrop, handlePaste])\n\n const classes = [baseClass, className, dragging ? 'dragging' : ''].filter(Boolean).join(' ')\n\n return (\n <div className={classes} ref={dropRef}>\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__file-button`}\n onClick={() => {\n inputRef.current.click()\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n\n <input\n accept={mimeTypes?.join(',')}\n className={`${baseClass}__hidden-input`}\n onChange={handleFileSelection}\n ref={inputRef}\n type=\"file\"\n />\n\n <p className={`${baseClass}__label`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n )\n}\n"],"names":["React","useTranslation","Button","handleDragOver","e","preventDefault","stopPropagation","baseClass","Dropzone","className","mimeTypes","onChange","dropRef","useRef","dragging","setDragging","useState","inputRef","t","handlePaste","useCallback","clipboardData","files","length","handleDragEnter","handleDragLeave","handleDrop","dataTransfer","clearData","handleFileSelection","target","useEffect","div","current","addEventListener","removeEventListener","classes","filter","Boolean","join","ref","buttonStyle","onClick","click","size","input","accept","type","p"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/Dropzone/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst handleDragOver = (e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n}\n\nconst baseClass = 'dropzone'\n\nexport type Props = {\n className?: string\n mimeTypes?: string[]\n onChange: (e: FileList) => void\n onPasteUrlClick?: () => void\n}\n\nexport const Dropzone: React.FC<Props> = ({ className, mimeTypes, onChange, onPasteUrlClick }) => {\n const dropRef = React.useRef<HTMLDivElement>(null)\n const [dragging, setDragging] = React.useState(false)\n const inputRef = React.useRef(null)\n\n const { t } = useTranslation()\n\n const handlePaste = React.useCallback(\n (e: ClipboardEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (e.clipboardData.files && e.clipboardData.files.length > 0) {\n onChange(e.clipboardData.files)\n }\n },\n [onChange],\n )\n\n const handleDragEnter = React.useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragging(true)\n }, [])\n\n const handleDragLeave = React.useCallback((e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragging(false)\n }, [])\n\n const handleDrop = React.useCallback(\n (e: DragEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setDragging(false)\n\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n onChange(e.dataTransfer.files)\n setDragging(false)\n\n e.dataTransfer.clearData()\n }\n },\n [onChange],\n )\n\n const handleFileSelection = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n onChange(e.target.files)\n }\n },\n [onChange],\n )\n\n React.useEffect(() => {\n const div = dropRef.current\n\n if (div) {\n div.addEventListener('dragenter', handleDragEnter)\n div.addEventListener('dragleave', handleDragLeave)\n div.addEventListener('dragover', handleDragOver)\n div.addEventListener('drop', handleDrop)\n div.addEventListener('paste', handlePaste)\n\n return () => {\n div.removeEventListener('dragenter', handleDragEnter)\n div.removeEventListener('dragleave', handleDragLeave)\n div.removeEventListener('dragover', handleDragOver)\n div.removeEventListener('drop', handleDrop)\n div.removeEventListener('paste', handlePaste)\n }\n }\n\n return () => null\n }, [handleDragEnter, handleDragLeave, handleDrop, handlePaste])\n\n const classes = [baseClass, className, dragging ? 'dragging' : ''].filter(Boolean).join(' ')\n\n return (\n <div className={classes} ref={dropRef}>\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__file-button`}\n onClick={() => {\n inputRef.current.click()\n }}\n size=\"medium\"\n >\n {t('upload:selectFile')}\n </Button>\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__file-button`}\n onClick={onPasteUrlClick}\n size=\"medium\"\n >\n {t('upload:pasteURL')}\n </Button>\n <input\n accept={mimeTypes?.join(',')}\n className={`${baseClass}__hidden-input`}\n onChange={handleFileSelection}\n ref={inputRef}\n type=\"file\"\n />\n\n <p className={`${baseClass}__label`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n )\n}\n"],"names":["React","useTranslation","Button","handleDragOver","e","preventDefault","stopPropagation","baseClass","Dropzone","className","mimeTypes","onChange","onPasteUrlClick","dropRef","useRef","dragging","setDragging","useState","inputRef","t","handlePaste","useCallback","clipboardData","files","length","handleDragEnter","handleDragLeave","handleDrop","dataTransfer","clearData","handleFileSelection","target","useEffect","div","current","addEventListener","removeEventListener","classes","filter","Boolean","join","ref","buttonStyle","onClick","click","size","input","accept","type","p"],"mappings":"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"}
@@ -4,12 +4,15 @@
4
4
  position: relative;
5
5
  display: flex;
6
6
  align-items: center;
7
- gap: $baseline;
8
- padding: base(2);
9
- background: var(--theme-elevation-100);
7
+ gap: base(0.4);
8
+ padding: base(1.6);
9
+ background: var(--theme-elevation-50);
10
10
  border: 1px dotted var(--theme-elevation-400);
11
+ border-radius: var(--style-radius-s);
11
12
  height: 100%;
12
13
  width: 100%;
14
+ box-shadow: 0 0 0 0 transparent;
15
+ transition: all 100ms cubic-bezier(0, 0.2, 0.2, 1);
13
16
 
14
17
  .btn {
15
18
  margin: 0;
@@ -18,6 +21,7 @@
18
21
  &.dragging {
19
22
  border-color: var(--theme-success-500);
20
23
  background: var(--theme-success-150);
24
+ @include shadow-m;
21
25
 
22
26
  * {
23
27
  pointer-events: none;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAUpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2G7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiH7C,CAAA"}
@@ -10,6 +10,7 @@ import { useConfig } from '../../providers/Config/index.js';
10
10
  import { useLocale } from '../../providers/Locale/index.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { requests } from '../../utilities/api.js';
13
+ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
13
14
  import { Button } from '../Button/index.js';
14
15
  import { PopupList } from '../Popup/index.js';
15
16
  import './index.scss';
@@ -20,8 +21,8 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
20
21
  const { toggleModal } = useModal();
21
22
  const locale = useLocale();
22
23
  const { setModified } = useForm();
23
- const { routes: { api }, serverURL } = useConfig();
24
- const { routes: { admin } } = useConfig();
24
+ const { routes: { api: apiRoute }, serverURL } = useConfig();
25
+ const { routes: { admin: adminRoute } } = useConfig();
25
26
  const [hasClicked, setHasClicked] = useState(false);
26
27
  const { i18n, t } = useTranslation();
27
28
  const modalSlug = `duplicate-${id}`;
@@ -31,7 +32,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
31
32
  toggleModal(modalSlug);
32
33
  return;
33
34
  }
34
- await requests.post(`${serverURL}${api}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`, {
35
+ await requests.post(`${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`, {
35
36
  body: JSON.stringify({}),
36
37
  headers: {
37
38
  'Accept-Language': i18n.language,
@@ -45,7 +46,10 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
45
46
  label: getTranslation(singularLabel, i18n)
46
47
  }));
47
48
  setModified(false);
48
- router.push(`${admin}/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`);
49
+ router.push(formatAdminURL({
50
+ adminRoute,
51
+ path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`
52
+ }));
49
53
  } else {
50
54
  toast.error(errors?.[0].message || message || t('error:unspecific', {
51
55
  label: getTranslation(singularLabel, i18n)
@@ -56,7 +60,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
56
60
  locale,
57
61
  modified,
58
62
  serverURL,
59
- api,
63
+ apiRoute,
60
64
  slug,
61
65
  id,
62
66
  i18n,
@@ -66,7 +70,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
66
70
  singularLabel,
67
71
  setModified,
68
72
  router,
69
- admin
73
+ adminRoute
70
74
  ]);
71
75
  const confirm = useCallback(async ()=>{
72
76
  setHasClicked(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const {\n routes: { admin },\n } = useConfig()\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${api}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(\n `${admin}/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n )\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n api,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n admin,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","requests","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","serverURL","admin","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","error","confirm","Fragment","onClick","className","div","h1","p","buttonStyle","type"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const {\n routes: { admin: adminRoute },\n } = useConfig()\n\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n }),\n )\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n apiRoute,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n adminRoute,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <div className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","requests","formatAdminURL","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","apiRoute","serverURL","admin","adminRoute","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","path","error","confirm","Fragment","onClick","className","div","h1","p","buttonStyle","type"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import type { ClientCollectionConfig } from 'payload';
1
+ import type { ClientCollectionConfig, FieldMap } from 'payload';
2
2
  import React from 'react';
3
3
  import './index.scss';
4
- import type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js';
5
4
  export type EditManyProps = {
6
5
  collection: ClientCollectionConfig;
7
6
  fieldMap: FieldMap;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAa,MAAM,SAAS,CAAA;AAKhE,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAEvF,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AAgED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkJ5C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAa,MAAM,SAAS,CAAA;AAK1E,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,sBAAsB,CAAA;IAClC,QAAQ,EAAE,QAAQ,CAAA;CACnB,CAAA;AAgED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAkJ5C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-many'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nexport type EditManyProps = {\n collection: ClientCollectionConfig\n fieldMap: FieldMap\n}\n\nconst Submit: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__draft`} disabled={disabled} onClick={save}>\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { collection: { slug, labels: { plural } } = {}, collection, fieldMap } = props\n\n const { permissions } = useAuth()\n const { closeModal } = useModal()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState([])\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update?.permission\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const result = await getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n data: {},\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, hasInitializedState, serverURL, slug])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n }),\n [serverURL, apiRoute, slug],\n )\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n const onSuccess = () => {\n router.replace(\n stringifyParams({\n params: { page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined },\n }),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider collectionSlug={slug} id={null}>\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fieldMap={fieldMap} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields fieldMap={selected} path=\"\" readOnly={false} schemaPath={slug} />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </div>\n )\n}\n"],"names":["useModal","getTranslation","useRouter","React","useCallback","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","getFormState","Drawer","DrawerToggler","FieldSelect","baseClass","Submit","action","disabled","submit","t","save","method","skipValidation","className","onClick","PublishButton","overrides","_status","SaveDraftButton","EditMany","props","collection","slug","labels","plural","fieldMap","permissions","closeModal","routes","api","apiRoute","serverURL","count","getQueryParams","selectAll","i18n","selected","setSelected","stringifyParams","router","initialState","setInitialState","hasInitializedState","useRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","permission","drawerSlug","useEffect","current","getInitialState","result","body","collectionSlug","data","operation","schemaPath","onChange","formState","prevFormState","None","onSuccess","replace","params","page","AllAvailable","undefined","div","aria-label","Header","id","Provider","value","h2","label","button","type","length","path","readOnly","versions","drafts","Fragment"],"mappings":"AAAA;;AAGA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AAIpD,SAASC,OAAO,QAAQ,8BAA6B;AACrD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,oBAAoB,QAAQ,wCAAuC;AAC5E,SAASC,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,aAAa,QAAQ,sCAAqC;AACnE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,eAAe,EAAEC,YAAY,QAAQ,qCAAoC;AAClF,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,MAAM,EAAEC,aAAa,QAAQ,qBAAoB;AAC1D,SAASC,WAAW,QAAQ,0BAAyB;AACrD,OAAO,eAAc;AAErB,MAAMC,YAAY;AASlB,MAAMC,SAA0D,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAE;IACnF,MAAM,EAAEC,MAAM,EAAE,GAAGtB;IACnB,MAAM,EAAEuB,CAAC,EAAE,GAAGV;IAEd,MAAMW,OAAO1B,YAAY;QACvB,KAAKwB,OAAO;YACVF;YACAK,QAAQ;YACRC,gBAAgB;QAClB;IACF,GAAG;QAACN;QAAQE;KAAO;IAEnB,qBACE,KAACnB;QAAWwB,WAAW,CAAC,EAAET,UAAU,MAAM,CAAC;QAAEG,UAAUA;QAAUO,SAASJ;kBACvED,EAAE;;AAGT;AAEA,MAAMM,gBAAiE,CAAC,EAAET,MAAM,EAAEC,QAAQ,EAAE;IAC1F,MAAM,EAAEC,MAAM,EAAE,GAAGtB;IACnB,MAAM,EAAEuB,CAAC,EAAE,GAAGV;IAEd,MAAMW,OAAO1B,YAAY;QACvB,KAAKwB,OAAO;YACVF;YACAK,QAAQ;YACRK,WAAW;gBACTC,SAAS;YACX;YACAL,gBAAgB;QAClB;IACF,GAAG;QAACN;QAAQE;KAAO;IAEnB,qBACE,KAACnB;QAAWwB,WAAW,CAAC,EAAET,UAAU,SAAS,CAAC;QAAEG,UAAUA;QAAUO,SAASJ;kBAC1ED,EAAE;;AAGT;AAEA,MAAMS,kBAAmE,CAAC,EAAEZ,MAAM,EAAEC,QAAQ,EAAE;IAC5F,MAAM,EAAEC,MAAM,EAAE,GAAGtB;IACnB,MAAM,EAAEuB,CAAC,EAAE,GAAGV;IAEd,MAAMW,OAAO1B,YAAY;QACvB,KAAKwB,OAAO;YACVF;YACAK,QAAQ;YACRK,WAAW;gBACTC,SAAS;YACX;YACAL,gBAAgB;QAClB;IACF,GAAG;QAACN;QAAQE;KAAO;IAEnB,qBACE,KAACnB;QAAWwB,WAAW,CAAC,EAAET,UAAU,OAAO,CAAC;QAAEG,UAAUA;QAAUO,SAASJ;kBACxED,EAAE;;AAGT;AACA,OAAO,MAAMU,WAAoC,CAACC;IAChD,MAAM,EAAEC,YAAY,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAE,EAAE,GAAG,CAAC,CAAC,EAAEH,UAAU,EAAEI,QAAQ,EAAE,GAAGL;IAEhF,MAAM,EAAEM,WAAW,EAAE,GAAGnC;IACxB,MAAM,EAAEoC,UAAU,EAAE,GAAG/C;IACvB,MAAM,EACJgD,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAGvC;IACJ,MAAM,EAAEwC,KAAK,EAAEC,cAAc,EAAEC,SAAS,EAAE,GAAGpC;IAC7C,MAAM,EAAEqC,IAAI,EAAE1B,CAAC,EAAE,GAAGV;IACpB,MAAM,CAACqC,UAAUC,YAAY,GAAGpD,SAAS,EAAE;IAC3C,MAAM,EAAEqD,eAAe,EAAE,GAAG1C;IAC5B,MAAM2C,SAASzD;IACf,MAAM,CAAC0D,cAAcC,gBAAgB,GAAGxD;IACxC,MAAMyD,sBAAsB3D,MAAM4D,MAAM,CAAC;IACzC,MAAM,EAAEC,eAAe,EAAE,GAAGjD;IAE5B,MAAMkD,wBAAwBnB,aAAaoB,aAAa,CAACxB,KAAK;IAC9D,MAAMyB,sBAAsBF,uBAAuBG,QAAQC;IAE3D,MAAMC,aAAa,CAAC,KAAK,EAAE5B,KAAK,CAAC;IAEjCvC,MAAMoE,SAAS,CAAC;QACd,IAAI,CAACT,oBAAoBU,OAAO,EAAE;YAChC,MAAMC,kBAAkB;gBACtB,MAAMC,SAAS,MAAMtD,aAAa;oBAChC8B;oBACAyB,MAAM;wBACJC,gBAAgBlC;wBAChBmC,MAAM,CAAC;wBACPC,WAAW;wBACXC,YAAYrC;oBACd;oBACAS;gBACF;gBAEAU,gBAAgBa;gBAChBZ,oBAAoBU,OAAO,GAAG;YAChC;YAEA,KAAKC;QACP;IACF,GAAG;QAACvB;QAAUY;QAAqBX;QAAWT;KAAK;IAEnD,MAAMsC,WAAqC5E,YACzC,CAAC,EAAE6E,WAAWC,aAAa,EAAE,GAC3B9D,aAAa;YACX8B;YACAyB,MAAM;gBACJC,gBAAgBlC;gBAChBuC,WAAWC;gBACXJ,WAAW;gBACXC,YAAYrC;YACd;YACAS;QACF,IACF;QAACA;QAAWD;QAAUR;KAAK;IAG7B,IAAIY,cAAcrC,gBAAgBkE,IAAI,IAAI,CAAChB,qBAAqB;QAC9D,OAAO;IACT;IAEA,MAAMiB,YAAY;QAChBzB,OAAO0B,OAAO,CACZ3B,gBAAgB;YACd4B,QAAQ;gBAAEC,MAAMjC,cAAcrC,gBAAgBuE,YAAY,GAAG,MAAMC;YAAU;QAC/E;QAEFzB;QACAjB,WAAWuB;IACb;IAEA,qBACE,MAACoB;QAAIzD,WAAWT;;0BACd,KAACF;gBACCqE,cAAY9D,EAAE;gBACdI,WAAW,CAAC,EAAET,UAAU,QAAQ,CAAC;gBACjCU,SAAS;oBACPuB,YAAY,EAAE;gBAChB;gBACAf,MAAM4B;0BAELzC,EAAE;;0BAEL,KAACR;gBAAOuE,QAAQ;gBAAMlD,MAAM4B;0BAC1B,cAAA,KAACzD;oBAAqB+D,gBAAgBlC;oBAAMmD,IAAI;8BAC9C,cAAA,KAAC/E,iBAAiBgF,QAAQ;wBAACC,OAAM;kCAC/B,cAAA,MAACL;4BAAIzD,WAAW,CAAC,EAAET,UAAU,MAAM,CAAC;;8CAClC,MAACkE;oCAAIzD,WAAW,CAAC,EAAET,UAAU,QAAQ,CAAC;;sDACpC,KAACwE;4CAAG/D,WAAW,CAAC,EAAET,UAAU,eAAe,CAAC;sDACzCK,EAAE,wBAAwB;gDAAEuB;gDAAO6C,OAAOhG,eAAe2C,QAAQW;4CAAM;;sDAE1E,KAAC2C;4CACCP,cAAY9D,EAAE;4CACdI,WAAW,CAAC,EAAET,UAAU,eAAe,CAAC;4CACxCqE,IAAI,CAAC,cAAc,EAAEvB,WAAW,CAAC;4CACjCpC,SAAS,IAAMa,WAAWuB;4CAC1B6B,MAAK;sDAEL,cAAA,KAACzF;;;;8CAGL,MAACH;oCACC0B,WAAW,CAAC,EAAET,UAAU,MAAM,CAAC;oCAC/BoC,cAAcA;oCACdoB,UAAU;wCAACA;qCAAS;oCACpBI,WAAWA;;sDAEX,KAAC7D;4CAAYsB,UAAUA;4CAAUY,aAAaA;;wCAC7CD,SAAS4C,MAAM,KAAK,IAAI,qBACvB,KAAC5F;4CAAaqC,UAAUW;4CAAU6C,MAAK;4CAAGC,UAAU;4CAAOvB,YAAYrC;;sDAEzE,KAACgD;4CAAIzD,WAAW,CAAC,EAAET,UAAU,cAAc,CAAC;sDAC1C,cAAA,KAACkE;gDAAIzD,WAAW,CAAC,EAAET,UAAU,SAAS,CAAC;0DACrC,cAAA,KAACkE;oDAAIzD,WAAW,CAAC,EAAET,UAAU,qBAAqB,CAAC;8DACjD,cAAA,KAACkE;wDAAIzD,WAAW,CAAC,EAAET,UAAU,kBAAkB,CAAC;kEAC7CiB,YAAY8D,UAAUC,uBACrB,MAACrG,MAAMsG,QAAQ;;8EACb,KAACtE;oEACCT,QAAQ,CAAC,EAAEyB,UAAU,EAAED,SAAS,CAAC,EAAER,KAAK,EAAEW,iBAAiB,WAAW,CAAC;oEACvE1B,UAAU6B,SAAS4C,MAAM,KAAK;;8EAEhC,KAAC9D;oEACCZ,QAAQ,CAAC,EAAEyB,UAAU,EAAED,SAAS,CAAC,EAAER,KAAK,EAAEW,iBAAiB,WAAW,CAAC;oEACvE1B,UAAU6B,SAAS4C,MAAM,KAAK;;;2EAIlC,KAAC3E;4DACCC,QAAQ,CAAC,EAAEyB,UAAU,EAAED,SAAS,CAAC,EAAER,KAAK,EAAEW,iBAAiB,CAAC;4DAC5D1B,UAAU6B,SAAS4C,MAAM,KAAK;;;;;;;;;;;;;;;AAc1D,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/EditMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldMap, FormState } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { XIcon } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../providers/DocumentInfo/index.js'\nimport { OperationContext } from '../../providers/Operation/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { getFormState } from '../../utilities/getFormState.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { FieldSelect } from '../FieldSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-many'\n\nexport type EditManyProps = {\n collection: ClientCollectionConfig\n fieldMap: FieldMap\n}\n\nconst Submit: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__save`} disabled={disabled} onClick={save}>\n {t('general:save')}\n </FormSubmit>\n )\n}\n\nconst PublishButton: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'published',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__publish`} disabled={disabled} onClick={save}>\n {t('version:publishChanges')}\n </FormSubmit>\n )\n}\n\nconst SaveDraftButton: React.FC<{ action: string; disabled: boolean }> = ({ action, disabled }) => {\n const { submit } = useForm()\n const { t } = useTranslation()\n\n const save = useCallback(() => {\n void submit({\n action,\n method: 'PATCH',\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [action, submit])\n\n return (\n <FormSubmit className={`${baseClass}__draft`} disabled={disabled} onClick={save}>\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\nexport const EditMany: React.FC<EditManyProps> = (props) => {\n const { collection: { slug, labels: { plural } } = {}, collection, fieldMap } = props\n\n const { permissions } = useAuth()\n const { closeModal } = useModal()\n const {\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n const { count, getQueryParams, selectAll } = useSelection()\n const { i18n, t } = useTranslation()\n const [selected, setSelected] = useState([])\n const { stringifyParams } = useSearchParams()\n const router = useRouter()\n const [initialState, setInitialState] = useState<FormState>()\n const hasInitializedState = React.useRef(false)\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasUpdatePermission = collectionPermissions?.update?.permission\n\n const drawerSlug = `edit-${slug}`\n\n React.useEffect(() => {\n if (!hasInitializedState.current) {\n const getInitialState = async () => {\n const result = await getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n data: {},\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n })\n\n setInitialState(result)\n hasInitializedState.current = true\n }\n\n void getInitialState()\n }\n }, [apiRoute, hasInitializedState, serverURL, slug])\n\n const onChange: FormProps['onChange'][0] = useCallback(\n ({ formState: prevFormState }) =>\n getFormState({\n apiRoute,\n body: {\n collectionSlug: slug,\n formState: prevFormState,\n operation: 'update',\n schemaPath: slug,\n },\n serverURL,\n }),\n [serverURL, apiRoute, slug],\n )\n\n if (selectAll === SelectAllStatus.None || !hasUpdatePermission) {\n return null\n }\n\n const onSuccess = () => {\n router.replace(\n stringifyParams({\n params: { page: selectAll === SelectAllStatus.AllAvailable ? '1' : undefined },\n }),\n )\n clearRouteCache()\n closeModal(drawerSlug)\n }\n\n return (\n <div className={baseClass}>\n <DrawerToggler\n aria-label={t('general:edit')}\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSelected([])\n }}\n slug={drawerSlug}\n >\n {t('general:edit')}\n </DrawerToggler>\n <Drawer Header={null} slug={drawerSlug}>\n <DocumentInfoProvider collectionSlug={slug} id={null}>\n <OperationContext.Provider value=\"update\">\n <div className={`${baseClass}__main`}>\n <div className={`${baseClass}__header`}>\n <h2 className={`${baseClass}__header__title`}>\n {t('general:editingLabel', { count, label: getTranslation(plural, i18n) })}\n </h2>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header__close`}\n id={`close-drawer__${drawerSlug}`}\n onClick={() => closeModal(drawerSlug)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n <Form\n className={`${baseClass}__form`}\n initialState={initialState}\n onChange={[onChange]}\n onSuccess={onSuccess}\n >\n <FieldSelect fieldMap={fieldMap} setSelected={setSelected} />\n {selected.length === 0 ? null : (\n <RenderFields fieldMap={selected} path=\"\" readOnly={false} schemaPath={slug} />\n )}\n <div className={`${baseClass}__sidebar-wrap`}>\n <div className={`${baseClass}__sidebar`}>\n <div className={`${baseClass}__sidebar-sticky-wrap`}>\n <div className={`${baseClass}__document-actions`}>\n {collection?.versions?.drafts ? (\n <React.Fragment>\n <PublishButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n <SaveDraftButton\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}&draft=true`}\n disabled={selected.length === 0}\n />\n </React.Fragment>\n ) : (\n <Submit\n action={`${serverURL}${apiRoute}/${slug}${getQueryParams()}`}\n disabled={selected.length === 0}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </Form>\n </div>\n </OperationContext.Provider>\n </DocumentInfoProvider>\n </Drawer>\n </div>\n )\n}\n"],"names":["useModal","getTranslation","useRouter","React","useCallback","useState","useForm","Form","RenderFields","FormSubmit","XIcon","useAuth","useConfig","DocumentInfoProvider","OperationContext","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","getFormState","Drawer","DrawerToggler","FieldSelect","baseClass","Submit","action","disabled","submit","t","save","method","skipValidation","className","onClick","PublishButton","overrides","_status","SaveDraftButton","EditMany","props","collection","slug","labels","plural","fieldMap","permissions","closeModal","routes","api","apiRoute","serverURL","count","getQueryParams","selectAll","i18n","selected","setSelected","stringifyParams","router","initialState","setInitialState","hasInitializedState","useRef","clearRouteCache","collectionPermissions","collections","hasUpdatePermission","update","permission","drawerSlug","useEffect","current","getInitialState","result","body","collectionSlug","data","operation","schemaPath","onChange","formState","prevFormState","None","onSuccess","replace","params","page","AllAvailable","undefined","div","aria-label","Header","id","Provider","value","h2","label","button","type","length","path","readOnly","versions","drafts","Fragment"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  .edit-many {
4
4
  &__toggle {
5
5
  font-size: 1rem;
6
- line-height: base(1);
6
+ line-height: base(1.2);
7
7
  display: inline-flex;
8
8
  background: var(--theme-elevation-150);
9
9
  color: var(--theme-elevation-800);
@@ -12,7 +12,7 @@
12
12
  overflow: hidden;
13
13
  text-overflow: ellipsis;
14
14
  border: 0;
15
- padding: 0 base(0.25);
15
+ padding: 0 base(0.4);
16
16
  align-items: center;
17
17
  cursor: pointer;
18
18
  text-decoration: none;
@@ -1,4 +1,4 @@
1
- import type CropType from 'react-image-crop';
1
+ import type { UploadEdits } from 'payload';
2
2
  import React from 'react';
3
3
  import 'react-image-crop/dist/ReactCrop.css';
4
4
  import './index.scss';
@@ -10,12 +10,9 @@ export type EditUploadProps = {
10
10
  fileName: string;
11
11
  fileSrc: string;
12
12
  imageCacheTag?: string;
13
- initialCrop?: CropType;
13
+ initialCrop?: UploadEdits['crop'];
14
14
  initialFocalPoint?: FocalPosition;
15
- onSave?: ({ crop, focalPosition }: {
16
- crop: CropType;
17
- focalPosition: FocalPosition;
18
- }) => void;
15
+ onSave?: (uploadEdits: UploadEdits) => void;
19
16
  showCrop?: boolean;
20
17
  showFocalPoint?: boolean;
21
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditUpload/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAG5C,OAAO,KAAuC,MAAM,OAAO,CAAA;AAE3D,OAAO,qCAAqC,CAAA;AAM5C,OAAO,cAAc,CAAA;AA2BrB,KAAK,aAAa,GAAG;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,iBAAiB,CAAC,EAAE,aAAa,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,aAAa,EAAE,aAAa,CAAA;KAAE,KAAK,IAAI,CAAA;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAYD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyQhD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/EditUpload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAG1C,OAAO,KAAuC,MAAM,OAAO,CAAA;AAE3D,OAAO,qCAAqC,CAAA;AAM5C,OAAO,cAAc,CAAA;AA2BrB,KAAK,aAAa,GAAG;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,iBAAiB,CAAC,EAAE,aAAa,CAAA;IACjC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,CAAA;AAUD,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsQhD,CAAA"}
@@ -28,10 +28,8 @@ const Input = /*#__PURE__*/ forwardRef((props, ref)=>{
28
28
  });
29
29
  const defaultCrop = {
30
30
  height: 100,
31
- heightPixels: 0,
32
31
  unit: '%',
33
32
  width: 100,
34
- widthPixels: 0,
35
33
  x: 0,
36
34
  y: 0
37
35
  };
@@ -40,7 +38,7 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
40
38
  const { t } = useTranslation();
41
39
  const [crop, setCrop] = useState(()=>({
42
40
  ...defaultCrop,
43
- ...initialCrop
41
+ ...initialCrop || {}
44
42
  }));
45
43
  const defaultFocalPosition = {
46
44
  x: 50,
@@ -51,24 +49,25 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
51
49
  ...initialFocalPoint
52
50
  }));
53
51
  const [checkBounds, setCheckBounds] = useState(false);
54
- const [originalHeight, setOriginalHeight] = useState(0);
55
- const [originalWidth, setOriginalWidth] = useState(0);
52
+ const [uncroppedPixelHeight, setUncroppedPixelHeight] = useState(0);
53
+ const [uncroppedPixelWidth, setUncroppedPixelWidth] = useState(0);
56
54
  const focalWrapRef = useRef(undefined);
57
55
  const imageRef = useRef(undefined);
58
56
  const cropRef = useRef(undefined);
59
- const heightRef = useRef(null);
60
- const widthRef = useRef(null);
57
+ const heightInputRef = useRef(null);
58
+ const widthInputRef = useRef(null);
61
59
  const [imageLoaded, setImageLoaded] = useState(false);
62
60
  const onImageLoad = (e)=>{
63
- setOriginalHeight(e.currentTarget.naturalHeight);
64
- setOriginalWidth(e.currentTarget.naturalWidth);
61
+ // set the default image height/width on load
62
+ setUncroppedPixelHeight(e.currentTarget.naturalHeight);
63
+ setUncroppedPixelWidth(e.currentTarget.naturalWidth);
65
64
  setImageLoaded(true);
66
65
  };
67
66
  const fineTuneCrop = ({ dimension, value })=>{
68
67
  const intValue = parseInt(value);
69
- if (dimension === 'width' && intValue >= originalWidth) return null;
70
- if (dimension === 'height' && intValue >= originalHeight) return null;
71
- const percentage = 100 * (intValue / (dimension === 'width' ? originalWidth : originalHeight));
68
+ if (dimension === 'width' && intValue >= uncroppedPixelWidth) return null;
69
+ if (dimension === 'height' && intValue >= uncroppedPixelHeight) return null;
70
+ const percentage = 100 * (intValue / (dimension === 'width' ? uncroppedPixelWidth : uncroppedPixelHeight));
72
71
  if (percentage === 100 || percentage === 0) return null;
73
72
  setCrop({
74
73
  ...crop,
@@ -86,12 +85,10 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
86
85
  };
87
86
  const saveEdits = ()=>{
88
87
  if (typeof onSave === 'function') onSave({
89
- crop: crop ? {
90
- ...crop,
91
- heightPixels: Number(heightRef.current?.value ?? crop.heightPixels),
92
- widthPixels: Number(widthRef.current?.value ?? crop.widthPixels)
93
- } : undefined,
94
- focalPosition
88
+ crop: crop ? crop : undefined,
89
+ focalPoint: focalPosition,
90
+ heightInPixels: Number(heightInputRef?.current?.value ?? uncroppedPixelHeight),
91
+ widthInPixels: Number(widthInputRef?.current?.value ?? uncroppedPixelWidth)
95
92
  });
96
93
  closeModal(editDrawerSlug);
97
94
  };
@@ -158,7 +155,7 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
158
155
  className: `${baseClass}__focal-wrapper`,
159
156
  ref: focalWrapRef,
160
157
  style: {
161
- aspectRatio: `${originalWidth / originalHeight}`
158
+ aspectRatio: `${uncroppedPixelWidth / uncroppedPixelHeight}`
162
159
  },
163
160
  children: [
164
161
  showCrop ? /*#__PURE__*/ _jsx(ReactCrop, {
@@ -215,10 +212,8 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
215
212
  className: `${baseClass}__reset`,
216
213
  onClick: ()=>setCrop({
217
214
  height: 100,
218
- heightPixels: originalHeight,
219
215
  unit: '%',
220
216
  width: 100,
221
- widthPixels: originalWidth,
222
217
  x: 0,
223
218
  y: 0
224
219
  }),
@@ -240,8 +235,8 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
240
235
  dimension: 'width',
241
236
  value
242
237
  }),
243
- ref: widthRef,
244
- value: (crop.width / 100 * originalWidth).toFixed(0)
238
+ ref: widthInputRef,
239
+ value: (crop.width / 100 * uncroppedPixelWidth).toFixed(0)
245
240
  }),
246
241
  /*#__PURE__*/ _jsx(Input, {
247
242
  name: `${t('upload:height')} (px)`,
@@ -249,8 +244,8 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
249
244
  dimension: 'height',
250
245
  value
251
246
  }),
252
- ref: heightRef,
253
- value: (crop.height / 100 * originalHeight).toFixed(0)
247
+ ref: heightInputRef,
248
+ value: (crop.height / 100 * uncroppedPixelHeight).toFixed(0)
254
249
  })
255
250
  ]
256
251
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/EditUpload/index.tsx"],"sourcesContent":["'use client'\nimport type CropType from 'react-image-crop'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { forwardRef, useRef, useState } from 'react'\nimport ReactCrop from 'react-image-crop'\nimport 'react-image-crop/dist/ReactCrop.css'\n\nimport { editDrawerSlug } from '../../elements/Upload/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-upload'\n\ntype Props = {\n name: string\n onChange: (value: string) => void\n value: string\n}\n\nconst Input = forwardRef<HTMLInputElement, Props>((props, ref) => {\n const { name, onChange, value } = props\n\n return (\n <div className={`${baseClass}__input`}>\n {name}\n <input\n name={name}\n onChange={(e) => onChange(e.target.value)}\n ref={ref}\n type=\"number\"\n value={value}\n />\n </div>\n )\n})\n\ntype FocalPosition = {\n x: number\n y: number\n}\n\nexport type EditUploadProps = {\n fileName: string\n fileSrc: string\n imageCacheTag?: string\n initialCrop?: CropType\n initialFocalPoint?: FocalPosition\n onSave?: ({ crop, focalPosition }: { crop: CropType; focalPosition: FocalPosition }) => void\n showCrop?: boolean\n showFocalPoint?: boolean\n}\n\nconst defaultCrop: CropType = {\n height: 100,\n heightPixels: 0,\n unit: '%',\n width: 100,\n widthPixels: 0,\n x: 0,\n y: 0,\n}\n\nexport const EditUpload: React.FC<EditUploadProps> = ({\n fileName,\n fileSrc,\n imageCacheTag,\n initialCrop,\n initialFocalPoint,\n onSave,\n showCrop,\n showFocalPoint,\n}) => {\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const [crop, setCrop] = useState<CropType>(() => ({\n ...defaultCrop,\n ...initialCrop,\n }))\n\n const defaultFocalPosition: FocalPosition = {\n x: 50,\n y: 50,\n }\n\n const [focalPosition, setFocalPosition] = useState<FocalPosition>(() => ({\n ...defaultFocalPosition,\n ...initialFocalPoint,\n }))\n const [checkBounds, setCheckBounds] = useState<boolean>(false)\n const [originalHeight, setOriginalHeight] = useState<number>(0)\n const [originalWidth, setOriginalWidth] = useState<number>(0)\n\n const focalWrapRef = useRef<HTMLDivElement | undefined>(undefined)\n const imageRef = useRef<HTMLImageElement | undefined>(undefined)\n const cropRef = useRef<HTMLDivElement | undefined>(undefined)\n\n const heightRef = useRef<HTMLInputElement | null>(null)\n const widthRef = useRef<HTMLInputElement | null>(null)\n\n const [imageLoaded, setImageLoaded] = useState<boolean>(false)\n\n const onImageLoad = (e) => {\n setOriginalHeight(e.currentTarget.naturalHeight)\n setOriginalWidth(e.currentTarget.naturalWidth)\n setImageLoaded(true)\n }\n\n const fineTuneCrop = ({ dimension, value }: { dimension: 'height' | 'width'; value: string }) => {\n const intValue = parseInt(value)\n if (dimension === 'width' && intValue >= originalWidth) return null\n if (dimension === 'height' && intValue >= originalHeight) return null\n\n const percentage = 100 * (intValue / (dimension === 'width' ? originalWidth : originalHeight))\n\n if (percentage === 100 || percentage === 0) return null\n\n setCrop({\n ...crop,\n [dimension]: percentage,\n })\n }\n\n const fineTuneFocalPosition = ({\n coordinate,\n value,\n }: {\n coordinate: 'x' | 'y'\n value: string\n }) => {\n const intValue = parseInt(value)\n if (intValue >= 0 && intValue <= 100) {\n setFocalPosition((prevPosition) => ({ ...prevPosition, [coordinate]: intValue }))\n }\n }\n\n const saveEdits = () => {\n if (typeof onSave === 'function')\n onSave({\n crop: crop\n ? {\n ...crop,\n heightPixels: Number(heightRef.current?.value ?? crop.heightPixels),\n widthPixels: Number(widthRef.current?.value ?? crop.widthPixels),\n }\n : undefined,\n focalPosition,\n })\n closeModal(editDrawerSlug)\n }\n\n const onDragEnd = React.useCallback(({ x, y }) => {\n setFocalPosition({ x, y })\n setCheckBounds(false)\n }, [])\n\n const centerFocalPoint = () => {\n const containerRect = focalWrapRef.current.getBoundingClientRect()\n const boundsRect = showCrop\n ? cropRef.current.getBoundingClientRect()\n : imageRef.current.getBoundingClientRect()\n const xCenter =\n ((boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width) * 100\n const yCenter =\n ((boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height) * 100\n setFocalPosition({ x: xCenter, y: yCenter })\n }\n\n const fileSrcToUse = imageCacheTag ? `${fileSrc}?${imageCacheTag}` : fileSrc\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h2 title={`${t('general:editing')} ${fileName}`}>\n {t('general:editing')} {fileName}\n </h2>\n <div className={`${baseClass}__actions`}>\n <Button\n aria-label={t('general:cancel')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__cancel`}\n onClick={() => closeModal(editDrawerSlug)}\n >\n {t('general:cancel')}\n </Button>\n <Button\n aria-label={t('general:applyChanges')}\n buttonStyle=\"primary\"\n className={`${baseClass}__save`}\n disabled={!imageLoaded}\n onClick={saveEdits}\n >\n {t('general:applyChanges')}\n </Button>\n </div>\n </div>\n <div className={`${baseClass}__toolWrap`}>\n <div className={`${baseClass}__crop`}>\n <div\n className={`${baseClass}__focal-wrapper`}\n ref={focalWrapRef}\n style={{\n aspectRatio: `${originalWidth / originalHeight}`,\n }}\n >\n {showCrop ? (\n <ReactCrop\n className={`${baseClass}__reactCrop`}\n crop={crop}\n onChange={(_, c) => setCrop(c)}\n onComplete={() => setCheckBounds(true)}\n renderSelectionAddon={() => {\n return <div className={`${baseClass}__crop-window`} ref={cropRef} />\n }}\n >\n <img\n alt={t('upload:setCropArea')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n </ReactCrop>\n ) : (\n <img\n alt={t('upload:setFocalPoint')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n )}\n {showFocalPoint && (\n <DraggableElement\n boundsRef={showCrop ? cropRef : imageRef}\n checkBounds={showCrop ? checkBounds : false}\n className={`${baseClass}__focalPoint`}\n containerRef={focalWrapRef}\n initialPosition={focalPosition}\n onDragEnd={onDragEnd}\n setCheckBounds={showCrop ? setCheckBounds : false}\n >\n <PlusIcon />\n </DraggableElement>\n )}\n </div>\n </div>\n {(showCrop || showFocalPoint) && (\n <div className={`${baseClass}__sidebar`}>\n {showCrop && (\n <div className={`${baseClass}__groupWrap`}>\n <div>\n <div className={`${baseClass}__titleWrap`}>\n <h3>{t('upload:crop')}</h3>\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__reset`}\n onClick={() =>\n setCrop({\n height: 100,\n heightPixels: originalHeight,\n unit: '%',\n width: 100,\n widthPixels: originalWidth,\n x: 0,\n y: 0,\n })\n }\n >\n {t('general:reset')}\n </Button>\n </div>\n </div>\n <span className={`${baseClass}__description`}>\n {t('upload:cropToolDescription')}\n </span>\n <div className={`${baseClass}__inputsWrap`}>\n <Input\n name={`${t('upload:width')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'width', value })}\n ref={widthRef}\n value={((crop.width / 100) * originalWidth).toFixed(0)}\n />\n <Input\n name={`${t('upload:height')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'height', value })}\n ref={heightRef}\n value={((crop.height / 100) * originalHeight).toFixed(0)}\n />\n </div>\n </div>\n )}\n\n {showFocalPoint && (\n <div className={`${baseClass}__groupWrap`}>\n <div>\n <div className={`${baseClass}__titleWrap`}>\n <h3>{t('upload:focalPoint')}</h3>\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__reset`}\n onClick={centerFocalPoint}\n >\n {t('general:reset')}\n </Button>\n </div>\n </div>\n <span className={`${baseClass}__description`}>\n {t('upload:focalPointDescription')}\n </span>\n <div className={`${baseClass}__inputsWrap`}>\n <Input\n name=\"X %\"\n onChange={(value) => fineTuneFocalPosition({ coordinate: 'x', value })}\n value={focalPosition.x.toFixed(0)}\n />\n <Input\n name=\"Y %\"\n onChange={(value) => fineTuneFocalPosition({ coordinate: 'y', value })}\n value={focalPosition.y.toFixed(0)}\n />\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )\n}\n\nconst DraggableElement = ({\n boundsRef,\n checkBounds,\n children,\n className,\n containerRef,\n initialPosition = { x: 50, y: 50 },\n onDragEnd,\n setCheckBounds,\n}) => {\n const [position, setPosition] = useState({ x: initialPosition.x, y: initialPosition.y })\n const [isDragging, setIsDragging] = useState(false)\n const dragRef = useRef<HTMLButtonElement | undefined>(undefined)\n\n const getCoordinates = React.useCallback(\n (mouseXArg?: number, mouseYArg?: number, recenter?: boolean) => {\n const containerRect = containerRef.current.getBoundingClientRect()\n const boundsRect = boundsRef.current.getBoundingClientRect()\n const mouseX = mouseXArg ?? boundsRect.left\n const mouseY = mouseYArg ?? boundsRect.top\n\n const xOutOfBounds = mouseX < boundsRect.left || mouseX > boundsRect.right\n const yOutOfBounds = mouseY < boundsRect.top || mouseY > boundsRect.bottom\n\n let x = ((mouseX - containerRect.left) / containerRect.width) * 100\n let y = ((mouseY - containerRect.top) / containerRect.height) * 100\n const xCenter =\n ((boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width) * 100\n const yCenter =\n ((boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height) * 100\n if (xOutOfBounds || yOutOfBounds) {\n setIsDragging(false)\n if (mouseX < boundsRect.left) {\n x = ((boundsRect.left - containerRect.left) / containerRect.width) * 100\n } else if (mouseX > boundsRect.right) {\n x =\n ((containerRect.width - (containerRect.right - boundsRect.right)) /\n containerRect.width) *\n 100\n }\n\n if (mouseY < boundsRect.top) {\n y = ((boundsRect.top - containerRect.top) / containerRect.height) * 100\n } else if (mouseY > boundsRect.bottom) {\n y =\n ((containerRect.height - (containerRect.bottom - boundsRect.bottom)) /\n containerRect.height) *\n 100\n }\n\n if (recenter) {\n x = xOutOfBounds ? xCenter : x\n y = yOutOfBounds ? yCenter : y\n }\n }\n\n return { x, y }\n },\n [boundsRef, containerRef],\n )\n\n const handleMouseDown = (event) => {\n event.preventDefault()\n setIsDragging(true)\n }\n\n const handleMouseMove = (event) => {\n if (!isDragging) return null\n const { x, y } = getCoordinates(event.clientX, event.clientY)\n\n setPosition({ x, y })\n }\n\n const onDrop = () => {\n setIsDragging(false)\n onDragEnd(position)\n }\n\n React.useEffect(() => {\n if (isDragging || !dragRef.current) return\n if (checkBounds) {\n const { height, left, top, width } = dragRef.current.getBoundingClientRect()\n const { x, y } = getCoordinates(left + width / 2, top + height / 2, true)\n onDragEnd({ x, y })\n setPosition({ x, y })\n setCheckBounds(false)\n return\n }\n }, [getCoordinates, isDragging, checkBounds, setCheckBounds, position.x, position.y, onDragEnd])\n\n React.useEffect(() => {\n setPosition({ x: initialPosition.x, y: initialPosition.y })\n }, [initialPosition.x, initialPosition.y])\n\n return (\n <div\n className={[\n `${baseClass}__draggable-container`,\n isDragging && `${baseClass}__draggable-container--dragging`,\n ]\n .filter(Boolean)\n .join(' ')}\n onMouseMove={handleMouseMove}\n >\n <button\n className={[`${baseClass}__draggable`, className].filter(Boolean).join(' ')}\n onMouseDown={handleMouseDown}\n onMouseUp={onDrop}\n ref={dragRef}\n style={{ left: `${position.x}%`, top: `${position.y}%` }}\n type=\"button\"\n >\n {children}\n </button>\n <div />\n </div>\n )\n}\n"],"names":["useModal","React","forwardRef","useRef","useState","ReactCrop","editDrawerSlug","PlusIcon","useTranslation","Button","baseClass","Input","props","ref","name","onChange","value","div","className","input","e","target","type","defaultCrop","height","heightPixels","unit","width","widthPixels","x","y","EditUpload","fileName","fileSrc","imageCacheTag","initialCrop","initialFocalPoint","onSave","showCrop","showFocalPoint","closeModal","t","crop","setCrop","defaultFocalPosition","focalPosition","setFocalPosition","checkBounds","setCheckBounds","originalHeight","setOriginalHeight","originalWidth","setOriginalWidth","focalWrapRef","undefined","imageRef","cropRef","heightRef","widthRef","imageLoaded","setImageLoaded","onImageLoad","currentTarget","naturalHeight","naturalWidth","fineTuneCrop","dimension","intValue","parseInt","percentage","fineTuneFocalPosition","coordinate","prevPosition","saveEdits","Number","current","onDragEnd","useCallback","centerFocalPoint","containerRect","getBoundingClientRect","boundsRect","xCenter","left","yCenter","top","fileSrcToUse","h2","title","aria-label","buttonStyle","onClick","disabled","style","aspectRatio","_","c","onComplete","renderSelectionAddon","img","alt","onLoad","src","DraggableElement","boundsRef","containerRef","initialPosition","h3","span","toFixed","children","position","setPosition","isDragging","setIsDragging","dragRef","getCoordinates","mouseXArg","mouseYArg","recenter","mouseX","mouseY","xOutOfBounds","right","yOutOfBounds","bottom","handleMouseDown","event","preventDefault","handleMouseMove","clientX","clientY","onDrop","useEffect","filter","Boolean","join","onMouseMove","button","onMouseDown","onMouseUp"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/EditUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { forwardRef, useRef, useState } from 'react'\nimport ReactCrop from 'react-image-crop'\nimport 'react-image-crop/dist/ReactCrop.css'\n\nimport { editDrawerSlug } from '../../elements/Upload/index.js'\nimport { PlusIcon } from '../../icons/Plus/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'edit-upload'\n\ntype Props = {\n name: string\n onChange: (value: string) => void\n value: string\n}\n\nconst Input = forwardRef<HTMLInputElement, Props>((props, ref) => {\n const { name, onChange, value } = props\n\n return (\n <div className={`${baseClass}__input`}>\n {name}\n <input\n name={name}\n onChange={(e) => onChange(e.target.value)}\n ref={ref}\n type=\"number\"\n value={value}\n />\n </div>\n )\n})\n\ntype FocalPosition = {\n x: number\n y: number\n}\n\nexport type EditUploadProps = {\n fileName: string\n fileSrc: string\n imageCacheTag?: string\n initialCrop?: UploadEdits['crop']\n initialFocalPoint?: FocalPosition\n onSave?: (uploadEdits: UploadEdits) => void\n showCrop?: boolean\n showFocalPoint?: boolean\n}\n\nconst defaultCrop: UploadEdits['crop'] = {\n height: 100,\n unit: '%',\n width: 100,\n x: 0,\n y: 0,\n}\n\nexport const EditUpload: React.FC<EditUploadProps> = ({\n fileName,\n fileSrc,\n imageCacheTag,\n initialCrop,\n initialFocalPoint,\n onSave,\n showCrop,\n showFocalPoint,\n}) => {\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const [crop, setCrop] = useState<UploadEdits['crop']>(() => ({\n ...defaultCrop,\n ...(initialCrop || {}),\n }))\n\n const defaultFocalPosition: FocalPosition = {\n x: 50,\n y: 50,\n }\n\n const [focalPosition, setFocalPosition] = useState<FocalPosition>(() => ({\n ...defaultFocalPosition,\n ...initialFocalPoint,\n }))\n\n const [checkBounds, setCheckBounds] = useState<boolean>(false)\n const [uncroppedPixelHeight, setUncroppedPixelHeight] = useState<number>(0)\n const [uncroppedPixelWidth, setUncroppedPixelWidth] = useState<number>(0)\n\n const focalWrapRef = useRef<HTMLDivElement | undefined>(undefined)\n const imageRef = useRef<HTMLImageElement | undefined>(undefined)\n const cropRef = useRef<HTMLDivElement | undefined>(undefined)\n\n const heightInputRef = useRef<HTMLInputElement | null>(null)\n const widthInputRef = useRef<HTMLInputElement | null>(null)\n\n const [imageLoaded, setImageLoaded] = useState<boolean>(false)\n\n const onImageLoad = (e) => {\n // set the default image height/width on load\n setUncroppedPixelHeight(e.currentTarget.naturalHeight)\n setUncroppedPixelWidth(e.currentTarget.naturalWidth)\n setImageLoaded(true)\n }\n\n const fineTuneCrop = ({ dimension, value }: { dimension: 'height' | 'width'; value: string }) => {\n const intValue = parseInt(value)\n if (dimension === 'width' && intValue >= uncroppedPixelWidth) return null\n if (dimension === 'height' && intValue >= uncroppedPixelHeight) return null\n\n const percentage =\n 100 * (intValue / (dimension === 'width' ? uncroppedPixelWidth : uncroppedPixelHeight))\n\n if (percentage === 100 || percentage === 0) return null\n\n setCrop({\n ...crop,\n [dimension]: percentage,\n })\n }\n\n const fineTuneFocalPosition = ({\n coordinate,\n value,\n }: {\n coordinate: 'x' | 'y'\n value: string\n }) => {\n const intValue = parseInt(value)\n if (intValue >= 0 && intValue <= 100) {\n setFocalPosition((prevPosition) => ({ ...prevPosition, [coordinate]: intValue }))\n }\n }\n\n const saveEdits = () => {\n if (typeof onSave === 'function')\n onSave({\n crop: crop ? crop : undefined,\n focalPoint: focalPosition,\n heightInPixels: Number(heightInputRef?.current?.value ?? uncroppedPixelHeight),\n widthInPixels: Number(widthInputRef?.current?.value ?? uncroppedPixelWidth),\n })\n closeModal(editDrawerSlug)\n }\n\n const onDragEnd = React.useCallback(({ x, y }) => {\n setFocalPosition({ x, y })\n setCheckBounds(false)\n }, [])\n\n const centerFocalPoint = () => {\n const containerRect = focalWrapRef.current.getBoundingClientRect()\n const boundsRect = showCrop\n ? cropRef.current.getBoundingClientRect()\n : imageRef.current.getBoundingClientRect()\n const xCenter =\n ((boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width) * 100\n const yCenter =\n ((boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height) * 100\n setFocalPosition({ x: xCenter, y: yCenter })\n }\n\n const fileSrcToUse = imageCacheTag ? `${fileSrc}?${imageCacheTag}` : fileSrc\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__header`}>\n <h2 title={`${t('general:editing')} ${fileName}`}>\n {t('general:editing')} {fileName}\n </h2>\n <div className={`${baseClass}__actions`}>\n <Button\n aria-label={t('general:cancel')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__cancel`}\n onClick={() => closeModal(editDrawerSlug)}\n >\n {t('general:cancel')}\n </Button>\n <Button\n aria-label={t('general:applyChanges')}\n buttonStyle=\"primary\"\n className={`${baseClass}__save`}\n disabled={!imageLoaded}\n onClick={saveEdits}\n >\n {t('general:applyChanges')}\n </Button>\n </div>\n </div>\n <div className={`${baseClass}__toolWrap`}>\n <div className={`${baseClass}__crop`}>\n <div\n className={`${baseClass}__focal-wrapper`}\n ref={focalWrapRef}\n style={{\n aspectRatio: `${uncroppedPixelWidth / uncroppedPixelHeight}`,\n }}\n >\n {showCrop ? (\n <ReactCrop\n className={`${baseClass}__reactCrop`}\n crop={crop}\n onChange={(_, c) => setCrop(c)}\n onComplete={() => setCheckBounds(true)}\n renderSelectionAddon={() => {\n return <div className={`${baseClass}__crop-window`} ref={cropRef} />\n }}\n >\n <img\n alt={t('upload:setCropArea')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n </ReactCrop>\n ) : (\n <img\n alt={t('upload:setFocalPoint')}\n onLoad={onImageLoad}\n ref={imageRef}\n src={fileSrcToUse}\n />\n )}\n {showFocalPoint && (\n <DraggableElement\n boundsRef={showCrop ? cropRef : imageRef}\n checkBounds={showCrop ? checkBounds : false}\n className={`${baseClass}__focalPoint`}\n containerRef={focalWrapRef}\n initialPosition={focalPosition}\n onDragEnd={onDragEnd}\n setCheckBounds={showCrop ? setCheckBounds : false}\n >\n <PlusIcon />\n </DraggableElement>\n )}\n </div>\n </div>\n {(showCrop || showFocalPoint) && (\n <div className={`${baseClass}__sidebar`}>\n {showCrop && (\n <div className={`${baseClass}__groupWrap`}>\n <div>\n <div className={`${baseClass}__titleWrap`}>\n <h3>{t('upload:crop')}</h3>\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__reset`}\n onClick={() =>\n setCrop({\n height: 100,\n unit: '%',\n width: 100,\n x: 0,\n y: 0,\n })\n }\n >\n {t('general:reset')}\n </Button>\n </div>\n </div>\n <span className={`${baseClass}__description`}>\n {t('upload:cropToolDescription')}\n </span>\n <div className={`${baseClass}__inputsWrap`}>\n <Input\n name={`${t('upload:width')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'width', value })}\n ref={widthInputRef}\n value={((crop.width / 100) * uncroppedPixelWidth).toFixed(0)}\n />\n <Input\n name={`${t('upload:height')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'height', value })}\n ref={heightInputRef}\n value={((crop.height / 100) * uncroppedPixelHeight).toFixed(0)}\n />\n </div>\n </div>\n )}\n\n {showFocalPoint && (\n <div className={`${baseClass}__groupWrap`}>\n <div>\n <div className={`${baseClass}__titleWrap`}>\n <h3>{t('upload:focalPoint')}</h3>\n <Button\n buttonStyle=\"none\"\n className={`${baseClass}__reset`}\n onClick={centerFocalPoint}\n >\n {t('general:reset')}\n </Button>\n </div>\n </div>\n <span className={`${baseClass}__description`}>\n {t('upload:focalPointDescription')}\n </span>\n <div className={`${baseClass}__inputsWrap`}>\n <Input\n name=\"X %\"\n onChange={(value) => fineTuneFocalPosition({ coordinate: 'x', value })}\n value={focalPosition.x.toFixed(0)}\n />\n <Input\n name=\"Y %\"\n onChange={(value) => fineTuneFocalPosition({ coordinate: 'y', value })}\n value={focalPosition.y.toFixed(0)}\n />\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )\n}\n\nconst DraggableElement = ({\n boundsRef,\n checkBounds,\n children,\n className,\n containerRef,\n initialPosition = { x: 50, y: 50 },\n onDragEnd,\n setCheckBounds,\n}) => {\n const [position, setPosition] = useState({ x: initialPosition.x, y: initialPosition.y })\n const [isDragging, setIsDragging] = useState(false)\n const dragRef = useRef<HTMLButtonElement | undefined>(undefined)\n\n const getCoordinates = React.useCallback(\n (mouseXArg?: number, mouseYArg?: number, recenter?: boolean) => {\n const containerRect = containerRef.current.getBoundingClientRect()\n const boundsRect = boundsRef.current.getBoundingClientRect()\n const mouseX = mouseXArg ?? boundsRect.left\n const mouseY = mouseYArg ?? boundsRect.top\n\n const xOutOfBounds = mouseX < boundsRect.left || mouseX > boundsRect.right\n const yOutOfBounds = mouseY < boundsRect.top || mouseY > boundsRect.bottom\n\n let x = ((mouseX - containerRect.left) / containerRect.width) * 100\n let y = ((mouseY - containerRect.top) / containerRect.height) * 100\n const xCenter =\n ((boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width) * 100\n const yCenter =\n ((boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height) * 100\n if (xOutOfBounds || yOutOfBounds) {\n setIsDragging(false)\n if (mouseX < boundsRect.left) {\n x = ((boundsRect.left - containerRect.left) / containerRect.width) * 100\n } else if (mouseX > boundsRect.right) {\n x =\n ((containerRect.width - (containerRect.right - boundsRect.right)) /\n containerRect.width) *\n 100\n }\n\n if (mouseY < boundsRect.top) {\n y = ((boundsRect.top - containerRect.top) / containerRect.height) * 100\n } else if (mouseY > boundsRect.bottom) {\n y =\n ((containerRect.height - (containerRect.bottom - boundsRect.bottom)) /\n containerRect.height) *\n 100\n }\n\n if (recenter) {\n x = xOutOfBounds ? xCenter : x\n y = yOutOfBounds ? yCenter : y\n }\n }\n\n return { x, y }\n },\n [boundsRef, containerRef],\n )\n\n const handleMouseDown = (event) => {\n event.preventDefault()\n setIsDragging(true)\n }\n\n const handleMouseMove = (event) => {\n if (!isDragging) return null\n const { x, y } = getCoordinates(event.clientX, event.clientY)\n\n setPosition({ x, y })\n }\n\n const onDrop = () => {\n setIsDragging(false)\n onDragEnd(position)\n }\n\n React.useEffect(() => {\n if (isDragging || !dragRef.current) return\n if (checkBounds) {\n const { height, left, top, width } = dragRef.current.getBoundingClientRect()\n const { x, y } = getCoordinates(left + width / 2, top + height / 2, true)\n onDragEnd({ x, y })\n setPosition({ x, y })\n setCheckBounds(false)\n return\n }\n }, [getCoordinates, isDragging, checkBounds, setCheckBounds, position.x, position.y, onDragEnd])\n\n React.useEffect(() => {\n setPosition({ x: initialPosition.x, y: initialPosition.y })\n }, [initialPosition.x, initialPosition.y])\n\n return (\n <div\n className={[\n `${baseClass}__draggable-container`,\n isDragging && `${baseClass}__draggable-container--dragging`,\n ]\n .filter(Boolean)\n .join(' ')}\n onMouseMove={handleMouseMove}\n >\n <button\n className={[`${baseClass}__draggable`, className].filter(Boolean).join(' ')}\n onMouseDown={handleMouseDown}\n onMouseUp={onDrop}\n ref={dragRef}\n style={{ left: `${position.x}%`, top: `${position.y}%` }}\n type=\"button\"\n >\n {children}\n </button>\n <div />\n </div>\n )\n}\n"],"names":["useModal","React","forwardRef","useRef","useState","ReactCrop","editDrawerSlug","PlusIcon","useTranslation","Button","baseClass","Input","props","ref","name","onChange","value","div","className","input","e","target","type","defaultCrop","height","unit","width","x","y","EditUpload","fileName","fileSrc","imageCacheTag","initialCrop","initialFocalPoint","onSave","showCrop","showFocalPoint","closeModal","t","crop","setCrop","defaultFocalPosition","focalPosition","setFocalPosition","checkBounds","setCheckBounds","uncroppedPixelHeight","setUncroppedPixelHeight","uncroppedPixelWidth","setUncroppedPixelWidth","focalWrapRef","undefined","imageRef","cropRef","heightInputRef","widthInputRef","imageLoaded","setImageLoaded","onImageLoad","currentTarget","naturalHeight","naturalWidth","fineTuneCrop","dimension","intValue","parseInt","percentage","fineTuneFocalPosition","coordinate","prevPosition","saveEdits","focalPoint","heightInPixels","Number","current","widthInPixels","onDragEnd","useCallback","centerFocalPoint","containerRect","getBoundingClientRect","boundsRect","xCenter","left","yCenter","top","fileSrcToUse","h2","title","aria-label","buttonStyle","onClick","disabled","style","aspectRatio","_","c","onComplete","renderSelectionAddon","img","alt","onLoad","src","DraggableElement","boundsRef","containerRef","initialPosition","h3","span","toFixed","children","position","setPosition","isDragging","setIsDragging","dragRef","getCoordinates","mouseXArg","mouseYArg","recenter","mouseX","mouseY","xOutOfBounds","right","yOutOfBounds","bottom","handleMouseDown","event","preventDefault","handleMouseMove","clientX","clientY","onDrop","useEffect","filter","Boolean","join","onMouseMove","button","onMouseDown","onMouseUp"],"mappings":"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"}
@@ -111,6 +111,9 @@ $header-height: base(5);
111
111
  &__crop,
112
112
  &__focalOnly {
113
113
  padding: base(1.5) base(1.5) base(1.5) 0;
114
+ width: 100%;
115
+ display: flex;
116
+ justify-content: center;
114
117
  }
115
118
 
116
119
  &__crop {
@@ -181,7 +184,7 @@ $header-height: base(5);
181
184
  height: fit-content;
182
185
  border-radius: var(--style-radius-s);
183
186
  background-color: var(--theme-elevation-150);
184
- padding: 0 base(0.25);
187
+ padding: 0 base(0.4);
185
188
  }
186
189
 
187
190
  &__input {
@@ -14,6 +14,8 @@
14
14
  display: flex;
15
15
  align-items: center;
16
16
  justify-content: center;
17
+ background: var(--theme-error-300);
18
+ color: var(--theme-error-950);
17
19
 
18
20
  &--fixed-width {
19
21
  width: 18px;
@@ -27,17 +29,3 @@
27
29
  margin-left: 0.5px;
28
30
  }
29
31
  }
30
-
31
- html[data-theme='light'] {
32
- .error-pill {
33
- background: var(--theme-error-250);
34
- color: var(--theme-error-750);
35
- }
36
- }
37
-
38
- html[data-theme='dark'] {
39
- .error-pill {
40
- background: var(--theme-error-500);
41
- color: var(--color-base-1000);
42
- }
43
- }