@payloadcms/ui 4.0.0-internal.b6f3b9a → 4.0.0-internal.b8a92d2

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 (741) hide show
  1. package/dist/css/app.css +1 -0
  2. package/dist/css/colors.css +9 -8
  3. package/dist/css/forms.css +1 -0
  4. package/dist/css/preflight.css +1 -0
  5. package/dist/css/spacing.css +12 -0
  6. package/dist/css/typography.css +158 -14
  7. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  8. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  9. package/dist/elements/APIKeyInput/index.js +27 -29
  10. package/dist/elements/APIKeyInput/index.js.map +1 -1
  11. package/dist/elements/AppHeader/EditViewWidthSettings/index.css +5 -0
  12. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts +4 -0
  13. package/dist/elements/AppHeader/EditViewWidthSettings/index.d.ts.map +1 -0
  14. package/dist/elements/AppHeader/EditViewWidthSettings/index.js +77 -0
  15. package/dist/elements/AppHeader/EditViewWidthSettings/index.js.map +1 -0
  16. package/dist/elements/AppHeader/SettingsMenu/index.css +5 -0
  17. package/dist/elements/AppHeader/SettingsMenu/index.d.ts +4 -0
  18. package/dist/elements/AppHeader/SettingsMenu/index.d.ts.map +1 -0
  19. package/dist/elements/AppHeader/SettingsMenu/index.js +59 -0
  20. package/dist/elements/AppHeader/SettingsMenu/index.js.map +1 -0
  21. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts +3 -0
  22. package/dist/elements/AppHeader/TypeSizeSettings/index.d.ts.map +1 -0
  23. package/dist/elements/AppHeader/TypeSizeSettings/index.js +58 -0
  24. package/dist/elements/AppHeader/TypeSizeSettings/index.js.map +1 -0
  25. package/dist/elements/AppHeader/index.css +4 -0
  26. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  27. package/dist/elements/AppHeader/index.js +3 -2
  28. package/dist/elements/AppHeader/index.js.map +1 -1
  29. package/dist/elements/ArrayAction/index.d.ts +1 -0
  30. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  31. package/dist/elements/ArrayAction/index.js +45 -32
  32. package/dist/elements/ArrayAction/index.js.map +1 -1
  33. package/dist/elements/Autosave/index.d.ts.map +1 -1
  34. package/dist/elements/Autosave/index.js +2 -3
  35. package/dist/elements/Autosave/index.js.map +1 -1
  36. package/dist/elements/Banner/index.css +4 -0
  37. package/dist/elements/Banner/index.d.ts.map +1 -1
  38. package/dist/elements/Banner/index.js +1 -0
  39. package/dist/elements/Banner/index.js.map +1 -1
  40. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  41. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  42. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  43. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  44. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  45. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  46. package/dist/elements/BulkUpload/FileSidebar/index.css +1 -0
  47. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +1 -1
  48. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  49. package/dist/elements/BulkUpload/FormsManager/createFormData.js +7 -3
  50. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  51. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  52. package/dist/elements/BulkUpload/FormsManager/index.js +18 -12
  53. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  54. package/dist/elements/BulkUpload/index.css +2 -0
  55. package/dist/elements/Button/index.css +2 -2
  56. package/dist/elements/Button/index.d.ts.map +1 -1
  57. package/dist/elements/Button/index.js +2 -0
  58. package/dist/elements/Button/index.js.map +1 -1
  59. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  60. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  61. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  62. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  63. package/dist/elements/Collapsible/index.css +1 -0
  64. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  65. package/dist/elements/CopyLocaleData/index.js +8 -9
  66. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  67. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  68. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  69. package/dist/elements/CopyToClipboard/index.js +10 -8
  70. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  71. package/dist/elements/DatePicker/index.css +2 -0
  72. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  73. package/dist/elements/DeleteMany/index.js +2 -3
  74. package/dist/elements/DeleteMany/index.js.map +1 -1
  75. package/dist/elements/Dialog/index.css +1 -0
  76. package/dist/elements/DocumentControls/index.css +1 -0
  77. package/dist/elements/DocumentFields/index.css +2 -0
  78. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  79. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  80. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  81. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  82. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  83. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  84. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  85. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  86. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  87. package/dist/elements/DocumentHeader/index.css +1 -0
  88. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  89. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  90. package/dist/elements/DocumentHeader/index.js +4 -2
  91. package/dist/elements/DocumentHeader/index.js.map +1 -1
  92. package/dist/elements/Drawer/index.css +10 -4
  93. package/dist/elements/Dropzone/index.css +10 -4
  94. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  95. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  96. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  97. package/dist/elements/DuplicateDocument/index.js +2 -3
  98. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  99. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  100. package/dist/elements/EditMany/DrawerContent.js +2 -3
  101. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  102. package/dist/elements/EditUpload/index.css +1 -1
  103. package/dist/elements/FieldDiffContainer/index.css +1 -0
  104. package/dist/elements/FieldDiffLabel/index.css +1 -0
  105. package/dist/elements/FileDetails/StaticFileDetails/index.css +2 -0
  106. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  107. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  108. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  109. package/dist/elements/FileManager/index.css +0 -30
  110. package/dist/elements/FileManager/index.d.ts.map +1 -1
  111. package/dist/elements/FileManager/index.js +379 -287
  112. package/dist/elements/FileManager/index.js.map +1 -1
  113. package/dist/elements/HTMLDiff/index.css +1 -0
  114. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  115. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  116. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  117. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  118. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  119. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  120. package/dist/elements/IDLabel/index.css +6 -0
  121. package/dist/elements/IDLabel/index.d.ts +1 -1
  122. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  123. package/dist/elements/IDLabel/index.js +16 -21
  124. package/dist/elements/IDLabel/index.js.map +1 -1
  125. package/dist/elements/ItemsDrawer/index.css +3 -0
  126. package/dist/elements/ListControls/index.css +1 -0
  127. package/dist/elements/ListControls/index.d.ts.map +1 -1
  128. package/dist/elements/ListControls/index.js +7 -1
  129. package/dist/elements/ListControls/index.js.map +1 -1
  130. package/dist/elements/ListControls/types.d.ts +3 -1
  131. package/dist/elements/ListControls/types.d.ts.map +1 -1
  132. package/dist/elements/ListControls/types.js.map +1 -1
  133. package/dist/elements/ListControlsBar/index.css +1 -0
  134. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  135. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  136. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  137. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  138. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  139. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  140. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  141. package/dist/elements/LivePreview/Window/index.css +1 -0
  142. package/dist/elements/LivePreview/Window/index.js +1 -1
  143. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  144. package/dist/elements/Localizer/index.js +1 -1
  145. package/dist/elements/Localizer/index.js.map +1 -1
  146. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +3 -2
  147. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  148. package/dist/elements/Nav/index.css +2 -0
  149. package/dist/elements/PageControls/index.css +1 -0
  150. package/dist/elements/PillSelector/index.css +1 -0
  151. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  152. package/dist/elements/Popup/index.js +1 -1
  153. package/dist/elements/Popup/index.js.map +1 -1
  154. package/dist/elements/PreviewSizes/index.css +2 -0
  155. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  156. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  157. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  158. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  159. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  160. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  161. package/dist/elements/PublishButton/index.css +1 -0
  162. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  163. package/dist/elements/PublishButton/index.js +16 -31
  164. package/dist/elements/PublishButton/index.js.map +1 -1
  165. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  166. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  167. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  168. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  169. package/dist/elements/QueryPresets/QueryPresetBar/index.js +15 -4
  170. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  171. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  172. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  173. package/dist/elements/RelationshipTable/index.js +5 -2
  174. package/dist/elements/RelationshipTable/index.js.map +1 -1
  175. package/dist/elements/RenderTitle/index.css +1 -0
  176. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  177. package/dist/elements/RestoreMany/index.js +2 -3
  178. package/dist/elements/RestoreMany/index.js.map +1 -1
  179. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  180. package/dist/elements/SaveDraftButton/index.js +2 -3
  181. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  182. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  183. package/dist/elements/SortHeader/index.js +29 -26
  184. package/dist/elements/SortHeader/index.js.map +1 -1
  185. package/dist/elements/Status/index.d.ts.map +1 -1
  186. package/dist/elements/Status/index.js +2 -3
  187. package/dist/elements/Status/index.js.map +1 -1
  188. package/dist/elements/StepNav/index.css +64 -14
  189. package/dist/elements/StepNav/index.d.ts.map +1 -1
  190. package/dist/elements/StepNav/index.js +143 -69
  191. package/dist/elements/StepNav/index.js.map +1 -1
  192. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  193. package/dist/elements/Table/DefaultCell/index.js +3 -11
  194. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  195. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  196. package/dist/elements/Table/OrderableTable.js +2 -3
  197. package/dist/elements/Table/OrderableTable.js.map +1 -1
  198. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  199. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  200. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  201. package/dist/elements/Table/index.css +1 -0
  202. package/dist/elements/TableSection/index.css +1 -0
  203. package/dist/elements/Tabs/index.css +1 -0
  204. package/dist/elements/Thumbnail/index.css +1 -0
  205. package/dist/elements/TimezonePicker/index.css +1 -0
  206. package/dist/elements/Tooltip/index.css +7 -0
  207. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  208. package/dist/elements/UnpublishButton/index.js +3 -4
  209. package/dist/elements/UnpublishButton/index.js.map +1 -1
  210. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  211. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  212. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  213. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  214. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  215. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  216. package/dist/elements/Upload/index.css +39 -32
  217. package/dist/elements/Upload/index.d.ts.map +1 -1
  218. package/dist/elements/Upload/index.js +37 -99
  219. package/dist/elements/Upload/index.js.map +1 -1
  220. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  221. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  222. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  223. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  224. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  225. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  226. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  227. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  228. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  229. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  230. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  231. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  232. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  233. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  234. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  235. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  236. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  237. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  238. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  239. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  240. package/dist/elements/WhereBuilder/index.css +2 -0
  241. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  242. package/dist/elements/WhereBuilder/index.js +15 -4
  243. package/dist/elements/WhereBuilder/index.js.map +1 -1
  244. package/dist/exports/client/index.d.ts +4 -1
  245. package/dist/exports/client/index.d.ts.map +1 -1
  246. package/dist/exports/client/index.js +1 -1
  247. package/dist/exports/client/index.js.map +3 -3
  248. package/dist/exports/rsc/index.d.ts +2 -0
  249. package/dist/exports/rsc/index.d.ts.map +1 -1
  250. package/dist/exports/rsc/index.js +2 -0
  251. package/dist/exports/rsc/index.js.map +1 -1
  252. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  253. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  254. package/dist/fields/Array/ArrayRow.js +2 -0
  255. package/dist/fields/Array/ArrayRow.js.map +1 -1
  256. package/dist/fields/Array/index.css +1 -0
  257. package/dist/fields/Array/index.d.ts.map +1 -1
  258. package/dist/fields/Array/index.js +40 -13
  259. package/dist/fields/Array/index.js.map +1 -1
  260. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  261. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  262. package/dist/fields/Blocks/BlockRow.js +2 -0
  263. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  264. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  265. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  266. package/dist/fields/Blocks/RowActions.js +22 -19
  267. package/dist/fields/Blocks/RowActions.js.map +1 -1
  268. package/dist/fields/Blocks/index.css +1 -0
  269. package/dist/fields/Blocks/index.d.ts.map +1 -1
  270. package/dist/fields/Blocks/index.js +37 -10
  271. package/dist/fields/Blocks/index.js.map +1 -1
  272. package/dist/fields/Checkbox/index.css +8 -0
  273. package/dist/fields/FieldDescription/index.css +5 -0
  274. package/dist/fields/FieldLabel/index.css +8 -27
  275. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  276. package/dist/fields/FieldLabel/index.js +4 -5
  277. package/dist/fields/FieldLabel/index.js.map +1 -1
  278. package/dist/fields/Group/index.css +1 -0
  279. package/dist/fields/RadioGroup/Radio/index.css +1 -0
  280. package/dist/fields/RadioGroup/index.css +1 -1
  281. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  282. package/dist/fields/Relationship/Input.js +2 -3
  283. package/dist/fields/Relationship/Input.js.map +1 -1
  284. package/dist/fields/Row/index.css +2 -0
  285. package/dist/fields/Slug/index.d.ts.map +1 -1
  286. package/dist/fields/Slug/index.js +2 -3
  287. package/dist/fields/Slug/index.js.map +1 -1
  288. package/dist/fields/Tabs/index.css +1 -0
  289. package/dist/fields/Textarea/index.css +1 -1
  290. package/dist/fields/Upload/Input.d.ts.map +1 -1
  291. package/dist/fields/Upload/Input.js +46 -19
  292. package/dist/fields/Upload/Input.js.map +1 -1
  293. package/dist/fields/shared/index.d.ts +1 -1
  294. package/dist/fields/shared/index.d.ts.map +1 -1
  295. package/dist/fields/shared/index.js.map +1 -1
  296. package/dist/forms/Form/context.d.ts +3 -1
  297. package/dist/forms/Form/context.d.ts.map +1 -1
  298. package/dist/forms/Form/context.js +3 -1
  299. package/dist/forms/Form/context.js.map +1 -1
  300. package/dist/forms/Form/index.d.ts.map +1 -1
  301. package/dist/forms/Form/index.js +19 -8
  302. package/dist/forms/Form/index.js.map +1 -1
  303. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  304. package/dist/forms/NullifyField/index.js +2 -3
  305. package/dist/forms/NullifyField/index.js.map +1 -1
  306. package/dist/forms/RenderFields/index.css +1 -7
  307. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  308. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  309. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  310. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  311. package/dist/forms/fieldSchemasToFormState/renderField.js +3 -2
  312. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  313. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  314. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  315. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  316. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  317. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  318. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  319. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  320. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  321. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  322. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  323. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  324. package/dist/hooks/useControllableState.js +3 -3
  325. package/dist/hooks/useControllableState.js.map +1 -1
  326. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  327. package/dist/hooks/usePayloadAPI.js +2 -3
  328. package/dist/hooks/usePayloadAPI.js.map +1 -1
  329. package/dist/icons/Edit/index.d.ts +0 -1
  330. package/dist/icons/Edit/index.d.ts.map +1 -1
  331. package/dist/icons/Edit/index.js +4 -4
  332. package/dist/icons/Edit/index.js.map +1 -1
  333. package/dist/layouts/Root/index.d.ts.map +1 -1
  334. package/dist/layouts/Root/index.js +19 -5
  335. package/dist/layouts/Root/index.js.map +1 -1
  336. package/dist/providers/Actions/index.d.ts +1 -0
  337. package/dist/providers/Actions/index.d.ts.map +1 -1
  338. package/dist/providers/Actions/index.js +43 -11
  339. package/dist/providers/Actions/index.js.map +1 -1
  340. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  341. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  342. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  343. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  344. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  345. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  346. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  347. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  348. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  349. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  350. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  351. package/dist/providers/Auth/authSessionRequests.js +119 -0
  352. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  353. package/dist/providers/Auth/index.d.ts +2 -56
  354. package/dist/providers/Auth/index.d.ts.map +1 -1
  355. package/dist/providers/Auth/index.js +283 -135
  356. package/dist/providers/Auth/index.js.map +1 -1
  357. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  358. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  359. package/dist/providers/Auth/sessionActivity.js +49 -0
  360. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  361. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  362. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  363. package/dist/providers/Auth/sessionTiming.js +18 -0
  364. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  365. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  366. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  367. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  368. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  369. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  370. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  371. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  372. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  373. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  374. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  375. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  376. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  377. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  378. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  379. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  380. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  381. package/dist/providers/Auth/types.d.ts +65 -0
  382. package/dist/providers/Auth/types.d.ts.map +1 -0
  383. package/dist/providers/Auth/types.js +2 -0
  384. package/dist/providers/Auth/types.js.map +1 -0
  385. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  386. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  387. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  388. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  389. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  390. package/dist/providers/DocumentInfo/index.js +32 -22
  391. package/dist/providers/DocumentInfo/index.js.map +1 -1
  392. package/dist/providers/FormErrorHandler/index.d.ts +5 -1
  393. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
  394. package/dist/providers/FormErrorHandler/index.js.map +1 -1
  395. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  396. package/dist/providers/LivePreview/index.js +13 -6
  397. package/dist/providers/LivePreview/index.js.map +1 -1
  398. package/dist/providers/Locale/index.d.ts +1 -5
  399. package/dist/providers/Locale/index.d.ts.map +1 -1
  400. package/dist/providers/Locale/index.js +64 -138
  401. package/dist/providers/Locale/index.js.map +1 -1
  402. package/dist/providers/Root/index.d.ts +4 -1
  403. package/dist/providers/Root/index.d.ts.map +1 -1
  404. package/dist/providers/Root/index.js +25 -16
  405. package/dist/providers/Root/index.js.map +1 -1
  406. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  407. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  408. package/dist/providers/RouteTransition/index.d.ts +2 -2
  409. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  410. package/dist/providers/RouteTransition/index.js +10 -10
  411. package/dist/providers/RouteTransition/index.js.map +1 -1
  412. package/dist/providers/Selection/index.d.ts.map +1 -1
  413. package/dist/providers/Selection/index.js +2 -3
  414. package/dist/providers/Selection/index.js.map +1 -1
  415. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  416. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  417. package/dist/providers/ServerFunctions/index.js +15 -0
  418. package/dist/providers/ServerFunctions/index.js.map +1 -1
  419. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  420. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  421. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  422. package/dist/providers/Theme/index.d.ts +17 -1
  423. package/dist/providers/Theme/index.d.ts.map +1 -1
  424. package/dist/providers/Theme/index.js +253 -81
  425. package/dist/providers/Theme/index.js.map +1 -1
  426. package/dist/providers/Theme/shared.d.ts +8 -0
  427. package/dist/providers/Theme/shared.d.ts.map +1 -1
  428. package/dist/providers/Theme/shared.js +6 -0
  429. package/dist/providers/Theme/shared.js.map +1 -1
  430. package/dist/styles.css +182 -23
  431. package/dist/templates/Default/Wrapper/index.css +2 -0
  432. package/dist/templates/Default/index.css +1 -0
  433. package/dist/templates/Default/index.d.ts +1 -0
  434. package/dist/templates/Default/index.d.ts.map +1 -1
  435. package/dist/templates/Default/index.js +2 -0
  436. package/dist/templates/Default/index.js.map +1 -1
  437. package/dist/utilities/buildFormState.d.ts.map +1 -1
  438. package/dist/utilities/buildFormState.js +6 -2
  439. package/dist/utilities/buildFormState.js.map +1 -1
  440. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  441. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  442. package/dist/utilities/formatAbsoluteURL.js +18 -8
  443. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  444. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  445. package/dist/utilities/formatMetadata.js +0 -5
  446. package/dist/utilities/formatMetadata.js.map +1 -1
  447. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  448. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  449. package/dist/utilities/getFilesFromClipboard.js +49 -0
  450. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  451. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  452. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  453. package/dist/utilities/getHasScheduledPublish.js +2 -5
  454. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  455. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  456. package/dist/utilities/handleAuthRedirect.js +4 -1
  457. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  458. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  459. package/dist/utilities/handleServerFunctions.js +4 -2
  460. package/dist/utilities/handleServerFunctions.js.map +1 -1
  461. package/dist/utilities/initReq.d.ts.map +1 -1
  462. package/dist/utilities/initReq.js +40 -5
  463. package/dist/utilities/initReq.js.map +1 -1
  464. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  465. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  466. package/dist/utilities/isAbsoluteURL.js +15 -0
  467. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  468. package/dist/utilities/isHttpURL.d.ts +3 -0
  469. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  470. package/dist/utilities/isHttpURL.js +12 -0
  471. package/dist/utilities/isHttpURL.js.map +1 -0
  472. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  473. package/dist/utilities/isPathMatchingRoute.js +7 -5
  474. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  475. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  476. package/dist/utilities/isPublicAdminRoute.js +9 -6
  477. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  478. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  479. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  480. package/dist/utilities/schedulePublishHandler.js +72 -5
  481. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  482. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  483. package/dist/utilities/serverFunctionRegistry.js +2 -1
  484. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  485. package/dist/utilities/slugify.d.ts.map +1 -1
  486. package/dist/utilities/slugify.js +3 -0
  487. package/dist/utilities/slugify.js.map +1 -1
  488. package/dist/views/API/index.client.d.ts.map +1 -1
  489. package/dist/views/API/index.client.js +2 -3
  490. package/dist/views/API/index.client.js.map +1 -1
  491. package/dist/views/API/index.css +1 -0
  492. package/dist/views/Account/index.d.ts +1 -1
  493. package/dist/views/Account/index.d.ts.map +1 -1
  494. package/dist/views/Account/index.js +8 -5
  495. package/dist/views/Account/index.js.map +1 -1
  496. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  497. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  498. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  499. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  500. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  501. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  502. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  503. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  504. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  505. package/dist/views/Dashboard/Default/ModularDashboard/index.css +35 -140
  506. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  507. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  508. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  509. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  510. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  511. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  512. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  513. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -0
  514. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  515. package/dist/views/Dashboard/index.d.ts.map +1 -1
  516. package/dist/views/Dashboard/index.js +2 -3
  517. package/dist/views/Dashboard/index.js.map +1 -1
  518. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  519. package/dist/views/Document/handleServerFunction.js +2 -0
  520. package/dist/views/Document/handleServerFunction.js.map +1 -1
  521. package/dist/views/Document/index.d.ts +1 -1
  522. package/dist/views/Document/index.d.ts.map +1 -1
  523. package/dist/views/Document/index.js +10 -6
  524. package/dist/views/Document/index.js.map +1 -1
  525. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  526. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  527. package/dist/views/Document/renderDocumentSlots.js +7 -4
  528. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  529. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  530. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  531. package/dist/views/Edit/Auth/APIKey.js +233 -59
  532. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  533. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  534. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  535. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  536. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  537. package/dist/views/Edit/Auth/index.css +91 -0
  538. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  539. package/dist/views/Edit/Auth/index.js +10 -28
  540. package/dist/views/Edit/Auth/index.js.map +1 -1
  541. package/dist/views/Edit/Auth/types.d.ts +3 -1
  542. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  543. package/dist/views/Edit/Auth/types.js.map +1 -1
  544. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  545. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  546. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  547. package/dist/views/Edit/index.css +44 -0
  548. package/dist/views/Edit/index.d.ts.map +1 -1
  549. package/dist/views/Edit/index.js +16 -2
  550. package/dist/views/Edit/index.js.map +1 -1
  551. package/dist/views/Edit/useEditViewWidth.d.ts +8 -0
  552. package/dist/views/Edit/useEditViewWidth.d.ts.map +1 -0
  553. package/dist/views/Edit/useEditViewWidth.js +56 -0
  554. package/dist/views/Edit/useEditViewWidth.js.map +1 -0
  555. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  556. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  557. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  558. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  559. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  560. package/dist/views/ForgotPassword/index.js +2 -11
  561. package/dist/views/ForgotPassword/index.js.map +1 -1
  562. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  563. package/dist/views/HierarchyList/index.css +1 -0
  564. package/dist/views/List/ListHeader/index.css +1 -0
  565. package/dist/views/List/ListHeader/index.d.ts +1 -11
  566. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  567. package/dist/views/List/ListHeader/index.js +3 -9
  568. package/dist/views/List/ListHeader/index.js.map +1 -1
  569. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  570. package/dist/views/List/handleServerFunction.js +3 -1
  571. package/dist/views/List/handleServerFunction.js.map +1 -1
  572. package/dist/views/List/index.client.d.ts.map +1 -1
  573. package/dist/views/List/index.client.js +3 -16
  574. package/dist/views/List/index.client.js.map +1 -1
  575. package/dist/views/List/index.css +7 -0
  576. package/dist/views/List/index.d.ts.map +1 -1
  577. package/dist/views/List/index.js +2 -1
  578. package/dist/views/List/index.js.map +1 -1
  579. package/dist/views/NotFound/client.d.ts +2 -0
  580. package/dist/views/NotFound/client.d.ts.map +1 -0
  581. package/dist/views/NotFound/client.js +4 -0
  582. package/dist/views/NotFound/client.js.map +1 -0
  583. package/dist/views/NotFound/page.d.ts.map +1 -1
  584. package/dist/views/NotFound/page.js +4 -3
  585. package/dist/views/NotFound/page.js.map +1 -1
  586. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  587. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  588. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  589. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  590. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  591. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  592. package/dist/views/Root/index.d.ts.map +1 -1
  593. package/dist/views/Root/index.js +32 -22
  594. package/dist/views/Root/index.js.map +1 -1
  595. package/dist/views/Verify/index.d.ts +1 -1
  596. package/dist/views/Verify/index.d.ts.map +1 -1
  597. package/dist/views/Verify/index.js +4 -4
  598. package/dist/views/Verify/index.js.map +1 -1
  599. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  600. package/dist/views/Version/Default/SetStepNav.js +10 -13
  601. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  602. package/dist/views/Version/Default/index.css +2 -0
  603. package/dist/views/Version/Default/index.d.ts.map +1 -1
  604. package/dist/views/Version/Default/index.js +12 -13
  605. package/dist/views/Version/Default/index.js.map +1 -1
  606. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  607. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  608. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  609. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  610. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  611. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  612. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  613. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  614. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  615. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  616. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  617. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  618. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  619. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  620. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  621. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  622. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  623. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  624. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  625. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  626. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  627. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  628. package/dist/views/Version/Restore/index.js +9 -6
  629. package/dist/views/Version/Restore/index.js.map +1 -1
  630. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  631. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  632. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  633. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  634. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  635. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  636. package/dist/views/Versions/index.css +1 -0
  637. package/dist/widgets/CollectionCards/index.client.js +1 -1
  638. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  639. package/dist/widgets/CollectionCards/index.css +43 -33
  640. package/dist/widgets/CollectionCards/index.js +1 -1
  641. package/dist/widgets/CollectionCards/index.js.map +1 -1
  642. package/dist/widgets/RecentlyViewed/DocumentActivity/index.css +193 -0
  643. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts +5 -0
  644. package/dist/widgets/RecentlyViewed/DocumentActivity/index.d.ts.map +1 -0
  645. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js +225 -0
  646. package/dist/widgets/RecentlyViewed/DocumentActivity/index.js.map +1 -0
  647. package/dist/widgets/RecentlyViewed/DocumentItem/index.css +181 -0
  648. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts +11 -0
  649. package/dist/widgets/RecentlyViewed/DocumentItem/index.d.ts.map +1 -0
  650. package/dist/widgets/RecentlyViewed/DocumentItem/index.js +104 -0
  651. package/dist/widgets/RecentlyViewed/DocumentItem/index.js.map +1 -0
  652. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts +10 -0
  653. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.d.ts.map +1 -0
  654. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js +85 -0
  655. package/dist/widgets/RecentlyViewed/getDocumentThumbnail.js.map +1 -0
  656. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts +7 -0
  657. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.d.ts.map +1 -0
  658. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js +206 -0
  659. package/dist/widgets/RecentlyViewed/getDocumentWidgetData.js.map +1 -0
  660. package/dist/widgets/RecentlyViewed/index.d.ts +3 -5
  661. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -1
  662. package/dist/widgets/RecentlyViewed/index.js +10 -140
  663. package/dist/widgets/RecentlyViewed/index.js.map +1 -1
  664. package/dist/widgets/RecentlyViewed/shared.d.ts +38 -0
  665. package/dist/widgets/RecentlyViewed/shared.d.ts.map +1 -0
  666. package/dist/widgets/RecentlyViewed/shared.js +70 -0
  667. package/dist/widgets/RecentlyViewed/shared.js.map +1 -0
  668. package/dist/widgets/UploadDropzone/index.client.d.ts +7 -0
  669. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -0
  670. package/dist/widgets/UploadDropzone/index.client.js +134 -0
  671. package/dist/widgets/UploadDropzone/index.client.js.map +1 -0
  672. package/dist/widgets/UploadDropzone/index.css +50 -0
  673. package/dist/widgets/UploadDropzone/index.d.ts +8 -0
  674. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -0
  675. package/dist/widgets/UploadDropzone/index.js +29 -0
  676. package/dist/widgets/UploadDropzone/index.js.map +1 -0
  677. package/dist/widgets/Welcome/index.css +13 -0
  678. package/dist/widgets/Welcome/index.d.ts +5 -0
  679. package/dist/widgets/Welcome/index.d.ts.map +1 -0
  680. package/dist/widgets/Welcome/index.js +26 -0
  681. package/dist/widgets/Welcome/index.js.map +1 -0
  682. package/dist/widgets/WidgetIcon/assets/images.svg +3 -0
  683. package/dist/widgets/WidgetIcon/assets/pin-solid.svg +3 -0
  684. package/dist/widgets/WidgetIcon/assets/pin.svg +3 -0
  685. package/dist/widgets/WidgetIcon/assets/table.svg +3 -0
  686. package/dist/widgets/WidgetIcon/index.css +23 -0
  687. package/dist/widgets/WidgetIcon/index.d.ts +6 -0
  688. package/dist/widgets/WidgetIcon/index.d.ts.map +1 -0
  689. package/dist/widgets/WidgetIcon/index.js +10 -0
  690. package/dist/widgets/WidgetIcon/index.js.map +1 -0
  691. package/package.json +12 -6
  692. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +0 -120
  693. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +0 -1
  694. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +0 -144
  695. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +0 -1
  696. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  697. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  698. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  699. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  700. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  701. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  702. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  703. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  704. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +0 -143
  705. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +0 -1
  706. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  707. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  708. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  709. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  710. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  711. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  712. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  713. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  714. package/dist/layouts/Root/index.spec.js +0 -20
  715. package/dist/layouts/Root/index.spec.js.map +0 -1
  716. package/dist/providers/TableColumns/buildColumnState/index.spec.js +0 -40
  717. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +0 -1
  718. package/dist/utilities/appendCacheTag.spec.js +0 -34
  719. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  720. package/dist/utilities/formatMetadata.spec.js +0 -83
  721. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  722. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  723. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  724. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  725. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  726. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  727. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  728. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  729. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  730. package/dist/utilities/recentlyViewed.spec.js +0 -92
  731. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  732. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  733. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  734. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  735. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  736. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  737. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  738. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  739. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  740. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  741. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","formatAdminURL","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","TextInput","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","UploadControlsProvider","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","pasteURLDrawerSlug","UploadFromURLModal","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","name","UploadActions","t0","$","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","openModal","t1","t2","Symbol","for","bb0","fileTypeIsAdjustable","length","_jsxs","className","children","_jsx","buttonStyle","margin","onClick","size","map","_temp","Upload","props","resetUploadEdits","updateUploadEdits","uploadEdits","UploadComponent","collectionSlug","initialState","onChange","uploadConfig","UploadControls","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","config","routes","api","closeModal","setModified","id","data","docPermissions","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","fileUrl","setFileUrl","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","file","isNewFile","File","URL","createObjectURL","renameFile","fileToChange","newName","newFile","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","isValidUrl","Boolean","canParse","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","rawSegment","split","pop","fileName","decodeURIComponent","_clientError","error","encodeURIComponent","serverResponse","apiRoute","_serverError","startsWith","revokeObjectURL","canRemoveUpload","update","hasImageSizes","imageSizes","hasResizeOptions","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","handleControlFileUrl","handleControlFile","drawers","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","slug","title","label","doc","filter","message","customUploadActions","handleRemove","hideRemoveFile","hideFileInputOnCreate","current","click","accept","hidden","ref","icon","round","tooltip","CustomAction","i"],"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL, isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider, useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport './index.css'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport { pasteURLDrawerSlug, UploadFromURLModal } from './UploadFromURLModal/index.js'\n\nexport { pasteURLDrawerSlug }\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__previewSizes`}\n margin={false}\n onClick={() => {\n openModal(sizePreviewSlug)\n }}\n size=\"medium\"\n >\n {t('upload:previewSizes')}\n </Button>\n )}\n {enableAdjustments && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__edit`}\n margin={false}\n onClick={() => {\n openModal(editDrawerSlug)\n }}\n size=\"medium\"\n >\n {t('upload:editImage')}\n </Button>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n return (\n <UploadControlsProvider>\n <UploadComponent\n {...props}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={uploadEdits}\n />\n </UploadControlsProvider>\n )\n}\n\ntype UploadComponentProps = {\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadEdits?: UploadEdits\n} & UploadProps\n\nconst UploadComponent: React.FC<UploadComponentProps> = (props) => {\n const {\n collectionSlug,\n customActions,\n initialState,\n onChange,\n resetUploadEdits,\n updateUploadEdits,\n uploadConfig,\n UploadControls,\n uploadEdits,\n } = props\n\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const { setModified } = useForm()\n const { id, data, docPermissions, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n\n setValue(file)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(file)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange({ file: fileToUpload })\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const isValidUrl = Boolean(fileUrl && URL.canParse(fileUrl))\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || !URL.canParse(fileUrl) || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const rawSegment = fileUrl.split('/').pop() || ''\n const fileName = uploadControlFileName || decodeURIComponent(rawSegment.split('?')[0])\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL: `/${string}` = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(\n formatAdminURL({\n apiRoute: api,\n path: pasteURL,\n }),\n )\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const rawSegment = fileUrl.split('/').pop() || ''\n const fileName = decodeURIComponent(rawSegment.split('?')[0])\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n closeModal,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n return () => {\n if (fileSrc?.startsWith('blob:')) {\n URL.revokeObjectURL(fileSrc)\n }\n }\n }, [fileSrc])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload = docPermissions?.update\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n const drawers = (\n <React.Fragment>\n {(value || data?.filename) && (\n <EditDepthProvider>\n <EditUpload\n fileName={value?.name || data?.filename}\n fileSrc={data?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || data?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || data?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n {uploadConfig?.pasteURL !== false && (\n <UploadFromURLModal\n fileUrl={fileUrl}\n handleUrlSubmit={handleUrlSubmit}\n isValidUrl={isValidUrl}\n setFileUrl={setFileUrl}\n />\n )}\n </React.Fragment>\n )\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {data && data.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={data}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !data?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"medium\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n openModal(pasteURLDrawerSlug)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"medium\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n\n {UploadControls ? UploadControls : null}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {value && fileSrc && (\n <React.Fragment>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n <TextInput\n label={t('upload:fileName')}\n onChange={handleFileNameChange}\n path=\"filename\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && data?.filename && !removedFile}\n mimeType={value.type}\n />\n </div>\n </React.Fragment>\n )}\n </div>\n )}\n {drawers}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","isImage","React","useCallback","useEffect","useRef","useState","FieldError","fieldBaseClass","TextInput","useForm","useFormProcessing","useField","useDocumentInfo","EditDepthProvider","useTranslation","UploadControlsProvider","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","pasteURLDrawerSlug","UploadFromURLModal","usePasteFromClipboard","useUploadFromUrl","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","name","UploadActions","t0","$","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","openModal","t1","t2","Symbol","for","bb0","fileTypeIsAdjustable","length","_jsxs","className","children","Fragment","_jsx","buttonStyle","margin","onClick","size","map","_temp","Upload","props","resetUploadEdits","updateUploadEdits","uploadEdits","UploadComponent","collectionSlug","initialState","onChange","uploadConfig","UploadControls","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileUrl","setModified","data","docPermissions","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","inputRef","handleFileChange","file","isNewFile","File","URL","createObjectURL","renameFile","fileToChange","newName","newFile","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileFetchedFromUrl","fileUrl","handleUrlSubmit","isValidUrl","setFileUrl","onFileFetched","handlePasteFromClipboard","handleFileRemoval","onEditsSave","args","startsWith","revokeObjectURL","canRemoveUpload","update","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","handleControlFileUrl","handleControlFile","drawers","fileName","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","slug","title","label","doc","pasteURL","filter","message","customUploadActions","handleRemove","hideRemoveFile","hideFileInputOnCreate","current","click","accept","hidden","ref","icon","tooltip","round","CustomAction","i"],"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider, useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport './index.css'\nimport { EditUpload } from '../EditUpload/index.js'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport { pasteURLDrawerSlug, UploadFromURLModal } from './UploadFromURLModal/index.js'\nimport { usePasteFromClipboard } from './usePasteFromClipboard.js'\nimport { useUploadFromUrl } from './useUploadFromUrl.js'\n\nexport { pasteURLDrawerSlug }\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__previewSizes`}\n margin={false}\n onClick={() => {\n openModal(sizePreviewSlug)\n }}\n size=\"medium\"\n >\n {t('upload:previewSizes')}\n </Button>\n )}\n {enableAdjustments && (\n <Button\n buttonStyle=\"secondary\"\n className={`${baseClass}__edit`}\n margin={false}\n onClick={() => {\n openModal(editDrawerSlug)\n }}\n size=\"medium\"\n >\n {t('upload:editImage')}\n </Button>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n return (\n <UploadControlsProvider>\n <UploadComponent\n {...props}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={uploadEdits}\n />\n </UploadControlsProvider>\n )\n}\n\ntype UploadComponentProps = {\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadEdits?: UploadEdits\n} & UploadProps\n\nconst UploadComponent: React.FC<UploadComponentProps> = (props) => {\n const {\n collectionSlug,\n customActions,\n initialState,\n onChange,\n resetUploadEdits,\n updateUploadEdits,\n uploadConfig,\n UploadControls,\n uploadEdits,\n } = props\n\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileUrl,\n } = useUploadControls()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { data, docPermissions } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n\n setValue(file)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(file)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange({ file: fileToUpload })\n },\n [handleFileChange],\n )\n\n const handleFileFetchedFromUrl = useCallback(\n (file: File) => handleFileChange({ file }),\n [handleFileChange],\n )\n\n const { fileUrl, handleUrlSubmit, isValidUrl, setFileUrl } = useUploadFromUrl({\n collectionSlug,\n onFileFetched: handleFileFetchedFromUrl,\n uploadConfig,\n })\n\n const handlePasteFromClipboard = usePasteFromClipboard({\n handleFileSelection,\n handleUrlSubmit,\n setFileUrl,\n uploadConfig,\n })\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setFileUrl,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n return () => {\n if (fileSrc?.startsWith('blob:')) {\n URL.revokeObjectURL(fileSrc)\n }\n }\n }, [fileSrc])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload = docPermissions?.update\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit, setFileUrl])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n const drawers = (\n <React.Fragment>\n {(value || data?.filename) && (\n <EditDepthProvider>\n <EditUpload\n fileName={value?.name || data?.filename}\n fileSrc={data?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || data?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || data?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n {uploadConfig?.pasteURL !== false && (\n <UploadFromURLModal\n fileUrl={fileUrl}\n handleUrlSubmit={handleUrlSubmit}\n isValidUrl={isValidUrl}\n setFileUrl={setFileUrl}\n />\n )}\n </React.Fragment>\n )\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {data && data.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={data}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !data?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"medium\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__pasteFromClipboard`}\n icon=\"clipboard\"\n onClick={handlePasteFromClipboard}\n size=\"medium\"\n tooltip={t('upload:pasteURL')}\n />\n\n {UploadControls ? UploadControls : null}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {value && fileSrc && (\n <React.Fragment>\n <Button\n buttonStyle=\"ghost\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n <TextInput\n label={t('upload:fileName')}\n onChange={handleFileNameChange}\n path=\"filename\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && data?.filename && !removedFile}\n mimeType={value.type}\n />\n </div>\n </React.Fragment>\n )}\n </div>\n )}\n {drawers}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import type { SanitizedCollectionConfig } from 'payload';
2
+ type UsePasteFromClipboardArgs = {
3
+ readonly handleFileSelection: (files: FileList) => void;
4
+ readonly handleUrlSubmit: (urlOverride?: string) => Promise<boolean>;
5
+ readonly setFileUrl: (url: string) => void;
6
+ readonly uploadConfig: Pick<SanitizedCollectionConfig['upload'], 'mimeTypes' | 'pasteURL'>;
7
+ };
8
+ /**
9
+ * Shared by the `Upload` and `FileManager` elements: reads the clipboard and routes the result
10
+ * to file selection, URL fetching, or the paste-URL modal depending on what was found.
11
+ */
12
+ export declare const usePasteFromClipboard: ({ handleFileSelection, handleUrlSubmit, setFileUrl, uploadConfig, }: UsePasteFromClipboardArgs) => (() => Promise<void>);
13
+ export {};
14
+ //# sourceMappingURL=usePasteFromClipboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePasteFromClipboard.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/usePasteFromClipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAYxD,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IACvD,QAAQ,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpE,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,CAAA;CAC3F,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,wEAK/B,yBAAyB,KAAG,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAqElD,CAAA"}
@@ -0,0 +1,93 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { useModal } from '@faceless-ui/modal';
5
+ import { validateMimeType } from 'payload/shared';
6
+ import { useCallback } from 'react';
7
+ import { toast } from 'sonner';
8
+ import { useTranslation } from '../../providers/Translation/index.js';
9
+ import { useUploadControls } from '../../providers/UploadControls/index.js';
10
+ import { getFileOrUrlFromClipboard } from '../../utilities/getFilesFromClipboard.js';
11
+ import { pasteURLDrawerSlug } from './UploadFromURLModal/index.js';
12
+ /**
13
+ * Shared by the `Upload` and `FileManager` elements: reads the clipboard and routes the result
14
+ * to file selection, URL fetching, or the paste-URL modal depending on what was found.
15
+ */
16
+ export const usePasteFromClipboard = t0 => {
17
+ const $ = _c(10);
18
+ const {
19
+ handleFileSelection,
20
+ handleUrlSubmit,
21
+ setFileUrl,
22
+ uploadConfig
23
+ } = t0;
24
+ const {
25
+ openModal
26
+ } = useModal();
27
+ const {
28
+ t
29
+ } = useTranslation();
30
+ const {
31
+ setUploadControlFile,
32
+ setUploadControlFileName,
33
+ setUploadControlFileUrl
34
+ } = useUploadControls();
35
+ let t1;
36
+ if ($[0] !== handleFileSelection || $[1] !== handleUrlSubmit || $[2] !== openModal || $[3] !== setFileUrl || $[4] !== setUploadControlFile || $[5] !== setUploadControlFileName || $[6] !== setUploadControlFileUrl || $[7] !== t || $[8] !== uploadConfig) {
37
+ t1 = async () => {
38
+ let result = null;
39
+ let isClipboardAccessDenied = false;
40
+ ;
41
+ try {
42
+ result = await getFileOrUrlFromClipboard();
43
+ } catch (t2) {
44
+ const err = t2;
45
+ if (err instanceof DOMException && err.name === "NotAllowedError") {
46
+ isClipboardAccessDenied = true;
47
+ } else {
48
+ toast.error(t("error:unableToReadClipboard"));
49
+ return;
50
+ }
51
+ }
52
+ if (result?.type === "file") {
53
+ const [pastedFile] = result.files;
54
+ if (uploadConfig?.mimeTypes?.length && !validateMimeType(pastedFile.type, uploadConfig.mimeTypes)) {
55
+ toast.error(t("error:invalidFileType"));
56
+ return;
57
+ }
58
+ handleFileSelection(result.files);
59
+ return;
60
+ }
61
+ if (uploadConfig?.pasteURL === false) {
62
+ toast.error(isClipboardAccessDenied ? t("error:unableToReadClipboard") : t("error:noFileFoundInClipboard"));
63
+ return;
64
+ }
65
+ if (result?.type === "url") {
66
+ setFileUrl(result.url);
67
+ const didFetchSucceed = await handleUrlSubmit(result.url);
68
+ if (!didFetchSucceed) {
69
+ openModal(pasteURLDrawerSlug);
70
+ }
71
+ return;
72
+ }
73
+ openModal(pasteURLDrawerSlug);
74
+ setUploadControlFileUrl("");
75
+ setUploadControlFile(null);
76
+ setUploadControlFileName(null);
77
+ };
78
+ $[0] = handleFileSelection;
79
+ $[1] = handleUrlSubmit;
80
+ $[2] = openModal;
81
+ $[3] = setFileUrl;
82
+ $[4] = setUploadControlFile;
83
+ $[5] = setUploadControlFileName;
84
+ $[6] = setUploadControlFileUrl;
85
+ $[7] = t;
86
+ $[8] = uploadConfig;
87
+ $[9] = t1;
88
+ } else {
89
+ t1 = $[9];
90
+ }
91
+ return t1;
92
+ };
93
+ //# sourceMappingURL=usePasteFromClipboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePasteFromClipboard.js","names":["c","_c","useModal","validateMimeType","useCallback","toast","useTranslation","useUploadControls","getFileOrUrlFromClipboard","pasteURLDrawerSlug","usePasteFromClipboard","t0","$","handleFileSelection","handleUrlSubmit","setFileUrl","uploadConfig","openModal","t","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","t1","result","isClipboardAccessDenied","t2","err","DOMException","name","error","type","pastedFile","files","mimeTypes","length","pasteURL","url","didFetchSucceed"],"sources":["../../../src/elements/Upload/usePasteFromClipboard.ts"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadControls } from '../../providers/UploadControls/index.js'\nimport { getFileOrUrlFromClipboard } from '../../utilities/getFilesFromClipboard.js'\nimport { pasteURLDrawerSlug } from './UploadFromURLModal/index.js'\n\ntype UsePasteFromClipboardArgs = {\n readonly handleFileSelection: (files: FileList) => void\n readonly handleUrlSubmit: (urlOverride?: string) => Promise<boolean>\n readonly setFileUrl: (url: string) => void\n readonly uploadConfig: Pick<SanitizedCollectionConfig['upload'], 'mimeTypes' | 'pasteURL'>\n}\n\n/**\n * Shared by the `Upload` and `FileManager` elements: reads the clipboard and routes the result\n * to file selection, URL fetching, or the paste-URL modal depending on what was found.\n */\nexport const usePasteFromClipboard = ({\n handleFileSelection,\n handleUrlSubmit,\n setFileUrl,\n uploadConfig,\n}: UsePasteFromClipboardArgs): (() => Promise<void>) => {\n const { openModal } = useModal()\n const { t } = useTranslation()\n const { setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl } =\n useUploadControls()\n\n return useCallback(async () => {\n let result: Awaited<ReturnType<typeof getFileOrUrlFromClipboard>> = null\n let isClipboardAccessDenied = false\n\n try {\n result = await getFileOrUrlFromClipboard()\n } catch (err) {\n // Permission denied is the one clipboard failure that should still let the user paste a\n // URL manually when pasteURL is enabled - any other failure keeps the old error toast.\n if (err instanceof DOMException && err.name === 'NotAllowedError') {\n isClipboardAccessDenied = true\n } else {\n toast.error(t('error:unableToReadClipboard'))\n return\n }\n }\n\n if (result?.type === 'file') {\n const [pastedFile] = result.files\n if (\n uploadConfig?.mimeTypes?.length &&\n !validateMimeType(pastedFile.type, uploadConfig.mimeTypes)\n ) {\n toast.error(t('error:invalidFileType'))\n return\n }\n handleFileSelection(result.files)\n return\n }\n\n if (uploadConfig?.pasteURL === false) {\n toast.error(\n isClipboardAccessDenied\n ? t('error:unableToReadClipboard')\n : t('error:noFileFoundInClipboard'),\n )\n return\n }\n\n if (result?.type === 'url') {\n setFileUrl(result.url)\n const didFetchSucceed = await handleUrlSubmit(result.url)\n if (!didFetchSucceed) {\n openModal(pasteURLDrawerSlug)\n }\n return\n }\n\n openModal(pasteURLDrawerSlug)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }, [\n handleFileSelection,\n handleUrlSubmit,\n openModal,\n setFileUrl,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n t,\n uploadConfig,\n ])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,QAAQ,QAAQ;AACzB,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAC5B,SAASC,KAAK,QAAQ;AAEtB,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,kBAAkB,QAAQ;AASnC;;;;AAIA,OAAO,MAAMC,qBAAA,GAAwBC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAC;IAAAY,mBAAA;IAAAC,eAAA;IAAAC,UAAA;IAAAC;EAAA,IAAAL,EAKV;EAC1B;IAAAM;EAAA,IAAsBf,QAAA;EACtB;IAAAgB;EAAA,IAAcZ,cAAA;EACd;IAAAa,oBAAA;IAAAC,wBAAA;IAAAC;EAAA,IACEd,iBAAA;EAAA,IAAAe,EAAA;EAAA,IAAAV,CAAA,QAAAC,mBAAA,IAAAD,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAK,SAAA,IAAAL,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAO,oBAAA,IAAAP,CAAA,QAAAQ,wBAAA,IAAAR,CAAA,QAAAS,uBAAA,IAAAT,CAAA,QAAAM,CAAA,IAAAN,CAAA,QAAAI,YAAA;IAEiBM,EAAA,SAAAA,CAAA;MACjB,IAAAC,MAAA;MACA,IAAAC,uBAAA;MAA8B;MAAA;QAG5BD,MAAA,CAAAA,CAAA,CAAAA,KAAA,CAAeA,2BAAA;MAAf,SAAAE,EAAA;QACOC,KAAA,CAAAA,GAAA,CAAAA,CAAA,CAAAA,EAAA;QAAA,IAGHA,GAAA,YAAAC,YAAe,IAAgBD,GAAA,CAAAE,IAAA,KAAa;UAC9CJ,uBAAA,CAAAA,CAAA,CAAAA,IAAA;QAAA;UAEAnB,KAAA,CAAAwB,KAAA,CAAYX,CAAA,CAAE;UAAA;QAAA;MAAA;MAAA,IAKdK,MAAA,EAAAO,IAAA,KAAiB;QACnB,OAAAC,UAAA,IAAqBR,MAAA,CAAAS,KAAA;QAAY,IAE/BhB,YAAA,EAAAiB,SAAA,EAAAC,MAAA,KACC/B,gBAAA,CAAiB4B,UAAA,CAAAD,IAAA,EAAiBd,YAAA,CAAAiB,SAAsB;UAEzD5B,KAAA,CAAAwB,KAAA,CAAYX,CAAA,CAAE;UAAA;QAAA;QAGhBL,mBAAA,CAAoBU,MAAA,CAAAS,KAAY;QAAA;MAAA;MAAA,IAI9BhB,YAAA,EAAAmB,QAAA,UAA2B;QAC7B9B,KAAA,CAAAwB,KAAA,CACEL,uBAAA,GACIN,CAAA,CAAE,iCACFA,CAAA,CAAE;QAAA;MAAA;MAAA,IAKNK,MAAA,EAAAO,IAAA,KAAiB;QACnBf,UAAA,CAAWQ,MAAA,CAAAa,GAAU;QACrB,MAAAC,eAAA,SAA8BvB,eAAA,CAAgBS,MAAA,CAAAa,GAAU;QAAA,KACnDC,eAAA;UACHpB,SAAA,CAAAR,kBAAU;QAAA;QAAA;MAAA;MAKdQ,SAAA,CAAAR,kBAAU;MACVY,uBAAA,CAAwB;MACxBF,oBAAA,KAAqB;MACrBC,wBAAA,KAAyB;IAAA;IAC3BR,CAAA,MAAAC,mBAAA;IAAAD,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAK,SAAA;IAAAL,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAO,oBAAA;IAAAP,CAAA,MAAAQ,wBAAA;IAAAR,CAAA,MAAAS,uBAAA;IAAAT,CAAA,MAAAM,CAAA;IAAAN,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,OApDOU,EA8DN;AAAA,CACH","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ import type { SanitizedCollectionConfig } from 'payload';
2
+ type UseUploadFromUrlArgs = {
3
+ readonly collectionSlug: string;
4
+ readonly onFileFetched: (file: File) => void;
5
+ readonly uploadConfig: Pick<SanitizedCollectionConfig['upload'], 'mimeTypes' | 'pasteURL'>;
6
+ };
7
+ type UseUploadFromUrlResult = {
8
+ readonly fileUrl: string;
9
+ readonly handleUrlSubmit: (urlOverride?: string) => Promise<boolean>;
10
+ readonly isValidUrl: boolean;
11
+ readonly setFileUrl: (url: string) => void;
12
+ };
13
+ /**
14
+ * Shared by the `Upload` and `FileManager` elements to fetch a file from a pasted URL, first
15
+ * attempting a client-side fetch and falling back to a server-side proxy fetch when the
16
+ * collection's `pasteURL.allowList` is configured (needed to work around CORS-restricted URLs).
17
+ */
18
+ export declare const useUploadFromUrl: ({ collectionSlug, onFileFetched, uploadConfig, }: UseUploadFromUrlArgs) => UseUploadFromUrlResult;
19
+ export {};
20
+ //# sourceMappingURL=useUploadFromUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUploadFromUrl.d.ts","sourceRoot":"","sources":["../../../src/elements/Upload/useUploadFromUrl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAaxD,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,CAAA;CAC3F,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACpE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC3C,CAAA;AAaD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,qDAI1B,oBAAoB,KAAG,sBAyGzB,CAAA"}
@@ -0,0 +1,201 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { useModal } from '@faceless-ui/modal';
5
+ import { formatAdminURL, validateMimeType } from 'payload/shared';
6
+ import { useCallback, useState } from 'react';
7
+ import { toast } from 'sonner';
8
+ import { useConfig } from '../../providers/Config/index.js';
9
+ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
10
+ import { useTranslation } from '../../providers/Translation/index.js';
11
+ import { useUploadControls } from '../../providers/UploadControls/index.js';
12
+ import { pasteURLDrawerSlug } from './UploadFromURLModal/index.js';
13
+ const getFileNameFromUrl = ({
14
+ overrideFileName,
15
+ url
16
+ }) => {
17
+ const rawSegment = url.split('/').pop() || '';
18
+ return overrideFileName || decodeURIComponent(rawSegment.split('?')[0]);
19
+ };
20
+ /**
21
+ * Shared by the `Upload` and `FileManager` elements to fetch a file from a pasted URL, first
22
+ * attempting a client-side fetch and falling back to a server-side proxy fetch when the
23
+ * collection's `pasteURL.allowList` is configured (needed to work around CORS-restricted URLs).
24
+ */
25
+ export const useUploadFromUrl = t0 => {
26
+ const $ = _c(28);
27
+ const {
28
+ collectionSlug,
29
+ onFileFetched,
30
+ uploadConfig
31
+ } = t0;
32
+ const {
33
+ config: t1
34
+ } = useConfig();
35
+ const {
36
+ routes: t2
37
+ } = t1;
38
+ const {
39
+ api
40
+ } = t2;
41
+ const {
42
+ closeModal
43
+ } = useModal();
44
+ const {
45
+ id,
46
+ setUploadStatus
47
+ } = useDocumentInfo();
48
+ const {
49
+ t
50
+ } = useTranslation();
51
+ const {
52
+ uploadControlFileName
53
+ } = useUploadControls();
54
+ const [fileUrl, setFileUrl] = useState("");
55
+ let t3;
56
+ if ($[0] !== fileUrl) {
57
+ t3 = fileUrl && URL.canParse(fileUrl);
58
+ $[0] = fileUrl;
59
+ $[1] = t3;
60
+ } else {
61
+ t3 = $[1];
62
+ }
63
+ const isValidUrl = Boolean(t3);
64
+ const useServerSideFetch = typeof uploadConfig?.pasteURL === "object" && uploadConfig.pasteURL.allowList?.length > 0;
65
+ let t4;
66
+ if ($[2] !== closeModal || $[3] !== onFileFetched || $[4] !== setUploadStatus || $[5] !== t || $[6] !== uploadConfig || $[7] !== uploadControlFileName) {
67
+ t4 = t5 => {
68
+ const {
69
+ blob,
70
+ url
71
+ } = t5;
72
+ if (uploadConfig?.mimeTypes?.length && !validateMimeType(blob.type, uploadConfig.mimeTypes)) {
73
+ toast.error(t("error:invalidFileType"));
74
+ setUploadStatus("failed");
75
+ return false;
76
+ }
77
+ const fileName = getFileNameFromUrl({
78
+ overrideFileName: uploadControlFileName,
79
+ url
80
+ });
81
+ onFileFetched(new File([blob], fileName, {
82
+ type: blob.type
83
+ }));
84
+ setUploadStatus("idle");
85
+ closeModal(pasteURLDrawerSlug);
86
+ setFileUrl("");
87
+ return true;
88
+ };
89
+ $[2] = closeModal;
90
+ $[3] = onFileFetched;
91
+ $[4] = setUploadStatus;
92
+ $[5] = t;
93
+ $[6] = uploadConfig;
94
+ $[7] = uploadControlFileName;
95
+ $[8] = t4;
96
+ } else {
97
+ t4 = $[8];
98
+ }
99
+ const acceptFetchedBlob = t4;
100
+ let t5;
101
+ if ($[9] !== acceptFetchedBlob) {
102
+ t5 = async url_0 => {
103
+ const response = await fetch(url_0);
104
+ if (!response.ok) {
105
+ throw new Error(`Fetch failed with status: ${response.status}`);
106
+ }
107
+ const blob_0 = await response.blob();
108
+ return acceptFetchedBlob({
109
+ blob: blob_0,
110
+ url: url_0
111
+ });
112
+ };
113
+ $[9] = acceptFetchedBlob;
114
+ $[10] = t5;
115
+ } else {
116
+ t5 = $[10];
117
+ }
118
+ const fetchFileFromClient = t5;
119
+ let t6;
120
+ if ($[11] !== acceptFetchedBlob || $[12] !== api || $[13] !== collectionSlug || $[14] !== id) {
121
+ t6 = async url_1 => {
122
+ const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : "?"}src=${encodeURIComponent(url_1)}`;
123
+ const response_0 = await fetch(formatAdminURL({
124
+ apiRoute: api,
125
+ path: pasteURL
126
+ }));
127
+ if (!response_0.ok) {
128
+ throw new Error(`Fetch failed with status: ${response_0.status}`);
129
+ }
130
+ const blob_1 = await response_0.blob();
131
+ return acceptFetchedBlob({
132
+ blob: blob_1,
133
+ url: url_1
134
+ });
135
+ };
136
+ $[11] = acceptFetchedBlob;
137
+ $[12] = api;
138
+ $[13] = collectionSlug;
139
+ $[14] = id;
140
+ $[15] = t6;
141
+ } else {
142
+ t6 = $[15];
143
+ }
144
+ const fetchFileFromServerProxy = t6;
145
+ let t7;
146
+ if ($[16] !== fetchFileFromClient || $[17] !== fetchFileFromServerProxy || $[18] !== fileUrl || $[19] !== setUploadStatus || $[20] !== t || $[21] !== uploadConfig?.pasteURL || $[22] !== useServerSideFetch) {
147
+ t7 = async urlOverride => {
148
+ const urlToFetch = urlOverride ?? fileUrl;
149
+ if (!urlToFetch || !URL.canParse(urlToFetch) || uploadConfig?.pasteURL === false) {
150
+ return false;
151
+ }
152
+ setUploadStatus("uploading");
153
+ ;
154
+ try {
155
+ return await fetchFileFromClient(urlToFetch);
156
+ } catch (t8) {
157
+ if (!useServerSideFetch) {
158
+ toast.error(t("error:fileFetchFailed"));
159
+ setUploadStatus("failed");
160
+ return false;
161
+ }
162
+ }
163
+ ;
164
+ try {
165
+ return await fetchFileFromServerProxy(urlToFetch);
166
+ } catch (t9) {
167
+ toast.error(t("error:urlNotAllowed"));
168
+ setUploadStatus("failed");
169
+ return false;
170
+ }
171
+ };
172
+ $[16] = fetchFileFromClient;
173
+ $[17] = fetchFileFromServerProxy;
174
+ $[18] = fileUrl;
175
+ $[19] = setUploadStatus;
176
+ $[20] = t;
177
+ $[21] = uploadConfig?.pasteURL;
178
+ $[22] = useServerSideFetch;
179
+ $[23] = t7;
180
+ } else {
181
+ t7 = $[23];
182
+ }
183
+ const handleUrlSubmit = t7;
184
+ let t8;
185
+ if ($[24] !== fileUrl || $[25] !== handleUrlSubmit || $[26] !== isValidUrl) {
186
+ t8 = {
187
+ fileUrl,
188
+ handleUrlSubmit,
189
+ isValidUrl,
190
+ setFileUrl
191
+ };
192
+ $[24] = fileUrl;
193
+ $[25] = handleUrlSubmit;
194
+ $[26] = isValidUrl;
195
+ $[27] = t8;
196
+ } else {
197
+ t8 = $[27];
198
+ }
199
+ return t8;
200
+ };
201
+ //# sourceMappingURL=useUploadFromUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUploadFromUrl.js","names":["c","_c","useModal","formatAdminURL","validateMimeType","useCallback","useState","toast","useConfig","useDocumentInfo","useTranslation","useUploadControls","pasteURLDrawerSlug","getFileNameFromUrl","overrideFileName","url","rawSegment","split","pop","decodeURIComponent","useUploadFromUrl","t0","$","collectionSlug","onFileFetched","uploadConfig","config","t1","routes","t2","api","closeModal","id","setUploadStatus","t","uploadControlFileName","fileUrl","setFileUrl","t3","URL","canParse","isValidUrl","Boolean","useServerSideFetch","pasteURL","allowList","length","t4","t5","blob","mimeTypes","type","error","fileName","File","acceptFetchedBlob","url_0","response","fetch","ok","Error","status","blob_0","fetchFileFromClient","t6","url_1","encodeURIComponent","response_0","apiRoute","path","blob_1","fetchFileFromServerProxy","t7","urlOverride","urlToFetch","t8","t9","handleUrlSubmit"],"sources":["../../../src/elements/Upload/useUploadFromUrl.ts"],"sourcesContent":["'use client'\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { formatAdminURL, validateMimeType } from 'payload/shared'\nimport { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadControls } from '../../providers/UploadControls/index.js'\nimport { pasteURLDrawerSlug } from './UploadFromURLModal/index.js'\n\ntype UseUploadFromUrlArgs = {\n readonly collectionSlug: string\n readonly onFileFetched: (file: File) => void\n readonly uploadConfig: Pick<SanitizedCollectionConfig['upload'], 'mimeTypes' | 'pasteURL'>\n}\n\ntype UseUploadFromUrlResult = {\n readonly fileUrl: string\n readonly handleUrlSubmit: (urlOverride?: string) => Promise<boolean>\n readonly isValidUrl: boolean\n readonly setFileUrl: (url: string) => void\n}\n\nconst getFileNameFromUrl = ({\n overrideFileName,\n url,\n}: {\n overrideFileName: null | string\n url: string\n}): string => {\n const rawSegment = url.split('/').pop() || ''\n return overrideFileName || decodeURIComponent(rawSegment.split('?')[0])\n}\n\n/**\n * Shared by the `Upload` and `FileManager` elements to fetch a file from a pasted URL, first\n * attempting a client-side fetch and falling back to a server-side proxy fetch when the\n * collection's `pasteURL.allowList` is configured (needed to work around CORS-restricted URLs).\n */\nexport const useUploadFromUrl = ({\n collectionSlug,\n onFileFetched,\n uploadConfig,\n}: UseUploadFromUrlArgs): UseUploadFromUrlResult => {\n const {\n config: {\n routes: { api },\n },\n } = useConfig()\n const { closeModal } = useModal()\n const { id, setUploadStatus } = useDocumentInfo()\n const { t } = useTranslation()\n const { uploadControlFileName } = useUploadControls()\n\n const [fileUrl, setFileUrl] = useState('')\n\n const isValidUrl = Boolean(fileUrl && URL.canParse(fileUrl))\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const acceptFetchedBlob = useCallback(\n ({ blob, url }: { blob: Blob; url: string }): boolean => {\n if (uploadConfig?.mimeTypes?.length && !validateMimeType(blob.type, uploadConfig.mimeTypes)) {\n toast.error(t('error:invalidFileType'))\n setUploadStatus('failed')\n return false\n }\n\n const fileName = getFileNameFromUrl({ overrideFileName: uploadControlFileName, url })\n onFileFetched(new File([blob], fileName, { type: blob.type }))\n setUploadStatus('idle')\n closeModal(pasteURLDrawerSlug)\n setFileUrl('')\n return true\n },\n [closeModal, onFileFetched, setUploadStatus, t, uploadConfig, uploadControlFileName],\n )\n\n const fetchFileFromClient = useCallback(\n async (url: string): Promise<boolean> => {\n const response = await fetch(url)\n\n if (!response.ok) {\n throw new Error(`Fetch failed with status: ${response.status}`)\n }\n\n const blob = await response.blob()\n return acceptFetchedBlob({ blob, url })\n },\n [acceptFetchedBlob],\n )\n\n const fetchFileFromServerProxy = useCallback(\n async (url: string): Promise<boolean> => {\n const pasteURL: `/${string}` = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(url)}`\n const response = await fetch(formatAdminURL({ apiRoute: api, path: pasteURL }))\n\n if (!response.ok) {\n throw new Error(`Fetch failed with status: ${response.status}`)\n }\n\n const blob = await response.blob()\n return acceptFetchedBlob({ blob, url })\n },\n [acceptFetchedBlob, api, collectionSlug, id],\n )\n\n const handleUrlSubmit = useCallback(\n async (urlOverride?: string): Promise<boolean> => {\n const urlToFetch = urlOverride ?? fileUrl\n\n if (!urlToFetch || !URL.canParse(urlToFetch) || uploadConfig?.pasteURL === false) {\n return false\n }\n\n setUploadStatus('uploading')\n\n try {\n return await fetchFileFromClient(urlToFetch)\n } catch (_clientError) {\n if (!useServerSideFetch) {\n toast.error(t('error:fileFetchFailed'))\n setUploadStatus('failed')\n return false\n }\n }\n\n try {\n return await fetchFileFromServerProxy(urlToFetch)\n } catch (_serverError) {\n toast.error(t('error:urlNotAllowed'))\n setUploadStatus('failed')\n return false\n }\n },\n [\n fetchFileFromClient,\n fetchFileFromServerProxy,\n fileUrl,\n setUploadStatus,\n t,\n uploadConfig,\n useServerSideFetch,\n ],\n )\n\n return { fileUrl, handleUrlSubmit, isValidUrl, setFileUrl }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ @layer payload-default {
2
+ .upload-dropzone-content {
3
+ display: flex;
4
+ flex-direction: column;
5
+ align-items: center;
6
+ gap: var(--spacer-2);
7
+ width: 100%;
8
+ }
9
+
10
+ .upload-dropzone-content__buttons {
11
+ display: flex;
12
+ gap: var(--spacer-2);
13
+ align-items: center;
14
+ }
15
+
16
+ .upload-dropzone-content__or-text {
17
+ color: var(--color-text-tertiary);
18
+ text-transform: lowercase;
19
+ }
20
+
21
+ .upload-dropzone-content__drag-text {
22
+ flex-shrink: 0;
23
+ margin: 0;
24
+ text-transform: lowercase;
25
+ color: var(--color-text-tertiary);
26
+ }
27
+
28
+ .upload-dropzone-content__hidden-input {
29
+ display: none;
30
+ }
31
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './index.css';
3
+ export type UploadDropzoneContentProps = {
4
+ readonly acceptMimeTypes?: string;
5
+ readonly className?: string;
6
+ /** Extra controls rendered alongside the select/paste buttons, e.g. the single-upload field's custom `UploadControls`. */
7
+ readonly extraControls?: React.ReactNode;
8
+ /** Allows selecting more than one file at once, used by the bulk upload drawer. */
9
+ readonly multiple?: boolean;
10
+ readonly onFilesSelected: (files: FileList) => void;
11
+ readonly onPasteFromClipboard: () => void;
12
+ /** Additional className kept on the paste button for callers with existing selectors depending on it. */
13
+ readonly pasteButtonClassName?: string;
14
+ readonly pasteTooltip: string;
15
+ };
16
+ export declare function UploadDropzoneContent({ acceptMimeTypes, className, extraControls, multiple, onFilesSelected, onPasteFromClipboard, pasteButtonClassName, pasteTooltip, }: UploadDropzoneContentProps): React.JSX.Element;
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/UploadDropzoneContent/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,0HAA0H;IAC1H,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxC,mFAAmF;IACnF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAA;IACzC,yGAAyG;IACzG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,SAAS,EACT,aAAa,EACb,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,GACb,EAAE,0BAA0B,qBA0C5B"}