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

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 (574) 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 +1 -1
  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/Collapsible/index.d.ts +1 -1
  24. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  25. package/dist/elements/Collapsible/index.js +1 -1
  26. package/dist/elements/Collapsible/index.js.map +1 -1
  27. package/dist/elements/Collapsible/index.scss +61 -30
  28. package/dist/elements/ColumnSelector/index.scss +20 -2
  29. package/dist/elements/DatePicker/index.scss +3 -1
  30. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  31. package/dist/elements/DeleteDocument/index.js +7 -3
  32. package/dist/elements/DeleteDocument/index.js.map +1 -1
  33. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  34. package/dist/elements/DeleteMany/index.js +4 -2
  35. package/dist/elements/DeleteMany/index.js.map +1 -1
  36. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  37. package/dist/elements/DocumentControls/index.js +5 -1
  38. package/dist/elements/DocumentControls/index.js.map +1 -1
  39. package/dist/elements/DocumentControls/index.scss +2 -2
  40. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  41. package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
  42. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  43. package/dist/elements/DocumentDrawer/index.scss +4 -6
  44. package/dist/elements/DocumentFields/index.d.ts +1 -2
  45. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  46. package/dist/elements/DocumentFields/index.js +46 -48
  47. package/dist/elements/DocumentFields/index.js.map +1 -1
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  49. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +4 -2
  50. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  51. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  52. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +10 -4
  53. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  54. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  55. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  56. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  57. package/dist/elements/Drawer/index.d.ts.map +1 -1
  58. package/dist/elements/Drawer/index.js +3 -0
  59. package/dist/elements/Drawer/index.js.map +1 -1
  60. package/dist/elements/Drawer/index.scss +13 -8
  61. package/dist/elements/Dropzone/index.js +2 -2
  62. package/dist/elements/Dropzone/index.js.map +1 -1
  63. package/dist/elements/Dropzone/index.scss +7 -3
  64. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  65. package/dist/elements/DuplicateDocument/index.js +10 -6
  66. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  67. package/dist/elements/EditMany/index.d.ts +1 -2
  68. package/dist/elements/EditMany/index.d.ts.map +1 -1
  69. package/dist/elements/EditMany/index.js.map +1 -1
  70. package/dist/elements/EditMany/index.scss +2 -2
  71. package/dist/elements/EditUpload/index.d.ts +3 -6
  72. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  73. package/dist/elements/EditUpload/index.js +20 -25
  74. package/dist/elements/EditUpload/index.js.map +1 -1
  75. package/dist/elements/EditUpload/index.scss +4 -1
  76. package/dist/elements/FieldSelect/index.d.ts +1 -2
  77. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  78. package/dist/elements/FieldSelect/index.js.map +1 -1
  79. package/dist/elements/FileDetails/FileMeta/index.scss +1 -0
  80. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  81. package/dist/elements/FileDetails/index.js +3 -1
  82. package/dist/elements/FileDetails/index.js.map +1 -1
  83. package/dist/elements/FileDetails/index.scss +28 -12
  84. package/dist/elements/Hamburger/index.d.ts.map +1 -1
  85. package/dist/elements/Hamburger/index.js +17 -41
  86. package/dist/elements/Hamburger/index.js.map +1 -1
  87. package/dist/elements/Hamburger/index.scss +22 -102
  88. package/dist/elements/IDLabel/index.js +1 -1
  89. package/dist/elements/IDLabel/index.js.map +1 -1
  90. package/dist/elements/IDLabel/index.scss +2 -2
  91. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
  92. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  93. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  94. package/dist/elements/ListControls/index.d.ts +1 -2
  95. package/dist/elements/ListControls/index.d.ts.map +1 -1
  96. package/dist/elements/ListControls/index.js +43 -4
  97. package/dist/elements/ListControls/index.js.map +1 -1
  98. package/dist/elements/ListControls/index.scss +6 -12
  99. package/dist/elements/Localizer/index.d.ts.map +1 -1
  100. package/dist/elements/Localizer/index.js +6 -13
  101. package/dist/elements/Localizer/index.js.map +1 -1
  102. package/dist/elements/Logout/index.d.ts.map +1 -1
  103. package/dist/elements/Logout/index.js +7 -2
  104. package/dist/elements/Logout/index.js.map +1 -1
  105. package/dist/elements/NavGroup/index.scss +2 -2
  106. package/dist/elements/Pill/index.d.ts.map +1 -1
  107. package/dist/elements/Pill/index.js +1 -5
  108. package/dist/elements/Pill/index.js.map +1 -1
  109. package/dist/elements/Pill/index.scss +8 -21
  110. package/dist/elements/Popup/index.scss +6 -0
  111. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  112. package/dist/elements/PreviewButton/index.js +3 -1
  113. package/dist/elements/PreviewButton/index.js.map +1 -1
  114. package/dist/elements/PublishButton/index.js +1 -1
  115. package/dist/elements/PublishButton/index.js.map +1 -1
  116. package/dist/elements/ReactSelect/MultiValue/index.scss +25 -3
  117. package/dist/elements/ReactSelect/MultiValueLabel/index.scss +1 -1
  118. package/dist/elements/ReactSelect/MultiValueRemove/index.scss +3 -3
  119. package/dist/elements/ReactSelect/ValueContainer/index.scss +5 -12
  120. package/dist/elements/ReactSelect/index.scss +2 -3
  121. package/dist/elements/RenderTitle/index.scss +1 -1
  122. package/dist/elements/SaveButton/index.d.ts.map +1 -1
  123. package/dist/elements/SaveButton/index.js +4 -2
  124. package/dist/elements/SaveButton/index.js.map +1 -1
  125. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  126. package/dist/elements/SaveDraftButton/index.js +4 -2
  127. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  128. package/dist/elements/SearchFilter/index.d.ts +5 -3
  129. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  130. package/dist/elements/SearchFilter/index.js +20 -63
  131. package/dist/elements/SearchFilter/index.js.map +1 -1
  132. package/dist/elements/SearchFilter/index.scss +2 -1
  133. package/dist/elements/SelectRow/index.scss +1 -0
  134. package/dist/elements/SortColumn/index.d.ts +2 -2
  135. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  136. package/dist/elements/SortColumn/index.js +4 -4
  137. package/dist/elements/SortColumn/index.js.map +1 -1
  138. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  139. package/dist/elements/StayLoggedIn/index.js +8 -2
  140. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  141. package/dist/elements/StepNav/types.d.ts +2 -2
  142. package/dist/elements/StepNav/types.d.ts.map +1 -1
  143. package/dist/elements/StepNav/types.js.map +1 -1
  144. package/dist/elements/Table/DefaultCell/fields/Code/index.scss +1 -1
  145. package/dist/elements/Table/DefaultCell/fields/JSON/index.scss +1 -1
  146. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  147. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -3
  148. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  149. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  150. package/dist/elements/Table/DefaultCell/index.js +5 -1
  151. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  152. package/dist/elements/Table/index.d.ts +1 -2
  153. package/dist/elements/Table/index.d.ts.map +1 -1
  154. package/dist/elements/Table/index.js.map +1 -1
  155. package/dist/elements/Table/index.scss +10 -1
  156. package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
  157. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  158. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  159. package/dist/elements/TableColumns/filterFields.d.ts +1 -1
  160. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  161. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  162. package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
  163. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  164. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  165. package/dist/elements/ThumbnailCard/index.scss +10 -1
  166. package/dist/elements/Upload/index.d.ts.map +1 -1
  167. package/dist/elements/Upload/index.js +13 -28
  168. package/dist/elements/Upload/index.js.map +1 -1
  169. package/dist/elements/Upload/index.scss +2 -1
  170. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  171. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -5
  172. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  173. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  174. package/dist/elements/WhereBuilder/Condition/index.js +10 -2
  175. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  176. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  177. package/dist/elements/WhereBuilder/index.js +7 -4
  178. package/dist/elements/WhereBuilder/index.js.map +1 -1
  179. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
  180. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  181. package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
  182. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  183. package/dist/elements/WhereBuilder/types.d.ts +1 -2
  184. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  185. package/dist/elements/WhereBuilder/types.js.map +1 -1
  186. package/dist/elements/withMergedProps/index.js +8 -2
  187. package/dist/elements/withMergedProps/index.js.map +1 -1
  188. package/dist/exports/client/{CodeEditor-OI35YO7H.js → CodeEditor-UPOVAXRP.js} +2 -2
  189. package/dist/exports/client/{CodeEditor-OI35YO7H.js.map → CodeEditor-UPOVAXRP.js.map} +2 -2
  190. package/dist/exports/client/{DatePicker-5IFHNQHA.js → DatePicker-XJHHMZP7.js} +2 -2
  191. package/dist/exports/client/chunk-TIH7OFW3.js +30 -0
  192. package/dist/exports/client/{chunk-WDFUZ6GL.js.map → chunk-TIH7OFW3.js.map} +2 -2
  193. package/dist/exports/client/index.d.ts +7 -7
  194. package/dist/exports/client/index.d.ts.map +1 -1
  195. package/dist/exports/client/index.js +27 -26
  196. package/dist/exports/client/index.js.map +4 -4
  197. package/dist/exports/shared/index.d.ts +1 -0
  198. package/dist/exports/shared/index.d.ts.map +1 -1
  199. package/dist/exports/shared/index.js +2 -2
  200. package/dist/exports/shared/index.js.map +4 -4
  201. package/dist/fields/Array/ArrayRow.d.ts +2 -3
  202. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  203. package/dist/fields/Array/ArrayRow.js +4 -2
  204. package/dist/fields/Array/ArrayRow.js.map +1 -1
  205. package/dist/fields/Array/index.d.ts +2 -15
  206. package/dist/fields/Array/index.d.ts.map +1 -1
  207. package/dist/fields/Array/index.js +25 -8
  208. package/dist/fields/Array/index.js.map +1 -1
  209. package/dist/fields/Array/index.scss +3 -1
  210. package/dist/fields/Blocks/BlockRow.d.ts +2 -3
  211. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  212. package/dist/fields/Blocks/BlockRow.js +5 -1
  213. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  214. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.scss +3 -4
  215. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
  216. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  217. package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
  218. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  219. package/dist/fields/Blocks/RowActions.d.ts +2 -3
  220. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  221. package/dist/fields/Blocks/RowActions.js +1 -1
  222. package/dist/fields/Blocks/RowActions.js.map +1 -1
  223. package/dist/fields/Blocks/SectionTitle/index.scss +1 -0
  224. package/dist/fields/Blocks/index.d.ts +1 -14
  225. package/dist/fields/Blocks/index.d.ts.map +1 -1
  226. package/dist/fields/Blocks/index.js +22 -9
  227. package/dist/fields/Blocks/index.js.map +1 -1
  228. package/dist/fields/Checkbox/Input.d.ts +1 -1
  229. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  230. package/dist/fields/Checkbox/Input.js.map +1 -1
  231. package/dist/fields/Checkbox/index.d.ts +1 -1
  232. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  233. package/dist/fields/Checkbox/index.js +2 -2
  234. package/dist/fields/Checkbox/index.js.map +1 -1
  235. package/dist/fields/Checkbox/index.scss +7 -8
  236. package/dist/fields/Code/index.d.ts +1 -9
  237. package/dist/fields/Code/index.d.ts.map +1 -1
  238. package/dist/fields/Code/index.js +2 -2
  239. package/dist/fields/Code/index.js.map +1 -1
  240. package/dist/fields/Code/index.scss +6 -0
  241. package/dist/fields/Collapsible/index.d.ts +1 -7
  242. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  243. package/dist/fields/Collapsible/index.js +2 -2
  244. package/dist/fields/Collapsible/index.js.map +1 -1
  245. package/dist/fields/ConfirmPassword/index.d.ts +1 -0
  246. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  247. package/dist/fields/ConfirmPassword/index.js +12 -19
  248. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  249. package/dist/fields/DateTime/index.d.ts +1 -9
  250. package/dist/fields/DateTime/index.d.ts.map +1 -1
  251. package/dist/fields/DateTime/index.js +2 -2
  252. package/dist/fields/DateTime/index.js.map +1 -1
  253. package/dist/fields/Email/index.d.ts +1 -9
  254. package/dist/fields/Email/index.d.ts.map +1 -1
  255. package/dist/fields/Email/index.js +2 -2
  256. package/dist/fields/Email/index.js.map +1 -1
  257. package/dist/fields/FieldDescription/index.d.ts +2 -2
  258. package/dist/fields/FieldDescription/index.d.ts.map +1 -1
  259. package/dist/fields/FieldDescription/index.js.map +1 -1
  260. package/dist/fields/FieldError/index.d.ts +2 -2
  261. package/dist/fields/FieldError/index.d.ts.map +1 -1
  262. package/dist/fields/FieldError/index.js.map +1 -1
  263. package/dist/fields/FieldLabel/index.d.ts +2 -2
  264. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  265. package/dist/fields/FieldLabel/index.js.map +1 -1
  266. package/dist/fields/Group/index.d.ts +2 -10
  267. package/dist/fields/Group/index.d.ts.map +1 -1
  268. package/dist/fields/Group/index.js +2 -2
  269. package/dist/fields/Group/index.js.map +1 -1
  270. package/dist/fields/Hidden/index.d.ts +2 -9
  271. package/dist/fields/Hidden/index.d.ts.map +1 -1
  272. package/dist/fields/Hidden/index.js +2 -2
  273. package/dist/fields/Hidden/index.js.map +1 -1
  274. package/dist/fields/JSON/index.d.ts +1 -9
  275. package/dist/fields/JSON/index.d.ts.map +1 -1
  276. package/dist/fields/JSON/index.js +2 -2
  277. package/dist/fields/JSON/index.js.map +1 -1
  278. package/dist/fields/Number/index.d.ts +1 -14
  279. package/dist/fields/Number/index.d.ts.map +1 -1
  280. package/dist/fields/Number/index.js +2 -2
  281. package/dist/fields/Number/index.js.map +1 -1
  282. package/dist/fields/Password/index.d.ts +14 -4
  283. package/dist/fields/Password/index.d.ts.map +1 -1
  284. package/dist/fields/Password/index.js +58 -45
  285. package/dist/fields/Password/index.js.map +1 -1
  286. package/dist/fields/Password/input.d.ts +5 -0
  287. package/dist/fields/Password/input.d.ts.map +1 -0
  288. package/dist/fields/Password/input.js +65 -0
  289. package/dist/fields/Password/input.js.map +1 -0
  290. package/dist/fields/Password/types.d.ts +27 -0
  291. package/dist/fields/Password/types.d.ts.map +1 -0
  292. package/dist/fields/Password/types.js.map +1 -0
  293. package/dist/fields/Point/index.d.ts +2 -9
  294. package/dist/fields/Point/index.d.ts.map +1 -1
  295. package/dist/fields/Point/index.js +2 -2
  296. package/dist/fields/Point/index.js.map +1 -1
  297. package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
  298. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  299. package/dist/fields/RadioGroup/Radio/index.js +4 -1
  300. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  301. package/dist/fields/RadioGroup/Radio/index.scss +13 -6
  302. package/dist/fields/RadioGroup/index.d.ts +1 -12
  303. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  304. package/dist/fields/RadioGroup/index.js +2 -2
  305. package/dist/fields/RadioGroup/index.js.map +1 -1
  306. package/dist/fields/RadioGroup/index.scss +5 -1
  307. package/dist/fields/Relationship/AddNew/index.scss +3 -0
  308. package/dist/fields/Relationship/index.d.ts +1 -2
  309. package/dist/fields/Relationship/index.d.ts.map +1 -1
  310. package/dist/fields/Relationship/index.js +4 -3
  311. package/dist/fields/Relationship/index.js.map +1 -1
  312. package/dist/fields/Relationship/index.scss +7 -0
  313. package/dist/fields/Relationship/select-components/MultiValueLabel/index.scss +8 -5
  314. package/dist/fields/Relationship/types.d.ts +1 -11
  315. package/dist/fields/Relationship/types.d.ts.map +1 -1
  316. package/dist/fields/Relationship/types.js.map +1 -1
  317. package/dist/fields/RichText/index.d.ts +2 -8
  318. package/dist/fields/RichText/index.d.ts.map +1 -1
  319. package/dist/fields/RichText/index.js.map +1 -1
  320. package/dist/fields/Row/index.d.ts +1 -2
  321. package/dist/fields/Row/index.d.ts.map +1 -1
  322. package/dist/fields/Row/index.js +2 -2
  323. package/dist/fields/Row/index.js.map +1 -1
  324. package/dist/fields/Row/index.scss +1 -5
  325. package/dist/fields/Select/Input.d.ts +1 -2
  326. package/dist/fields/Select/Input.d.ts.map +1 -1
  327. package/dist/fields/Select/Input.js.map +1 -1
  328. package/dist/fields/Select/index.d.ts +1 -13
  329. package/dist/fields/Select/index.d.ts.map +1 -1
  330. package/dist/fields/Select/index.js +2 -2
  331. package/dist/fields/Select/index.js.map +1 -1
  332. package/dist/fields/Tabs/Tab/index.d.ts +1 -1
  333. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  334. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  335. package/dist/fields/Tabs/index.d.ts +1 -9
  336. package/dist/fields/Tabs/index.d.ts.map +1 -1
  337. package/dist/fields/Tabs/index.js +24 -24
  338. package/dist/fields/Tabs/index.js.map +1 -1
  339. package/dist/fields/Text/Input.d.ts.map +1 -1
  340. package/dist/fields/Text/Input.js +13 -17
  341. package/dist/fields/Text/Input.js.map +1 -1
  342. package/dist/fields/Text/index.d.ts +3 -2
  343. package/dist/fields/Text/index.d.ts.map +1 -1
  344. package/dist/fields/Text/index.js +2 -2
  345. package/dist/fields/Text/index.js.map +1 -1
  346. package/dist/fields/Text/index.scss +6 -0
  347. package/dist/fields/Text/types.d.ts +1 -15
  348. package/dist/fields/Text/types.d.ts.map +1 -1
  349. package/dist/fields/Text/types.js.map +1 -1
  350. package/dist/fields/Textarea/index.d.ts +3 -2
  351. package/dist/fields/Textarea/index.d.ts.map +1 -1
  352. package/dist/fields/Textarea/index.js +2 -2
  353. package/dist/fields/Textarea/index.js.map +1 -1
  354. package/dist/fields/Textarea/index.scss +1 -6
  355. package/dist/fields/Textarea/types.d.ts +1 -11
  356. package/dist/fields/Textarea/types.d.ts.map +1 -1
  357. package/dist/fields/Textarea/types.js.map +1 -1
  358. package/dist/fields/Upload/Input.d.ts +5 -2
  359. package/dist/fields/Upload/Input.d.ts.map +1 -1
  360. package/dist/fields/Upload/Input.js +2 -2
  361. package/dist/fields/Upload/Input.js.map +1 -1
  362. package/dist/fields/Upload/index.d.ts +1 -1
  363. package/dist/fields/Upload/index.d.ts.map +1 -1
  364. package/dist/fields/Upload/index.js +20 -5
  365. package/dist/fields/Upload/index.js.map +1 -1
  366. package/dist/fields/Upload/index.scss +10 -3
  367. package/dist/fields/shared/index.d.ts +1 -25
  368. package/dist/fields/shared/index.d.ts.map +1 -1
  369. package/dist/fields/shared/index.js.map +1 -1
  370. package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
  371. package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
  372. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  373. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  374. package/dist/forms/Form/fieldReducer.js +11 -38
  375. package/dist/forms/Form/fieldReducer.js.map +1 -1
  376. package/dist/forms/Form/index.d.ts.map +1 -1
  377. package/dist/forms/Form/index.js +21 -23
  378. package/dist/forms/Form/index.js.map +1 -1
  379. package/dist/forms/Form/rowHelpers.d.ts +17 -0
  380. package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
  381. package/dist/forms/Form/rowHelpers.js +24 -0
  382. package/dist/forms/Form/rowHelpers.js.map +1 -0
  383. package/dist/forms/Form/types.d.ts +3 -10
  384. package/dist/forms/Form/types.d.ts.map +1 -1
  385. package/dist/forms/Form/types.js.map +1 -1
  386. package/dist/forms/RenderFields/RenderField.d.ts +4 -3
  387. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  388. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  389. package/dist/forms/RenderFields/index.scss +1 -1
  390. package/dist/forms/RenderFields/types.d.ts +1 -2
  391. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  392. package/dist/forms/RenderFields/types.js.map +1 -1
  393. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
  394. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  395. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  396. package/dist/forms/WatchChildErrors/index.d.ts +1 -1
  397. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  398. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  399. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +1 -0
  400. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  401. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +41 -19
  402. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  403. package/dist/forms/buildStateFromSchema/index.d.ts +1 -0
  404. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  405. package/dist/forms/buildStateFromSchema/index.js +2 -1
  406. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  407. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -1
  408. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  409. package/dist/forms/buildStateFromSchema/iterateFields.js +2 -1
  410. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  411. package/dist/forms/useField/index.d.ts.map +1 -1
  412. package/dist/forms/useField/index.js +14 -7
  413. package/dist/forms/useField/index.js.map +1 -1
  414. package/dist/forms/useField/types.d.ts +2 -2
  415. package/dist/forms/useField/types.d.ts.map +1 -1
  416. package/dist/forms/useField/types.js.map +1 -1
  417. package/dist/graphics/Account/index.d.ts.map +1 -1
  418. package/dist/graphics/Account/index.js +5 -1
  419. package/dist/graphics/Account/index.js.map +1 -1
  420. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  421. package/dist/hooks/usePayloadAPI.js +5 -1
  422. package/dist/hooks/usePayloadAPI.js.map +1 -1
  423. package/dist/hooks/useUseAsTitle.d.ts +1 -2
  424. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  425. package/dist/hooks/useUseAsTitle.js.map +1 -1
  426. package/dist/icons/Calendar/index.d.ts.map +1 -1
  427. package/dist/icons/Calendar/index.js +8 -33
  428. package/dist/icons/Calendar/index.js.map +1 -1
  429. package/dist/icons/Calendar/index.scss +1 -1
  430. package/dist/icons/Check/index.d.ts.map +1 -1
  431. package/dist/icons/Check/index.js +8 -17
  432. package/dist/icons/Check/index.js.map +1 -1
  433. package/dist/icons/Check/index.scss +1 -1
  434. package/dist/icons/Chevron/index.js +5 -4
  435. package/dist/icons/Chevron/index.js.map +1 -1
  436. package/dist/icons/Chevron/index.scss +2 -5
  437. package/dist/icons/CloseMenu/index.d.ts.map +1 -1
  438. package/dist/icons/CloseMenu/index.js +8 -22
  439. package/dist/icons/CloseMenu/index.js.map +1 -1
  440. package/dist/icons/CloseMenu/index.scss +2 -2
  441. package/dist/icons/CodeBlock/index.d.ts.map +1 -1
  442. package/dist/icons/CodeBlock/index.js +8 -14
  443. package/dist/icons/CodeBlock/index.js.map +1 -1
  444. package/dist/icons/Copy/index.d.ts.map +1 -1
  445. package/dist/icons/Copy/index.js +12 -16
  446. package/dist/icons/Copy/index.js.map +1 -1
  447. package/dist/icons/Copy/index.scss +1 -1
  448. package/dist/icons/DragHandle/index.d.ts.map +1 -1
  449. package/dist/icons/DragHandle/index.js +19 -25
  450. package/dist/icons/DragHandle/index.js.map +1 -1
  451. package/dist/icons/DragHandle/index.scss +2 -0
  452. package/dist/icons/Edit/index.d.ts.map +1 -1
  453. package/dist/icons/Edit/index.js +8 -21
  454. package/dist/icons/Edit/index.js.map +1 -1
  455. package/dist/icons/Edit/index.scss +3 -3
  456. package/dist/icons/Line/index.d.ts.map +1 -1
  457. package/dist/icons/Line/index.js +7 -6
  458. package/dist/icons/Line/index.js.map +1 -1
  459. package/dist/icons/Line/index.scss +1 -1
  460. package/dist/icons/Link/index.d.ts.map +1 -1
  461. package/dist/icons/Link/index.js +11 -14
  462. package/dist/icons/Link/index.js.map +1 -1
  463. package/dist/icons/Link/index.scss +1 -1
  464. package/dist/icons/LogOut/index.d.ts.map +1 -1
  465. package/dist/icons/LogOut/index.js +9 -24
  466. package/dist/icons/LogOut/index.js.map +1 -1
  467. package/dist/icons/LogOut/index.scss +1 -1
  468. package/dist/icons/Menu/index.d.ts.map +1 -1
  469. package/dist/icons/Menu/index.js +10 -28
  470. package/dist/icons/Menu/index.js.map +1 -1
  471. package/dist/icons/Menu/index.scss +3 -2
  472. package/dist/icons/MinimizeMaximize/index.d.ts.map +1 -1
  473. package/dist/icons/MinimizeMaximize/index.js +8 -35
  474. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  475. package/dist/icons/More/index.d.ts.map +1 -1
  476. package/dist/icons/More/index.js +10 -13
  477. package/dist/icons/More/index.js.map +1 -1
  478. package/dist/icons/More/index.scss +1 -0
  479. package/dist/icons/Plus/index.d.ts.map +1 -1
  480. package/dist/icons/Plus/index.js +10 -20
  481. package/dist/icons/Plus/index.js.map +1 -1
  482. package/dist/icons/Plus/index.scss +1 -1
  483. package/dist/icons/Search/index.d.ts.map +1 -1
  484. package/dist/icons/Search/index.js +8 -18
  485. package/dist/icons/Search/index.js.map +1 -1
  486. package/dist/icons/Search/index.scss +1 -1
  487. package/dist/icons/Swap/index.d.ts.map +1 -1
  488. package/dist/icons/Swap/index.js +8 -28
  489. package/dist/icons/Swap/index.js.map +1 -1
  490. package/dist/icons/Swap/index.scss +2 -2
  491. package/dist/icons/X/index.d.ts.map +1 -1
  492. package/dist/icons/X/index.js +10 -21
  493. package/dist/icons/X/index.js.map +1 -1
  494. package/dist/icons/X/index.scss +3 -3
  495. package/dist/providers/Auth/index.d.ts +1 -1
  496. package/dist/providers/Auth/index.d.ts.map +1 -1
  497. package/dist/providers/Auth/index.js +47 -76
  498. package/dist/providers/Auth/index.js.map +1 -1
  499. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +2 -1
  500. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  501. package/dist/providers/ComponentMap/buildComponentMap/collections.js +2 -1
  502. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  503. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +2 -2
  504. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  505. package/dist/providers/ComponentMap/buildComponentMap/fields.js +126 -96
  506. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  507. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +2 -1
  508. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  509. package/dist/providers/ComponentMap/buildComponentMap/globals.js +2 -1
  510. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  511. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  512. package/dist/providers/ComponentMap/buildComponentMap/index.js +2 -0
  513. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  514. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -55
  515. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  516. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  517. package/dist/providers/ComponentMap/index.d.ts +2 -1
  518. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  519. package/dist/providers/ComponentMap/index.js.map +1 -1
  520. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  521. package/dist/providers/DocumentInfo/index.js +58 -16
  522. package/dist/providers/DocumentInfo/index.js.map +1 -1
  523. package/dist/providers/ListQuery/index.d.ts +16 -9
  524. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  525. package/dist/providers/ListQuery/index.js +8 -6
  526. package/dist/providers/ListQuery/index.js.map +1 -1
  527. package/dist/providers/Params/index.d.ts +2 -1
  528. package/dist/providers/Params/index.d.ts.map +1 -1
  529. package/dist/providers/Params/index.js.map +1 -1
  530. package/dist/providers/UploadEdits/index.d.ts +12 -0
  531. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  532. package/dist/providers/UploadEdits/index.js +30 -0
  533. package/dist/providers/UploadEdits/index.js.map +1 -0
  534. package/dist/scss/app.scss +2 -1
  535. package/dist/scss/toasts.scss +10 -3
  536. package/dist/scss/type.scss +14 -23
  537. package/dist/scss/vars.scss +26 -47
  538. package/dist/styles.css +1 -1
  539. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  540. package/dist/utilities/buildFieldSchemaMap/index.js +24 -0
  541. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  542. package/dist/utilities/buildFormState.d.ts.map +1 -1
  543. package/dist/utilities/buildFormState.js +20 -10
  544. package/dist/utilities/buildFormState.js.map +1 -1
  545. package/dist/utilities/flattenFieldMap.d.ts +1 -1
  546. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  547. package/dist/utilities/flattenFieldMap.js.map +1 -1
  548. package/dist/utilities/formatAdminURL.d.ts +9 -0
  549. package/dist/utilities/formatAdminURL.d.ts.map +1 -0
  550. package/dist/utilities/formatAdminURL.js +15 -0
  551. package/dist/utilities/formatAdminURL.js.map +1 -0
  552. package/package.json +7 -7
  553. package/dist/exports/client/chunk-WDFUZ6GL.js +0 -30
  554. package/dist/fields/Checkbox/types.d.ts +0 -12
  555. package/dist/fields/Checkbox/types.d.ts.map +0 -1
  556. package/dist/fields/Checkbox/types.js.map +0 -1
  557. package/dist/fields/Row/types.d.ts +0 -12
  558. package/dist/fields/Row/types.d.ts.map +0 -1
  559. package/dist/fields/Row/types.js +0 -3
  560. package/dist/fields/Row/types.js.map +0 -1
  561. package/dist/fields/Upload/types.d.ts +0 -10
  562. package/dist/fields/Upload/types.d.ts.map +0 -1
  563. package/dist/fields/Upload/types.js +0 -3
  564. package/dist/fields/Upload/types.js.map +0 -1
  565. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  566. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  567. package/dist/providers/FormQueryParams/index.js +0 -53
  568. package/dist/providers/FormQueryParams/index.js.map +0 -1
  569. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  570. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  571. package/dist/providers/FormQueryParams/types.js +0 -3
  572. package/dist/providers/FormQueryParams/types.js.map +0 -1
  573. /package/dist/exports/client/{DatePicker-5IFHNQHA.js.map → DatePicker-XJHHMZP7.js.map} +0 -0
  574. /package/dist/fields/{Checkbox → Password}/types.js +0 -0
