@payloadcms/ui 3.0.0-canary.ce278e4 → 3.0.0-canary.d6053cd

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 (728) hide show
  1. package/dist/@types/assets.d.js.map +1 -1
  2. package/dist/assets/index.js.map +1 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +46 -27
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/Banner/index.js.map +1 -1
  9. package/dist/elements/Banner/index.scss +4 -4
  10. package/dist/elements/Button/index.js.map +1 -1
  11. package/dist/elements/Button/types.js.map +1 -1
  12. package/dist/elements/Card/index.js.map +1 -1
  13. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  14. package/dist/elements/CodeEditor/index.js.map +1 -1
  15. package/dist/elements/CodeEditor/types.d.ts +2 -2
  16. package/dist/elements/CodeEditor/types.d.ts.map +1 -1
  17. package/dist/elements/CodeEditor/types.js.map +1 -1
  18. package/dist/elements/Collapsible/index.js.map +1 -1
  19. package/dist/elements/Collapsible/index.scss +13 -47
  20. package/dist/elements/Collapsible/provider.js.map +1 -1
  21. package/dist/elements/ColumnSelector/index.js.map +1 -1
  22. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  23. package/dist/elements/DatePicker/DatePicker.d.ts +2 -2
  24. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  25. package/dist/elements/DatePicker/DatePicker.js +2 -2
  26. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  27. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  28. package/dist/elements/DatePicker/index.js.map +1 -1
  29. package/dist/elements/DatePicker/index.scss +3 -1
  30. package/dist/elements/DatePicker/types.d.ts +2 -2
  31. package/dist/elements/DatePicker/types.d.ts.map +1 -1
  32. package/dist/elements/DatePicker/types.js.map +1 -1
  33. package/dist/elements/DeleteDocument/index.js.map +1 -1
  34. package/dist/elements/DeleteDocument/index.scss +1 -0
  35. package/dist/elements/DeleteMany/index.js.map +1 -1
  36. package/dist/elements/DeleteMany/index.scss +1 -0
  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 +0 -6
  40. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  41. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  42. package/dist/elements/DocumentDrawer/types.d.ts +4 -4
  43. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  44. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  45. package/dist/elements/DocumentFields/index.js.map +1 -1
  46. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts +2 -2
  47. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  48. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  49. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +4 -4
  50. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  51. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  52. package/dist/elements/DraggableSortable/index.js.map +1 -1
  53. package/dist/elements/DraggableSortable/types.js.map +1 -1
  54. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  55. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  56. package/dist/elements/Drawer/index.js.map +1 -1
  57. package/dist/elements/Drawer/types.d.ts +2 -2
  58. package/dist/elements/Drawer/types.d.ts.map +1 -1
  59. package/dist/elements/Drawer/types.js.map +1 -1
  60. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  61. package/dist/elements/Dropzone/index.d.ts +1 -0
  62. package/dist/elements/Dropzone/index.d.ts.map +1 -1
  63. package/dist/elements/Dropzone/index.js +8 -1
  64. package/dist/elements/Dropzone/index.js.map +1 -1
  65. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  66. package/dist/elements/EditMany/index.js.map +1 -1
  67. package/dist/elements/EditUpload/index.d.ts +3 -6
  68. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  69. package/dist/elements/EditUpload/index.js +33 -21
  70. package/dist/elements/EditUpload/index.js.map +1 -1
  71. package/dist/elements/ErrorPill/index.js.map +1 -1
  72. package/dist/elements/ErrorPill/index.scss +2 -14
  73. package/dist/elements/FieldSelect/index.d.ts +7 -2
  74. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  75. package/dist/elements/FieldSelect/index.js +1 -1
  76. package/dist/elements/FieldSelect/index.js.map +1 -1
  77. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  78. package/dist/elements/FileDetails/index.d.ts +4 -3
  79. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  80. package/dist/elements/FileDetails/index.js +6 -5
  81. package/dist/elements/FileDetails/index.js.map +1 -1
  82. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  83. package/dist/elements/GenerateConfirmation/index.scss +1 -0
  84. package/dist/elements/Gutter/index.js.map +1 -1
  85. package/dist/elements/Hamburger/index.js.map +1 -1
  86. package/dist/elements/HydrateClientUser/index.d.ts +2 -3
  87. package/dist/elements/HydrateClientUser/index.d.ts.map +1 -1
  88. package/dist/elements/HydrateClientUser/index.js.map +1 -1
  89. package/dist/elements/IDLabel/index.js.map +1 -1
  90. package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
  91. package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
  92. package/dist/elements/ListControls/index.d.ts.map +1 -1
  93. package/dist/elements/ListControls/index.js +40 -4
  94. package/dist/elements/ListControls/index.js.map +1 -1
  95. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  96. package/dist/elements/ListDrawer/index.js.map +1 -1
  97. package/dist/elements/ListDrawer/types.d.ts +2 -2
  98. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  99. package/dist/elements/ListDrawer/types.js.map +1 -1
  100. package/dist/elements/ListSelection/index.js.map +1 -1
  101. package/dist/elements/Loading/index.js.map +1 -1
  102. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  103. package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
  104. package/dist/elements/LoadingOverlay/types.js.map +1 -1
  105. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  106. package/dist/elements/Localizer/index.d.ts.map +1 -1
  107. package/dist/elements/Localizer/index.js +6 -13
  108. package/dist/elements/Localizer/index.js.map +1 -1
  109. package/dist/elements/Logout/index.d.ts.map +1 -1
  110. package/dist/elements/Logout/index.js +2 -1
  111. package/dist/elements/Logout/index.js.map +1 -1
  112. package/dist/elements/Modal/index.js.map +1 -1
  113. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  114. package/dist/elements/Nav/context.js.map +1 -1
  115. package/dist/elements/NavGroup/index.js.map +1 -1
  116. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  117. package/dist/elements/Pagination/Page/index.js.map +1 -1
  118. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  119. package/dist/elements/Pagination/index.js.map +1 -1
  120. package/dist/elements/PerPage/index.js.map +1 -1
  121. package/dist/elements/Pill/index.d.ts +2 -2
  122. package/dist/elements/Pill/index.d.ts.map +1 -1
  123. package/dist/elements/Pill/index.js.map +1 -1
  124. package/dist/elements/Pill/index.scss +9 -21
  125. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  126. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  127. package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
  128. package/dist/elements/Popup/index.js.map +1 -1
  129. package/dist/elements/PreviewButton/index.js.map +1 -1
  130. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  131. package/dist/elements/PreviewSizes/index.d.ts +4 -4
  132. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  133. package/dist/elements/PreviewSizes/index.js.map +1 -1
  134. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  135. package/dist/elements/PublishButton/index.js +16 -0
  136. package/dist/elements/PublishButton/index.js.map +1 -1
  137. package/dist/elements/PublishMany/index.js.map +1 -1
  138. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  139. package/dist/elements/ReactSelect/Control/index.js +0 -1
  140. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  141. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -2
  142. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  143. package/dist/elements/ReactSelect/DropdownIndicator/index.js +1 -1
  144. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  145. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  146. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  147. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  148. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts +2 -2
  149. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  150. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  151. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  152. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  153. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  154. package/dist/elements/ReactSelect/index.js +0 -1
  155. package/dist/elements/ReactSelect/index.js.map +1 -1
  156. package/dist/elements/ReactSelect/index.scss +9 -2
  157. package/dist/elements/ReactSelect/types.d.ts +1 -2
  158. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  159. package/dist/elements/ReactSelect/types.js.map +1 -1
  160. package/dist/elements/RenderCustomClientComponent/index.js.map +1 -1
  161. package/dist/elements/RenderCustomComponent/index.js.map +1 -1
  162. package/dist/elements/RenderTitle/index.js.map +1 -1
  163. package/dist/elements/SaveButton/index.js.map +1 -1
  164. package/dist/elements/SaveDraftButton/index.d.ts +1 -0
  165. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  166. package/dist/elements/SaveDraftButton/index.js +1 -1
  167. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  168. package/dist/elements/SearchFilter/index.d.ts +5 -3
  169. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  170. package/dist/elements/SearchFilter/index.js +14 -53
  171. package/dist/elements/SearchFilter/index.js.map +1 -1
  172. package/dist/elements/SelectAll/index.js.map +1 -1
  173. package/dist/elements/SelectRow/index.js.map +1 -1
  174. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  175. package/dist/elements/SortColumn/index.js.map +1 -1
  176. package/dist/elements/SortComplex/index.js +2 -2
  177. package/dist/elements/SortComplex/index.js.map +1 -1
  178. package/dist/elements/Status/index.js.map +1 -1
  179. package/dist/elements/Status/index.scss +1 -0
  180. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  181. package/dist/elements/StepNav/SetStepNav.d.ts +0 -1
  182. package/dist/elements/StepNav/SetStepNav.d.ts.map +1 -1
  183. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  184. package/dist/elements/StepNav/context.js.map +1 -1
  185. package/dist/elements/StepNav/index.d.ts.map +1 -1
  186. package/dist/elements/StepNav/index.js +1 -1
  187. package/dist/elements/StepNav/index.js.map +1 -1
  188. package/dist/elements/StepNav/types.js.map +1 -1
  189. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  190. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  191. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  192. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  193. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  194. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  195. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  196. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  197. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +0 -1
  198. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  199. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  200. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  201. package/dist/elements/Table/DefaultCell/fields/index.d.ts +4 -5
  202. package/dist/elements/Table/DefaultCell/fields/index.d.ts.map +1 -1
  203. package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
  204. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  205. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  206. package/dist/elements/Table/RelationshipProvider/index.js +11 -10
  207. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  208. package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
  209. package/dist/elements/Table/TableCellProvider/index.js.map +1 -1
  210. package/dist/elements/Table/index.js.map +1 -1
  211. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  212. package/dist/elements/TableColumns/buildColumnState.js +0 -1
  213. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  214. package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
  215. package/dist/elements/TableColumns/filterFields.js.map +1 -1
  216. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
  217. package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
  218. package/dist/elements/TableColumns/index.js.map +1 -1
  219. package/dist/elements/Thumbnail/index.js.map +1 -1
  220. package/dist/elements/ThumbnailCard/index.d.ts +2 -2
  221. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  222. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  223. package/dist/elements/Tooltip/index.js.map +1 -1
  224. package/dist/elements/Translation/index.js.map +1 -1
  225. package/dist/elements/UnpublishMany/index.js.map +1 -1
  226. package/dist/elements/Upload/index.d.ts +9 -5
  227. package/dist/elements/Upload/index.d.ts.map +1 -1
  228. package/dist/elements/Upload/index.js +154 -70
  229. package/dist/elements/Upload/index.js.map +1 -1
  230. package/dist/elements/Upload/index.scss +6 -3
  231. package/dist/elements/ViewDescription/index.js.map +1 -1
  232. package/dist/elements/ViewDescription/types.js.map +1 -1
  233. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  234. package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
  235. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  236. package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
  237. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  238. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +8 -8
  239. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  240. package/dist/elements/WhereBuilder/Condition/Relationship/index.scss +2 -2
  241. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
  242. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  243. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  244. package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
  245. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  246. package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
  247. package/dist/elements/WhereBuilder/Condition/index.js +1 -1
  248. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  249. package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
  250. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  251. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  252. package/dist/elements/WhereBuilder/index.js +12 -6
  253. package/dist/elements/WhereBuilder/index.js.map +1 -1
  254. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +13 -2
  255. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  256. package/dist/elements/WhereBuilder/reduceFieldMap.js +80 -16
  257. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  258. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +1 -1
  259. package/dist/elements/WhereBuilder/types.d.ts +2 -0
  260. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  261. package/dist/elements/WhereBuilder/types.js.map +1 -1
  262. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +1 -1
  263. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -1
  264. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  265. package/dist/elements/WindowInfo/index.js.map +1 -1
  266. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  267. package/dist/elements/withMergedProps/index.js +8 -2
  268. package/dist/elements/withMergedProps/index.js.map +1 -1
  269. package/dist/exports/client/{CodeEditor-LQX4VBTA.js → CodeEditor-OI35YO7H.js} +14 -2
  270. package/dist/exports/client/{CodeEditor-LQX4VBTA.js.map → CodeEditor-OI35YO7H.js.map} +3 -2
  271. package/dist/exports/client/DatePicker-5IFHNQHA.js +14 -0
  272. package/dist/exports/client/{chunk-S57FL4TE.js.map → DatePicker-5IFHNQHA.js.map} +1 -0
  273. package/dist/exports/client/{chunk-S57FL4TE.js → chunk-5LKBKI4T.js} +13 -1
  274. package/dist/exports/client/chunk-5LKBKI4T.js.map +8 -0
  275. package/dist/exports/client/{chunk-TLG7P5PN.js → chunk-QJ5EJH4V.js} +13 -1
  276. package/dist/exports/client/{chunk-TLG7P5PN.js.map → chunk-QJ5EJH4V.js.map} +2 -1
  277. package/dist/exports/client/chunk-WDFUZ6GL.js +30 -0
  278. package/dist/exports/client/chunk-WDFUZ6GL.js.map +8 -0
  279. package/dist/exports/client/index.d.ts +36 -26
  280. package/dist/exports/client/index.d.ts.map +1 -1
  281. package/dist/exports/client/index.js +31 -25
  282. package/dist/exports/client/index.js.map +5 -4
  283. package/dist/exports/shared/index.d.ts +2 -2
  284. package/dist/exports/shared/index.d.ts.map +1 -1
  285. package/dist/exports/shared/index.js +2 -12
  286. package/dist/exports/shared/index.js.map +4 -4
  287. package/dist/fields/Array/ArrayRow.d.ts +2 -2
  288. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  289. package/dist/fields/Array/ArrayRow.js.map +1 -1
  290. package/dist/fields/Array/index.d.ts +3 -4
  291. package/dist/fields/Array/index.d.ts.map +1 -1
  292. package/dist/fields/Array/index.js +2 -3
  293. package/dist/fields/Array/index.js.map +1 -1
  294. package/dist/fields/Blocks/BlockRow.d.ts +2 -2
  295. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  296. package/dist/fields/Blocks/BlockRow.js +5 -1
  297. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  298. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
  299. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  300. package/dist/fields/Blocks/RowActions.js.map +1 -1
  301. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  302. package/dist/fields/Blocks/index.d.ts +4 -5
  303. package/dist/fields/Blocks/index.d.ts.map +1 -1
  304. package/dist/fields/Blocks/index.js +5 -5
  305. package/dist/fields/Blocks/index.js.map +1 -1
  306. package/dist/fields/Checkbox/Input.js.map +1 -1
  307. package/dist/fields/Checkbox/index.d.ts +1 -1
  308. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  309. package/dist/fields/Checkbox/index.js +4 -3
  310. package/dist/fields/Checkbox/index.js.map +1 -1
  311. package/dist/fields/Checkbox/index.scss +2 -1
  312. package/dist/fields/Checkbox/types.d.ts +2 -2
  313. package/dist/fields/Checkbox/types.d.ts.map +1 -1
  314. package/dist/fields/Checkbox/types.js.map +1 -1
  315. package/dist/fields/Code/index.d.ts +3 -3
  316. package/dist/fields/Code/index.d.ts.map +1 -1
  317. package/dist/fields/Code/index.js +3 -3
  318. package/dist/fields/Code/index.js.map +1 -1
  319. package/dist/fields/Code/index.scss +3 -21
  320. package/dist/fields/Collapsible/index.d.ts +3 -5
  321. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  322. package/dist/fields/Collapsible/index.js +2 -2
  323. package/dist/fields/Collapsible/index.js.map +1 -1
  324. package/dist/fields/Collapsible/index.scss +0 -4
  325. package/dist/fields/ConfirmPassword/index.d.ts +1 -1
  326. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  327. package/dist/fields/ConfirmPassword/index.js +1 -1
  328. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  329. package/dist/fields/DateTime/index.d.ts +3 -3
  330. package/dist/fields/DateTime/index.d.ts.map +1 -1
  331. package/dist/fields/DateTime/index.js +3 -3
  332. package/dist/fields/DateTime/index.js.map +1 -1
  333. package/dist/fields/Email/index.d.ts +3 -3
  334. package/dist/fields/Email/index.d.ts.map +1 -1
  335. package/dist/fields/Email/index.js +2 -2
  336. package/dist/fields/Email/index.js.map +1 -1
  337. package/dist/fields/FieldDescription/index.js.map +1 -1
  338. package/dist/fields/FieldError/index.js.map +1 -1
  339. package/dist/fields/FieldError/index.scss +6 -5
  340. package/dist/fields/FieldLabel/index.js.map +1 -1
  341. package/dist/fields/Group/index.d.ts +4 -5
  342. package/dist/fields/Group/index.d.ts.map +1 -1
  343. package/dist/fields/Group/index.js +2 -2
  344. package/dist/fields/Group/index.js.map +1 -1
  345. package/dist/fields/Group/provider.js.map +1 -1
  346. package/dist/fields/{HiddenInput → Hidden}/index.d.ts +3 -3
  347. package/dist/fields/Hidden/index.d.ts.map +1 -0
  348. package/dist/fields/{HiddenInput → Hidden}/index.js +2 -2
  349. package/dist/fields/Hidden/index.js.map +1 -0
  350. package/dist/fields/JSON/index.d.ts +2 -2
  351. package/dist/fields/JSON/index.d.ts.map +1 -1
  352. package/dist/fields/JSON/index.js +2 -7
  353. package/dist/fields/JSON/index.js.map +1 -1
  354. package/dist/fields/JSON/index.scss +6 -25
  355. package/dist/fields/Number/index.d.ts +2 -2
  356. package/dist/fields/Number/index.d.ts.map +1 -1
  357. package/dist/fields/Number/index.js +3 -5
  358. package/dist/fields/Number/index.js.map +1 -1
  359. package/dist/fields/Password/index.d.ts +3 -3
  360. package/dist/fields/Password/index.d.ts.map +1 -1
  361. package/dist/fields/Password/index.js +2 -2
  362. package/dist/fields/Password/index.js.map +1 -1
  363. package/dist/fields/Point/index.d.ts +4 -3
  364. package/dist/fields/Point/index.d.ts.map +1 -1
  365. package/dist/fields/Point/index.js +8 -8
  366. package/dist/fields/Point/index.js.map +1 -1
  367. package/dist/fields/Point/index.scss +4 -0
  368. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  369. package/dist/fields/RadioGroup/index.d.ts +3 -3
  370. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  371. package/dist/fields/RadioGroup/index.js +9 -8
  372. package/dist/fields/RadioGroup/index.js.map +1 -1
  373. package/dist/fields/RadioGroup/index.scss +7 -0
  374. package/dist/fields/Relationship/AddNew/index.js.map +1 -1
  375. package/dist/fields/Relationship/AddNew/types.js.map +1 -1
  376. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +1 -1
  377. package/dist/fields/Relationship/createRelationMap.js.map +1 -1
  378. package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
  379. package/dist/fields/Relationship/index.d.ts +1 -1
  380. package/dist/fields/Relationship/index.d.ts.map +1 -1
  381. package/dist/fields/Relationship/index.js +3 -3
  382. package/dist/fields/Relationship/index.js.map +1 -1
  383. package/dist/fields/Relationship/index.scss +2 -2
  384. package/dist/fields/Relationship/optionsReducer.js.map +1 -1
  385. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  386. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  387. package/dist/fields/Relationship/types.d.ts +2 -2
  388. package/dist/fields/Relationship/types.d.ts.map +1 -1
  389. package/dist/fields/Relationship/types.js.map +1 -1
  390. package/dist/fields/RichText/index.d.ts +3 -3
  391. package/dist/fields/RichText/index.d.ts.map +1 -1
  392. package/dist/fields/RichText/index.js +1 -1
  393. package/dist/fields/RichText/index.js.map +1 -1
  394. package/dist/fields/Row/index.d.ts +2 -1
  395. package/dist/fields/Row/index.d.ts.map +1 -1
  396. package/dist/fields/Row/index.js +2 -2
  397. package/dist/fields/Row/index.js.map +1 -1
  398. package/dist/fields/Row/provider.js.map +1 -1
  399. package/dist/fields/Row/types.d.ts +2 -2
  400. package/dist/fields/Row/types.d.ts.map +1 -1
  401. package/dist/fields/Row/types.js.map +1 -1
  402. package/dist/fields/Select/Input.d.ts +2 -2
  403. package/dist/fields/Select/Input.d.ts.map +1 -1
  404. package/dist/fields/Select/Input.js +0 -5
  405. package/dist/fields/Select/Input.js.map +1 -1
  406. package/dist/fields/Select/index.d.ts +3 -3
  407. package/dist/fields/Select/index.d.ts.map +1 -1
  408. package/dist/fields/Select/index.js +7 -5
  409. package/dist/fields/Select/index.js.map +1 -1
  410. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  411. package/dist/fields/Tabs/index.d.ts +3 -5
  412. package/dist/fields/Tabs/index.d.ts.map +1 -1
  413. package/dist/fields/Tabs/index.js +4 -4
  414. package/dist/fields/Tabs/index.js.map +1 -1
  415. package/dist/fields/Tabs/provider.js.map +1 -1
  416. package/dist/fields/Text/Input.js.map +1 -1
  417. package/dist/fields/Text/index.d.ts +1 -1
  418. package/dist/fields/Text/index.d.ts.map +1 -1
  419. package/dist/fields/Text/index.js +2 -2
  420. package/dist/fields/Text/index.js.map +1 -1
  421. package/dist/fields/Text/types.d.ts +4 -4
  422. package/dist/fields/Text/types.d.ts.map +1 -1
  423. package/dist/fields/Text/types.js.map +1 -1
  424. package/dist/fields/Textarea/Input.js.map +1 -1
  425. package/dist/fields/Textarea/index.d.ts +1 -1
  426. package/dist/fields/Textarea/index.d.ts.map +1 -1
  427. package/dist/fields/Textarea/index.js +3 -3
  428. package/dist/fields/Textarea/index.js.map +1 -1
  429. package/dist/fields/Textarea/types.d.ts +4 -4
  430. package/dist/fields/Textarea/types.d.ts.map +1 -1
  431. package/dist/fields/Textarea/types.js.map +1 -1
  432. package/dist/fields/UI/index.d.ts +1 -1
  433. package/dist/fields/UI/index.d.ts.map +1 -1
  434. package/dist/fields/UI/index.js +1 -1
  435. package/dist/fields/UI/index.js.map +1 -1
  436. package/dist/fields/Upload/Input.d.ts +3 -2
  437. package/dist/fields/Upload/Input.d.ts.map +1 -1
  438. package/dist/fields/Upload/Input.js +2 -1
  439. package/dist/fields/Upload/Input.js.map +1 -1
  440. package/dist/fields/Upload/index.d.ts +1 -1
  441. package/dist/fields/Upload/index.d.ts.map +1 -1
  442. package/dist/fields/Upload/index.js +1 -1
  443. package/dist/fields/Upload/index.js.map +1 -1
  444. package/dist/fields/Upload/types.d.ts +2 -2
  445. package/dist/fields/Upload/types.d.ts.map +1 -1
  446. package/dist/fields/Upload/types.js.map +1 -1
  447. package/dist/fields/index.js +48 -48
  448. package/dist/fields/index.js.map +1 -1
  449. package/dist/fields/shared/index.d.ts +0 -1
  450. package/dist/fields/shared/index.d.ts.map +1 -1
  451. package/dist/fields/shared/index.js.map +1 -1
  452. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  453. package/dist/forms/Form/context.d.ts +0 -1
  454. package/dist/forms/Form/context.d.ts.map +1 -1
  455. package/dist/forms/Form/context.js.map +1 -1
  456. package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
  457. package/dist/forms/Form/errorMessages.js.map +1 -1
  458. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  459. package/dist/forms/Form/fieldReducer.js +8 -5
  460. package/dist/forms/Form/fieldReducer.js.map +1 -1
  461. package/dist/forms/Form/index.d.ts.map +1 -1
  462. package/dist/forms/Form/index.js +10 -23
  463. package/dist/forms/Form/index.js.map +1 -1
  464. package/dist/forms/Form/initContextState.js.map +1 -1
  465. package/dist/forms/Form/mergeErrorPaths.js.map +1 -1
  466. package/dist/forms/Form/mergeServerFormState.js +2 -2
  467. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  468. package/dist/forms/Form/rows.js.map +1 -1
  469. package/dist/forms/Form/types.d.ts +7 -7
  470. package/dist/forms/Form/types.d.ts.map +1 -1
  471. package/dist/forms/Form/types.js.map +1 -1
  472. package/dist/forms/NullifyField/index.js +2 -2
  473. package/dist/forms/NullifyField/index.js.map +1 -1
  474. package/dist/forms/RenderFields/RenderField.js +2 -2
  475. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  476. package/dist/forms/RenderFields/index.js.map +1 -1
  477. package/dist/forms/RenderFields/index.scss +7 -4
  478. package/dist/forms/RenderFields/types.js.map +1 -1
  479. package/dist/forms/RowLabel/Context/index.d.ts +2 -2
  480. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  481. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  482. package/dist/forms/RowLabel/index.js.map +1 -1
  483. package/dist/forms/RowLabel/types.js.map +1 -1
  484. package/dist/forms/Submit/index.js.map +1 -1
  485. package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
  486. package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
  487. package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js.map +1 -1
  488. package/dist/forms/WatchChildErrors/getNestedFieldState.js.map +1 -1
  489. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  490. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +2 -2
  491. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  492. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -1
  493. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  494. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js +1 -1
  495. package/dist/forms/buildStateFromSchema/buildStateFromSchema.spec.js.map +1 -1
  496. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
  497. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
  498. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  499. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
  500. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  501. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  502. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts +2 -2
  503. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.d.ts.map +1 -1
  504. package/dist/forms/buildStateFromSchema/getFilterOptionsQuery.js.map +1 -1
  505. package/dist/forms/buildStateFromSchema/index.d.ts +4 -3
  506. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  507. package/dist/forms/buildStateFromSchema/index.js +1 -0
  508. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  509. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +2 -2
  510. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  511. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  512. package/dist/forms/useField/index.d.ts.map +1 -1
  513. package/dist/forms/useField/index.js.map +1 -1
  514. package/dist/forms/useField/types.js.map +1 -1
  515. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  516. package/dist/forms/withCondition/index.d.ts.map +1 -1
  517. package/dist/forms/withCondition/index.js.map +1 -1
  518. package/dist/graphics/Account/Default/index.js.map +1 -1
  519. package/dist/graphics/Account/Gravatar/index.d.ts.map +1 -1
  520. package/dist/graphics/Account/Gravatar/index.js +4 -4
  521. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  522. package/dist/graphics/Account/index.js.map +1 -1
  523. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  524. package/dist/graphics/ExternalLink/index.js.map +1 -1
  525. package/dist/graphics/File/index.js.map +1 -1
  526. package/dist/graphics/Icon/index.js.map +1 -1
  527. package/dist/graphics/Logo/index.js.map +1 -1
  528. package/dist/hooks/useDebounce.js.map +1 -1
  529. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  530. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  531. package/dist/hooks/useDelay.d.ts.map +1 -1
  532. package/dist/hooks/useDelay.js.map +1 -1
  533. package/dist/hooks/useDelayedRender.js.map +1 -1
  534. package/dist/hooks/useHotkey.js +1 -1
  535. package/dist/hooks/useHotkey.js.map +1 -1
  536. package/dist/hooks/useIntersect.d.ts +0 -1
  537. package/dist/hooks/useIntersect.d.ts.map +1 -1
  538. package/dist/hooks/useIntersect.js +1 -1
  539. package/dist/hooks/useIntersect.js.map +1 -1
  540. package/dist/hooks/usePayloadAPI.d.ts +0 -1
  541. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  542. package/dist/hooks/usePayloadAPI.js +2 -2
  543. package/dist/hooks/usePayloadAPI.js.map +1 -1
  544. package/dist/hooks/useResize.js.map +1 -1
  545. package/dist/hooks/useThrottledEffect.d.ts +0 -1
  546. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  547. package/dist/hooks/useThrottledEffect.js +1 -1
  548. package/dist/hooks/useThrottledEffect.js.map +1 -1
  549. package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
  550. package/dist/hooks/useUseAsTitle.js.map +1 -1
  551. package/dist/icons/Calendar/index.js.map +1 -1
  552. package/dist/icons/Check/index.js.map +1 -1
  553. package/dist/icons/Chevron/index.js.map +1 -1
  554. package/dist/icons/CloseMenu/index.js.map +1 -1
  555. package/dist/icons/CodeBlock/index.js.map +1 -1
  556. package/dist/icons/Copy/index.js.map +1 -1
  557. package/dist/icons/DragHandle/index.js.map +1 -1
  558. package/dist/icons/Edit/index.js.map +1 -1
  559. package/dist/icons/Line/index.js.map +1 -1
  560. package/dist/icons/Link/index.js.map +1 -1
  561. package/dist/icons/LogOut/index.js.map +1 -1
  562. package/dist/icons/Menu/index.js.map +1 -1
  563. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  564. package/dist/icons/More/index.js.map +1 -1
  565. package/dist/icons/Plus/index.js.map +1 -1
  566. package/dist/icons/Search/index.js.map +1 -1
  567. package/dist/icons/Swap/index.js.map +1 -1
  568. package/dist/icons/X/index.js.map +1 -1
  569. package/dist/providers/Actions/SetViewActions/index.js.map +1 -1
  570. package/dist/providers/Actions/index.js.map +1 -1
  571. package/dist/providers/Auth/index.d.ts +2 -0
  572. package/dist/providers/Auth/index.d.ts.map +1 -1
  573. package/dist/providers/Auth/index.js +3 -34
  574. package/dist/providers/Auth/index.js.map +1 -1
  575. package/dist/providers/ClientFunction/index.js.map +1 -1
  576. package/dist/providers/ComponentMap/buildComponentMap/actions.d.ts.map +1 -1
  577. package/dist/providers/ComponentMap/buildComponentMap/actions.js +3 -3
  578. package/dist/providers/ComponentMap/buildComponentMap/actions.js.map +1 -1
  579. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +1 -1
  580. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  581. package/dist/providers/ComponentMap/buildComponentMap/collections.js +17 -12
  582. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  583. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  584. package/dist/providers/ComponentMap/buildComponentMap/fields.js +4 -2
  585. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  586. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +1 -1
  587. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  588. package/dist/providers/ComponentMap/buildComponentMap/globals.js +1 -0
  589. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  590. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts +1 -1
  591. package/dist/providers/ComponentMap/buildComponentMap/index.d.ts.map +1 -1
  592. package/dist/providers/ComponentMap/buildComponentMap/index.js +2 -2
  593. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  594. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +6 -5
  595. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  596. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  597. package/dist/providers/ComponentMap/index.js.map +1 -1
  598. package/dist/providers/Config/index.js.map +1 -1
  599. package/dist/providers/DocumentEvents/index.js.map +1 -1
  600. package/dist/providers/DocumentInfo/index.d.ts +2 -2
  601. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  602. package/dist/providers/DocumentInfo/index.js +55 -17
  603. package/dist/providers/DocumentInfo/index.js.map +1 -1
  604. package/dist/providers/DocumentInfo/types.d.ts +6 -6
  605. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  606. package/dist/providers/DocumentInfo/types.js.map +1 -1
  607. package/dist/providers/EditDepth/index.js.map +1 -1
  608. package/dist/providers/EntityVisibility/index.js.map +1 -1
  609. package/dist/providers/FieldComponents/index.js.map +1 -1
  610. package/dist/providers/ListInfo/index.d.ts +2 -2
  611. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  612. package/dist/providers/ListInfo/index.js.map +1 -1
  613. package/dist/providers/ListQuery/index.d.ts +2 -2
  614. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  615. package/dist/providers/ListQuery/index.js +1 -1
  616. package/dist/providers/ListQuery/index.js.map +1 -1
  617. package/dist/providers/Locale/index.js.map +1 -1
  618. package/dist/providers/Operation/index.js.map +1 -1
  619. package/dist/providers/Params/index.js.map +1 -1
  620. package/dist/providers/Preferences/index.js +3 -3
  621. package/dist/providers/Preferences/index.js.map +1 -1
  622. package/dist/providers/Root/index.js.map +1 -1
  623. package/dist/providers/RouteCache/index.js.map +1 -1
  624. package/dist/providers/ScrollInfo/index.d.ts +0 -1
  625. package/dist/providers/ScrollInfo/index.d.ts.map +1 -1
  626. package/dist/providers/ScrollInfo/index.js.map +1 -1
  627. package/dist/providers/SearchParams/index.d.ts +1 -1
  628. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  629. package/dist/providers/SearchParams/index.js +1 -1
  630. package/dist/providers/SearchParams/index.js.map +1 -1
  631. package/dist/providers/Selection/index.js +2 -2
  632. package/dist/providers/Selection/index.js.map +1 -1
  633. package/dist/providers/Theme/index.js.map +1 -1
  634. package/dist/providers/ToastContainer/icons/Error.js +2 -2
  635. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  636. package/dist/providers/ToastContainer/icons/Info.js +2 -2
  637. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  638. package/dist/providers/ToastContainer/icons/Success.js +2 -2
  639. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  640. package/dist/providers/ToastContainer/icons/Warning.js +2 -2
  641. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  642. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  643. package/dist/providers/ToastContainer/index.js +3 -1
  644. package/dist/providers/ToastContainer/index.js.map +1 -1
  645. package/dist/providers/Translation/index.d.ts.map +1 -1
  646. package/dist/providers/Translation/index.js.map +1 -1
  647. package/dist/providers/UploadEdits/index.d.ts +12 -0
  648. package/dist/providers/UploadEdits/index.d.ts.map +1 -0
  649. package/dist/providers/UploadEdits/index.js +30 -0
  650. package/dist/providers/UploadEdits/index.js.map +1 -0
  651. package/dist/providers/WindowInfo/index.d.ts +0 -1
  652. package/dist/providers/WindowInfo/index.d.ts.map +1 -1
  653. package/dist/providers/WindowInfo/index.js.map +1 -1
  654. package/dist/scss/app.scss +2 -2
  655. package/dist/scss/colors.scss +76 -76
  656. package/dist/scss/toasts.scss +67 -44
  657. package/dist/styles.css +1 -1
  658. package/dist/utilities/api.d.ts +2 -2
  659. package/dist/utilities/api.d.ts.map +1 -1
  660. package/dist/utilities/api.js +1 -1
  661. package/dist/utilities/api.js.map +1 -1
  662. package/dist/utilities/arraysHaveSameStrings.js.map +1 -1
  663. package/dist/utilities/buildComponentMap.js.map +1 -1
  664. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  665. package/dist/utilities/buildFieldSchemaMap/index.js +2 -5
  666. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  667. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +1 -2
  668. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  669. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +7 -11
  670. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  671. package/dist/utilities/buildFieldSchemaMap/types.js.map +1 -1
  672. package/dist/utilities/buildFormState.d.ts +4 -4
  673. package/dist/utilities/buildFormState.d.ts.map +1 -1
  674. package/dist/utilities/buildFormState.js +3 -5
  675. package/dist/utilities/buildFormState.js.map +1 -1
  676. package/dist/utilities/canUseDOM.js.map +1 -1
  677. package/dist/utilities/dateLocales.js.map +1 -1
  678. package/dist/utilities/findLocaleFromCode.js.map +1 -1
  679. package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
  680. package/dist/utilities/flattenFieldMap.js.map +1 -1
  681. package/dist/utilities/formatDate.js.map +1 -1
  682. package/dist/utilities/formatDocTitle.d.ts +1 -1
  683. package/dist/utilities/formatDocTitle.d.ts.map +1 -1
  684. package/dist/utilities/formatDocTitle.js.map +1 -1
  685. package/dist/utilities/formatFields.js.map +1 -1
  686. package/dist/utilities/generateFieldID.js.map +1 -1
  687. package/dist/utilities/getFormState.d.ts +2 -2
  688. package/dist/utilities/getFormState.d.ts.map +1 -1
  689. package/dist/utilities/getFormState.js.map +1 -1
  690. package/dist/utilities/getOffsetTop.js.map +1 -1
  691. package/dist/utilities/getRequestLanguage.js.map +1 -1
  692. package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
  693. package/dist/utilities/groupNavItems.js.map +1 -1
  694. package/dist/utilities/hasSavePermission.js.map +1 -1
  695. package/dist/utilities/isEditing.js.map +1 -1
  696. package/dist/utilities/reduceFieldsToValuesWithValidation.d.ts.map +1 -1
  697. package/dist/utilities/reduceFieldsToValuesWithValidation.js +2 -5
  698. package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
  699. package/dist/utilities/scrollToID.js.map +1 -1
  700. package/dist/utilities/setsAreEqual.d.ts.map +1 -1
  701. package/dist/utilities/setsAreEqual.js.map +1 -1
  702. package/package.json +59 -78
  703. package/dist/exports/client/DatePicker-AXHBRRH5.js +0 -18
  704. package/dist/exports/client/DatePicker-AXHBRRH5.js.map +0 -7
  705. package/dist/exports/client/chunk-3YOZFV77.js +0 -2
  706. package/dist/exports/client/chunk-3YOZFV77.js.map +0 -7
  707. package/dist/fields/HiddenInput/index.d.ts.map +0 -1
  708. package/dist/fields/HiddenInput/index.js.map +0 -1
  709. package/dist/forms/Form/getDataByPath.d.ts +0 -3
  710. package/dist/forms/Form/getDataByPath.d.ts.map +0 -1
  711. package/dist/forms/Form/getDataByPath.js +0 -19
  712. package/dist/forms/Form/getDataByPath.js.map +0 -1
  713. package/dist/forms/Form/getSiblingData.d.ts +0 -3
  714. package/dist/forms/Form/getSiblingData.d.ts.map +0 -1
  715. package/dist/forms/Form/getSiblingData.js +0 -36
  716. package/dist/forms/Form/getSiblingData.js.map +0 -1
  717. package/dist/providers/FormQueryParams/index.d.ts +0 -13
  718. package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
  719. package/dist/providers/FormQueryParams/index.js +0 -53
  720. package/dist/providers/FormQueryParams/index.js.map +0 -1
  721. package/dist/providers/FormQueryParams/types.d.ts +0 -16
  722. package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
  723. package/dist/providers/FormQueryParams/types.js +0 -3
  724. package/dist/providers/FormQueryParams/types.js.map +0 -1
  725. package/dist/utilities/reduceFieldsToValues.d.ts +0 -10
  726. package/dist/utilities/reduceFieldsToValues.d.ts.map +0 -1
  727. package/dist/utilities/reduceFieldsToValues.js +0 -25
  728. package/dist/utilities/reduceFieldsToValues.js.map +0 -1
