@payloadcms/ui 3.0.0-beta.34 → 3.0.0-beta.36

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 (566) hide show
  1. package/dist/elements/AppHeader/index.js +64 -39
  2. package/dist/elements/AppHeader/index.js.map +1 -1
  3. package/dist/elements/ArrayAction/index.js +75 -41
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.js +15 -8
  6. package/dist/elements/Autosave/index.js.map +1 -1
  7. package/dist/elements/Banner/index.js +16 -5
  8. package/dist/elements/Banner/index.js.map +1 -1
  9. package/dist/elements/Button/index.js +53 -31
  10. package/dist/elements/Button/index.js.map +1 -1
  11. package/dist/elements/Card/index.js +23 -15
  12. package/dist/elements/Card/index.js.map +1 -1
  13. package/dist/elements/CodeEditor/CodeEditor.js +3 -2
  14. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  15. package/dist/elements/CodeEditor/index.js +8 -6
  16. package/dist/elements/CodeEditor/index.js.map +1 -1
  17. package/dist/elements/Collapsible/index.js +63 -38
  18. package/dist/elements/Collapsible/index.js.map +1 -1
  19. package/dist/elements/Collapsible/provider.js +5 -3
  20. package/dist/elements/Collapsible/provider.js.map +1 -1
  21. package/dist/elements/ColumnSelector/index.js +24 -22
  22. package/dist/elements/ColumnSelector/index.js.map +1 -1
  23. package/dist/elements/CopyToClipboard/index.js +21 -11
  24. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  25. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  26. package/dist/elements/DatePicker/DatePicker.js +29 -17
  27. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  28. package/dist/elements/DatePicker/index.js +7 -3
  29. package/dist/elements/DatePicker/index.js.map +1 -1
  30. package/dist/elements/DeleteDocument/index.js +57 -32
  31. package/dist/elements/DeleteDocument/index.js.map +1 -1
  32. package/dist/elements/DeleteMany/index.js +43 -23
  33. package/dist/elements/DeleteMany/index.js.map +1 -1
  34. package/dist/elements/DocumentControls/index.d.ts +1 -0
  35. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  36. package/dist/elements/DocumentControls/index.js +180 -101
  37. package/dist/elements/DocumentControls/index.js.map +1 -1
  38. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  39. package/dist/elements/DocumentDrawer/DrawerContent.js +30 -24
  40. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  41. package/dist/elements/DocumentDrawer/index.js +14 -8
  42. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  43. package/dist/elements/DocumentFields/index.js +52 -34
  44. package/dist/elements/DocumentFields/index.js.map +1 -1
  45. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +14 -11
  46. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  47. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +16 -5
  48. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  49. package/dist/elements/DocumentHeader/Tabs/index.js +64 -56
  50. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  51. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +5 -3
  52. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  53. package/dist/elements/DocumentHeader/index.js +21 -11
  54. package/dist/elements/DocumentHeader/index.js.map +1 -1
  55. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +14 -11
  56. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  57. package/dist/elements/DraggableSortable/index.js +12 -8
  58. package/dist/elements/DraggableSortable/index.js.map +1 -1
  59. package/dist/elements/Drawer/index.js +58 -35
  60. package/dist/elements/Drawer/index.js.map +1 -1
  61. package/dist/elements/Dropzone/index.js +30 -18
  62. package/dist/elements/Dropzone/index.js.map +1 -1
  63. package/dist/elements/DuplicateDocument/index.js +37 -17
  64. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  65. package/dist/elements/EditMany/index.d.ts.map +1 -1
  66. package/dist/elements/EditMany/index.js +112 -76
  67. package/dist/elements/EditMany/index.js.map +1 -1
  68. package/dist/elements/EditUpload/index.d.ts +2 -4
  69. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  70. package/dist/elements/EditUpload/index.js +247 -162
  71. package/dist/elements/EditUpload/index.js.map +1 -1
  72. package/dist/elements/ErrorPill/index.js +14 -7
  73. package/dist/elements/ErrorPill/index.js.map +1 -1
  74. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  75. package/dist/elements/FieldSelect/index.js +42 -25
  76. package/dist/elements/FieldSelect/index.js.map +1 -1
  77. package/dist/elements/FileDetails/FileMeta/index.js +54 -20
  78. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  79. package/dist/elements/FileDetails/index.js +42 -30
  80. package/dist/elements/FileDetails/index.js.map +1 -1
  81. package/dist/elements/GenerateConfirmation/index.js +48 -26
  82. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  83. package/dist/elements/Gutter/index.js +5 -3
  84. package/dist/elements/Gutter/index.js.map +1 -1
  85. package/dist/elements/Hamburger/index.js +48 -27
  86. package/dist/elements/Hamburger/index.js.map +1 -1
  87. package/dist/elements/IDLabel/index.js +9 -3
  88. package/dist/elements/IDLabel/index.js.map +1 -1
  89. package/dist/elements/ListControls/index.js +94 -62
  90. package/dist/elements/ListControls/index.js.map +1 -1
  91. package/dist/elements/ListDrawer/DrawerContent.js +97 -67
  92. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  93. package/dist/elements/ListDrawer/index.js +14 -8
  94. package/dist/elements/ListDrawer/index.js.map +1 -1
  95. package/dist/elements/ListSelection/index.js +31 -17
  96. package/dist/elements/ListSelection/index.js.map +1 -1
  97. package/dist/elements/Loading/index.js +31 -18
  98. package/dist/elements/Loading/index.js.map +1 -1
  99. package/dist/elements/LoadingOverlay/index.js +13 -8
  100. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  101. package/dist/elements/Localizer/LocalizerLabel/index.js +19 -9
  102. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  103. package/dist/elements/Localizer/index.js +31 -24
  104. package/dist/elements/Localizer/index.js.map +1 -1
  105. package/dist/elements/Logout/index.js +9 -5
  106. package/dist/elements/Logout/index.js.map +1 -1
  107. package/dist/elements/Nav/NavHamburger/index.js +7 -5
  108. package/dist/elements/Nav/NavHamburger/index.js.map +1 -1
  109. package/dist/elements/Nav/NavToggler/index.js +5 -3
  110. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  111. package/dist/elements/Nav/NavWrapper/index.js +9 -6
  112. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  113. package/dist/elements/Nav/context.d.ts +1 -1
  114. package/dist/elements/Nav/context.d.ts.map +1 -1
  115. package/dist/elements/Nav/context.js +5 -3
  116. package/dist/elements/Nav/context.js.map +1 -1
  117. package/dist/elements/Nav/index.client.js +43 -35
  118. package/dist/elements/Nav/index.client.js.map +1 -1
  119. package/dist/elements/Nav/index.js +31 -19
  120. package/dist/elements/Nav/index.js.map +1 -1
  121. package/dist/elements/NavGroup/index.js +39 -24
  122. package/dist/elements/NavGroup/index.js.map +1 -1
  123. package/dist/elements/Pagination/ClickableArrow/index.js +5 -3
  124. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  125. package/dist/elements/Pagination/Page/index.js +5 -3
  126. package/dist/elements/Pagination/Page/index.js.map +1 -1
  127. package/dist/elements/Pagination/Separator/index.js +5 -3
  128. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  129. package/dist/elements/Pagination/index.js +17 -17
  130. package/dist/elements/Pagination/index.js.map +1 -1
  131. package/dist/elements/PerPage/index.js +46 -28
  132. package/dist/elements/PerPage/index.js.map +1 -1
  133. package/dist/elements/Pill/index.js +25 -12
  134. package/dist/elements/Pill/index.js.map +1 -1
  135. package/dist/elements/Popup/PopupButtonList/index.js +17 -12
  136. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  137. package/dist/elements/Popup/PopupTrigger/index.js +9 -6
  138. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  139. package/dist/elements/Popup/index.js +52 -35
  140. package/dist/elements/Popup/index.js.map +1 -1
  141. package/dist/elements/PreviewButton/index.js +6 -4
  142. package/dist/elements/PreviewButton/index.js.map +1 -1
  143. package/dist/elements/PreviewSizes/index.js +81 -49
  144. package/dist/elements/PreviewSizes/index.js.map +1 -1
  145. package/dist/elements/{Publish → PublishButton}/index.d.ts +1 -1
  146. package/dist/elements/PublishButton/index.d.ts.map +1 -0
  147. package/dist/elements/PublishButton/index.js +40 -0
  148. package/dist/elements/PublishButton/index.js.map +1 -0
  149. package/dist/elements/PublishMany/index.js +42 -22
  150. package/dist/elements/PublishMany/index.js.map +1 -1
  151. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  152. package/dist/elements/ReactSelect/ClearIndicator/index.js +9 -6
  153. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  154. package/dist/elements/ReactSelect/Control/index.d.ts.map +1 -1
  155. package/dist/elements/ReactSelect/Control/index.js +27 -23
  156. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  157. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +1 -1
  158. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  159. package/dist/elements/ReactSelect/DropdownIndicator/index.js +7 -5
  160. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  161. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  162. package/dist/elements/ReactSelect/MultiValue/index.js +20 -17
  163. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  164. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  165. package/dist/elements/ReactSelect/MultiValueLabel/index.js +11 -9
  166. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  167. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts +1 -1
  168. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  169. package/dist/elements/ReactSelect/MultiValueRemove/index.js +14 -8
  170. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  171. package/dist/elements/ReactSelect/SingleValue/index.d.ts.map +1 -1
  172. package/dist/elements/ReactSelect/SingleValue/index.js +11 -7
  173. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  174. package/dist/elements/ReactSelect/ValueContainer/index.d.ts.map +1 -1
  175. package/dist/elements/ReactSelect/ValueContainer/index.js +7 -3
  176. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  177. package/dist/elements/ReactSelect/index.js +15 -7
  178. package/dist/elements/ReactSelect/index.js.map +1 -1
  179. package/dist/elements/ReactSelect/types.d.ts +1 -1
  180. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  181. package/dist/elements/ReactSelect/types.js.map +1 -1
  182. package/dist/elements/RenderCustomComponent/index.js +3 -2
  183. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  184. package/dist/elements/RenderTitle/index.js +8 -6
  185. package/dist/elements/RenderTitle/index.js.map +1 -1
  186. package/dist/elements/{Save → SaveButton}/index.d.ts +1 -1
  187. package/dist/elements/SaveButton/index.d.ts.map +1 -0
  188. package/dist/elements/{Save → SaveButton}/index.js +10 -6
  189. package/dist/elements/SaveButton/index.js.map +1 -0
  190. package/dist/elements/{SaveDraft → SaveDraftButton}/index.d.ts +1 -1
  191. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -0
  192. package/dist/elements/{SaveDraft → SaveDraftButton}/index.js +10 -6
  193. package/dist/elements/SaveDraftButton/index.js.map +1 -0
  194. package/dist/elements/SearchFilter/index.js +14 -9
  195. package/dist/elements/SearchFilter/index.js.map +1 -1
  196. package/dist/elements/SelectAll/index.js +2 -1
  197. package/dist/elements/SelectAll/index.js.map +1 -1
  198. package/dist/elements/SelectRow/index.js +2 -1
  199. package/dist/elements/SelectRow/index.js.map +1 -1
  200. package/dist/elements/ShimmerEffect/index.js +23 -20
  201. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  202. package/dist/elements/SortColumn/index.js +43 -31
  203. package/dist/elements/SortColumn/index.js.map +1 -1
  204. package/dist/elements/SortComplex/index.js +41 -23
  205. package/dist/elements/SortComplex/index.js.map +1 -1
  206. package/dist/elements/Status/index.js +94 -41
  207. package/dist/elements/Status/index.js.map +1 -1
  208. package/dist/elements/StayLoggedIn/index.js +40 -20
  209. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  210. package/dist/elements/StepNav/index.js +63 -41
  211. package/dist/elements/StepNav/index.js.map +1 -1
  212. package/dist/elements/Table/DefaultCell/fields/Array/index.js +4 -1
  213. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  214. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +4 -1
  215. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  216. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +7 -3
  217. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  218. package/dist/elements/Table/DefaultCell/fields/Code/index.js +7 -3
  219. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  220. package/dist/elements/Table/DefaultCell/fields/Date/index.js +8 -5
  221. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  222. package/dist/elements/Table/DefaultCell/fields/File/index.js +21 -15
  223. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  224. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +7 -3
  225. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  226. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  227. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +40 -21
  228. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  229. package/dist/elements/Table/DefaultCell/fields/Select/index.js +4 -1
  230. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  231. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +4 -1
  232. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  233. package/dist/elements/Table/DefaultCell/index.js +31 -15
  234. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  235. package/dist/elements/Table/RelationshipProvider/index.js +5 -3
  236. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  237. package/dist/elements/Table/TableCellProvider/index.js +5 -3
  238. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  239. package/dist/elements/Table/index.js +39 -24
  240. package/dist/elements/Table/index.js.map +1 -1
  241. package/dist/elements/TableColumns/buildColumnState.js +8 -5
  242. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  243. package/dist/elements/TableColumns/filterFields.js +1 -1
  244. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  245. package/dist/elements/TableColumns/index.js +5 -3
  246. package/dist/elements/TableColumns/index.js.map +1 -1
  247. package/dist/elements/Thumbnail/index.js +14 -8
  248. package/dist/elements/Thumbnail/index.js.map +1 -1
  249. package/dist/elements/ThumbnailCard/index.js +14 -7
  250. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  251. package/dist/elements/Tooltip/index.d.ts +5 -1
  252. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  253. package/dist/elements/Tooltip/index.js +42 -27
  254. package/dist/elements/Tooltip/index.js.map +1 -1
  255. package/dist/elements/Tooltip/index.scss +12 -10
  256. package/dist/elements/Translation/index.js +19 -16
  257. package/dist/elements/Translation/index.js.map +1 -1
  258. package/dist/elements/UnpublishMany/index.js +42 -22
  259. package/dist/elements/UnpublishMany/index.js.map +1 -1
  260. package/dist/elements/Upload/index.d.ts.map +1 -1
  261. package/dist/elements/Upload/index.js +114 -82
  262. package/dist/elements/Upload/index.js.map +1 -1
  263. package/dist/elements/ViewDescription/index.js +6 -4
  264. package/dist/elements/ViewDescription/index.js.map +1 -1
  265. package/dist/elements/WhereBuilder/Condition/Date/index.js +10 -8
  266. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  267. package/dist/elements/WhereBuilder/Condition/Number/index.js +2 -1
  268. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  269. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +49 -43
  270. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  271. package/dist/elements/WhereBuilder/Condition/Select/index.js +2 -1
  272. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  273. package/dist/elements/WhereBuilder/Condition/Text/index.js +2 -1
  274. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  275. package/dist/elements/WhereBuilder/Condition/index.js +84 -66
  276. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  277. package/dist/elements/WhereBuilder/index.js +97 -69
  278. package/dist/elements/WhereBuilder/index.js.map +1 -1
  279. package/dist/elements/WithServerSideProps/index.js +7 -2
  280. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  281. package/dist/elements/withMergedProps/index.js +4 -1
  282. package/dist/elements/withMergedProps/index.js.map +1 -1
  283. package/dist/fields/Array/ArrayRow.js +53 -47
  284. package/dist/fields/Array/ArrayRow.js.map +1 -1
  285. package/dist/fields/Array/index.d.ts.map +1 -1
  286. package/dist/fields/Array/index.js +135 -93
  287. package/dist/fields/Array/index.js.map +1 -1
  288. package/dist/fields/Array/index.scss +0 -4
  289. package/dist/fields/Blocks/BlockRow.js +62 -53
  290. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  291. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js +12 -7
  292. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
  293. package/dist/fields/Blocks/BlocksDrawer/index.js +36 -28
  294. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  295. package/dist/fields/Blocks/RowActions.js +30 -24
  296. package/dist/fields/Blocks/RowActions.js.map +1 -1
  297. package/dist/fields/Blocks/SectionTitle/index.js +14 -12
  298. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  299. package/dist/fields/Blocks/index.d.ts.map +1 -1
  300. package/dist/fields/Blocks/index.js +154 -105
  301. package/dist/fields/Blocks/index.js.map +1 -1
  302. package/dist/fields/Blocks/index.scss +0 -4
  303. package/dist/fields/Checkbox/Input.d.ts +3 -4
  304. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  305. package/dist/fields/Checkbox/Input.js +40 -25
  306. package/dist/fields/Checkbox/Input.js.map +1 -1
  307. package/dist/fields/Checkbox/index.d.ts +2 -1
  308. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  309. package/dist/fields/Checkbox/index.js +29 -23
  310. package/dist/fields/Checkbox/index.js.map +1 -1
  311. package/dist/fields/Checkbox/index.scss +0 -4
  312. package/dist/fields/Code/index.js +34 -18
  313. package/dist/fields/Code/index.js.map +1 -1
  314. package/dist/fields/Collapsible/index.js +57 -42
  315. package/dist/fields/Collapsible/index.js.map +1 -1
  316. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  317. package/dist/fields/ConfirmPassword/index.js +28 -17
  318. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  319. package/dist/fields/DateTime/index.d.ts.map +1 -1
  320. package/dist/fields/DateTime/index.js +36 -24
  321. package/dist/fields/DateTime/index.js.map +1 -1
  322. package/dist/fields/DateTime/index.scss +0 -6
  323. package/dist/fields/Email/index.js +37 -21
  324. package/dist/fields/Email/index.js.map +1 -1
  325. package/dist/fields/Group/index.js +58 -36
  326. package/dist/fields/Group/index.js.map +1 -1
  327. package/dist/fields/Group/provider.js +5 -3
  328. package/dist/fields/Group/provider.js.map +1 -1
  329. package/dist/fields/HiddenInput/index.js +2 -1
  330. package/dist/fields/HiddenInput/index.js.map +1 -1
  331. package/dist/fields/JSON/index.d.ts.map +1 -1
  332. package/dist/fields/JSON/index.js +40 -19
  333. package/dist/fields/JSON/index.js.map +1 -1
  334. package/dist/fields/Number/index.d.ts.map +1 -1
  335. package/dist/fields/Number/index.js +75 -55
  336. package/dist/fields/Number/index.js.map +1 -1
  337. package/dist/fields/Password/index.d.ts.map +1 -1
  338. package/dist/fields/Password/index.js +31 -20
  339. package/dist/fields/Password/index.js.map +1 -1
  340. package/dist/fields/Point/index.js +67 -31
  341. package/dist/fields/Point/index.js.map +1 -1
  342. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  343. package/dist/fields/RadioGroup/Radio/index.js +27 -18
  344. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  345. package/dist/fields/RadioGroup/Radio/index.scss +2 -1
  346. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  347. package/dist/fields/RadioGroup/index.js +60 -47
  348. package/dist/fields/RadioGroup/index.js.map +1 -1
  349. package/dist/fields/RadioGroup/index.scss +0 -4
  350. package/dist/fields/Relationship/AddNew/index.js +67 -44
  351. package/dist/fields/Relationship/AddNew/index.js.map +1 -1
  352. package/dist/fields/Relationship/index.d.ts.map +1 -1
  353. package/dist/fields/Relationship/index.js +119 -100
  354. package/dist/fields/Relationship/index.js.map +1 -1
  355. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  356. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +49 -33
  357. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  358. package/dist/fields/Relationship/select-components/SingleValue/index.d.ts.map +1 -1
  359. package/dist/fields/Relationship/select-components/SingleValue/index.js +50 -30
  360. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  361. package/dist/fields/Row/index.js +23 -19
  362. package/dist/fields/Row/index.js.map +1 -1
  363. package/dist/fields/Row/provider.js +5 -3
  364. package/dist/fields/Row/provider.js.map +1 -1
  365. package/dist/fields/Select/Input.d.ts +11 -0
  366. package/dist/fields/Select/Input.d.ts.map +1 -0
  367. package/dist/fields/Select/Input.js +87 -0
  368. package/dist/fields/Select/Input.js.map +1 -0
  369. package/dist/fields/Select/index.d.ts +3 -1
  370. package/dist/fields/Select/index.d.ts.map +1 -1
  371. package/dist/fields/Select/index.js +22 -53
  372. package/dist/fields/Select/index.js.map +1 -1
  373. package/dist/fields/Tabs/Tab/index.js +26 -16
  374. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  375. package/dist/fields/Tabs/index.js +47 -31
  376. package/dist/fields/Tabs/index.js.map +1 -1
  377. package/dist/fields/Tabs/provider.js +5 -3
  378. package/dist/fields/Tabs/provider.js.map +1 -1
  379. package/dist/fields/Text/Input.d.ts.map +1 -1
  380. package/dist/fields/Text/Input.js +66 -46
  381. package/dist/fields/Text/Input.js.map +1 -1
  382. package/dist/fields/Text/index.js +2 -1
  383. package/dist/fields/Text/index.js.map +1 -1
  384. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  385. package/dist/fields/Textarea/Input.js +51 -30
  386. package/dist/fields/Textarea/Input.js.map +1 -1
  387. package/dist/fields/Textarea/index.js +2 -1
  388. package/dist/fields/Textarea/index.js.map +1 -1
  389. package/dist/fields/Upload/Input.d.ts.map +1 -1
  390. package/dist/fields/Upload/Input.js +71 -41
  391. package/dist/fields/Upload/Input.js.map +1 -1
  392. package/dist/fields/Upload/index.js +2 -1
  393. package/dist/fields/Upload/index.js.map +1 -1
  394. package/dist/forms/FieldDescription/index.js +8 -4
  395. package/dist/forms/FieldDescription/index.js.map +1 -1
  396. package/dist/forms/FieldError/index.js +10 -5
  397. package/dist/forms/FieldError/index.js.map +1 -1
  398. package/dist/forms/FieldError/index.scss +1 -2
  399. package/dist/forms/FieldLabel/index.js +14 -6
  400. package/dist/forms/FieldLabel/index.js.map +1 -1
  401. package/dist/forms/FieldPropsProvider/index.js +5 -3
  402. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  403. package/dist/forms/Form/index.d.ts.map +1 -1
  404. package/dist/forms/Form/index.js +31 -18
  405. package/dist/forms/Form/index.js.map +1 -1
  406. package/dist/forms/NullifyField/index.js +8 -5
  407. package/dist/forms/NullifyField/index.js.map +1 -1
  408. package/dist/forms/RenderFields/RenderField.js +7 -3
  409. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  410. package/dist/forms/RenderFields/index.js +23 -22
  411. package/dist/forms/RenderFields/index.js.map +1 -1
  412. package/dist/forms/RenderFields/index.scss +5 -0
  413. package/dist/forms/RowLabel/Context/index.js +5 -3
  414. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  415. package/dist/forms/RowLabel/index.js +9 -6
  416. package/dist/forms/RowLabel/index.js.map +1 -1
  417. package/dist/forms/Submit/index.js +12 -9
  418. package/dist/forms/Submit/index.js.map +1 -1
  419. package/dist/forms/withCondition/WatchCondition.js +4 -1
  420. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  421. package/dist/forms/withCondition/index.js +7 -3
  422. package/dist/forms/withCondition/index.js.map +1 -1
  423. package/dist/graphics/Account/Default/index.js +22 -16
  424. package/dist/graphics/Account/Default/index.js.map +1 -1
  425. package/dist/graphics/Account/Gravatar/index.js +2 -1
  426. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  427. package/dist/graphics/Account/index.js +2 -1
  428. package/dist/graphics/Account/index.js.map +1 -1
  429. package/dist/graphics/DefaultBlockImage/index.js +32 -21
  430. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  431. package/dist/graphics/ExternalLink/index.js +9 -7
  432. package/dist/graphics/ExternalLink/index.js.map +1 -1
  433. package/dist/graphics/File/index.js +20 -14
  434. package/dist/graphics/File/index.js.map +1 -1
  435. package/dist/graphics/Icon/index.js +14 -9
  436. package/dist/graphics/Icon/index.js.map +1 -1
  437. package/dist/graphics/Logo/index.js +37 -22
  438. package/dist/graphics/Logo/index.js.map +1 -1
  439. package/dist/graphics/Search/index.js +23 -18
  440. package/dist/graphics/Search/index.js.map +1 -1
  441. package/dist/hooks/useDebouncedCallback.js +1 -1
  442. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  443. package/dist/hooks/useDelay.js +1 -1
  444. package/dist/hooks/useDelay.js.map +1 -1
  445. package/dist/hooks/useDelayedRender.d.ts.map +1 -1
  446. package/dist/hooks/useDelayedRender.js +1 -1
  447. package/dist/hooks/useDelayedRender.js.map +1 -1
  448. package/dist/hooks/useIntersect.js +1 -1
  449. package/dist/hooks/useIntersect.js.map +1 -1
  450. package/dist/icons/Calendar/index.js +34 -27
  451. package/dist/icons/Calendar/index.js.map +1 -1
  452. package/dist/icons/Check/index.js +18 -13
  453. package/dist/icons/Check/index.js.map +1 -1
  454. package/dist/icons/Chevron/index.js +8 -6
  455. package/dist/icons/Chevron/index.js.map +1 -1
  456. package/dist/icons/CloseMenu/index.js +22 -17
  457. package/dist/icons/CloseMenu/index.js.map +1 -1
  458. package/dist/icons/CodeBlock/index.js +14 -9
  459. package/dist/icons/CodeBlock/index.js.map +1 -1
  460. package/dist/icons/Copy/index.js +17 -12
  461. package/dist/icons/Copy/index.js.map +1 -1
  462. package/dist/icons/DragHandle/index.js +42 -33
  463. package/dist/icons/DragHandle/index.js.map +1 -1
  464. package/dist/icons/Edit/index.js +22 -16
  465. package/dist/icons/Edit/index.js.map +1 -1
  466. package/dist/icons/Line/index.js +11 -9
  467. package/dist/icons/Line/index.js.map +1 -1
  468. package/dist/icons/Link/index.js +14 -9
  469. package/dist/icons/Link/index.js.map +1 -1
  470. package/dist/icons/LogOut/index.js +25 -15
  471. package/dist/icons/LogOut/index.js.map +1 -1
  472. package/dist/icons/Menu/index.js +27 -21
  473. package/dist/icons/Menu/index.js.map +1 -1
  474. package/dist/icons/MinimizeMaximize/index.js +35 -19
  475. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  476. package/dist/icons/More/index.js +24 -18
  477. package/dist/icons/More/index.js.map +1 -1
  478. package/dist/icons/Plus/index.js +20 -15
  479. package/dist/icons/Plus/index.js.map +1 -1
  480. package/dist/icons/Search/index.js +19 -14
  481. package/dist/icons/Search/index.js.map +1 -1
  482. package/dist/icons/Swap/index.js +29 -22
  483. package/dist/icons/Swap/index.js.map +1 -1
  484. package/dist/icons/X/index.js +20 -15
  485. package/dist/icons/X/index.js.map +1 -1
  486. package/dist/providers/Actions/index.js +5 -3
  487. package/dist/providers/Actions/index.js.map +1 -1
  488. package/dist/providers/Auth/index.js +5 -3
  489. package/dist/providers/Auth/index.js.map +1 -1
  490. package/dist/providers/ClientFunction/index.js +8 -5
  491. package/dist/providers/ClientFunction/index.js.map +1 -1
  492. package/dist/providers/ComponentMap/buildComponentMap/actions.js +3 -2
  493. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
  494. package/dist/providers/ComponentMap/buildComponentMap/collections.js +12 -11
  495. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  496. package/dist/providers/ComponentMap/buildComponentMap/fields.js +19 -16
  497. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  498. package/dist/providers/ComponentMap/buildComponentMap/globals.js +7 -6
  499. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  500. package/dist/providers/ComponentMap/buildComponentMap/index.js +18 -11
  501. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  502. package/dist/providers/ComponentMap/index.js +5 -3
  503. package/dist/providers/ComponentMap/index.js.map +1 -1
  504. package/dist/providers/Config/index.js +5 -3
  505. package/dist/providers/Config/index.js.map +1 -1
  506. package/dist/providers/DocumentEvents/index.js +5 -3
  507. package/dist/providers/DocumentEvents/index.js.map +1 -1
  508. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  509. package/dist/providers/DocumentInfo/index.js +58 -28
  510. package/dist/providers/DocumentInfo/index.js.map +1 -1
  511. package/dist/providers/DocumentInfo/types.d.ts +2 -1
  512. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  513. package/dist/providers/DocumentInfo/types.js.map +1 -1
  514. package/dist/providers/EditDepth/index.js +5 -3
  515. package/dist/providers/EditDepth/index.js.map +1 -1
  516. package/dist/providers/EntityVisibility/index.js +5 -3
  517. package/dist/providers/EntityVisibility/index.js.map +1 -1
  518. package/dist/providers/FieldComponents/index.js +5 -3
  519. package/dist/providers/FieldComponents/index.js.map +1 -1
  520. package/dist/providers/FormQueryParams/index.js +5 -3
  521. package/dist/providers/FormQueryParams/index.js.map +1 -1
  522. package/dist/providers/ListInfo/index.js +5 -3
  523. package/dist/providers/ListInfo/index.js.map +1 -1
  524. package/dist/providers/ListQuery/index.js +5 -3
  525. package/dist/providers/ListQuery/index.js.map +1 -1
  526. package/dist/providers/Locale/index.js +5 -3
  527. package/dist/providers/Locale/index.js.map +1 -1
  528. package/dist/providers/Operation/index.js +5 -3
  529. package/dist/providers/Operation/index.js.map +1 -1
  530. package/dist/providers/Params/index.js +5 -3
  531. package/dist/providers/Params/index.js.map +1 -1
  532. package/dist/providers/Preferences/index.js +5 -3
  533. package/dist/providers/Preferences/index.js.map +1 -1
  534. package/dist/providers/Root/index.d.ts +2 -0
  535. package/dist/providers/Root/index.d.ts.map +1 -1
  536. package/dist/providers/Root/index.js +75 -28
  537. package/dist/providers/Root/index.js.map +1 -1
  538. package/dist/providers/RouteCache/index.js +5 -3
  539. package/dist/providers/RouteCache/index.js.map +1 -1
  540. package/dist/providers/SearchParams/index.js +5 -3
  541. package/dist/providers/SearchParams/index.js.map +1 -1
  542. package/dist/providers/Selection/index.js +5 -3
  543. package/dist/providers/Selection/index.js.map +1 -1
  544. package/dist/providers/Theme/index.d.ts +3 -0
  545. package/dist/providers/Theme/index.d.ts.map +1 -1
  546. package/dist/providers/Theme/index.js +31 -19
  547. package/dist/providers/Theme/index.js.map +1 -1
  548. package/dist/providers/Translation/index.js +5 -3
  549. package/dist/providers/Translation/index.js.map +1 -1
  550. package/dist/scss/app.scss +0 -6
  551. package/dist/templates/Default/NavHamburger/index.js +2 -1
  552. package/dist/templates/Default/NavHamburger/index.js.map +1 -1
  553. package/dist/templates/Default/Wrapper/index.js +5 -3
  554. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  555. package/dist/templates/Default/index.js +43 -26
  556. package/dist/templates/Default/index.js.map +1 -1
  557. package/dist/templates/Minimal/index.js +8 -5
  558. package/dist/templates/Minimal/index.js.map +1 -1
  559. package/package.json +16 -12
  560. package/dist/elements/Publish/index.d.ts.map +0 -1
  561. package/dist/elements/Publish/index.js +0 -87
  562. package/dist/elements/Publish/index.js.map +0 -1
  563. package/dist/elements/Save/index.d.ts.map +0 -1
  564. package/dist/elements/Save/index.js.map +0 -1
  565. package/dist/elements/SaveDraft/index.d.ts.map +0 -1
  566. package/dist/elements/SaveDraft/index.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