@@ -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 {
@@ -1,6 +1,5 @@
1
- import type { FieldWithPath } from 'payload';
1
+ import type { FieldMap, FieldWithPath, MappedField } from 'payload';
2
2
  import React, { type JSX } from 'react';
3
- import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js';
4
3
  import './index.scss';
5
4
  export type FieldSelectProps = {
6
5
  fieldMap: FieldMap;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,KAAK,EAAE,EAAY,KAAK,GAAG,EAAY,MAAM,OAAO,CAAA;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAA;AAOpG,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,YAAY,oCAItB;IACD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;CAC9B,KAAG,GAAG,CAAC,OA8BP,CAAA;AAyED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgDlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FieldSelect/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEnE,OAAO,KAAK,EAAE,EAAY,KAAK,GAAG,EAAY,MAAM,OAAO,CAAA;AAO3D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,YAAY,oCAItB;IACD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAAA;CAC9B,KAAG,GAAG,CAAC,OA8BP,CAAA;AAyED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgDlD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldWithPath } from 'payload'\n\nimport React, { Fragment, type JSX, useState } from 'react'\n\nimport type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n fieldMap: FieldMap\n setSelected: (fields: FieldWithPath[]) => void\n}\n\nexport const combineLabel = ({\n customLabel,\n field,\n prefix,\n}: {\n customLabel?: string\n field?: MappedField\n prefix?: JSX.Element | string\n}): JSX.Element => {\n const CustomLabelToRender =\n field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : null\n const DefaultLabelToRender =\n field && 'label' in field.fieldComponentProps && field.fieldComponentProps.label ? (\n <FieldLabel\n label={field.fieldComponentProps.label}\n {...(field.fieldComponentProps.labelProps || {})}\n />\n ) : null\n\n const LabelToRender = CustomLabelToRender || DefaultLabelToRender || customLabel\n\n if (!LabelToRender) return null\n\n return (\n <Fragment>\n {prefix && (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n )}\n <span style={{ display: 'inline-block' }}>{LabelToRender}</span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fieldMap,\n labelPrefix = null,\n path = '',\n}: {\n fieldMap: FieldMap\n labelPrefix?: JSX.Element | string\n path?: string\n}): { Label: JSX.Element; value: FieldWithPath }[] => {\n if (!fieldMap) {\n return []\n }\n\n return fieldMap?.reduce((fieldsToUse, field) => {\n const { isFieldAffectingData } = field\n // escape for a variety of reasons\n if (\n isFieldAffectingData &&\n (field.disableBulkEdit ||\n field.unique ||\n field.isHidden ||\n ('readOnly' in field.fieldComponentProps && field.fieldComponentProps.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (\n !(field.type === 'array' || field.type === 'blocks') &&\n 'fieldMap' in field.fieldComponentProps\n ) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fieldMap: field.fieldComponentProps.fieldMap,\n labelPrefix: combineLabel({ field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {\n return [\n ...fieldsToUse,\n ...field.fieldComponentProps.tabs.reduce((tabFields, tab) => {\n if ('fieldMap' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fieldMap: tab.fieldMap,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fieldMap, setSelected }) => {\n const { t } = useTranslation()\n const [options] = useState(() => reduceFields({ fieldMap }))\n\n const { dispatchFields, getFields } = useForm()\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"names":["React","Fragment","useState","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","customLabel","field","prefix","CustomLabelToRender","fieldComponentProps","CustomLabel","undefined","DefaultLabelToRender","label","labelProps","LabelToRender","span","style","display","reduceFields","fieldMap","labelPrefix","path","reduce","fieldsToUse","isFieldAffectingData","disableBulkEdit","unique","isHidden","readOnly","type","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","setSelected","t","options","dispatchFields","getFields","handleChange","selected","activeFields","map","Object","keys","length","forEach","find","div","className","getOptionValue","option","String","isMulti","onChange"],"mappings":"AAAA;;AAGA,OAAOA,SAASC,QAAQ,EAAYC,QAAQ,QAAQ,QAAO;AAI3D,SAASC,UAAU,QAAQ,mCAAkC;AAC7D,SAASC,OAAO,QAAQ,8BAA6B;AACrD,SAASC,2BAA2B,QAAQ,4CAA2C;AACvF,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,WAAW,QAAQ,0BAAyB;AACrD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAOlB,OAAO,MAAMC,eAAe,CAAC,EAC3BC,WAAW,EACXC,KAAK,EACLC,MAAM,EAKP;IACC,MAAMC,sBACJF,SACA,iBAAiBA,MAAMG,mBAAmB,IAC1CH,MAAMG,mBAAmB,CAACC,WAAW,KAAKC,YACtCL,MAAMG,mBAAmB,CAACC,WAAW,GACrC;IACN,MAAME,uBACJN,SAAS,WAAWA,MAAMG,mBAAmB,IAAIH,MAAMG,mBAAmB,CAACI,KAAK,iBAC9E,KAACf;QACCe,OAAOP,MAAMG,mBAAmB,CAACI,KAAK;QACrC,GAAIP,MAAMG,mBAAmB,CAACK,UAAU,IAAI,CAAC,CAAC;SAE/C;IAEN,MAAMC,gBAAgBP,uBAAuBI,wBAAwBP;IAErE,IAAI,CAACU,eAAe,OAAO;IAE3B,qBACE,MAACnB;;YACEW,wBACC,MAACX;;kCACC,KAACoB;wBAAKC,OAAO;4BAAEC,SAAS;wBAAe;kCAAIX;;oBAC1C;;;0BAGL,KAACS;gBAAKC,OAAO;oBAAEC,SAAS;gBAAe;0BAAIH;;;;AAGjD,EAAC;AAED,MAAMI,eAAe,CAAC,EACpBC,QAAQ,EACRC,cAAc,IAAI,EAClBC,OAAO,EAAE,EAKV;IACC,IAAI,CAACF,UAAU;QACb,OAAO,EAAE;IACX;IAEA,OAAOA,UAAUG,OAAO,CAACC,aAAalB;QACpC,MAAM,EAAEmB,oBAAoB,EAAE,GAAGnB;QACjC,kCAAkC;QAClC,IACEmB,wBACCnB,CAAAA,MAAMoB,eAAe,IACpBpB,MAAMqB,MAAM,IACZrB,MAAMsB,QAAQ,IACb,cAActB,MAAMG,mBAAmB,IAAIH,MAAMG,mBAAmB,CAACoB,QAAQ,GAChF;YACA,OAAOL;QACT;QAEA,IACE,CAAElB,CAAAA,MAAMwB,IAAI,KAAK,WAAWxB,MAAMwB,IAAI,KAAK,QAAO,KAClD,cAAcxB,MAAMG,mBAAmB,EACvC;YACA,OAAO;mBACFe;mBACAL,aAAa;oBACdC,UAAUd,MAAMG,mBAAmB,CAACW,QAAQ;oBAC5CC,aAAajB,aAAa;wBAAEE;wBAAOC,QAAQc;oBAAY;oBACvDC,MAAMtB,4BAA4BsB,MAAMhB;gBAC1C;aACD;QACH;QAEA,IAAIA,MAAMwB,IAAI,KAAK,UAAU,UAAUxB,MAAMG,mBAAmB,EAAE;YAChE,OAAO;mBACFe;mBACAlB,MAAMG,mBAAmB,CAACsB,IAAI,CAACR,MAAM,CAAC,CAACS,WAAWC;oBACnD,IAAI,cAAcA,KAAK;wBACrB,MAAMC,aAAa,UAAUD,OAAOA,IAAIE,IAAI;wBAC5C,OAAO;+BACFH;+BACAb,aAAa;gCACdC,UAAUa,IAAIb,QAAQ;gCACtBC;gCACAC,MAAMY,aAAalC,4BAA4BsB,MAAMhB,SAASgB;4BAChE;yBACD;oBACH;gBACF,GAAG,EAAE;aACN;QACH;QAEA,MAAMc,iBAAiB;YACrBvB,OAAOT,aAAa;gBAAEE;gBAAOC,QAAQc;YAAY;YACjDgB,OAAO;gBACL,GAAG/B,KAAK;gBACRgB,MAAMtB,4BAA4BsB,MAAMhB;YAC1C;QACF;QAEA,OAAO;eAAIkB;YAAaY;SAAe;IACzC,GAAG,EAAE;AACP;AAEA,OAAO,MAAME,cAA0C,CAAC,EAAElB,QAAQ,EAAEmB,WAAW,EAAE;IAC/E,MAAM,EAAEC,CAAC,EAAE,GAAGvC;IACd,MAAM,CAACwC,QAAQ,GAAG5C,SAAS,IAAMsB,aAAa;YAAEC;QAAS;IAEzD,MAAM,EAAEsB,cAAc,EAAEC,SAAS,EAAE,GAAG5C;IAEtC,MAAM6C,eAAe,CAACC;QACpB,MAAMC,eAAeH;QACrB,IAAIE,aAAa,MAAM;YACrBN,YAAY,EAAE;QAChB,OAAO;YACLA,YAAYM,SAASE,GAAG,CAAC,CAAC,EAAEV,KAAK,EAAE,GAAKA;QAC1C;QAEA,2CAA2C;QAC3C,IAAIQ,aAAa,QAAQG,OAAOC,IAAI,CAACH,gBAAgB,EAAE,EAAEI,MAAM,GAAGL,SAASK,MAAM,EAAE;YACjFF,OAAOC,IAAI,CAACH,cAAcK,OAAO,CAAC,CAAC7B;gBACjC,IACEuB,aAAa,QACb,CAACA,SAASO,IAAI,CAAC,CAAC9C;oBACd,OAAOA,MAAM+B,KAAK,CAACf,IAAI,KAAKA;gBAC9B,IACA;oBACAoB,eAAe;wBACbZ,MAAM;wBACNR;oBACF;gBACF;YACF;QACF;IACF;IAEA,qBACE,MAAC+B;QAAIC,WAAWnD;;0BACd,KAACL;gBAAWe,OAAO2B,EAAE;;0BACrB,KAACtC;gBACCqD,gBAAgB,CAACC;oBACf,IAAI,OAAOA,OAAOnB,KAAK,KAAK,YAAY,UAAUmB,OAAOnB,KAAK,EAAE;wBAC9D,OAAOoB,OAAOD,OAAOnB,KAAK,CAACf,IAAI;oBACjC;oBACA,OAAOmC,OAAOD,OAAOnB,KAAK;gBAC5B;gBACAqB,OAAO;gBACPC,UAAUf;gBACVH,SAASA;;;;AAIjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/FieldSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldMap, FieldWithPath, MappedField } from 'payload'\n\nimport React, { Fragment, type JSX, useState } from 'react'\n\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { createNestedClientFieldPath } from '../../forms/Form/createNestedFieldPath.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'field-select'\n\nexport type FieldSelectProps = {\n fieldMap: FieldMap\n setSelected: (fields: FieldWithPath[]) => void\n}\n\nexport const combineLabel = ({\n customLabel,\n field,\n prefix,\n}: {\n customLabel?: string\n field?: MappedField\n prefix?: JSX.Element | string\n}): JSX.Element => {\n const CustomLabelToRender =\n field &&\n 'CustomLabel' in field.fieldComponentProps &&\n field.fieldComponentProps.CustomLabel !== undefined\n ? field.fieldComponentProps.CustomLabel\n : null\n const DefaultLabelToRender =\n field && 'label' in field.fieldComponentProps && field.fieldComponentProps.label ? (\n <FieldLabel\n label={field.fieldComponentProps.label}\n {...(field.fieldComponentProps.labelProps || {})}\n />\n ) : null\n\n const LabelToRender = CustomLabelToRender || DefaultLabelToRender || customLabel\n\n if (!LabelToRender) return null\n\n return (\n <Fragment>\n {prefix && (\n <Fragment>\n <span style={{ display: 'inline-block' }}>{prefix}</span>\n {' > '}\n </Fragment>\n )}\n <span style={{ display: 'inline-block' }}>{LabelToRender}</span>\n </Fragment>\n )\n}\n\nconst reduceFields = ({\n fieldMap,\n labelPrefix = null,\n path = '',\n}: {\n fieldMap: FieldMap\n labelPrefix?: JSX.Element | string\n path?: string\n}): { Label: JSX.Element; value: FieldWithPath }[] => {\n if (!fieldMap) {\n return []\n }\n\n return fieldMap?.reduce((fieldsToUse, field) => {\n const { isFieldAffectingData } = field\n // escape for a variety of reasons\n if (\n isFieldAffectingData &&\n (field.disableBulkEdit ||\n field.unique ||\n field.isHidden ||\n ('readOnly' in field.fieldComponentProps && field.fieldComponentProps.readOnly))\n ) {\n return fieldsToUse\n }\n\n if (\n !(field.type === 'array' || field.type === 'blocks') &&\n 'fieldMap' in field.fieldComponentProps\n ) {\n return [\n ...fieldsToUse,\n ...reduceFields({\n fieldMap: field.fieldComponentProps.fieldMap,\n labelPrefix: combineLabel({ field, prefix: labelPrefix }),\n path: createNestedClientFieldPath(path, field),\n }),\n ]\n }\n\n if (field.type === 'tabs' && 'tabs' in field.fieldComponentProps) {\n return [\n ...fieldsToUse,\n ...field.fieldComponentProps.tabs.reduce((tabFields, tab) => {\n if ('fieldMap' in tab) {\n const isNamedTab = 'name' in tab && tab.name\n return [\n ...tabFields,\n ...reduceFields({\n fieldMap: tab.fieldMap,\n labelPrefix,\n path: isNamedTab ? createNestedClientFieldPath(path, field) : path,\n }),\n ]\n }\n }, []),\n ]\n }\n\n const formattedField = {\n label: combineLabel({ field, prefix: labelPrefix }),\n value: {\n ...field,\n path: createNestedClientFieldPath(path, field),\n },\n }\n\n return [...fieldsToUse, formattedField]\n }, [])\n}\n\nexport const FieldSelect: React.FC<FieldSelectProps> = ({ fieldMap, setSelected }) => {\n const { t } = useTranslation()\n const [options] = useState(() => reduceFields({ fieldMap }))\n\n const { dispatchFields, getFields } = useForm()\n\n const handleChange = (selected) => {\n const activeFields = getFields()\n if (selected === null) {\n setSelected([])\n } else {\n setSelected(selected.map(({ value }) => value))\n }\n\n // remove deselected values from form state\n if (selected === null || Object.keys(activeFields || []).length > selected.length) {\n Object.keys(activeFields).forEach((path) => {\n if (\n selected === null ||\n !selected.find((field) => {\n return field.value.path === path\n })\n ) {\n dispatchFields({\n type: 'REMOVE',\n path,\n })\n }\n })\n }\n }\n\n return (\n <div className={baseClass}>\n <FieldLabel label={t('fields:selectFieldsToEdit')} />\n <ReactSelect\n getOptionValue={(option) => {\n if (typeof option.value === 'object' && 'path' in option.value) {\n return String(option.value.path)\n }\n return String(option.value)\n }}\n isMulti\n onChange={handleChange}\n options={options}\n />\n </div>\n )\n}\n"],"names":["React","Fragment","useState","FieldLabel","useForm","createNestedClientFieldPath","useTranslation","ReactSelect","baseClass","combineLabel","customLabel","field","prefix","CustomLabelToRender","fieldComponentProps","CustomLabel","undefined","DefaultLabelToRender","label","labelProps","LabelToRender","span","style","display","reduceFields","fieldMap","labelPrefix","path","reduce","fieldsToUse","isFieldAffectingData","disableBulkEdit","unique","isHidden","readOnly","type","tabs","tabFields","tab","isNamedTab","name","formattedField","value","FieldSelect","setSelected","t","options","dispatchFields","getFields","handleChange","selected","activeFields","map","Object","keys","length","forEach","find","div","className","getOptionValue","option","String","isMulti","onChange"],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  .file-meta {
4
4
  &__url {
5
5
  display: flex;
6
+ gap: base(0.4);
6
7
 
7
8
  a {
8
9
  font-weight: 600;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwDlD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,MAAM,CAAA;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4DlD,CAAA"}
@@ -15,6 +15,8 @@ export const FileDetails = (props)=>{
15
15
  children: /*#__PURE__*/ _jsxs("header", {
16
16
  children: [
17
17
  /*#__PURE__*/ _jsx(Thumbnail, {
18
+ // size="small"
19
+ className: `${baseClass}__thumbnail`,
18
20
  collectionSlug: collectionSlug,
19
21
  doc: doc,
20
22
  fileSrc: thumbnailURL || url,
@@ -34,7 +36,7 @@ export const FileDetails = (props)=>{
34
36
  url: url,
35
37
  width: width
36
38
  }),
37
- /*#__PURE__*/ _jsx(UploadActions, {
39
+ (enableAdjustments || customUploadActions) && /*#__PURE__*/ _jsx(UploadActions, {
38
40
  customActions: customUploadActions,
39
41
  enableAdjustments: enableAdjustments,
40
42
  enablePreviewSizes: hasImageSizes && doc.filename,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/FileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { UploadActions } from '../../elements/Upload/index.js'\nimport { Button } from '../Button/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport { FileMeta } from './FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type FileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const FileDetails: React.FC<FileDetailsProps> = (props) => {\n const {\n collectionSlug,\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { id, filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n return (\n <div className={baseClass}>\n <header>\n <Thumbnail\n collectionSlug={collectionSlug}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n collection={collectionSlug}\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n id={id as string}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={enableAdjustments}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n </div>\n {handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"names":["React","UploadActions","Button","Thumbnail","FileMeta","baseClass","FileDetails","props","collectionSlug","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","imageCacheTag","uploadConfig","id","filename","filesize","height","mimeType","thumbnailURL","url","width","div","className","header","fileSrc","collection","customActions","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,QAAQ,QAAQ,sBAAqB;AAC9C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAiBlB,OAAO,MAAMC,cAA0C,CAACC;IACtD,MAAM,EACJC,cAAc,EACdC,mBAAmB,EACnBC,GAAG,EACHC,iBAAiB,EACjBC,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,YAAY,EACb,GAAGR;IAEJ,MAAM,EAAES,EAAE,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGb;IAE/E,qBACE,KAACc;QAAIC,WAAWpB;kBACd,cAAA,MAACqB;;8BACC,KAACvB;oBACCK,gBAAgBA;oBAChBE,KAAKA;oBACLiB,SAASN,gBAAgBC;oBACzBR,eAAeA;oBACfC,cAAcA;;8BAEhB,MAACS;oBAAIC,WAAW,CAAC,EAAEpB,UAAU,aAAa,CAAC;;sCACzC,KAACD;4BACCwB,YAAYpB;4BACZS,UAAUA;4BACVC,UAAUA;4BACVC,QAAQA;4BACRH,IAAIA;4BACJI,UAAUA;4BACVE,KAAKA;4BACLC,OAAOA;;sCAGT,KAACtB;4BACC4B,eAAepB;4BACfE,mBAAmBA;4BACnBmB,oBAAoBjB,iBAAiBH,IAAIO,QAAQ;4BACjDG,UAAUA;;;;gBAGbR,8BACC,KAACV;oBACC6B,aAAY;oBACZN,WAAW,CAAC,EAAEpB,UAAU,QAAQ,CAAC;oBACjC2B,MAAK;oBACLC,WAAU;oBACVC,SAAStB;oBACTuB,KAAK;;;;;AAMjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/FileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { UploadActions } from '../../elements/Upload/index.js'\nimport { Button } from '../Button/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport { FileMeta } from './FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type FileDetailsProps = {\n collectionSlug: string\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const FileDetails: React.FC<FileDetailsProps> = (props) => {\n const {\n collectionSlug,\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { id, filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n return (\n <div className={baseClass}>\n <header>\n <Thumbnail\n // size=\"small\"\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionSlug}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n collection={collectionSlug}\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n id={id as string}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n {(enableAdjustments || customUploadActions) && (\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={enableAdjustments}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n )}\n </div>\n {handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"names":["React","UploadActions","Button","Thumbnail","FileMeta","baseClass","FileDetails","props","collectionSlug","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","imageCacheTag","uploadConfig","id","filename","filesize","height","mimeType","thumbnailURL","url","width","div","className","header","fileSrc","collection","customActions","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,SAAS,QAAQ,wBAAuB;AACjD,SAASC,QAAQ,QAAQ,sBAAqB;AAC9C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAiBlB,OAAO,MAAMC,cAA0C,CAACC;IACtD,MAAM,EACJC,cAAc,EACdC,mBAAmB,EACnBC,GAAG,EACHC,iBAAiB,EACjBC,YAAY,EACZC,aAAa,EACbC,aAAa,EACbC,YAAY,EACb,GAAGR;IAEJ,MAAM,EAAES,EAAE,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGb;IAE/E,qBACE,KAACc;QAAIC,WAAWpB;kBACd,cAAA,MAACqB;;8BACC,KAACvB;oBACC,eAAe;oBACfsB,WAAW,CAAC,EAAEpB,UAAU,WAAW,CAAC;oBACpCG,gBAAgBA;oBAChBE,KAAKA;oBACLiB,SAASN,gBAAgBC;oBACzBR,eAAeA;oBACfC,cAAcA;;8BAEhB,MAACS;oBAAIC,WAAW,CAAC,EAAEpB,UAAU,aAAa,CAAC;;sCACzC,KAACD;4BACCwB,YAAYpB;4BACZS,UAAUA;4BACVC,UAAUA;4BACVC,QAAQA;4BACRH,IAAIA;4BACJI,UAAUA;4BACVE,KAAKA;4BACLC,OAAOA;;wBAGPZ,CAAAA,qBAAqBF,mBAAkB,mBACvC,KAACR;4BACC4B,eAAepB;4BACfE,mBAAmBA;4BACnBmB,oBAAoBjB,iBAAiBH,IAAIO,QAAQ;4BACjDG,UAAUA;;;;gBAIfR,8BACC,KAACV;oBACC6B,aAAY;oBACZN,WAAW,CAAC,EAAEpB,UAAU,QAAQ,CAAC;oBACjC2B,MAAK;oBACLC,WAAU;oBACVC,SAAStB;oBACTuB,KAAK;;;;;AAMjB,EAAC"}
@@ -1,27 +1,46 @@
1
1
  @import '../../scss/styles.scss';
2
2
 
3
3
  .file-details {
4
- background-color: var(--theme-elevation-50);
4
+ background: var(--theme-elevation-50);
5
+ border: 1px solid var(--theme-border-color);
6
+ border-radius: var(--style-radius-m);
7
+ @include inputShadow;
5
8
 
6
9
  header {
7
10
  display: flex;
8
- align-items: flex-start;
9
- border-bottom: 1px solid var(--theme-elevation-0);
11
+ flex-direction: row;
12
+ flex-wrap: wrap;
10
13
  }
11
14
 
12
15
  &__remove {
13
- margin: $baseline $baseline $baseline 0;
16
+ position: absolute;
17
+ margin: 0;
18
+ top: $baseline;
19
+ right: $baseline;
20
+
21
+ & .btn__icon {
22
+ border: 1px solid var(--theme-border-color);
23
+ background: var(--theme-input-bg);
24
+ @include inputShadow;
25
+ transition: border 100ms cubic-bezier(0, 0.2, 0.2, 1);
26
+
27
+ &:hover {
28
+ border: 1px solid var(--theme-elevation-400);
29
+ }
30
+ }
14
31
  }
15
32
 
16
33
  &__main-detail {
17
- padding: $baseline base(1.5);
34
+ padding: base(0.8) base(1.2);
18
35
  width: auto;
19
36
  flex-grow: 1;
20
- min-width: 0;
37
+ min-width: 280px;
38
+ max-width: 100%;
21
39
  display: flex;
22
40
  flex-direction: column;
23
- align-self: center;
24
- gap: base(0.25);
41
+ justify-content: center;
42
+ align-self: stretch;
43
+ gap: base(0.2);
25
44
  }
26
45
 
27
46
  &__toggle-more-info {
@@ -66,7 +85,7 @@
66
85
  cursor: pointer;
67
86
  background-color: var(--theme-elevation-150);
68
87
  border: none;
69
- border-radius: $style-radius-s;
88
+ border-radius: $style-radius-m;
70
89
  padding: base(0.25) base(0.5);
71
90
 
72
91
  &:hover {
@@ -102,12 +121,9 @@
102
121
 
103
122
  &__remove {
104
123
  order: 2;
105
- margin-left: auto;
106
- margin-right: $baseline;
107
124
  }
108
125
 
109
126
  &__main-detail {
110
- border-top: $style-stroke-width-m solid var(--theme-elevation-0);
111
127
  order: 3;
112
128
  width: 100%;
113
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Hamburger/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,UAAU,GAAG,GAAG,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAoCA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Hamburger/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,UAAU,GAAG,GAAG,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CA2BA,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { CloseMenuIcon, MenuIcon } from '@payloadcms/ui';
3
4
  import React from 'react';
4
5
  import { ChevronIcon } from '../../icons/Chevron/index.js';
5
6
  import { useTranslation } from '../../providers/Translation/index.js';
@@ -8,52 +9,27 @@ const baseClass = 'hamburger';
8
9
  export const Hamburger = (props)=>{
9
10
  const { t } = useTranslation();
10
11
  const { closeIcon = 'x', isActive = false } = props;
11
- return /*#__PURE__*/ _jsx("div", {
12
+ return /*#__PURE__*/ _jsxs("div", {
12
13
  className: baseClass,
13
- children: /*#__PURE__*/ _jsx("div", {
14
- className: `${baseClass}__wrapper`,
15
- children: /*#__PURE__*/ _jsxs("div", {
16
- className: `${baseClass}__icon`,
14
+ children: [
15
+ !isActive && /*#__PURE__*/ _jsx("div", {
16
+ "aria-label": t('general:open'),
17
+ className: `${baseClass}__open-icon`,
18
+ title: t('general:open'),
19
+ children: /*#__PURE__*/ _jsx(MenuIcon, {})
20
+ }),
21
+ isActive && /*#__PURE__*/ _jsxs("div", {
22
+ "aria-label": closeIcon === 'collapse' ? t('general:collapse') : t('general:close'),
23
+ className: `${baseClass}__close-icon`,
24
+ title: closeIcon === 'collapse' ? t('general:collapse') : t('general:close'),
17
25
  children: [
18
- !isActive && /*#__PURE__*/ _jsxs("div", {
19
- className: `${baseClass}__lines`,
20
- title: t('general:open'),
21
- children: [
22
- /*#__PURE__*/ _jsx("div", {
23
- className: `${baseClass}__line ${baseClass}__top`
24
- }),
25
- /*#__PURE__*/ _jsx("div", {
26
- className: `${baseClass}__line ${baseClass}__middle`
27
- }),
28
- /*#__PURE__*/ _jsx("div", {
29
- className: `${baseClass}__line ${baseClass}__bottom`
30
- })
31
- ]
32
- }),
33
- isActive && /*#__PURE__*/ _jsxs("div", {
34
- "aria-label": closeIcon === 'collapse' ? t('general:collapse') : t('general:close'),
35
- className: `${baseClass}__close-icon`,
36
- title: closeIcon === 'collapse' ? t('general:collapse') : t('general:close'),
37
- children: [
38
- closeIcon === 'x' && /*#__PURE__*/ _jsxs(React.Fragment, {
39
- children: [
40
- /*#__PURE__*/ _jsx("div", {
41
- className: `${baseClass}__line ${baseClass}__x-left`
42
- }),
43
- /*#__PURE__*/ _jsx("div", {
44
- className: `${baseClass}__line ${baseClass}__x-right`
45
- })
46
- ]
47
- }),
48
- closeIcon === 'collapse' && /*#__PURE__*/ _jsx(ChevronIcon, {
49
- className: `${baseClass}__collapse-chevron`,
50
- direction: "left"
51
- })
52
- ]
26
+ closeIcon === 'x' && /*#__PURE__*/ _jsx(CloseMenuIcon, {}),
27
+ closeIcon === 'collapse' && /*#__PURE__*/ _jsx(ChevronIcon, {
28
+ direction: "left"
53
29
  })
54
30
  ]
55
31
  })
56
- })
32
+ ]
57
33
  });
58
34
  };
59
35
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Hamburger/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'hamburger'\n\nexport const Hamburger: React.FC<{\n closeIcon?: 'collapse' | 'x'\n isActive?: boolean\n}> = (props) => {\n const { t } = useTranslation()\n const { closeIcon = 'x', isActive = false } = props\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__icon`}>\n {!isActive && (\n <div className={`${baseClass}__lines`} title={t('general:open')}>\n <div className={`${baseClass}__line ${baseClass}__top`} />\n <div className={`${baseClass}__line ${baseClass}__middle`} />\n <div className={`${baseClass}__line ${baseClass}__bottom`} />\n </div>\n )}\n {isActive && (\n <div\n aria-label={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n className={`${baseClass}__close-icon`}\n title={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n >\n {closeIcon === 'x' && (\n <React.Fragment>\n <div className={`${baseClass}__line ${baseClass}__x-left`} />\n <div className={`${baseClass}__line ${baseClass}__x-right`} />\n </React.Fragment>\n )}\n {closeIcon === 'collapse' && (\n <ChevronIcon className={`${baseClass}__collapse-chevron`} direction=\"left\" />\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n )\n}\n"],"names":["React","ChevronIcon","useTranslation","baseClass","Hamburger","props","t","closeIcon","isActive","div","className","title","aria-label","Fragment","direction"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,YAGR,CAACC;IACJ,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,MAAM,EAAEK,YAAY,GAAG,EAAEC,WAAW,KAAK,EAAE,GAAGH;IAE9C,qBACE,KAACI;QAAIC,WAAWP;kBACd,cAAA,KAACM;YAAIC,WAAW,CAAC,EAAEP,UAAU,SAAS,CAAC;sBACrC,cAAA,MAACM;gBAAIC,WAAW,CAAC,EAAEP,UAAU,MAAM,CAAC;;oBACjC,CAACK,0BACA,MAACC;wBAAIC,WAAW,CAAC,EAAEP,UAAU,OAAO,CAAC;wBAAEQ,OAAOL,EAAE;;0CAC9C,KAACG;gCAAIC,WAAW,CAAC,EAAEP,UAAU,OAAO,EAAEA,UAAU,KAAK,CAAC;;0CACtD,KAACM;gCAAIC,WAAW,CAAC,EAAEP,UAAU,OAAO,EAAEA,UAAU,QAAQ,CAAC;;0CACzD,KAACM;gCAAIC,WAAW,CAAC,EAAEP,UAAU,OAAO,EAAEA,UAAU,QAAQ,CAAC;;;;oBAG5DK,0BACC,MAACC;wBACCG,cAAYL,cAAc,aAAaD,EAAE,sBAAsBA,EAAE;wBACjEI,WAAW,CAAC,EAAEP,UAAU,YAAY,CAAC;wBACrCQ,OAAOJ,cAAc,aAAaD,EAAE,sBAAsBA,EAAE;;4BAE3DC,cAAc,qBACb,MAACP,MAAMa,QAAQ;;kDACb,KAACJ;wCAAIC,WAAW,CAAC,EAAEP,UAAU,OAAO,EAAEA,UAAU,QAAQ,CAAC;;kDACzD,KAACM;wCAAIC,WAAW,CAAC,EAAEP,UAAU,OAAO,EAAEA,UAAU,SAAS,CAAC;;;;4BAG7DI,cAAc,4BACb,KAACN;gCAAYS,WAAW,CAAC,EAAEP,UAAU,kBAAkB,CAAC;gCAAEW,WAAU;;;;;;;;AAQpF,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Hamburger/index.tsx"],"sourcesContent":["'use client'\nimport { CloseMenuIcon, MenuIcon } from '@payloadcms/ui'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'hamburger'\n\nexport const Hamburger: React.FC<{\n closeIcon?: 'collapse' | 'x'\n isActive?: boolean\n}> = (props) => {\n const { t } = useTranslation()\n const { closeIcon = 'x', isActive = false } = props\n\n return (\n <div className={baseClass}>\n {!isActive && (\n <div\n aria-label={t('general:open')}\n className={`${baseClass}__open-icon`}\n title={t('general:open')}\n >\n <MenuIcon />\n </div>\n )}\n {isActive && (\n <div\n aria-label={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n className={`${baseClass}__close-icon`}\n title={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n >\n {closeIcon === 'x' && <CloseMenuIcon />}\n {closeIcon === 'collapse' && <ChevronIcon direction=\"left\" />}\n </div>\n )}\n </div>\n )\n}\n"],"names":["CloseMenuIcon","MenuIcon","React","ChevronIcon","useTranslation","baseClass","Hamburger","props","t","closeIcon","isActive","div","className","aria-label","title","direction"],"mappings":"AAAA;;AACA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,iBAAgB;AACxD,OAAOC,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,YAGR,CAACC;IACJ,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,MAAM,EAAEK,YAAY,GAAG,EAAEC,WAAW,KAAK,EAAE,GAAGH;IAE9C,qBACE,MAACI;QAAIC,WAAWP;;YACb,CAACK,0BACA,KAACC;gBACCE,cAAYL,EAAE;gBACdI,WAAW,CAAC,EAAEP,UAAU,WAAW,CAAC;gBACpCS,OAAON,EAAE;0BAET,cAAA,KAACP;;YAGJS,0BACC,MAACC;gBACCE,cAAYJ,cAAc,aAAaD,EAAE,sBAAsBA,EAAE;gBACjEI,WAAW,CAAC,EAAEP,UAAU,YAAY,CAAC;gBACrCS,OAAOL,cAAc,aAAaD,EAAE,sBAAsBA,EAAE;;oBAE3DC,cAAc,qBAAO,KAACT;oBACtBS,cAAc,4BAAc,KAACN;wBAAYY,WAAU;;;;;;AAK9D,EAAC"}