@@ -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, { 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\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 { 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 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 <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 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":["useModal","React","useRef","useState","ReactCrop","editDrawerSlug","PlusIcon","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","closeModal","t","crop","setCrop","defaultFocalPosition","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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"}
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":"AAAA;;AAIA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,SAASC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,QAAO;AAC3D,OAAOC,eAAe,mBAAkB;AACxC,OAAO,sCAAqC;AAE5C,SAASC,cAAc,QAAQ,iCAAgC;AAC/D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAQlB,MAAMC,sBAAQT,WAAoC,CAACU,OAAOC;IACxD,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGJ;IAElC,qBACE,MAACK;QAAIC,WAAW,CAAC,EAAER,UAAU,OAAO,CAAC;;YAClCI;0BACD,KAACK;gBACCL,MAAMA;gBACNC,UAAU,CAACK,IAAML,SAASK,EAAEC,MAAM,CAACL,KAAK;gBACxCH,KAAKA;gBACLS,MAAK;gBACLN,OAAOA;;;;AAIf;AAkBA,MAAMO,cAAmC;IACvCC,QAAQ;IACRC,MAAM;IACNC,OAAO;IACPC,GAAG;IACHC,GAAG;AACL;AAEA,OAAO,MAAMC,aAAwC,CAAC,EACpDC,QAAQ,EACRC,OAAO,EACPC,aAAa,EACbC,WAAW,EACXC,iBAAiB,EACjBC,MAAM,EACNC,QAAQ,EACRC,cAAc,EACf;IACC,MAAM,EAAEC,UAAU,EAAE,GAAGtC;IACvB,MAAM,EAAEuC,CAAC,EAAE,GAAG/B;IAEd,MAAM,CAACgC,MAAMC,QAAQ,GAAGrC,SAA8B,IAAO,CAAA;YAC3D,GAAGmB,WAAW;YACd,GAAIU,eAAe,CAAC,CAAC;QACvB,CAAA;IAEA,MAAMS,uBAAsC;QAC1Cf,GAAG;QACHC,GAAG;IACL;IAEA,MAAM,CAACe,eAAeC,iBAAiB,GAAGxC,SAAwB,IAAO,CAAA;YACvE,GAAGsC,oBAAoB;YACvB,GAAGR,iBAAiB;QACtB,CAAA;IAEA,MAAM,CAACW,aAAaC,eAAe,GAAG1C,SAAkB;IACxD,MAAM,CAAC2C,sBAAsBC,wBAAwB,GAAG5C,SAAiB;IACzE,MAAM,CAAC6C,qBAAqBC,uBAAuB,GAAG9C,SAAiB;IAEvE,MAAM+C,eAAehD,OAAmCiD;IACxD,MAAMC,WAAWlD,OAAqCiD;IACtD,MAAME,UAAUnD,OAAmCiD;IAEnD,MAAMG,iBAAiBpD,OAAgC;IACvD,MAAMqD,gBAAgBrD,OAAgC;IAEtD,MAAM,CAACsD,aAAaC,eAAe,GAAGtD,SAAkB;IAExD,MAAMuD,cAAc,CAACvC;QACnB,6CAA6C;QAC7C4B,wBAAwB5B,EAAEwC,aAAa,CAACC,aAAa;QACrDX,uBAAuB9B,EAAEwC,aAAa,CAACE,YAAY;QACnDJ,eAAe;IACjB;IAEA,MAAMK,eAAe,CAAC,EAAEC,SAAS,EAAEhD,KAAK,EAAoD;QAC1F,MAAMiD,WAAWC,SAASlD;QAC1B,IAAIgD,cAAc,WAAWC,YAAYhB,qBAAqB,OAAO;QACrE,IAAIe,cAAc,YAAYC,YAAYlB,sBAAsB,OAAO;QAEvE,MAAMoB,aACJ,MAAOF,CAAAA,WAAYD,CAAAA,cAAc,UAAUf,sBAAsBF,oBAAmB,CAAC;QAEvF,IAAIoB,eAAe,OAAOA,eAAe,GAAG,OAAO;QAEnD1B,QAAQ;YACN,GAAGD,IAAI;YACP,CAACwB,UAAU,EAAEG;QACf;IACF;IAEA,MAAMC,wBAAwB,CAAC,EAC7BC,UAAU,EACVrD,KAAK,EAIN;QACC,MAAMiD,WAAWC,SAASlD;QAC1B,IAAIiD,YAAY,KAAKA,YAAY,KAAK;YACpCrB,iBAAiB,CAAC0B,eAAkB,CAAA;oBAAE,GAAGA,YAAY;oBAAE,CAACD,WAAW,EAAEJ;gBAAS,CAAA;QAChF;IACF;IAEA,MAAMM,YAAY;QAChB,IAAI,OAAOpC,WAAW,YACpBA,OAAO;YACLK,MAAMA,OAAOA,OAAOY;YACpBoB,YAAY7B;YACZ8B,gBAAgBC,OAAOnB,gBAAgBoB,SAAS3D,SAAS+B;YACzD6B,eAAeF,OAAOlB,eAAemB,SAAS3D,SAASiC;QACzD;QACFX,WAAWhC;IACb;IAEA,MAAMuE,YAAY5E,MAAM6E,WAAW,CAAC,CAAC,EAAEnD,CAAC,EAAEC,CAAC,EAAE;QAC3CgB,iBAAiB;YAAEjB;YAAGC;QAAE;QACxBkB,eAAe;IACjB,GAAG,EAAE;IAEL,MAAMiC,mBAAmB;QACvB,MAAMC,gBAAgB7B,aAAawB,OAAO,CAACM,qBAAqB;QAChE,MAAMC,aAAa9C,WACfkB,QAAQqB,OAAO,CAACM,qBAAqB,KACrC5B,SAASsB,OAAO,CAACM,qBAAqB;QAC1C,MAAME,UACJ,AAAED,CAAAA,WAAWE,IAAI,GAAGJ,cAAcI,IAAI,GAAGF,WAAWxD,KAAK,GAAG,CAAA,IAAKsD,cAActD,KAAK,GAAI;QAC1F,MAAM2D,UACJ,AAAEH,CAAAA,WAAWI,GAAG,GAAGN,cAAcM,GAAG,GAAGJ,WAAW1D,MAAM,GAAG,CAAA,IAAKwD,cAAcxD,MAAM,GAAI;QAC1FoB,iBAAiB;YAAEjB,GAAGwD;YAASvD,GAAGyD;QAAQ;IAC5C;IAEA,MAAME,eAAevD,gBAAgB,CAAC,EAAED,QAAQ,CAAC,EAAEC,cAAc,CAAC,GAAGD;IAErE,qBACE,MAACd;QAAIC,WAAWR;;0BACd,MAACO;gBAAIC,WAAW,CAAC,EAAER,UAAU,QAAQ,CAAC;;kCACpC,MAAC8E;wBAAGC,OAAO,CAAC,EAAElD,EAAE,mBAAmB,CAAC,EAAET,SAAS,CAAC;;4BAC7CS,EAAE;4BAAmB;4BAAET;;;kCAE1B,MAACb;wBAAIC,WAAW,CAAC,EAAER,UAAU,SAAS,CAAC;;0CACrC,KAACD;gCACCiF,cAAYnD,EAAE;gCACdoD,aAAY;gCACZzE,WAAW,CAAC,EAAER,UAAU,QAAQ,CAAC;gCACjCkF,SAAS,IAAMtD,WAAWhC;0CAEzBiC,EAAE;;0CAEL,KAAC9B;gCACCiF,cAAYnD,EAAE;gCACdoD,aAAY;gCACZzE,WAAW,CAAC,EAAER,UAAU,MAAM,CAAC;gCAC/BmF,UAAU,CAACpC;gCACXmC,SAASrB;0CAERhC,EAAE;;;;;;0BAIT,MAACtB;gBAAIC,WAAW,CAAC,EAAER,UAAU,UAAU,CAAC;;kCACtC,KAACO;wBAAIC,WAAW,CAAC,EAAER,UAAU,MAAM,CAAC;kCAClC,cAAA,MAACO;4BACCC,WAAW,CAAC,EAAER,UAAU,eAAe,CAAC;4BACxCG,KAAKsC;4BACL2C,OAAO;gCACLC,aAAa,CAAC,EAAE9C,sBAAsBF,qBAAqB,CAAC;4BAC9D;;gCAECX,yBACC,KAAC/B;oCACCa,WAAW,CAAC,EAAER,UAAU,WAAW,CAAC;oCACpC8B,MAAMA;oCACNzB,UAAU,CAACiF,GAAGC,IAAMxD,QAAQwD;oCAC5BC,YAAY,IAAMpD,eAAe;oCACjCqD,sBAAsB;wCACpB,qBAAO,KAAClF;4CAAIC,WAAW,CAAC,EAAER,UAAU,aAAa,CAAC;4CAAEG,KAAKyC;;oCAC3D;8CAEA,cAAA,KAAC8C;wCACCC,KAAK9D,EAAE;wCACP+D,QAAQ3C;wCACR9C,KAAKwC;wCACLkD,KAAKhB;;mDAIT,KAACa;oCACCC,KAAK9D,EAAE;oCACP+D,QAAQ3C;oCACR9C,KAAKwC;oCACLkD,KAAKhB;;gCAGRlD,gCACC,KAACmE;oCACCC,WAAWrE,WAAWkB,UAAUD;oCAChCR,aAAaT,WAAWS,cAAc;oCACtC3B,WAAW,CAAC,EAAER,UAAU,YAAY,CAAC;oCACrCgG,cAAcvD;oCACdwD,iBAAiBhE;oCACjBkC,WAAWA;oCACX/B,gBAAgBV,WAAWU,iBAAiB;8CAE5C,cAAA,KAACvC;;;;;oBAKP6B,CAAAA,YAAYC,cAAa,mBACzB,MAACpB;wBAAIC,WAAW,CAAC,EAAER,UAAU,SAAS,CAAC;;4BACpC0B,0BACC,MAACnB;gCAAIC,WAAW,CAAC,EAAER,UAAU,WAAW,CAAC;;kDACvC,KAACO;kDACC,cAAA,MAACA;4CAAIC,WAAW,CAAC,EAAER,UAAU,WAAW,CAAC;;8DACvC,KAACkG;8DAAIrE,EAAE;;8DACP,KAAC9B;oDACCkF,aAAY;oDACZzE,WAAW,CAAC,EAAER,UAAU,OAAO,CAAC;oDAChCkF,SAAS,IACPnD,QAAQ;4DACNjB,QAAQ;4DACRC,MAAM;4DACNC,OAAO;4DACPC,GAAG;4DACHC,GAAG;wDACL;8DAGDW,EAAE;;;;;kDAIT,KAACsE;wCAAK3F,WAAW,CAAC,EAAER,UAAU,aAAa,CAAC;kDACzC6B,EAAE;;kDAEL,MAACtB;wCAAIC,WAAW,CAAC,EAAER,UAAU,YAAY,CAAC;;0DACxC,KAACC;gDACCG,MAAM,CAAC,EAAEyB,EAAE,gBAAgB,KAAK,CAAC;gDACjCxB,UAAU,CAACC,QAAU+C,aAAa;wDAAEC,WAAW;wDAAShD;oDAAM;gDAC9DH,KAAK2C;gDACLxC,OAAO,AAAC,CAAA,AAACwB,KAAKd,KAAK,GAAG,MAAOuB,mBAAkB,EAAG6D,OAAO,CAAC;;0DAE5D,KAACnG;gDACCG,MAAM,CAAC,EAAEyB,EAAE,iBAAiB,KAAK,CAAC;gDAClCxB,UAAU,CAACC,QAAU+C,aAAa;wDAAEC,WAAW;wDAAUhD;oDAAM;gDAC/DH,KAAK0C;gDACLvC,OAAO,AAAC,CAAA,AAACwB,KAAKhB,MAAM,GAAG,MAAOuB,oBAAmB,EAAG+D,OAAO,CAAC;;;;;;4BAMnEzE,gCACC,MAACpB;gCAAIC,WAAW,CAAC,EAAER,UAAU,WAAW,CAAC;;kDACvC,KAACO;kDACC,cAAA,MAACA;4CAAIC,WAAW,CAAC,EAAER,UAAU,WAAW,CAAC;;8DACvC,KAACkG;8DAAIrE,EAAE;;8DACP,KAAC9B;oDACCkF,aAAY;oDACZzE,WAAW,CAAC,EAAER,UAAU,OAAO,CAAC;oDAChCkF,SAASb;8DAERxC,EAAE;;;;;kDAIT,KAACsE;wCAAK3F,WAAW,CAAC,EAAER,UAAU,aAAa,CAAC;kDACzC6B,EAAE;;kDAEL,MAACtB;wCAAIC,WAAW,CAAC,EAAER,UAAU,YAAY,CAAC;;0DACxC,KAACC;gDACCG,MAAK;gDACLC,UAAU,CAACC,QAAUoD,sBAAsB;wDAAEC,YAAY;wDAAKrD;oDAAM;gDACpEA,OAAO2B,cAAchB,CAAC,CAACmF,OAAO,CAAC;;0DAEjC,KAACnG;gDACCG,MAAK;gDACLC,UAAU,CAACC,QAAUoD,sBAAsB;wDAAEC,YAAY;wDAAKrD;oDAAM;gDACpEA,OAAO2B,cAAcf,CAAC,CAACkF,OAAO,CAAC;;;;;;;;;;;;AAUnD,EAAC;AAED,MAAMN,mBAAmB,CAAC,EACxBC,SAAS,EACT5D,WAAW,EACXkE,QAAQ,EACR7F,SAAS,EACTwF,YAAY,EACZC,kBAAkB;IAAEhF,GAAG;IAAIC,GAAG;AAAG,CAAC,EAClCiD,SAAS,EACT/B,cAAc,EACf;IACC,MAAM,CAACkE,UAAUC,YAAY,GAAG7G,SAAS;QAAEuB,GAAGgF,gBAAgBhF,CAAC;QAAEC,GAAG+E,gBAAgB/E,CAAC;IAAC;IACtF,MAAM,CAACsF,YAAYC,cAAc,GAAG/G,SAAS;IAC7C,MAAMgH,UAAUjH,OAAsCiD;IAEtD,MAAMiE,iBAAiBpH,MAAM6E,WAAW,CACtC,CAACwC,WAAoBC,WAAoBC;QACvC,MAAMxC,gBAAgB0B,aAAa/B,OAAO,CAACM,qBAAqB;QAChE,MAAMC,aAAauB,UAAU9B,OAAO,CAACM,qBAAqB;QAC1D,MAAMwC,SAASH,aAAapC,WAAWE,IAAI;QAC3C,MAAMsC,SAASH,aAAarC,WAAWI,GAAG;QAE1C,MAAMqC,eAAeF,SAASvC,WAAWE,IAAI,IAAIqC,SAASvC,WAAW0C,KAAK;QAC1E,MAAMC,eAAeH,SAASxC,WAAWI,GAAG,IAAIoC,SAASxC,WAAW4C,MAAM;QAE1E,IAAInG,IAAI,AAAE8F,CAAAA,SAASzC,cAAcI,IAAI,AAAD,IAAKJ,cAActD,KAAK,GAAI;QAChE,IAAIE,IAAI,AAAE8F,CAAAA,SAAS1C,cAAcM,GAAG,AAAD,IAAKN,cAAcxD,MAAM,GAAI;QAChE,MAAM2D,UACJ,AAAED,CAAAA,WAAWE,IAAI,GAAGJ,cAAcI,IAAI,GAAGF,WAAWxD,KAAK,GAAG,CAAA,IAAKsD,cAActD,KAAK,GAAI;QAC1F,MAAM2D,UACJ,AAAEH,CAAAA,WAAWI,GAAG,GAAGN,cAAcM,GAAG,GAAGJ,WAAW1D,MAAM,GAAG,CAAA,IAAKwD,cAAcxD,MAAM,GAAI;QAC1F,IAAImG,gBAAgBE,cAAc;YAChCV,cAAc;YACd,IAAIM,SAASvC,WAAWE,IAAI,EAAE;gBAC5BzD,IAAI,AAAEuD,CAAAA,WAAWE,IAAI,GAAGJ,cAAcI,IAAI,AAAD,IAAKJ,cAActD,KAAK,GAAI;YACvE,OAAO,IAAI+F,SAASvC,WAAW0C,KAAK,EAAE;gBACpCjG,IACE,AAAEqD,CAAAA,cAActD,KAAK,GAAIsD,CAAAA,cAAc4C,KAAK,GAAG1C,WAAW0C,KAAK,AAAD,CAAC,IAC7D5C,cAActD,KAAK,GACrB;YACJ;YAEA,IAAIgG,SAASxC,WAAWI,GAAG,EAAE;gBAC3B1D,IAAI,AAAEsD,CAAAA,WAAWI,GAAG,GAAGN,cAAcM,GAAG,AAAD,IAAKN,cAAcxD,MAAM,GAAI;YACtE,OAAO,IAAIkG,SAASxC,WAAW4C,MAAM,EAAE;gBACrClG,IACE,AAAEoD,CAAAA,cAAcxD,MAAM,GAAIwD,CAAAA,cAAc8C,MAAM,GAAG5C,WAAW4C,MAAM,AAAD,CAAC,IAChE9C,cAAcxD,MAAM,GACtB;YACJ;YAEA,IAAIgG,UAAU;gBACZ7F,IAAIgG,eAAexC,UAAUxD;gBAC7BC,IAAIiG,eAAexC,UAAUzD;YAC/B;QACF;QAEA,OAAO;YAAED;YAAGC;QAAE;IAChB,GACA;QAAC6E;QAAWC;KAAa;IAG3B,MAAMqB,kBAAkB,CAACC;QACvBA,MAAMC,cAAc;QACpBd,cAAc;IAChB;IAEA,MAAMe,kBAAkB,CAACF;QACvB,IAAI,CAACd,YAAY,OAAO;QACxB,MAAM,EAAEvF,CAAC,EAAEC,CAAC,EAAE,GAAGyF,eAAeW,MAAMG,OAAO,EAAEH,MAAMI,OAAO;QAE5DnB,YAAY;YAAEtF;YAAGC;QAAE;IACrB;IAEA,MAAMyG,SAAS;QACblB,cAAc;QACdtC,UAAUmC;IACZ;IAEA/G,MAAMqI,SAAS,CAAC;QACd,IAAIpB,cAAc,CAACE,QAAQzC,OAAO,EAAE;QACpC,IAAI9B,aAAa;YACf,MAAM,EAAErB,MAAM,EAAE4D,IAAI,EAAEE,GAAG,EAAE5D,KAAK,EAAE,GAAG0F,QAAQzC,OAAO,CAACM,qBAAqB;YAC1E,MAAM,EAAEtD,CAAC,EAAEC,CAAC,EAAE,GAAGyF,eAAejC,OAAO1D,QAAQ,GAAG4D,MAAM9D,SAAS,GAAG;YACpEqD,UAAU;gBAAElD;gBAAGC;YAAE;YACjBqF,YAAY;gBAAEtF;gBAAGC;YAAE;YACnBkB,eAAe;YACf;QACF;IACF,GAAG;QAACuE;QAAgBH;QAAYrE;QAAaC;QAAgBkE,SAASrF,CAAC;QAAEqF,SAASpF,CAAC;QAAEiD;KAAU;IAE/F5E,MAAMqI,SAAS,CAAC;QACdrB,YAAY;YAAEtF,GAAGgF,gBAAgBhF,CAAC;YAAEC,GAAG+E,gBAAgB/E,CAAC;QAAC;IAC3D,GAAG;QAAC+E,gBAAgBhF,CAAC;QAAEgF,gBAAgB/E,CAAC;KAAC;IAEzC,qBACE,MAACX;QACCC,WAAW;YACT,CAAC,EAAER,UAAU,qBAAqB,CAAC;YACnCwG,cAAc,CAAC,EAAExG,UAAU,+BAA+B,CAAC;SAC5D,CACE6H,MAAM,CAACC,SACPC,IAAI,CAAC;QACRC,aAAaR;;0BAEb,KAACS;gBACCzH,WAAW;oBAAC,CAAC,EAAER,UAAU,WAAW,CAAC;oBAAEQ;iBAAU,CAACqH,MAAM,CAACC,SAASC,IAAI,CAAC;gBACvEG,aAAab;gBACbc,WAAWR;gBACXxH,KAAKuG;gBACLtB,OAAO;oBAAEV,MAAM,CAAC,EAAE4B,SAASrF,CAAC,CAAC,CAAC,CAAC;oBAAE2D,KAAK,CAAC,EAAE0B,SAASpF,CAAC,CAAC,CAAC,CAAC;gBAAC;gBACvDN,MAAK;0BAEJyF;;0BAEH,KAAC9F;;;AAGP"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ErrorPill/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'error-pill'\n\nexport type ErrorPillProps = {\n className?: string\n count: number\n i18n: I18nClient\n withMessage?: boolean\n}\n\nexport const ErrorPill: React.FC<ErrorPillProps> = (props) => {\n const { className, count, i18n, withMessage } = props\n const lessThan3Chars = !withMessage && count < 99\n\n const classes = [baseClass, lessThan3Chars && `${baseClass}--fixed-width`, className && className]\n .filter(Boolean)\n .join(' ')\n\n if (count === 0) return null\n\n return (\n <div className={classes}>\n <div className={`${baseClass}__content`}>\n <span className={`${baseClass}__count`}>{count}</span>\n {withMessage && ` ${count > 1 ? i18n.t('general:errors') : i18n.t('general:error')}`}\n </div>\n </div>\n )\n}\n"],"names":["React","baseClass","ErrorPill","props","className","count","i18n","withMessage","lessThan3Chars","classes","filter","Boolean","join","div","span","t"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AAErB,MAAMC,YAAY;AASlB,OAAO,MAAMC,YAAsC,CAACC;IAClD,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGJ;IAChD,MAAMK,iBAAiB,CAACD,eAAeF,QAAQ;IAE/C,MAAMI,UAAU;QAACR;QAAWO,kBAAkB,CAAC,EAAEP,UAAU,aAAa,CAAC;QAAEG,aAAaA;KAAU,CAC/FM,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIP,UAAU,GAAG,OAAO;IAExB,qBACE,KAACQ;QAAIT,WAAWK;kBACd,cAAA,MAACI;YAAIT,WAAW,CAAC,EAAEH,UAAU,SAAS,CAAC;;8BACrC,KAACa;oBAAKV,WAAW,CAAC,EAAEH,UAAU,OAAO,CAAC;8BAAGI;;gBACxCE,eAAe,CAAC,CAAC,EAAEF,QAAQ,IAAIC,KAAKS,CAAC,CAAC,oBAAoBT,KAAKS,CAAC,CAAC,iBAAiB,CAAC;;;;AAI5F,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ErrorPill/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\n\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'error-pill'\n\nexport type ErrorPillProps = {\n className?: string\n count: number\n i18n: I18nClient\n withMessage?: boolean\n}\n\nexport const ErrorPill: React.FC<ErrorPillProps> = (props) => {\n const { className, count, i18n, withMessage } = props\n const lessThan3Chars = !withMessage && count < 99\n\n const classes = [baseClass, lessThan3Chars && `${baseClass}--fixed-width`, className && className]\n .filter(Boolean)\n .join(' ')\n\n if (count === 0) return null\n\n return (\n <div className={classes}>\n <div className={`${baseClass}__content`}>\n <span className={`${baseClass}__count`}>{count}</span>\n {withMessage && ` ${count > 1 ? i18n.t('general:errors') : i18n.t('general:error')}`}\n </div>\n </div>\n )\n}\n"],"names":["React","baseClass","ErrorPill","props","className","count","i18n","withMessage","lessThan3Chars","classes","filter","Boolean","join","div","span","t"],"mappings":"AAAA;;AAGA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AAErB,MAAMC,YAAY;AASlB,OAAO,MAAMC,YAAsC,CAACC;IAClD,MAAM,EAAEC,SAAS,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGJ;IAChD,MAAMK,iBAAiB,CAACD,eAAeF,QAAQ;IAE/C,MAAMI,UAAU;QAACR;QAAWO,kBAAkB,CAAC,EAAEP,UAAU,aAAa,CAAC;QAAEG,aAAaA;KAAU,CAC/FM,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,IAAIP,UAAU,GAAG,OAAO;IAExB,qBACE,KAACQ;QAAIT,WAAWK;kBACd,cAAA,MAACI;YAAIT,WAAW,CAAC,EAAEH,UAAU,SAAS,CAAC;;8BACrC,KAACa;oBAAKV,WAAW,CAAC,EAAEH,UAAU,OAAO,CAAC;8BAAGI;;gBACxCE,eAAe,CAAC,CAAC,EAAEF,QAAQ,IAAIC,KAAKS,CAAC,CAAC,oBAAoBT,KAAKS,CAAC,CAAC,iBAAiB,CAAC;;;;AAI5F,EAAC"}
@@ -14,6 +14,8 @@
14
14
  display: flex;
15
15
  align-items: center;
16
16
  justify-content: center;
17
+ background: var(--theme-error-300);
18
+ color: var(--theme-error-950);
17
19
 
18
20
  &--fixed-width {
19
21
  width: 18px;
@@ -27,17 +29,3 @@
27
29
  margin-left: 0.5px;
28
30
  }
29
31
  }
30
-
31
- html[data-theme='light'] {
32
- .error-pill {
33
- background: var(--theme-error-250);
34
- color: var(--theme-error-750);
35
- }
36
- }
37
-
38
- html[data-theme='dark'] {
39
- .error-pill {
40
- background: var(--theme-error-500);
41
- color: var(--color-base-1000);
42
- }
43
- }
@@ -1,10 +1,15 @@
1
1
  import type { FieldWithPath } from 'payload';
2
- import React from 'react';
3
- import type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js';
2
+ import React, { type JSX } from 'react';
3
+ import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js';
4
4
  import './index.scss';
5
5
  export type FieldSelectProps = {
6
6
  fieldMap: FieldMap;
7
7
  setSelected: (fields: FieldWithPath[]) => void;
8
8
  };
9
+ export declare const combineLabel: ({ customLabel, field, prefix, }: {
10
+ customLabel?: string;
11
+ field?: MappedField;
12
+ prefix?: JSX.Element | string;
13
+ }) => JSX.Element;
9
14
  export declare const FieldSelect: React.FC<FieldSelectProps>;
10
15
  //# sourceMappingURL=index.d.ts.map
@@ -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,KAAuC,MAAM,OAAO,CAAA;AAE3D,OAAO,KAAK,EAAE,QAAQ,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;AAiHD,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,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"}
@@ -8,7 +8,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
8
8
  import { ReactSelect } from '../ReactSelect/index.js';
9
9
  import './index.scss';
10
10
  const baseClass = 'field-select';
11
- const combineLabel = ({ customLabel, field, prefix })=>{
11
+ export const combineLabel = ({ customLabel, field, prefix })=>{
12
12
  const CustomLabelToRender = field && 'CustomLabel' in field.fieldComponentProps && field.fieldComponentProps.CustomLabel !== undefined ? field.fieldComponentProps.CustomLabel : null;
13
13
  const DefaultLabelToRender = field && 'label' in field.fieldComponentProps && field.fieldComponentProps.label ? /*#__PURE__*/ _jsx(FieldLabel, {
14
14
  label: field.fieldComponentProps.label,
@@ -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\nconst 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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
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":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"sourcesContent":["'use client'\nimport { formatFilesize } from 'payload/shared'\nimport React, { useState } from 'react'\n\nexport type FileMetaProps = {\n collection?: string\n filename: string\n filesize: number\n height?: number\n id?: string\n mimeType: string\n sizes?: unknown\n url: string\n width?: number\n}\n\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { CopyToClipboard } from '../../CopyToClipboard/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-meta'\n\nexport const FileMeta: React.FC<FileMetaProps> = (props) => {\n const { id, collection, filename, filesize, height, mimeType, url: fileURL, width } = props\n\n const [hovered, setHovered] = useState(false)\n const openInDrawer = Boolean(id && collection)\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug: collection,\n })\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__url`}>\n {openInDrawer && <DocumentDrawer />}\n <a href={fileURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {filename}\n </a>\n <CopyToClipboard defaultMessage=\"Copy URL\" value={fileURL} />\n {openInDrawer && (\n <DocumentDrawerToggler\n className={`${baseClass}__edit`}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n <EditIcon />\n <Tooltip show={hovered}>Edit</Tooltip>\n </DocumentDrawerToggler>\n )}\n </div>\n <div className={`${baseClass}__size-type`}>\n {formatFilesize(filesize)}\n {width && height && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {width}x{height}\n </React.Fragment>\n )}\n {mimeType && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {mimeType}\n </React.Fragment>\n )}\n </div>\n </div>\n )\n}\n"],"names":["formatFilesize","React","useState","EditIcon","CopyToClipboard","useDocumentDrawer","Tooltip","baseClass","FileMeta","props","id","collection","filename","filesize","height","mimeType","url","fileURL","width","hovered","setHovered","openInDrawer","Boolean","DocumentDrawer","DocumentDrawerToggler","collectionSlug","div","className","a","href","rel","target","defaultMessage","value","onMouseEnter","onMouseLeave","show","Fragment"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAcvC,SAASC,QAAQ,QAAQ,+BAA8B;AACvD,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,OAAO,QAAQ,yBAAwB;AAChD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,WAAoC,CAACC;IAChD,MAAM,EAAEC,EAAE,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,KAAKC,OAAO,EAAEC,KAAK,EAAE,GAAGT;IAEtF,MAAM,CAACU,SAASC,WAAW,GAAGlB,SAAS;IACvC,MAAMmB,eAAeC,QAAQZ,MAAMC;IAEnC,MAAM,CAACY,gBAAgBC,sBAAsB,GAAGnB,kBAAkB;QAChEK;QACAe,gBAAgBd;IAClB;IAEA,qBACE,MAACe;QAAIC,WAAWpB;;0BACd,MAACmB;gBAAIC,WAAW,CAAC,EAAEpB,UAAU,KAAK,CAAC;;oBAChCc,8BAAgB,KAACE;kCAClB,KAACK;wBAAEC,MAAMZ;wBAASa,KAAI;wBAAsBC,QAAO;kCAChDnB;;kCAEH,KAACR;wBAAgB4B,gBAAe;wBAAWC,OAAOhB;;oBACjDI,8BACC,MAACG;wBACCG,WAAW,CAAC,EAAEpB,UAAU,MAAM,CAAC;wBAC/B2B,cAAc,IAAMd,WAAW;wBAC/Be,cAAc,IAAMf,WAAW;;0CAE/B,KAACjB;0CACD,KAACG;gCAAQ8B,MAAMjB;0CAAS;;;;;;0BAI9B,MAACO;gBAAIC,WAAW,CAAC,EAAEpB,UAAU,WAAW,CAAC;;oBACtCP,eAAea;oBACfK,SAASJ,wBACR,MAACb,MAAMoC,QAAQ;;4BAAC;4BAEbnB;4BAAM;4BAAEJ;;;oBAGZC,0BACC,MAACd,MAAMoC,QAAQ;;4BAAC;4BAEbtB;;;;;;;AAMb,EAAC"}
1
+ {"version":3,"sources":["../../../../src/elements/FileDetails/FileMeta/index.tsx"],"sourcesContent":["'use client'\nimport { formatFilesize } from 'payload/shared'\nimport React, { useState } from 'react'\n\nexport type FileMetaProps = {\n collection?: string\n filename: string\n filesize: number\n height?: number\n id?: string\n mimeType: string\n sizes?: unknown\n url: string\n width?: number\n}\n\nimport { EditIcon } from '../../../icons/Edit/index.js'\nimport { CopyToClipboard } from '../../CopyToClipboard/index.js'\nimport { useDocumentDrawer } from '../../DocumentDrawer/index.js'\nimport { Tooltip } from '../../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-meta'\n\nexport const FileMeta: React.FC<FileMetaProps> = (props) => {\n const { id, collection, filename, filesize, height, mimeType, url: fileURL, width } = props\n\n const [hovered, setHovered] = useState(false)\n const openInDrawer = Boolean(id && collection)\n\n const [DocumentDrawer, DocumentDrawerToggler] = useDocumentDrawer({\n id,\n collectionSlug: collection,\n })\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__url`}>\n {openInDrawer && <DocumentDrawer />}\n <a href={fileURL} rel=\"noopener noreferrer\" target=\"_blank\">\n {filename}\n </a>\n <CopyToClipboard defaultMessage=\"Copy URL\" value={fileURL} />\n {openInDrawer && (\n <DocumentDrawerToggler\n className={`${baseClass}__edit`}\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n <EditIcon />\n <Tooltip show={hovered}>Edit</Tooltip>\n </DocumentDrawerToggler>\n )}\n </div>\n <div className={`${baseClass}__size-type`}>\n {formatFilesize(filesize)}\n {width && height && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {width}x{height}\n </React.Fragment>\n )}\n {mimeType && (\n <React.Fragment>\n &nbsp;-&nbsp;\n {mimeType}\n </React.Fragment>\n )}\n </div>\n </div>\n )\n}\n"],"names":["formatFilesize","React","useState","EditIcon","CopyToClipboard","useDocumentDrawer","Tooltip","baseClass","FileMeta","props","id","collection","filename","filesize","height","mimeType","url","fileURL","width","hovered","setHovered","openInDrawer","Boolean","DocumentDrawer","DocumentDrawerToggler","collectionSlug","div","className","a","href","rel","target","defaultMessage","value","onMouseEnter","onMouseLeave","show","Fragment"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,iBAAgB;AAC/C,OAAOC,SAASC,QAAQ,QAAQ,QAAO;AAcvC,SAASC,QAAQ,QAAQ,+BAA8B;AACvD,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,OAAO,QAAQ,yBAAwB;AAChD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,WAAoC,CAACC;IAChD,MAAM,EAAEC,EAAE,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,KAAKC,OAAO,EAAEC,KAAK,EAAE,GAAGT;IAEtF,MAAM,CAACU,SAASC,WAAW,GAAGlB,SAAS;IACvC,MAAMmB,eAAeC,QAAQZ,MAAMC;IAEnC,MAAM,CAACY,gBAAgBC,sBAAsB,GAAGnB,kBAAkB;QAChEK;QACAe,gBAAgBd;IAClB;IAEA,qBACE,MAACe;QAAIC,WAAWpB;;0BACd,MAACmB;gBAAIC,WAAW,CAAC,EAAEpB,UAAU,KAAK,CAAC;;oBAChCc,8BAAgB,KAACE;kCAClB,KAACK;wBAAEC,MAAMZ;wBAASa,KAAI;wBAAsBC,QAAO;kCAChDnB;;kCAEH,KAACR;wBAAgB4B,gBAAe;wBAAWC,OAAOhB;;oBACjDI,8BACC,MAACG;wBACCG,WAAW,CAAC,EAAEpB,UAAU,MAAM,CAAC;wBAC/B2B,cAAc,IAAMd,WAAW;wBAC/Be,cAAc,IAAMf,WAAW;;0CAE/B,KAACjB;0CACD,KAACG;gCAAQ8B,MAAMjB;0CAAS;;;;;;0BAI9B,MAACO;gBAAIC,WAAW,CAAC,EAAEpB,UAAU,WAAW,CAAC;;oBACtCP,eAAea;oBACfK,SAASJ,wBACR,MAACb,MAAMoC,QAAQ;;4BAAC;4BAEbnB;4BAAM;4BAAEJ;;;oBAGZC,0BACC,MAACd,MAAMoC,QAAQ;;4BAAC;4BAEbtB;;;;;;;AAMb,EAAC"}
@@ -2,11 +2,12 @@ import React from 'react';
2
2
  import './index.scss';
3
3
  import type { Data, FileSizes, SanitizedCollectionConfig } from 'payload';
4
4
  export type FileDetailsProps = {
5
- canEdit?: boolean;
6
5
  collectionSlug: string;
7
- doc: Data & {
6
+ customUploadActions?: React.ReactNode[];
7
+ doc: {
8
8
  sizes?: FileSizes;
9
- };
9
+ } & Data;
10
+ enableAdjustments?: boolean;
10
11
  handleRemove?: () => void;
11
12
  hasImageSizes?: boolean;
12
13
  imageCacheTag?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/FileDetails/index.tsx"],"names":[],"mappings":"AAEA,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,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,GAAG,EAAE,IAAI,GAAG;QACV,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,CAAA;IACD,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,CA6ClD,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,CAwDlD,CAAA"}
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { isImage } from 'payload/shared';
4
3
  import React from 'react';
5
4
  import { UploadActions } from '../../elements/Upload/index.js';
6
5
  import { Button } from '../Button/index.js';
@@ -9,7 +8,7 @@ import { FileMeta } from './FileMeta/index.js';
9
8
  import './index.scss';
10
9
  const baseClass = 'file-details';
11
10
  export const FileDetails = (props)=>{
12
- const { canEdit, collectionSlug, doc, handleRemove, hasImageSizes, imageCacheTag, uploadConfig } = props;
11
+ const { collectionSlug, customUploadActions, doc, enableAdjustments, handleRemove, hasImageSizes, imageCacheTag, uploadConfig } = props;
13
12
  const { id, filename, filesize, height, mimeType, thumbnailURL, url, width } = doc;
14
13
  return /*#__PURE__*/ _jsx("div", {
15
14
  className: baseClass,
@@ -35,9 +34,11 @@ export const FileDetails = (props)=>{
35
34
  url: url,
36
35
  width: width
37
36
  }),
38
- isImage(mimeType) && mimeType !== 'image/svg+xml' && /*#__PURE__*/ _jsx(UploadActions, {
39
- canEdit: canEdit,
40
- showSizePreviews: hasImageSizes && doc.filename
37
+ /*#__PURE__*/ _jsx(UploadActions, {
38
+ customActions: customUploadActions,
39
+ enableAdjustments: enableAdjustments,
40
+ enablePreviewSizes: hasImageSizes && doc.filename,
41
+ mimeType: mimeType
41
42
  })
42
43
  ]
43
44
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/FileDetails/index.tsx"],"sourcesContent":["'use client'\nimport { isImage } from 'payload/shared'\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 canEdit?: boolean\n collectionSlug: string\n doc: Data & {\n sizes?: FileSizes\n }\n handleRemove?: () => void\n hasImageSizes?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const FileDetails: React.FC<FileDetailsProps> = (props) => {\n const { canEdit, collectionSlug, doc, handleRemove, hasImageSizes, imageCacheTag, 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 {isImage(mimeType as string) && mimeType !== 'image/svg+xml' && (\n <UploadActions canEdit={canEdit} showSizePreviews={hasImageSizes && doc.filename} />\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":["isImage","React","UploadActions","Button","Thumbnail","FileMeta","baseClass","FileDetails","props","canEdit","collectionSlug","doc","handleRemove","hasImageSizes","imageCacheTag","uploadConfig","id","filename","filesize","height","mimeType","thumbnailURL","url","width","div","className","header","fileSrc","collection","showSizePreviews","buttonStyle","icon","iconStyle","onClick","round"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,OAAO,QAAQ,iBAAgB;AACxC,OAAOC,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;AAgBlB,OAAO,MAAMC,cAA0C,CAACC;IACtD,MAAM,EAAEC,OAAO,EAAEC,cAAc,EAAEC,GAAG,EAAEC,YAAY,EAAEC,aAAa,EAAEC,aAAa,EAAEC,YAAY,EAAE,GAC9FP;IAEF,MAAM,EAAEQ,EAAE,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGZ;IAE/E,qBACE,KAACa;QAAIC,WAAWnB;kBACd,cAAA,MAACoB;;8BACC,KAACtB;oBACCM,gBAAgBA;oBAChBC,KAAKA;oBACLgB,SAASN,gBAAgBC;oBACzBR,eAAeA;oBACfC,cAAcA;;8BAEhB,MAACS;oBAAIC,WAAW,CAAC,EAAEnB,UAAU,aAAa,CAAC;;sCACzC,KAACD;4BACCuB,YAAYlB;4BACZO,UAAUA;4BACVC,UAAUA;4BACVC,QAAQA;4BACRH,IAAIA;4BACJI,UAAUA;4BACVE,KAAKA;4BACLC,OAAOA;;wBAGRvB,QAAQoB,aAAuBA,aAAa,iCAC3C,KAAClB;4BAAcO,SAASA;4BAASoB,kBAAkBhB,iBAAiBF,IAAIM,QAAQ;;;;gBAGnFL,8BACC,KAACT;oBACC2B,aAAY;oBACZL,WAAW,CAAC,EAAEnB,UAAU,QAAQ,CAAC;oBACjCyB,MAAK;oBACLC,WAAU;oBACVC,SAASrB;oBACTsB,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 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 +1 @@
1
- {"version":3,"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'generate-confirmation'\n\nexport type GenerateConfirmationProps = {\n highlightField: (Boolean) => void\n setKey: () => void\n}\n\nexport const GenerateConfirmation: React.FC<GenerateConfirmationProps> = (props) => {\n const { highlightField, setKey } = props\n\n const { id } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${id}`\n\n const handleGenerate = () => {\n setKey()\n toggleModal(modalSlug)\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n }\n\n return (\n <React.Fragment>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {t('authentication:generateNewAPIKey')}\n </Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__template`}>\n <h1>{t('authentication:confirmGeneration')}</h1>\n <p>\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n </p>\n\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={handleGenerate}>{t('authentication:generate')}</Button>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","React","toast","useDocumentInfo","useTranslation","Button","Translation","baseClass","GenerateConfirmation","props","highlightField","setKey","id","toggleModal","t","modalSlug","handleGenerate","success","Fragment","buttonStyle","onClick","size","className","slug","div","h1","p","elements","children","strong","i18nKey","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,SAASA,KAAK,EAAEC,QAAQ,QAAQ,qBAAoB;AACpD,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,WAAW,QAAQ,0BAAyB;AACrD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAOlB,OAAO,MAAMC,uBAA4D,CAACC;IACxE,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGF;IAEnC,MAAM,EAAEG,EAAE,EAAE,GAAGT;IACf,MAAM,EAAEU,WAAW,EAAE,GAAGb;IACxB,MAAM,EAAEc,CAAC,EAAE,GAAGV;IAEd,MAAMW,YAAY,CAAC,sBAAsB,EAAEH,GAAG,CAAC;IAE/C,MAAMI,iBAAiB;QACrBL;QACAE,YAAYE;QACZb,MAAMe,OAAO,CAACH,EAAE;QAChBJ,eAAe;IACjB;IAEA,qBACE,MAACT,MAAMiB,QAAQ;;0BACb,KAACb;gBACCc,aAAY;gBACZC,SAAS;oBACPP,YAAYE;gBACd;gBACAM,MAAK;0BAEJP,EAAE;;0BAEL,KAACf;gBAAMuB,WAAWf;gBAAWgB,MAAMR;0BACjC,cAAA,MAACS;oBAAIF,WAAW,CAAC,EAAEf,UAAU,UAAU,CAAC;;sCACtC,KAACkB;sCAAIX,EAAE;;sCACP,KAACY;sCACC,cAAA,KAACpB;gCACCqB,UAAU;oCACR,GAAG,CAAC,EAAEC,QAAQ,EAAE,iBAAK,KAACC;sDAAQD;;gCAChC;gCACAE,SAAQ;gCACRhB,GAAGA;;;sCAIP,KAACT;4BACCc,aAAY;4BACZC,SAAS;gCACPP,YAAYE;4BACd;4BACAgB,MAAK;sCAEJjB,EAAE;;sCAEL,KAACT;4BAAOe,SAASJ;sCAAiBF,EAAE;;;;;;;AAK9C,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/GenerateConfirmation/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'generate-confirmation'\n\nexport type GenerateConfirmationProps = {\n highlightField: (Boolean) => void\n setKey: () => void\n}\n\nexport const GenerateConfirmation: React.FC<GenerateConfirmationProps> = (props) => {\n const { highlightField, setKey } = props\n\n const { id } = useDocumentInfo()\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n const modalSlug = `generate-confirmation-${id}`\n\n const handleGenerate = () => {\n setKey()\n toggleModal(modalSlug)\n toast.success(t('authentication:newAPIKeyGenerated'))\n highlightField(true)\n }\n\n return (\n <React.Fragment>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n size=\"small\"\n >\n {t('authentication:generateNewAPIKey')}\n </Button>\n <Modal className={baseClass} slug={modalSlug}>\n <div className={`${baseClass}__template`}>\n <h1>{t('authentication:confirmGeneration')}</h1>\n <p>\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"authentication:generatingNewAPIKeyWillInvalidate\"\n t={t}\n />\n </p>\n\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n }}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button onClick={handleGenerate}>{t('authentication:generate')}</Button>\n </div>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","React","toast","useDocumentInfo","useTranslation","Button","Translation","baseClass","GenerateConfirmation","props","highlightField","setKey","id","toggleModal","t","modalSlug","handleGenerate","success","Fragment","buttonStyle","onClick","size","className","slug","div","h1","p","elements","children","strong","i18nKey","type"],"mappings":"AAAA;;AACA,SAASA,KAAK,EAAEC,QAAQ,QAAQ,qBAAoB;AACpD,OAAOC,WAAW,QAAO;AACzB,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,WAAW,QAAQ,0BAAyB;AACrD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAOlB,OAAO,MAAMC,uBAA4D,CAACC;IACxE,MAAM,EAAEC,cAAc,EAAEC,MAAM,EAAE,GAAGF;IAEnC,MAAM,EAAEG,EAAE,EAAE,GAAGT;IACf,MAAM,EAAEU,WAAW,EAAE,GAAGb;IACxB,MAAM,EAAEc,CAAC,EAAE,GAAGV;IAEd,MAAMW,YAAY,CAAC,sBAAsB,EAAEH,GAAG,CAAC;IAE/C,MAAMI,iBAAiB;QACrBL;QACAE,YAAYE;QACZb,MAAMe,OAAO,CAACH,EAAE;QAChBJ,eAAe;IACjB;IAEA,qBACE,MAACT,MAAMiB,QAAQ;;0BACb,KAACb;gBACCc,aAAY;gBACZC,SAAS;oBACPP,YAAYE;gBACd;gBACAM,MAAK;0BAEJP,EAAE;;0BAEL,KAACf;gBAAMuB,WAAWf;gBAAWgB,MAAMR;0BACjC,cAAA,MAACS;oBAAIF,WAAW,CAAC,EAAEf,UAAU,UAAU,CAAC;;sCACtC,KAACkB;sCAAIX,EAAE;;sCACP,KAACY;sCACC,cAAA,KAACpB;gCACCqB,UAAU;oCACR,GAAG,CAAC,EAAEC,QAAQ,EAAE,iBAAK,KAACC;sDAAQD;;gCAChC;gCACAE,SAAQ;gCACRhB,GAAGA;;;sCAIP,KAACT;4BACCc,aAAY;4BACZC,SAAS;gCACPP,YAAYE;4BACd;4BACAgB,MAAK;sCAEJjB,EAAE;;sCAEL,KAACT;4BAAOe,SAASJ;sCAAiBF,EAAE;;;;;;;AAK9C,EAAC"}
@@ -4,6 +4,7 @@
4
4
  @include blur-bg;
5
5
  display: flex;
6
6
  align-items: center;
7
+ justify-content: center;
7
8
  height: 100%;
8
9
 
9
10
  &__template {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Gutter/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport './index.scss'\n\nexport type GutterProps = {\n children: React.ReactNode\n className?: string\n left?: boolean\n negativeLeft?: boolean\n negativeRight?: boolean\n right?: boolean\n}\n\nconst baseClass = 'gutter'\n\nexport const Gutter = forwardRef<HTMLDivElement, GutterProps>((props, ref) => {\n const {\n children,\n className,\n left = true,\n negativeLeft = false,\n negativeRight = false,\n right = true,\n } = props\n\n const shouldPadLeft = left && !negativeLeft\n const shouldPadRight = right && !negativeRight\n\n return (\n <div\n className={[\n shouldPadLeft && `${baseClass}--left`,\n shouldPadRight && `${baseClass}--right`,\n negativeLeft && `${baseClass}--negative-left`,\n negativeRight && `${baseClass}--negative-right`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n >\n {children}\n </div>\n )\n})\n\nGutter.displayName = 'Gutter'\n"],"names":["React","forwardRef","baseClass","Gutter","props","ref","children","className","left","negativeLeft","negativeRight","right","shouldPadLeft","shouldPadRight","div","filter","Boolean","join","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,OAAOA,SAASC,UAAU,QAAQ,QAAO;AAEzC,OAAO,eAAc;AAWrB,MAAMC,YAAY;AAElB,OAAO,MAAMC,uBAASF,WAAwC,CAACG,OAAOC;IACpE,MAAM,EACJC,QAAQ,EACRC,SAAS,EACTC,OAAO,IAAI,EACXC,eAAe,KAAK,EACpBC,gBAAgB,KAAK,EACrBC,QAAQ,IAAI,EACb,GAAGP;IAEJ,MAAMQ,gBAAgBJ,QAAQ,CAACC;IAC/B,MAAMI,iBAAiBF,SAAS,CAACD;IAEjC,qBACE,KAACI;QACCP,WAAW;YACTK,iBAAiB,CAAC,EAAEV,UAAU,MAAM,CAAC;YACrCW,kBAAkB,CAAC,EAAEX,UAAU,OAAO,CAAC;YACvCO,gBAAgB,CAAC,EAAEP,UAAU,eAAe,CAAC;YAC7CQ,iBAAiB,CAAC,EAAER,UAAU,gBAAgB,CAAC;YAC/CK;SACD,CACEQ,MAAM,CAACC,SACPC,IAAI,CAAC;QACRZ,KAAKA;kBAEJC;;AAGP,GAAE;AAEFH,OAAOe,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../src/elements/Gutter/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react'\n\nimport './index.scss'\n\nexport type GutterProps = {\n children: React.ReactNode\n className?: string\n left?: boolean\n negativeLeft?: boolean\n negativeRight?: boolean\n right?: boolean\n}\n\nconst baseClass = 'gutter'\n\nexport const Gutter = forwardRef<HTMLDivElement, GutterProps>((props, ref) => {\n const {\n children,\n className,\n left = true,\n negativeLeft = false,\n negativeRight = false,\n right = true,\n } = props\n\n const shouldPadLeft = left && !negativeLeft\n const shouldPadRight = right && !negativeRight\n\n return (\n <div\n className={[\n shouldPadLeft && `${baseClass}--left`,\n shouldPadRight && `${baseClass}--right`,\n negativeLeft && `${baseClass}--negative-left`,\n negativeRight && `${baseClass}--negative-right`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n >\n {children}\n </div>\n )\n})\n\nGutter.displayName = 'Gutter'\n"],"names":["React","forwardRef","baseClass","Gutter","props","ref","children","className","left","negativeLeft","negativeRight","right","shouldPadLeft","shouldPadRight","div","filter","Boolean","join","displayName"],"mappings":";AAAA,OAAOA,SAASC,UAAU,QAAQ,QAAO;AAEzC,OAAO,eAAc;AAWrB,MAAMC,YAAY;AAElB,OAAO,MAAMC,uBAASF,WAAwC,CAACG,OAAOC;IACpE,MAAM,EACJC,QAAQ,EACRC,SAAS,EACTC,OAAO,IAAI,EACXC,eAAe,KAAK,EACpBC,gBAAgB,KAAK,EACrBC,QAAQ,IAAI,EACb,GAAGP;IAEJ,MAAMQ,gBAAgBJ,QAAQ,CAACC;IAC/B,MAAMI,iBAAiBF,SAAS,CAACD;IAEjC,qBACE,KAACI;QACCP,WAAW;YACTK,iBAAiB,CAAC,EAAEV,UAAU,MAAM,CAAC;YACrCW,kBAAkB,CAAC,EAAEX,UAAU,OAAO,CAAC;YACvCO,gBAAgB,CAAC,EAAEP,UAAU,eAAe,CAAC;YAC7CQ,iBAAiB,CAAC,EAAER,UAAU,gBAAgB,CAAC;YAC/CK;SACD,CACEQ,MAAM,CAACC,SACPC,IAAI,CAAC;QACRZ,KAAKA;kBAEJC;;AAGP,GAAE;AAEFH,OAAOe,WAAW,GAAG"}
@@ -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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","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 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,7 +1,6 @@
1
- /// <reference types="react" resolution-mode="require"/>
2
- import type { PayloadRequestWithData, Permissions } from 'payload';
1
+ import type { PayloadRequest, Permissions } from 'payload';
3
2
  export declare const HydrateClientUser: React.FC<{
4
3
  permissions: Permissions;
5
- user: PayloadRequestWithData['user'];
4
+ user: PayloadRequest['user'];
6
5
  }>;
7
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/HydrateClientUser/index.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAMlE,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,WAAW,CAAA;IACxB,IAAI,EAAE,sBAAsB,CAAC,MAAM,CAAC,CAAA;CACrC,CASA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/HydrateClientUser/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAM1D,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IACvC,WAAW,EAAE,WAAW,CAAA;IACxB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;CAC7B,CASA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/HydrateClientUser/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PayloadRequestWithData, Permissions } from 'payload'\n\nimport { useEffect } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\n\nexport const HydrateClientUser: React.FC<{\n permissions: Permissions\n user: PayloadRequestWithData['user']\n}> = ({ permissions, user }) => {\n const { setPermissions, setUser } = useAuth()\n\n useEffect(() => {\n setUser(user)\n setPermissions(permissions)\n }, [user, permissions, setUser, setPermissions])\n\n return null\n}\n"],"names":["useEffect","useAuth","HydrateClientUser","permissions","user","setPermissions","setUser"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA;AAIA,SAASA,SAAS,QAAQ,QAAO;AAEjC,SAASC,OAAO,QAAQ,gCAA+B;AAEvD,OAAO,MAAMC,oBAGR,CAAC,EAAEC,WAAW,EAAEC,IAAI,EAAE;IACzB,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAE,GAAGL;IAEpCD,UAAU;QACRM,QAAQF;QACRC,eAAeF;IACjB,GAAG;QAACC;QAAMD;QAAaG;QAASD;KAAe;IAE/C,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/HydrateClientUser/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PayloadRequest, Permissions } from 'payload'\n\nimport { useEffect } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\n\nexport const HydrateClientUser: React.FC<{\n permissions: Permissions\n user: PayloadRequest['user']\n}> = ({ permissions, user }) => {\n const { setPermissions, setUser } = useAuth()\n\n useEffect(() => {\n setUser(user)\n setPermissions(permissions)\n }, [user, permissions, setUser, setPermissions])\n\n return null\n}\n"],"names":["useEffect","useAuth","HydrateClientUser","permissions","user","setPermissions","setUser"],"mappings":"AAAA;AAIA,SAASA,SAAS,QAAQ,QAAO;AAEjC,SAASC,OAAO,QAAQ,gCAA+B;AAEvD,OAAO,MAAMC,oBAGR,CAAC,EAAEC,WAAW,EAAEC,IAAI,EAAE;IACzB,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAE,GAAGL;IAEpCD,UAAU;QACRM,QAAQF;QACRC,eAAeF;IACjB,GAAG;QAACC;QAAMD;QAAaG;QAASD;KAAe;IAE/C,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n &nbsp;&nbsp;\n {id}\n </div>\n)\n"],"names":["React","baseClass","IDLabel","id","className","prefix","div","filter","Boolean","join","title"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,UAAyE,CAAC,EACrFC,EAAE,EACFC,SAAS,EACTC,SAAS,KAAK,EACf,iBACC,MAACC;QAAIF,WAAW;YAACH;YAAWG;SAAU,CAACG,MAAM,CAACC,SAASC,IAAI,CAAC;QAAMC,OAAOP;;YACtEE;YAAO;YAEPF;;OAEJ"}
1
+ {"version":3,"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n &nbsp;&nbsp;\n {id}\n </div>\n)\n"],"names":["React","baseClass","IDLabel","id","className","prefix","div","filter","Boolean","join","title"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,UAAyE,CAAC,EACrFC,EAAE,EACFC,SAAS,EACTC,SAAS,KAAK,EACf,iBACC,MAACC;QAAIF,WAAW;YAACH;YAAWG;SAAU,CAACG,MAAM,CAACC,SAASC,IAAI,CAAC;QAAMC,OAAOP;;YACtEE;YAAO;YAEPF;;OAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTextFieldsToBeSearched.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAA;AAIpG,eAAO,MAAM,yBAAyB,yBACd,MAAM,EAAE,yBAE7B,WAAW,EASb,CAAA"}
1
+ {"version":3,"file":"getTextFieldsToBeSearched.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yDAAyD,CAAA;AAIpG,eAAO,MAAM,yBAAyB,yBACd,MAAM,EAAE,YACpB,QAAQ,KACjB,WAAW,EASb,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"sourcesContent":["import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\n\nexport const getTextFieldsToBeSearched = (\n listSearchableFields: string[],\n fieldMap: FieldMap,\n): MappedField[] => {\n if (listSearchableFields) {\n const flattenedFields = flattenFieldMap(fieldMap)\n return flattenedFields.filter(\n (field) => field.isFieldAffectingData && listSearchableFields.includes(field.name),\n )\n }\n\n return null\n}\n"],"names":["flattenFieldMap","getTextFieldsToBeSearched","listSearchableFields","fieldMap","flattenedFields","filter","field","isFieldAffectingData","includes","name"],"rangeMappings":";;;;;;;","mappings":"AAEA,SAASA,eAAe,QAAQ,qCAAoC;AAEpE,OAAO,MAAMC,4BAA4B,CACvCC,sBACAC;IAEA,IAAID,sBAAsB;QACxB,MAAME,kBAAkBJ,gBAAgBG;QACxC,OAAOC,gBAAgBC,MAAM,CAC3B,CAACC,QAAUA,MAAMC,oBAAoB,IAAIL,qBAAqBM,QAAQ,CAACF,MAAMG,IAAI;IAErF;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ListControls/getTextFieldsToBeSearched.ts"],"sourcesContent":["import type { FieldMap, MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { flattenFieldMap } from '../../utilities/flattenFieldMap.js'\n\nexport const getTextFieldsToBeSearched = (\n listSearchableFields: string[],\n fieldMap: FieldMap,\n): MappedField[] => {\n if (listSearchableFields) {\n const flattenedFields = flattenFieldMap(fieldMap)\n return flattenedFields.filter(\n (field) => field.isFieldAffectingData && listSearchableFields.includes(field.name),\n )\n }\n\n return null\n}\n"],"names":["flattenFieldMap","getTextFieldsToBeSearched","listSearchableFields","fieldMap","flattenedFields","filter","field","isFieldAffectingData","includes","name"],"mappings":"AAEA,SAASA,eAAe,QAAQ,qCAAoC;AAEpE,OAAO,MAAMC,4BAA4B,CACvCC,sBACAC;IAEA,IAAID,sBAAsB;QACxB,MAAME,kBAAkBJ,gBAAgBG;QACxC,OAAOC,gBAAgBC,MAAM,CAC3B,CAACC,QAAUA,MAAMC,oBAAoB,IAAIL,qBAAqBM,QAAQ,CAACF,MAAMG,IAAI;IAErF;IAEA,OAAO;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAsC,MAAM,OAAO,CAAA;AAM1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAiBvF,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0IpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5D,OAAO,KAAsC,MAAM,OAAO,CAAA;AAQ1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AAiBvF,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyLpD,CAAA"}
@@ -5,6 +5,7 @@ import { getTranslation } from '@payloadcms/translations';
5
5
  import React, { useEffect, useRef, useState } from 'react';
6
6
  import AnimateHeightImport from 'react-animate-height';
7
7
  const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
8
+ import { useListInfo } from '@payloadcms/ui';
8
9
  import { useUseTitleField } from '../../hooks/useUseAsTitle.js';
9
10
  import { ChevronIcon } from '../../icons/Chevron/index.js';
10
11
  import { useListQuery } from '../../providers/ListQuery/index.js';
@@ -29,10 +30,17 @@ const baseClass = 'list-controls';
29
30
  */ export const ListControls = (props)=>{
30
31
  const { collectionConfig, enableColumns = true, enableSort = false, fieldMap } = props;
31
32
  const { handleSearchChange } = useListQuery();
33
+ const { collectionSlug } = useListInfo();
32
34
  const { searchParams } = useSearchParams();
33
35
  const titleField = useUseTitleField(collectionConfig, fieldMap);
34
36
  const { i18n, t } = useTranslation();
35
37
  const { breakpoints: { s: smallBreak } } = useWindowInfo();
38
+ const [search, setSearch] = useState(typeof searchParams?.search === 'string' ? searchParams?.search : '');
39
+ const searchLabel = (titleField && getTranslation('label' in titleField.fieldComponentProps && typeof titleField.fieldComponentProps.label === 'string' ? titleField.fieldComponentProps.label : titleField.name, i18n)) ?? 'ID';
40
+ const listSearchableFields = getTextFieldsToBeSearched(collectionConfig.admin.listSearchableFields, fieldMap);
41
+ const searchLabelTranslated = useRef(t('general:searchBy', {
42
+ label: getTranslation(searchLabel, i18n)
43
+ }));
36
44
  const hasWhereParam = useRef(Boolean(searchParams?.where));
37
45
  const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where);
38
46
  const [visibleDrawer, setVisibleDrawer] = useState(shouldInitializeWhereOpened ? 'where' : undefined);
@@ -47,6 +55,31 @@ const baseClass = 'list-controls';
47
55
  setVisibleDrawer,
48
56
  searchParams?.where
49
57
  ]);
58
+ useEffect(()=>{
59
+ if (listSearchableFields?.length > 0) {
60
+ searchLabelTranslated.current = listSearchableFields.reduce((placeholderText, field, i)=>{
61
+ const label = 'fieldComponentProps' in field && 'label' in field.fieldComponentProps && field.fieldComponentProps.label ? field.fieldComponentProps.label : field.name;
62
+ if (i === 0) {
63
+ return `${t('general:searchBy', {
64
+ label: getTranslation(label, i18n)
65
+ })}`;
66
+ }
67
+ if (i === listSearchableFields.length - 1) {
68
+ return `${placeholderText} ${t('general:or')} ${getTranslation(label, i18n)}`;
69
+ }
70
+ return `${placeholderText}, ${getTranslation(label, i18n)}`;
71
+ }, '');
72
+ } else {
73
+ searchLabelTranslated.current = t('general:searchBy', {
74
+ label: getTranslation(searchLabel, i18n)
75
+ });
76
+ }
77
+ }, [
78
+ t,
79
+ listSearchableFields,
80
+ i18n,
81
+ searchLabel
82
+ ]);
50
83
  return /*#__PURE__*/ _jsxs("div", {
51
84
  className: baseClass,
52
85
  children: [
@@ -54,11 +87,13 @@ const baseClass = 'list-controls';
54
87
  className: `${baseClass}__wrap`,
55
88
  children: [
56
89
  /*#__PURE__*/ _jsx(SearchFilter, {
57
- fieldLabel: (titleField && getTranslation('label' in titleField.fieldComponentProps && typeof titleField.fieldComponentProps.label === 'string' ? titleField.fieldComponentProps.label : titleField.name, i18n)) ?? undefined,
58
90
  fieldName: titleField?.name,
59
91
  handleChange: handleSearchChange,
60
- listSearchableFields: getTextFieldsToBeSearched(collectionConfig.admin.listSearchableFields, fieldMap)
61
- }),
92
+ initialParams: searchParams,
93
+ label: searchLabelTranslated.current,
94
+ setValue: setSearch,
95
+ value: search
96
+ }, collectionSlug),
62
97
  /*#__PURE__*/ _jsx("div", {
63
98
  className: `${baseClass}__buttons`,
64
99
  children: /*#__PURE__*/ _jsxs("div", {
@@ -127,7 +162,8 @@ const baseClass = 'list-controls';
127
162
  id: `${baseClass}-where`,
128
163
  children: /*#__PURE__*/ _jsx(WhereBuilder, {
129
164
  collectionPluralLabel: collectionConfig?.labels?.plural,
130
- collectionSlug: collectionConfig.slug
165
+ collectionSlug: collectionConfig.slug,
166
+ fieldMap: fieldMap
131
167
  }, String(hasWhereParam.current && !searchParams?.where))
132
168
  }),
133
169
  enableSort && /*#__PURE__*/ _jsx(AnimateHeight, {