3
  import * as facelessUIImport from '@faceless-ui/modal';
3
4
  import React, { useRef, useState } from 'react';
4
5
  import ReactCrop from 'react-image-crop';
@@ -7,14 +8,18 @@ import { Plus } from '../../icons/Plus/index.js';
7
8
  import { useTranslation } from '../../providers/Translation/index.js';
8
9
  import { Button } from '../Button/index.js';
9
10
  const baseClass = 'edit-upload';
10
- const Input = ({ name, onChange, value })=>/*#__PURE__*/ React.createElement("div", {
11
- className: `${baseClass}__input`
12
- }, name, /*#__PURE__*/ React.createElement("input", {
13
- name: name,
14
- onChange: (e)=>onChange(e.target.value),
15
- type: "number",
16
- value: value
17
- }));
11
+ const Input = ({ name, onChange, value })=>/*#__PURE__*/ _jsxs("div", {
12
+ className: `${baseClass}__input`,
13
+ children: [
14
+ name,
15
+ /*#__PURE__*/ _jsx("input", {
16
+ name: name,
17
+ onChange: (e)=>onChange(e.target.value),
18
+ type: "number",
19
+ value: value
20
+ })
21
+ ]
22
+ });
18
23
  const defaultCrop = {
19
24
  height: 100,
20
25
  unit: '%',
@@ -22,10 +27,6 @@ const defaultCrop = {
22
27
  x: 0,
23
28
  y: 0
24
29
  };
25
- const defaultPointPosition = {
26
- x: 50,
27
- y: 50
28
- };
29
30
  export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, initialFocalPoint, onSave, showCrop, showFocalPoint })=>{
30
31
  const { useModal } = facelessUIImport;
31
32
  const { closeModal } = useModal();
@@ -34,16 +35,23 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
34
35
  ...defaultCrop,
35
36
  ...initialCrop
36
37
  }));
37
- const [pointPosition, setPointPosition] = useState(()=>({
38
- ...defaultPointPosition,
38
+ const defaultFocalPosition = {
39
+ x: 50,
40
+ y: 50
41
+ };
42
+ console.log({
43
+ initialFocalPoint
44
+ });
45
+ const [focalPosition, setFocalPosition] = useState(()=>({
46
+ ...defaultFocalPosition,
39
47
  ...initialFocalPoint
40
48
  }));
41
49
  const [checkBounds, setCheckBounds] = useState(false);
42
50
  const [originalHeight, setOriginalHeight] = useState(0);
43
51
  const [originalWidth, setOriginalWidth] = useState(0);
44
- const focalWrapRef = useRef();
45
- const imageRef = useRef();
46
- const cropRef = useRef();
52
+ const focalWrapRef = useRef(undefined);
53
+ const imageRef = useRef(undefined);
54
+ const cropRef = useRef(undefined);
47
55
  const fineTuneCrop = ({ dimension, value })=>{
48
56
  const intValue = parseInt(value);
49
57
  if (dimension === 'width' && intValue >= originalWidth) return null;
@@ -55,10 +63,10 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
55
63
  [dimension]: percentage
56
64
  });
57
65
  };
58
- const fineTuneFocalPoint = ({ coordinate, value })=>{
66
+ const fineTuneFocalPosition = ({ coordinate, value })=>{
59
67
  const intValue = parseInt(value);
60
68
  if (intValue >= 0 && intValue <= 100) {
61
- setPointPosition((prevPosition)=>({
69
+ setFocalPosition((prevPosition)=>({
62
70
  ...prevPosition,
63
71
  [coordinate]: intValue
64
72
  }));
@@ -67,12 +75,12 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
67
75
  const saveEdits = ()=>{
68
76
  if (typeof onSave === 'function') onSave({
69
77
  crop,
70
- pointPosition
78
+ focalPosition
71
79
  });
72
80
  closeModal(editDrawerSlug);
73
81
  };
74
82
  const onDragEnd = React.useCallback(({ x, y })=>{
75
- setPointPosition({
83
+ setFocalPosition({
76
84
  x,
77
85
  y
78
86
  });
@@ -83,136 +91,208 @@ export const EditUpload = ({ fileName, fileSrc, imageCacheTag, initialCrop, init
83
91
  const boundsRect = showCrop ? cropRef.current.getBoundingClientRect() : imageRef.current.getBoundingClientRect();
84
92
  const xCenter = (boundsRect.left - containerRect.left + boundsRect.width / 2) / containerRect.width * 100;
85
93
  const yCenter = (boundsRect.top - containerRect.top + boundsRect.height / 2) / containerRect.height * 100;
86
- setPointPosition({
94
+ setFocalPosition({
87
95
  x: xCenter,
88
96
  y: yCenter
89
97
  });
90
98
  };
91
99
  const fileSrcToUse = imageCacheTag ? `${fileSrc}?${imageCacheTag}` : fileSrc;
92
- return /*#__PURE__*/ React.createElement("div", {
93
- className: baseClass
94
- }, /*#__PURE__*/ React.createElement("div", {
95
- className: `${baseClass}__header`
96
- }, /*#__PURE__*/ React.createElement("h2", {
97
- title: `${t('general:editing')} ${fileName}`
98
- }, t('general:editing'), " ", fileName), /*#__PURE__*/ React.createElement("div", {
99
- className: `${baseClass}__actions`
100
- }, /*#__PURE__*/ React.createElement(Button, {
101
- "aria-label": t('general:cancel'),
102
- buttonStyle: "secondary",
103
- className: `${baseClass}__cancel`,
104
- onClick: ()=>closeModal(editDrawerSlug)
105
- }, t('general:cancel')), /*#__PURE__*/ React.createElement(Button, {
106
- "aria-label": t('general:applyChanges'),
107
- buttonStyle: "primary",
108
- className: `${baseClass}__save`,
109
- onClick: saveEdits
110
- }, t('general:applyChanges')))), /*#__PURE__*/ React.createElement("div", {
111
- className: `${baseClass}__toolWrap`
112
- }, /*#__PURE__*/ React.createElement("div", {
113
- className: `${baseClass}__crop`
114
- }, /*#__PURE__*/ React.createElement("div", {
115
- className: `${baseClass}__focal-wrapper`,
116
- ref: focalWrapRef,
117
- style: {
118
- aspectRatio: `${originalWidth / originalHeight}`
119
- }
120
- }, showCrop ? /*#__PURE__*/ React.createElement(ReactCrop, {
121
- className: `${baseClass}__reactCrop`,
122
- crop: crop,
123
- onChange: (_, c)=>setCrop(c),
124
- onComplete: ()=>setCheckBounds(true),
125
- renderSelectionAddon: ()=>{
126
- return /*#__PURE__*/ React.createElement("div", {
127
- className: `${baseClass}__crop-window`,
128
- ref: cropRef
129
- });
130
- }
131
- }, /*#__PURE__*/ React.createElement("img", {
132
- alt: t('upload:setCropArea'),
133
- onLoad: (e)=>{
134
- setOriginalHeight(e.currentTarget.naturalHeight);
135
- setOriginalWidth(e.currentTarget.naturalWidth);
136
- },
137
- ref: imageRef,
138
- src: fileSrcToUse
139
- })) : /*#__PURE__*/ React.createElement("img", {
140
- alt: t('upload:setFocalPoint'),
141
- onLoad: (e)=>{
142
- setOriginalHeight(e.currentTarget.naturalHeight);
143
- setOriginalWidth(e.currentTarget.naturalWidth);
144
- },
145
- ref: imageRef,
146
- src: fileSrcToUse
147
- }), showFocalPoint && /*#__PURE__*/ React.createElement(DraggableElement, {
148
- boundsRef: showCrop ? cropRef : imageRef,
149
- checkBounds: showCrop ? checkBounds : false,
150
- className: `${baseClass}__focalPoint`,
151
- containerRef: focalWrapRef,
152
- initialPosition: pointPosition,
153
- onDragEnd: onDragEnd,
154
- setCheckBounds: showCrop ? setCheckBounds : false
155
- }, /*#__PURE__*/ React.createElement(Plus, null)))), (showCrop || showFocalPoint) && /*#__PURE__*/ React.createElement("div", {
156
- className: `${baseClass}__sidebar`
157
- }, showCrop && /*#__PURE__*/ React.createElement("div", {
158
- className: `${baseClass}__groupWrap`
159
- }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
160
- className: `${baseClass}__titleWrap`
161
- }, /*#__PURE__*/ React.createElement("h3", null, t('upload:crop')), /*#__PURE__*/ React.createElement(Button, {
162
- buttonStyle: "none",
163
- className: `${baseClass}__reset`,
164
- onClick: ()=>setCrop({
165
- height: 100,
166
- unit: '%',
167
- width: 100,
168
- x: 0,
169
- y: 0
170
- })
171
- }, t('general:reset')))), /*#__PURE__*/ React.createElement("span", {
172
- className: `${baseClass}__description`
173
- }, t('upload:cropToolDescription')), /*#__PURE__*/ React.createElement("div", {
174
- className: `${baseClass}__inputsWrap`
175
- }, /*#__PURE__*/ React.createElement(Input, {
176
- name: `${t('upload:width')} (px)`,
177
- onChange: (value)=>fineTuneCrop({
178
- dimension: 'width',
179
- value
180
- }),
181
- value: (crop.width / 100 * originalWidth).toFixed(0)
182
- }), /*#__PURE__*/ React.createElement(Input, {
183
- name: `${t('upload:height')} (px)`,
184
- onChange: (value)=>fineTuneCrop({
185
- dimension: 'height',
186
- value
187
- }),
188
- value: (crop.height / 100 * originalHeight).toFixed(0)
189
- }))), showFocalPoint && /*#__PURE__*/ React.createElement("div", {
190
- className: `${baseClass}__groupWrap`
191
- }, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", {
192
- className: `${baseClass}__titleWrap`
193
- }, /*#__PURE__*/ React.createElement("h3", null, t('upload:focalPoint')), /*#__PURE__*/ React.createElement(Button, {
194
- buttonStyle: "none",
195
- className: `${baseClass}__reset`,
196
- onClick: centerFocalPoint
197
- }, t('general:reset')))), /*#__PURE__*/ React.createElement("span", {
198
- className: `${baseClass}__description`
199
- }, t('upload:focalPointDescription')), /*#__PURE__*/ React.createElement("div", {
200
- className: `${baseClass}__inputsWrap`
201
- }, /*#__PURE__*/ React.createElement(Input, {
202
- name: "X %",
203
- onChange: (value)=>fineTuneFocalPoint({
204
- coordinate: 'x',
205
- value
100
+ return /*#__PURE__*/ _jsxs("div", {
101
+ className: baseClass,
102
+ children: [
103
+ /*#__PURE__*/ _jsxs("div", {
104
+ className: `${baseClass}__header`,
105
+ children: [
106
+ /*#__PURE__*/ _jsxs("h2", {
107
+ title: `${t('general:editing')} ${fileName}`,
108
+ children: [
109
+ t('general:editing'),
110
+ " ",
111
+ fileName
112
+ ]
113
+ }),
114
+ /*#__PURE__*/ _jsxs("div", {
115
+ className: `${baseClass}__actions`,
116
+ children: [
117
+ /*#__PURE__*/ _jsx(Button, {
118
+ "aria-label": t('general:cancel'),
119
+ buttonStyle: "secondary",
120
+ className: `${baseClass}__cancel`,
121
+ onClick: ()=>closeModal(editDrawerSlug),
122
+ children: t('general:cancel')
123
+ }),
124
+ /*#__PURE__*/ _jsx(Button, {
125
+ "aria-label": t('general:applyChanges'),
126
+ buttonStyle: "primary",
127
+ className: `${baseClass}__save`,
128
+ onClick: saveEdits,
129
+ children: t('general:applyChanges')
130
+ })
131
+ ]
132
+ })
133
+ ]
206
134
  }),
207
- value: pointPosition.x.toFixed(0)
208
- }), /*#__PURE__*/ React.createElement(Input, {
209
- name: "Y %",
210
- onChange: (value)=>fineTuneFocalPoint({
211
- coordinate: 'y',
212
- value
213
- }),
214
- value: pointPosition.y.toFixed(0)
215
- }))))));
135
+ /*#__PURE__*/ _jsxs("div", {
136
+ className: `${baseClass}__toolWrap`,
137
+ children: [
138
+ /*#__PURE__*/ _jsx("div", {
139
+ className: `${baseClass}__crop`,
140
+ children: /*#__PURE__*/ _jsxs("div", {
141
+ className: `${baseClass}__focal-wrapper`,
142
+ ref: focalWrapRef,
143
+ style: {
144
+ aspectRatio: `${originalWidth / originalHeight}`
145
+ },
146
+ children: [
147
+ showCrop ? /*#__PURE__*/ _jsx(ReactCrop, {
148
+ className: `${baseClass}__reactCrop`,
149
+ crop: crop,
150
+ onChange: (_, c)=>setCrop(c),
151
+ onComplete: ()=>setCheckBounds(true),
152
+ renderSelectionAddon: ()=>{
153
+ return /*#__PURE__*/ _jsx("div", {
154
+ className: `${baseClass}__crop-window`,
155
+ ref: cropRef
156
+ });
157
+ },
158
+ children: /*#__PURE__*/ _jsx("img", {
159
+ alt: t('upload:setCropArea'),
160
+ onLoad: (e)=>{
161
+ setOriginalHeight(e.currentTarget.naturalHeight);
162
+ setOriginalWidth(e.currentTarget.naturalWidth);
163
+ },
164
+ ref: imageRef,
165
+ src: fileSrcToUse
166
+ })
167
+ }) : /*#__PURE__*/ _jsx("img", {
168
+ alt: t('upload:setFocalPoint'),
169
+ onLoad: (e)=>{
170
+ setOriginalHeight(e.currentTarget.naturalHeight);
171
+ setOriginalWidth(e.currentTarget.naturalWidth);
172
+ },
173
+ ref: imageRef,
174
+ src: fileSrcToUse
175
+ }),
176
+ showFocalPoint && /*#__PURE__*/ _jsx(DraggableElement, {
177
+ boundsRef: showCrop ? cropRef : imageRef,
178
+ checkBounds: showCrop ? checkBounds : false,
179
+ className: `${baseClass}__focalPoint`,
180
+ containerRef: focalWrapRef,
181
+ initialPosition: focalPosition,
182
+ onDragEnd: onDragEnd,
183
+ setCheckBounds: showCrop ? setCheckBounds : false,
184
+ children: /*#__PURE__*/ _jsx(Plus, {})
185
+ })
186
+ ]
187
+ })
188
+ }),
189
+ (showCrop || showFocalPoint) && /*#__PURE__*/ _jsxs("div", {
190
+ className: `${baseClass}__sidebar`,
191
+ children: [
192
+ showCrop && /*#__PURE__*/ _jsxs("div", {
193
+ className: `${baseClass}__groupWrap`,
194
+ children: [
195
+ /*#__PURE__*/ _jsx("div", {
196
+ children: /*#__PURE__*/ _jsxs("div", {
197
+ className: `${baseClass}__titleWrap`,
198
+ children: [
199
+ /*#__PURE__*/ _jsx("h3", {
200
+ children: t('upload:crop')
201
+ }),
202
+ /*#__PURE__*/ _jsx(Button, {
203
+ buttonStyle: "none",
204
+ className: `${baseClass}__reset`,
205
+ onClick: ()=>setCrop({
206
+ height: 100,
207
+ unit: '%',
208
+ width: 100,
209
+ x: 0,
210
+ y: 0
211
+ }),
212
+ children: t('general:reset')
213
+ })
214
+ ]
215
+ })
216
+ }),
217
+ /*#__PURE__*/ _jsx("span", {
218
+ className: `${baseClass}__description`,
219
+ children: t('upload:cropToolDescription')
220
+ }),
221
+ /*#__PURE__*/ _jsxs("div", {
222
+ className: `${baseClass}__inputsWrap`,
223
+ children: [
224
+ /*#__PURE__*/ _jsx(Input, {
225
+ name: `${t('upload:width')} (px)`,
226
+ onChange: (value)=>fineTuneCrop({
227
+ dimension: 'width',
228
+ value
229
+ }),
230
+ value: (crop.width / 100 * originalWidth).toFixed(0)
231
+ }),
232
+ /*#__PURE__*/ _jsx(Input, {
233
+ name: `${t('upload:height')} (px)`,
234
+ onChange: (value)=>fineTuneCrop({
235
+ dimension: 'height',
236
+ value
237
+ }),
238
+ value: (crop.height / 100 * originalHeight).toFixed(0)
239
+ })
240
+ ]
241
+ })
242
+ ]
243
+ }),
244
+ showFocalPoint && /*#__PURE__*/ _jsxs("div", {
245
+ className: `${baseClass}__groupWrap`,
246
+ children: [
247
+ /*#__PURE__*/ _jsx("div", {
248
+ children: /*#__PURE__*/ _jsxs("div", {
249
+ className: `${baseClass}__titleWrap`,
250
+ children: [
251
+ /*#__PURE__*/ _jsx("h3", {
252
+ children: t('upload:focalPoint')
253
+ }),
254
+ /*#__PURE__*/ _jsx(Button, {
255
+ buttonStyle: "none",
256
+ className: `${baseClass}__reset`,
257
+ onClick: centerFocalPoint,
258
+ children: t('general:reset')
259
+ })
260
+ ]
261
+ })
262
+ }),
263
+ /*#__PURE__*/ _jsx("span", {
264
+ className: `${baseClass}__description`,
265
+ children: t('upload:focalPointDescription')
266
+ }),
267
+ /*#__PURE__*/ _jsxs("div", {
268
+ className: `${baseClass}__inputsWrap`,
269
+ children: [
270
+ /*#__PURE__*/ _jsx(Input, {
271
+ name: "X %",
272
+ onChange: (value)=>fineTuneFocalPosition({
273
+ coordinate: 'x',
274
+ value
275
+ }),
276
+ value: focalPosition.x.toFixed(0)
277
+ }),
278
+ /*#__PURE__*/ _jsx(Input, {
279
+ name: "Y %",
280
+ onChange: (value)=>fineTuneFocalPosition({
281
+ coordinate: 'y',
282
+ value
283
+ }),
284
+ value: focalPosition.y.toFixed(0)
285
+ })
286
+ ]
287
+ })
288
+ ]
289
+ })
290
+ ]
291
+ })
292
+ ]
293
+ })
294
+ ]
295
+ });
216
296
  };
217
297
  const DraggableElement = ({ boundsRef, checkBounds, children, className, containerRef, initialPosition = {
218
298
  x: 50,
@@ -223,7 +303,7 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
223
303
  y: initialPosition.y
224
304
  });
225
305
  const [isDragging, setIsDragging] = useState(false);
226
- const dragRef = useRef();
306
+ const dragRef = useRef(undefined);
227
307
  const getCoordinates = React.useCallback((mouseXArg, mouseYArg, recenter)=>{
228
308
  const containerRect = containerRef.current.getBoundingClientRect();
229
309
  const boundsRect = boundsRef.current.getBoundingClientRect();
@@ -310,26 +390,31 @@ const DraggableElement = ({ boundsRef, checkBounds, children, className, contain
310
390
  initialPosition.x,
311
391
  initialPosition.y
312
392
  ]);
313
- return /*#__PURE__*/ React.createElement("div", {
393
+ return /*#__PURE__*/ _jsxs("div", {
314
394
  className: [
315
395
  `${baseClass}__draggable-container`,
316
396
  isDragging && `${baseClass}__draggable-container--dragging`
317
397
  ].filter(Boolean).join(' '),
318
- onMouseMove: handleMouseMove
319
- }, /*#__PURE__*/ React.createElement("button", {
320
- className: [
321
- `${baseClass}__draggable`,
322
- className
323
- ].filter(Boolean).join(' '),
324
- onMouseDown: handleMouseDown,
325
- onMouseUp: onDrop,
326
- ref: dragRef,
327
- style: {
328
- left: `${position.x}%`,
329
- top: `${position.y}%`
330
- },
331
- type: "button"
332
- }, children), /*#__PURE__*/ React.createElement("div", null));
398
+ onMouseMove: handleMouseMove,
399
+ children: [
400
+ /*#__PURE__*/ _jsx("button", {
401
+ className: [
402
+ `${baseClass}__draggable`,
403
+ className
404
+ ].filter(Boolean).join(' '),
405
+ onMouseDown: handleMouseDown,
406
+ onMouseUp: onDrop,
407
+ ref: dragRef,
408
+ style: {
409
+ left: `${position.x}%`,
410
+ top: `${position.y}%`
411
+ },
412
+ type: "button",
413
+ children: children
414
+ }),
415
+ /*#__PURE__*/ _jsx("div", {})
416
+ ]
417
+ });
333
418
  };
334
419
 
335
420
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/EditUpload/index.tsx"],"sourcesContent":["'use client'\nimport type { Data } from 'payload/types'\nimport type CropType from 'react-image-crop'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport React, { 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 { Plus } 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\nconst Input: React.FC<{ name: string; onChange: (value: string) => void; value: string }> = ({\n name,\n onChange,\n value,\n}) => (\n <div className={`${baseClass}__input`}>\n {name}\n <input name={name} onChange={(e) => onChange(e.target.value)} type=\"number\" value={value} />\n </div>\n)\n\ntype FocalPosition = {\n x: number\n y: number\n}\n\nexport type EditUploadProps = {\n doc?: Data\n fileName: string\n fileSrc: string\n imageCacheTag?: string\n initialCrop?: CropType\n initialFocalPoint?: FocalPosition\n onSave?: ({ crop, pointPosition }: { crop: CropType; pointPosition: FocalPosition }) => void\n showCrop?: boolean\n showFocalPoint?: boolean\n}\n\nconst defaultCrop: CropType = {\n height: 100,\n unit: '%',\n width: 100,\n x: 0,\n y: 0,\n}\n\nconst defaultPointPosition: FocalPosition = {\n x: 50,\n y: 50,\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 { useModal } = facelessUIImport\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const [crop, setCrop] = useState<CropType>(() => ({\n ...defaultCrop,\n ...initialCrop,\n }))\n\n const [pointPosition, setPointPosition] = useState<FocalPosition>(() => ({\n ...defaultPointPosition,\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>()\n const imageRef = useRef<HTMLImageElement | undefined>()\n const cropRef = useRef<HTMLDivElement | undefined>()\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 fineTuneFocalPoint = ({ coordinate, value }: { coordinate: 'x' | 'y'; value: string }) => {\n const intValue = parseInt(value)\n if (intValue >= 0 && intValue <= 100) {\n setPointPosition((prevPosition) => ({ ...prevPosition, [coordinate]: intValue }))\n }\n }\n\n const saveEdits = () => {\n if (typeof onSave === 'function')\n onSave({\n crop,\n pointPosition,\n })\n closeModal(editDrawerSlug)\n }\n\n const onDragEnd = React.useCallback(({ x, y }) => {\n setPointPosition({ 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 setPointPosition({ 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 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={(e) => {\n setOriginalHeight(e.currentTarget.naturalHeight)\n setOriginalWidth(e.currentTarget.naturalWidth)\n }}\n ref={imageRef}\n src={fileSrcToUse}\n />\n </ReactCrop>\n ) : (\n <img\n alt={t('upload:setFocalPoint')}\n onLoad={(e) => {\n setOriginalHeight(e.currentTarget.naturalHeight)\n setOriginalWidth(e.currentTarget.naturalWidth)\n }}\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={pointPosition}\n onDragEnd={onDragEnd}\n setCheckBounds={showCrop ? setCheckBounds : false}\n >\n <Plus />\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 value={((crop.width / 100) * originalWidth).toFixed(0)}\n />\n <Input\n name={`${t('upload:height')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'height', value })}\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) => fineTuneFocalPoint({ coordinate: 'x', value })}\n value={pointPosition.x.toFixed(0)}\n />\n <Input\n name=\"Y %\"\n onChange={(value) => fineTuneFocalPoint({ coordinate: 'y', value })}\n value={pointPosition.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>()\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":["facelessUIImport","React","useRef","useState","ReactCrop","editDrawerSlug","Plus","useTranslation","Button","baseClass","Input","name","onChange","value","div","className","input","e","target","type","defaultCrop","height","unit","width","x","y","defaultPointPosition","EditUpload","fileName","fileSrc","imageCacheTag","initialCrop","initialFocalPoint","onSave","showCrop","showFocalPoint","useModal","closeModal","t","crop","setCrop","pointPosition","setPointPosition","checkBounds","setCheckBounds","originalHeight","setOriginalHeight","originalWidth","setOriginalWidth","focalWrapRef","imageRef","cropRef","fineTuneCrop","dimension","intValue","parseInt","percentage","fineTuneFocalPoint","coordinate","prevPosition","saveEdits","onDragEnd","useCallback","centerFocalPoint","containerRect","current","getBoundingClientRect","boundsRect","xCenter","left","yCenter","top","fileSrcToUse","h2","title","aria-label","buttonStyle","onClick","ref","style","aspectRatio","_","c","onComplete","renderSelectionAddon","img","alt","onLoad","currentTarget","naturalHeight","naturalWidth","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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/EditUpload/index.tsx"],"sourcesContent":["'use client'\nimport type { Data } from 'payload/types'\nimport type CropType from 'react-image-crop'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport React, { 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 { Plus } 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\nconst Input: React.FC<{ name: string; onChange: (value: string) => void; value: string }> = ({\n name,\n onChange,\n value,\n}) => (\n <div className={`${baseClass}__input`}>\n {name}\n <input name={name} onChange={(e) => onChange(e.target.value)} type=\"number\" value={value} />\n </div>\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 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 { useModal } = facelessUIImport\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 console.log({ initialFocalPoint })\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 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,\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 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={(e) => {\n setOriginalHeight(e.currentTarget.naturalHeight)\n setOriginalWidth(e.currentTarget.naturalWidth)\n }}\n ref={imageRef}\n src={fileSrcToUse}\n />\n </ReactCrop>\n ) : (\n <img\n alt={t('upload:setFocalPoint')}\n onLoad={(e) => {\n setOriginalHeight(e.currentTarget.naturalHeight)\n setOriginalWidth(e.currentTarget.naturalWidth)\n }}\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 <Plus />\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 value={((crop.width / 100) * originalWidth).toFixed(0)}\n />\n <Input\n name={`${t('upload:height')} (px)`}\n onChange={(value) => fineTuneCrop({ dimension: 'height', value })}\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":["facelessUIImport","React","useRef","useState","ReactCrop","editDrawerSlug","Plus","useTranslation","Button","baseClass","Input","name","onChange","value","div","className","input","e","target","type","defaultCrop","height","unit","width","x","y","EditUpload","fileName","fileSrc","imageCacheTag","initialCrop","initialFocalPoint","onSave","showCrop","showFocalPoint","useModal","closeModal","t","crop","setCrop","defaultFocalPosition","console","log","focalPosition","setFocalPosition","checkBounds","setCheckBounds","originalHeight","setOriginalHeight","originalWidth","setOriginalWidth","focalWrapRef","undefined","imageRef","cropRef","fineTuneCrop","dimension","intValue","parseInt","percentage","fineTuneFocalPosition","coordinate","prevPosition","saveEdits","onDragEnd","useCallback","centerFocalPoint","containerRect","current","getBoundingClientRect","boundsRect","xCenter","left","yCenter","top","fileSrcToUse","h2","title","aria-label","buttonStyle","onClick","ref","style","aspectRatio","_","c","onComplete","renderSelectionAddon","img","alt","onLoad","currentTarget","naturalHeight","naturalWidth","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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}