@payloadcms/ui 3.68.0-internal-debug.2eb12b9 → 3.68.0-internal-debug.dafc24d

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 (871) hide show
  1. package/dist/elements/AddNewRelation/index.js +83 -27
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AnimateHeight/index.js +13 -5
  4. package/dist/elements/AnimateHeight/index.js.map +1 -1
  5. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +2 -2
  6. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  7. package/dist/elements/AppHeader/index.js +107 -35
  8. package/dist/elements/AppHeader/index.js.map +1 -1
  9. package/dist/elements/ArrayAction/index.js +116 -36
  10. package/dist/elements/ArrayAction/index.js.map +1 -1
  11. package/dist/elements/Autosave/index.js +19 -6
  12. package/dist/elements/Autosave/index.js.map +1 -1
  13. package/dist/elements/Banner/index.js +25 -9
  14. package/dist/elements/Banner/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/ActionsBar/index.js +97 -33
  16. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.js +43 -15
  18. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/AddingFilesView/index.js +47 -15
  20. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +7 -3
  22. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +12 -4
  24. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  25. package/dist/elements/BulkUpload/EditForm/index.js +53 -17
  26. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +90 -30
  28. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  29. package/dist/elements/BulkUpload/EditMany/index.js +33 -13
  30. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  31. package/dist/elements/BulkUpload/FileSidebar/index.js +214 -70
  32. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  33. package/dist/elements/BulkUpload/FormsManager/index.js +21 -13
  34. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  35. package/dist/elements/BulkUpload/Header/index.js +19 -7
  36. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  37. package/dist/elements/BulkUpload/index.js +70 -19
  38. package/dist/elements/BulkUpload/index.js.map +1 -1
  39. package/dist/elements/Button/index.js +103 -35
  40. package/dist/elements/Button/index.js.map +1 -1
  41. package/dist/elements/Button/types.js +13 -1
  42. package/dist/elements/Button/types.js.map +1 -1
  43. package/dist/elements/Card/index.js +30 -10
  44. package/dist/elements/Card/index.js.map +1 -1
  45. package/dist/elements/CheckboxPopup/index.js +19 -7
  46. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  47. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +16 -4
  48. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  49. package/dist/elements/ClipboardAction/index.js +42 -14
  50. package/dist/elements/ClipboardAction/index.js.map +1 -1
  51. package/dist/elements/CloseModalButton/index.js +12 -4
  52. package/dist/elements/CloseModalButton/index.js.map +1 -1
  53. package/dist/elements/CodeEditor/CodeEditor.js +15 -7
  54. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  55. package/dist/elements/CodeEditor/index.js +18 -6
  56. package/dist/elements/CodeEditor/index.js.map +1 -1
  57. package/dist/elements/CodeEditor/types.js +3 -1
  58. package/dist/elements/CodeEditor/types.js.map +1 -1
  59. package/dist/elements/Collapsible/index.js +92 -29
  60. package/dist/elements/Collapsible/index.js.map +1 -1
  61. package/dist/elements/Collapsible/provider.js +7 -3
  62. package/dist/elements/Collapsible/provider.js.map +1 -1
  63. package/dist/elements/ColumnSelector/index.js +13 -5
  64. package/dist/elements/ColumnSelector/index.js.map +1 -1
  65. package/dist/elements/Combobox/index.js +43 -13
  66. package/dist/elements/Combobox/index.js.map +1 -1
  67. package/dist/elements/ConfirmationModal/index.js +49 -17
  68. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  69. package/dist/elements/CopyLocaleData/index.js +73 -25
  70. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  71. package/dist/elements/CopyToClipboard/index.js +18 -6
  72. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +42 -13
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/getFormattedLocale.js +1 -0
  76. package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
  77. package/dist/elements/DatePicker/index.js +19 -7
  78. package/dist/elements/DatePicker/index.js.map +1 -1
  79. package/dist/elements/DefaultListViewTabs/index.js +25 -9
  80. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  81. package/dist/elements/DeleteDocument/index.js +49 -17
  82. package/dist/elements/DeleteDocument/index.js.map +1 -1
  83. package/dist/elements/DeleteMany/index.js +98 -26
  84. package/dist/elements/DeleteMany/index.js.map +1 -1
  85. package/dist/elements/DocumentControls/index.js +304 -96
  86. package/dist/elements/DocumentControls/index.js.map +1 -1
  87. package/dist/elements/DocumentDrawer/DrawerContent.js +12 -4
  88. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  89. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +59 -19
  90. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  91. package/dist/elements/DocumentDrawer/Provider.js +12 -4
  92. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  93. package/dist/elements/DocumentDrawer/index.js +32 -10
  94. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  95. package/dist/elements/DocumentDrawer/types.js +11 -1
  96. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  97. package/dist/elements/DocumentFields/index.js +54 -18
  98. package/dist/elements/DocumentFields/index.js.map +1 -1
  99. package/dist/elements/DocumentLocked/index.js +73 -25
  100. package/dist/elements/DocumentLocked/index.js.map +1 -1
  101. package/dist/elements/DocumentTakeOver/index.js +49 -17
  102. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  103. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -3
  104. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  105. package/dist/elements/DraggableSortable/index.js +19 -7
  106. package/dist/elements/DraggableSortable/index.js.map +1 -1
  107. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +1 -0
  108. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  109. package/dist/elements/Drawer/index.js +80 -26
  110. package/dist/elements/Drawer/index.js.map +1 -1
  111. package/dist/elements/DrawerActionHeader/index.js +37 -13
  112. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  113. package/dist/elements/DrawerContentContainer/index.js +7 -3
  114. package/dist/elements/DrawerContentContainer/index.js.map +1 -1
  115. package/dist/elements/Dropzone/index.js +7 -3
  116. package/dist/elements/Dropzone/index.js.map +1 -1
  117. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +61 -21
  118. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  119. package/dist/elements/DuplicateDocument/index.js +25 -9
  120. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  121. package/dist/elements/EditMany/DrawerContent.js +146 -44
  122. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  123. package/dist/elements/EditMany/index.js +40 -14
  124. package/dist/elements/EditMany/index.js.map +1 -1
  125. package/dist/elements/EditUpload/index.js +232 -76
  126. package/dist/elements/EditUpload/index.js.map +1 -1
  127. package/dist/elements/EmailAndUsername/index.js +31 -11
  128. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  129. package/dist/elements/ErrorPill/index.js +19 -7
  130. package/dist/elements/ErrorPill/index.js.map +1 -1
  131. package/dist/elements/FieldDiffContainer/index.js +25 -9
  132. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  133. package/dist/elements/FieldDiffLabel/index.js +7 -3
  134. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  135. package/dist/elements/FieldSelect/index.js +19 -7
  136. package/dist/elements/FieldSelect/index.js.map +1 -1
  137. package/dist/elements/FileDetails/DraggableFileDetails/index.js +70 -22
  138. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  139. package/dist/elements/FileDetails/FileMeta/index.js +43 -15
  140. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  141. package/dist/elements/FileDetails/StaticFileDetails/index.js +43 -15
  142. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  143. package/dist/elements/FileDetails/index.js +13 -5
  144. package/dist/elements/FileDetails/index.js.map +1 -1
  145. package/dist/elements/FolderView/Breadcrumbs/index.js +31 -11
  146. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  147. package/dist/elements/FolderView/BrowseByFolderButton/index.js +12 -4
  148. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  149. package/dist/elements/FolderView/Cell/index.client.js +7 -3
  150. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  151. package/dist/elements/FolderView/Cell/index.server.js +7 -3
  152. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  153. package/dist/elements/FolderView/ColoredFolderIcon/index.js +7 -3
  154. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
  155. package/dist/elements/FolderView/CurrentFolderActions/index.js +68 -24
  156. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  157. package/dist/elements/FolderView/DragOverlaySelection/index.js +31 -11
  158. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  159. package/dist/elements/FolderView/DraggableTableRow/index.js +25 -9
  160. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  161. package/dist/elements/FolderView/DraggableWithClick/index.js +7 -3
  162. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  163. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +15 -7
  164. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  165. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +189 -62
  166. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  167. package/dist/elements/FolderView/FilterFolderTypePill/index.js +19 -7
  168. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
  169. package/dist/elements/FolderView/FolderField/index.server.js +7 -3
  170. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
  171. package/dist/elements/FolderView/FolderFileCard/index.js +104 -31
  172. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  173. package/dist/elements/FolderView/FolderFileTable/index.js +49 -17
  174. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  175. package/dist/elements/FolderView/FolderTypeField/index.js +7 -3
  176. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  177. package/dist/elements/FolderView/ItemCardGrid/index.js +21 -9
  178. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  179. package/dist/elements/FolderView/MoveDocToFolder/index.js +28 -13
  180. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  181. package/dist/elements/FolderView/SimpleTable/index.js +67 -23
  182. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
  183. package/dist/elements/FolderView/SortByPill/index.js +86 -30
  184. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  185. package/dist/elements/FolderView/ToggleViewButtons/index.js +25 -9
  186. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
  187. package/dist/elements/FullscreenModal/index.js +7 -3
  188. package/dist/elements/FullscreenModal/index.js.map +1 -1
  189. package/dist/elements/GenerateConfirmation/index.js +31 -11
  190. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  191. package/dist/elements/GroupByBuilder/index.js +43 -15
  192. package/dist/elements/GroupByBuilder/index.js.map +1 -1
  193. package/dist/elements/Gutter/index.js +7 -3
  194. package/dist/elements/Gutter/index.js.map +1 -1
  195. package/dist/elements/HTMLDiff/diff/index.js +24 -3
  196. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  197. package/dist/elements/HTMLDiff/index.js +13 -5
  198. package/dist/elements/HTMLDiff/index.js.map +1 -1
  199. package/dist/elements/Hamburger/index.js +35 -11
  200. package/dist/elements/Hamburger/index.js.map +1 -1
  201. package/dist/elements/HydrateAuthProvider/index.js +6 -1
  202. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  203. package/dist/elements/IDLabel/index.js +13 -5
  204. package/dist/elements/IDLabel/index.js.map +1 -1
  205. package/dist/elements/LeaveWithoutSaving/index.js +13 -5
  206. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  207. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +3 -1
  208. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  209. package/dist/elements/Link/index.js +12 -4
  210. package/dist/elements/Link/index.js.map +1 -1
  211. package/dist/elements/ListControls/index.js +126 -42
  212. package/dist/elements/ListControls/index.js.map +1 -1
  213. package/dist/elements/ListControls/types.js +7 -1
  214. package/dist/elements/ListControls/types.js.map +1 -1
  215. package/dist/elements/ListDrawer/DrawerContent.js +20 -8
  216. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  217. package/dist/elements/ListDrawer/Provider.js +15 -4
  218. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  219. package/dist/elements/ListDrawer/index.js +34 -11
  220. package/dist/elements/ListDrawer/index.js.map +1 -1
  221. package/dist/elements/ListDrawer/types.js +5 -1
  222. package/dist/elements/ListDrawer/types.js.map +1 -1
  223. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +19 -7
  224. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  225. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +13 -5
  226. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  227. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +12 -4
  228. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  229. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +7 -3
  230. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  231. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +48 -16
  232. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  233. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +37 -13
  234. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  235. package/dist/elements/ListHeader/index.js +43 -15
  236. package/dist/elements/ListHeader/index.js.map +1 -1
  237. package/dist/elements/ListSelection/index.js +66 -20
  238. package/dist/elements/ListSelection/index.js.map +1 -1
  239. package/dist/elements/LivePreview/Device/index.js +13 -5
  240. package/dist/elements/LivePreview/Device/index.js.map +1 -1
  241. package/dist/elements/LivePreview/DeviceContainer/index.js +7 -3
  242. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  243. package/dist/elements/LivePreview/IFrame/index.js +7 -3
  244. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  245. package/dist/elements/LivePreview/Toggler/index.js +13 -5
  246. package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
  247. package/dist/elements/LivePreview/Toolbar/Controls/index.js +137 -45
  248. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  249. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +7 -3
  250. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  251. package/dist/elements/LivePreview/Toolbar/index.js +48 -16
  252. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  253. package/dist/elements/LivePreview/ToolbarArea/index.js +7 -3
  254. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  255. package/dist/elements/LivePreview/Window/index.js +41 -13
  256. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  257. package/dist/elements/Loading/index.js +55 -19
  258. package/dist/elements/Loading/index.js.map +1 -1
  259. package/dist/elements/LoadingOverlay/index.js +13 -5
  260. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  261. package/dist/elements/Localizer/LocalizerLabel/index.js +31 -11
  262. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  263. package/dist/elements/Localizer/index.js +47 -15
  264. package/dist/elements/Localizer/index.js.map +1 -1
  265. package/dist/elements/Locked/index.js +18 -6
  266. package/dist/elements/Locked/index.js.map +1 -1
  267. package/dist/elements/Logout/index.js +17 -5
  268. package/dist/elements/Logout/index.js.map +1 -1
  269. package/dist/elements/Nav/NavToggler/index.js +7 -3
  270. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  271. package/dist/elements/Nav/context.js +7 -3
  272. package/dist/elements/Nav/context.js.map +1 -1
  273. package/dist/elements/NavGroup/index.js +49 -17
  274. package/dist/elements/NavGroup/index.js.map +1 -1
  275. package/dist/elements/NoListResults/index.js +19 -7
  276. package/dist/elements/NoListResults/index.js.map +1 -1
  277. package/dist/elements/PageControls/GroupByPageControls.js +7 -3
  278. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  279. package/dist/elements/PageControls/index.js +37 -13
  280. package/dist/elements/PageControls/index.js.map +1 -1
  281. package/dist/elements/Pagination/ClickableArrow/index.js +12 -4
  282. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  283. package/dist/elements/Pagination/Page/index.js +7 -3
  284. package/dist/elements/Pagination/Page/index.js.map +1 -1
  285. package/dist/elements/Pagination/Separator/index.js +7 -3
  286. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  287. package/dist/elements/Pagination/index.js +19 -7
  288. package/dist/elements/Pagination/index.js.map +1 -1
  289. package/dist/elements/PerPage/index.js +61 -21
  290. package/dist/elements/PerPage/index.js.map +1 -1
  291. package/dist/elements/PermanentlyDeleteButton/index.js +31 -11
  292. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  293. package/dist/elements/Pill/index.js +42 -15
  294. package/dist/elements/Pill/index.js.map +1 -1
  295. package/dist/elements/PillSelector/index.js +34 -10
  296. package/dist/elements/PillSelector/index.js.map +1 -1
  297. package/dist/elements/Popup/PopupButtonList/index.js +25 -9
  298. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  299. package/dist/elements/Popup/PopupDivider/index.js +7 -3
  300. package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
  301. package/dist/elements/Popup/PopupGroupLabel/index.js +7 -3
  302. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
  303. package/dist/elements/Popup/PopupTrigger/index.js +13 -5
  304. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  305. package/dist/elements/Popup/index.js +60 -20
  306. package/dist/elements/Popup/index.js.map +1 -1
  307. package/dist/elements/PreviewButton/index.js +12 -4
  308. package/dist/elements/PreviewButton/index.js.map +1 -1
  309. package/dist/elements/PreviewSizes/index.js +97 -33
  310. package/dist/elements/PreviewSizes/index.js.map +1 -1
  311. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +67 -23
  312. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  313. package/dist/elements/PublishButton/ScheduleDrawer/index.js +165 -53
  314. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  315. package/dist/elements/PublishButton/index.js +49 -17
  316. package/dist/elements/PublishButton/index.js.map +1 -1
  317. package/dist/elements/PublishMany/DrawerContent.js +7 -3
  318. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  319. package/dist/elements/PublishMany/index.js +28 -10
  320. package/dist/elements/PublishMany/index.js.map +1 -1
  321. package/dist/elements/QueryPresets/QueryPresetBar/index.js +109 -38
  322. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  323. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +42 -14
  324. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  325. package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -9
  326. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
  327. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +13 -5
  328. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  329. package/dist/elements/QueryPresets/cells/GroupByCell/index.js +13 -5
  330. package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
  331. package/dist/elements/QueryPresets/cells/WhereCell/index.js +7 -3
  332. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
  333. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +25 -9
  334. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  335. package/dist/elements/QueryPresets/fields/GroupByField/index.js +31 -11
  336. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  337. package/dist/elements/QueryPresets/fields/WhereField/index.js +79 -27
  338. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  339. package/dist/elements/ReactSelect/ClearIndicator/index.js +13 -5
  340. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  341. package/dist/elements/ReactSelect/Control/index.js +13 -5
  342. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  343. package/dist/elements/ReactSelect/DropdownIndicator/index.js +13 -5
  344. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  345. package/dist/elements/ReactSelect/Input/index.js +13 -5
  346. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  347. package/dist/elements/ReactSelect/MultiValue/index.js +13 -5
  348. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  349. package/dist/elements/ReactSelect/MultiValueLabel/index.js +13 -5
  350. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  351. package/dist/elements/ReactSelect/MultiValueRemove/index.js +19 -7
  352. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  353. package/dist/elements/ReactSelect/SingleValue/index.js +13 -5
  354. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  355. package/dist/elements/ReactSelect/ValueContainer/index.js +19 -7
  356. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  357. package/dist/elements/ReactSelect/index.js +45 -17
  358. package/dist/elements/ReactSelect/index.js.map +1 -1
  359. package/dist/elements/ReactSelect/types.js +8 -1
  360. package/dist/elements/ReactSelect/types.js.map +1 -1
  361. package/dist/elements/RelationshipTable/AddNewButton.js +37 -13
  362. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  363. package/dist/elements/RelationshipTable/Pagination.js +7 -3
  364. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  365. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +24 -8
  366. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  367. package/dist/elements/RelationshipTable/index.js +121 -41
  368. package/dist/elements/RelationshipTable/index.js.map +1 -1
  369. package/dist/elements/RenderComponent/index.js +19 -7
  370. package/dist/elements/RenderComponent/index.js.map +1 -1
  371. package/dist/elements/RenderIfInViewport/index.js +7 -3
  372. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  373. package/dist/elements/RenderServerComponent/index.js +13 -5
  374. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  375. package/dist/elements/RenderTitle/index.js +25 -9
  376. package/dist/elements/RenderTitle/index.js.map +1 -1
  377. package/dist/elements/RestoreButton/index.js +49 -17
  378. package/dist/elements/RestoreButton/index.js.map +1 -1
  379. package/dist/elements/RestoreMany/index.js +38 -13
  380. package/dist/elements/RestoreMany/index.js.map +1 -1
  381. package/dist/elements/SaveButton/index.js +8 -5
  382. package/dist/elements/SaveButton/index.js.map +1 -1
  383. package/dist/elements/SaveDraftButton/index.js +8 -5
  384. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  385. package/dist/elements/SearchBar/index.js +24 -8
  386. package/dist/elements/SearchBar/index.js.map +1 -1
  387. package/dist/elements/SearchFilter/index.js +13 -5
  388. package/dist/elements/SearchFilter/index.js.map +1 -1
  389. package/dist/elements/SearchFilter/types.js +19 -1
  390. package/dist/elements/SearchFilter/types.js.map +1 -1
  391. package/dist/elements/SelectAll/index.js +7 -3
  392. package/dist/elements/SelectAll/index.js.map +1 -1
  393. package/dist/elements/SelectMany/index.js +7 -3
  394. package/dist/elements/SelectMany/index.js.map +1 -1
  395. package/dist/elements/SelectRow/index.js +13 -5
  396. package/dist/elements/SelectRow/index.js.map +1 -1
  397. package/dist/elements/ShimmerEffect/index.js +31 -11
  398. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  399. package/dist/elements/SortColumn/index.js +48 -16
  400. package/dist/elements/SortColumn/index.js.map +1 -1
  401. package/dist/elements/SortComplex/index.js +55 -19
  402. package/dist/elements/SortComplex/index.js.map +1 -1
  403. package/dist/elements/SortHeader/index.js +24 -8
  404. package/dist/elements/SortHeader/index.js.map +1 -1
  405. package/dist/elements/SortRow/index.js +13 -5
  406. package/dist/elements/SortRow/index.js.map +1 -1
  407. package/dist/elements/Status/index.js +63 -23
  408. package/dist/elements/Status/index.js.map +1 -1
  409. package/dist/elements/StayLoggedIn/index.js +7 -3
  410. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  411. package/dist/elements/StepNav/context.js +7 -3
  412. package/dist/elements/StepNav/context.js.map +1 -1
  413. package/dist/elements/StepNav/index.js +109 -33
  414. package/dist/elements/StepNav/index.js.map +1 -1
  415. package/dist/elements/StickyToolbar/index.js +7 -3
  416. package/dist/elements/StickyToolbar/index.js.map +1 -1
  417. package/dist/elements/Table/DefaultCell/fields/Array/index.js +7 -3
  418. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  419. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +7 -3
  420. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  421. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +13 -5
  422. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  423. package/dist/elements/Table/DefaultCell/fields/Code/index.js +13 -5
  424. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  425. package/dist/elements/Table/DefaultCell/fields/Date/index.js +7 -3
  426. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  427. package/dist/elements/Table/DefaultCell/fields/File/index.js +21 -9
  428. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  429. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +13 -5
  430. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  431. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -7
  432. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  433. package/dist/elements/Table/DefaultCell/fields/Select/index.js +11 -7
  434. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  435. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +7 -3
  436. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  437. package/dist/elements/Table/DefaultCell/index.js +45 -16
  438. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  439. package/dist/elements/Table/OrderableRow.js +25 -9
  440. package/dist/elements/Table/OrderableRow.js.map +1 -1
  441. package/dist/elements/Table/OrderableRowDragPreview.js +19 -7
  442. package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
  443. package/dist/elements/Table/OrderableTable.js +79 -27
  444. package/dist/elements/Table/OrderableTable.js.map +1 -1
  445. package/dist/elements/Table/RelationshipProvider/index.js +10 -3
  446. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  447. package/dist/elements/Table/index.js +55 -19
  448. package/dist/elements/Table/index.js.map +1 -1
  449. package/dist/elements/Thumbnail/createThumbnail.js +12 -12
  450. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  451. package/dist/elements/Thumbnail/index.js +47 -15
  452. package/dist/elements/Thumbnail/index.js.map +1 -1
  453. package/dist/elements/ThumbnailCard/index.js +19 -7
  454. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  455. package/dist/elements/TimezonePicker/index.js +19 -7
  456. package/dist/elements/TimezonePicker/index.js.map +1 -1
  457. package/dist/elements/Toasts/fieldErrors.js +24 -8
  458. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  459. package/dist/elements/Tooltip/index.js +34 -12
  460. package/dist/elements/Tooltip/index.js.map +1 -1
  461. package/dist/elements/Translation/index.js +25 -9
  462. package/dist/elements/Translation/index.js.map +1 -1
  463. package/dist/elements/TrashBanner/index.js +18 -6
  464. package/dist/elements/TrashBanner/index.js.map +1 -1
  465. package/dist/elements/UnpublishMany/DrawerContent.js +7 -3
  466. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  467. package/dist/elements/UnpublishMany/index.js +28 -10
  468. package/dist/elements/UnpublishMany/index.js.map +1 -1
  469. package/dist/elements/Upload/index.js +235 -83
  470. package/dist/elements/Upload/index.js.map +1 -1
  471. package/dist/elements/ViewDescription/index.js +7 -3
  472. package/dist/elements/ViewDescription/index.js.map +1 -1
  473. package/dist/elements/WhereBuilder/Condition/Date/index.js +13 -5
  474. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  475. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +37 -13
  476. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  477. package/dist/elements/WhereBuilder/Condition/Number/index.js +13 -4
  478. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  479. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +23 -12
  480. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  481. package/dist/elements/WhereBuilder/Condition/Select/index.js +7 -3
  482. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  483. package/dist/elements/WhereBuilder/Condition/Text/index.js +13 -4
  484. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  485. package/dist/elements/WhereBuilder/Condition/index.js +73 -25
  486. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  487. package/dist/elements/WhereBuilder/index.js +87 -31
  488. package/dist/elements/WhereBuilder/index.js.map +1 -1
  489. package/dist/elements/WithServerSideProps/index.js +7 -3
  490. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  491. package/dist/elements/withMergedProps/index.js +7 -3
  492. package/dist/elements/withMergedProps/index.js.map +1 -1
  493. package/dist/exports/client/index.js +26 -2
  494. package/dist/exports/client/index.js.map +1 -1
  495. package/dist/exports/shared/index.js +2 -1
  496. package/dist/exports/shared/index.js.map +1 -1
  497. package/dist/fields/Array/ArrayRow.js +52 -16
  498. package/dist/fields/Array/ArrayRow.js.map +1 -1
  499. package/dist/fields/Array/index.js +169 -57
  500. package/dist/fields/Array/index.js.map +1 -1
  501. package/dist/fields/Blocks/BlockRow.js +72 -24
  502. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  503. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +18 -6
  504. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  505. package/dist/fields/Blocks/BlockSelector/index.js +74 -24
  506. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  507. package/dist/fields/Blocks/BlocksDrawer/index.js +13 -5
  508. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  509. package/dist/fields/Blocks/RowActions.js +19 -7
  510. package/dist/fields/Blocks/RowActions.js.map +1 -1
  511. package/dist/fields/Blocks/SectionTitle/index.js +13 -5
  512. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  513. package/dist/fields/Blocks/index.js +187 -63
  514. package/dist/fields/Blocks/index.js.map +1 -1
  515. package/dist/fields/Checkbox/Input.js +47 -15
  516. package/dist/fields/Checkbox/Input.js.map +1 -1
  517. package/dist/fields/Checkbox/index.js +37 -13
  518. package/dist/fields/Checkbox/index.js.map +1 -1
  519. package/dist/fields/Code/index.js +55 -19
  520. package/dist/fields/Code/index.js.map +1 -1
  521. package/dist/fields/Collapsible/index.js +61 -21
  522. package/dist/fields/Collapsible/index.js.map +1 -1
  523. package/dist/fields/ConfirmPassword/index.js +31 -11
  524. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  525. package/dist/fields/DateTime/index.js +61 -21
  526. package/dist/fields/DateTime/index.js.map +1 -1
  527. package/dist/fields/Email/index.js +55 -19
  528. package/dist/fields/Email/index.js.map +1 -1
  529. package/dist/fields/FieldDescription/index.js +7 -3
  530. package/dist/fields/FieldDescription/index.js.map +1 -1
  531. package/dist/fields/FieldError/index.js +7 -3
  532. package/dist/fields/FieldError/index.js.map +1 -1
  533. package/dist/fields/FieldLabel/index.js +19 -7
  534. package/dist/fields/FieldLabel/index.js.map +1 -1
  535. package/dist/fields/Group/index.js +78 -26
  536. package/dist/fields/Group/index.js.map +1 -1
  537. package/dist/fields/Group/provider.js +7 -3
  538. package/dist/fields/Group/provider.js.map +1 -1
  539. package/dist/fields/Hidden/index.js +7 -3
  540. package/dist/fields/Hidden/index.js.map +1 -1
  541. package/dist/fields/JSON/index.js +55 -19
  542. package/dist/fields/JSON/index.js.map +1 -1
  543. package/dist/fields/Join/index.js +49 -17
  544. package/dist/fields/Join/index.js.map +1 -1
  545. package/dist/fields/Number/index.js +71 -25
  546. package/dist/fields/Number/index.js.map +1 -1
  547. package/dist/fields/Password/index.js +7 -3
  548. package/dist/fields/Password/index.js.map +1 -1
  549. package/dist/fields/Password/input.js +61 -21
  550. package/dist/fields/Password/input.js.map +1 -1
  551. package/dist/fields/Password/types.js +11 -1
  552. package/dist/fields/Password/types.js.map +1 -1
  553. package/dist/fields/Point/index.js +97 -33
  554. package/dist/fields/Point/index.js.map +1 -1
  555. package/dist/fields/RadioGroup/Radio/index.js +31 -11
  556. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  557. package/dist/fields/RadioGroup/index.js +67 -23
  558. package/dist/fields/RadioGroup/index.js.map +1 -1
  559. package/dist/fields/Relationship/Input.js +84 -28
  560. package/dist/fields/Relationship/Input.js.map +1 -1
  561. package/dist/fields/Relationship/index.js +7 -3
  562. package/dist/fields/Relationship/index.js.map +1 -1
  563. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +47 -16
  564. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  565. package/dist/fields/Relationship/select-components/SingleValue/index.js +52 -17
  566. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  567. package/dist/fields/Row/index.js +19 -7
  568. package/dist/fields/Row/index.js.map +1 -1
  569. package/dist/fields/Row/provider.js +7 -3
  570. package/dist/fields/Row/provider.js.map +1 -1
  571. package/dist/fields/Select/Input.js +55 -19
  572. package/dist/fields/Select/Input.js.map +1 -1
  573. package/dist/fields/Select/index.js +7 -3
  574. package/dist/fields/Select/index.js.map +1 -1
  575. package/dist/fields/Slug/index.js +37 -13
  576. package/dist/fields/Slug/index.js.map +1 -1
  577. package/dist/fields/Tabs/Tab/index.js +25 -9
  578. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  579. package/dist/fields/Tabs/index.js +67 -23
  580. package/dist/fields/Tabs/index.js.map +1 -1
  581. package/dist/fields/Tabs/provider.js +7 -3
  582. package/dist/fields/Tabs/provider.js.map +1 -1
  583. package/dist/fields/Text/Input.js +60 -20
  584. package/dist/fields/Text/Input.js.map +1 -1
  585. package/dist/fields/Text/index.js +10 -5
  586. package/dist/fields/Text/index.js.map +1 -1
  587. package/dist/fields/Textarea/Input.js +61 -21
  588. package/dist/fields/Textarea/Input.js.map +1 -1
  589. package/dist/fields/Textarea/index.js +7 -3
  590. package/dist/fields/Textarea/index.js.map +1 -1
  591. package/dist/fields/Upload/HasMany/index.js +48 -16
  592. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  593. package/dist/fields/Upload/HasOne/index.js +13 -5
  594. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  595. package/dist/fields/Upload/Input.js +154 -56
  596. package/dist/fields/Upload/Input.js.map +1 -1
  597. package/dist/fields/Upload/RelationshipContent/index.js +73 -25
  598. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  599. package/dist/fields/Upload/UploadCard/index.js +7 -3
  600. package/dist/fields/Upload/UploadCard/index.js.map +1 -1
  601. package/dist/fields/Upload/index.js +13 -5
  602. package/dist/fields/Upload/index.js.map +1 -1
  603. package/dist/fields/Upload/types.js +1 -0
  604. package/dist/fields/Upload/types.js.map +1 -1
  605. package/dist/fields/shared/index.js +2 -3
  606. package/dist/fields/shared/index.js.map +1 -1
  607. package/dist/forms/Form/fieldReducer.js +2 -1
  608. package/dist/forms/Form/fieldReducer.js.map +1 -1
  609. package/dist/forms/Form/index.js +78 -31
  610. package/dist/forms/Form/index.js.map +1 -1
  611. package/dist/forms/Form/mergeServerFormState.js +11 -3
  612. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  613. package/dist/forms/Form/reduceToSerializableFields.js +2 -2
  614. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  615. package/dist/forms/Form/types.js +52 -1
  616. package/dist/forms/Form/types.js.map +1 -1
  617. package/dist/forms/NullifyField/index.js +15 -6
  618. package/dist/forms/NullifyField/index.js.map +1 -1
  619. package/dist/forms/RenderFields/RenderField.js +138 -46
  620. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  621. package/dist/forms/RenderFields/index.js +19 -7
  622. package/dist/forms/RenderFields/index.js.map +1 -1
  623. package/dist/forms/RowLabel/Context/index.js +7 -3
  624. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  625. package/dist/forms/RowLabel/index.js +19 -7
  626. package/dist/forms/RowLabel/index.js.map +1 -1
  627. package/dist/forms/Submit/index.js +13 -5
  628. package/dist/forms/Submit/index.js.map +1 -1
  629. package/dist/forms/WatchChildErrors/index.js +6 -1
  630. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  631. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +20 -0
  632. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  633. package/dist/forms/fieldSchemasToFormState/index.js +33 -1
  634. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  635. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +2 -2
  636. package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
  637. package/dist/forms/fieldSchemasToFormState/iterateFields.js +16 -0
  638. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  639. package/dist/forms/fieldSchemasToFormState/renderField.js +21 -9
  640. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  641. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -1
  642. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  643. package/dist/forms/fieldSchemasToFormState/types.js +5 -1
  644. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  645. package/dist/forms/useField/index.js +1 -0
  646. package/dist/forms/useField/index.js.map +1 -1
  647. package/dist/forms/useField/types.js +19 -1
  648. package/dist/forms/useField/types.js.map +1 -1
  649. package/dist/forms/withCondition/index.js +13 -5
  650. package/dist/forms/withCondition/index.js.map +1 -1
  651. package/dist/graphics/Account/Default/index.js +25 -9
  652. package/dist/graphics/Account/Default/index.js.map +1 -1
  653. package/dist/graphics/Account/Gravatar/index.js +7 -3
  654. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  655. package/dist/graphics/Account/index.js +12 -4
  656. package/dist/graphics/Account/index.js.map +1 -1
  657. package/dist/graphics/DefaultBlockImage/index.js +67 -23
  658. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  659. package/dist/graphics/File/index.js +19 -7
  660. package/dist/graphics/File/index.js.map +1 -1
  661. package/dist/graphics/Icon/index.js +19 -7
  662. package/dist/graphics/Icon/index.js.map +1 -1
  663. package/dist/graphics/Logo/index.js +85 -29
  664. package/dist/graphics/Logo/index.js.map +1 -1
  665. package/dist/hooks/useControllableState.js +9 -1
  666. package/dist/hooks/useControllableState.js.map +1 -1
  667. package/dist/hooks/useDelayedRender.js +3 -1
  668. package/dist/hooks/useDelayedRender.js.map +1 -1
  669. package/dist/hooks/useHotkey.js +2 -2
  670. package/dist/hooks/useHotkey.js.map +1 -1
  671. package/dist/hooks/usePayloadAPI.js +3 -4
  672. package/dist/hooks/usePayloadAPI.js.map +1 -1
  673. package/dist/hooks/usePopupWindow.js +2 -2
  674. package/dist/hooks/usePopupWindow.js.map +1 -1
  675. package/dist/hooks/useQueue.js +15 -7
  676. package/dist/hooks/useQueue.js.map +1 -1
  677. package/dist/hooks/useResize.js +4 -3
  678. package/dist/hooks/useResize.js.map +1 -1
  679. package/dist/icons/Calendar/index.js +13 -5
  680. package/dist/icons/Calendar/index.js.map +1 -1
  681. package/dist/icons/Check/index.js +13 -5
  682. package/dist/icons/Check/index.js.map +1 -1
  683. package/dist/icons/Chevron/index.js +13 -5
  684. package/dist/icons/Chevron/index.js.map +1 -1
  685. package/dist/icons/CloseMenu/index.js +13 -5
  686. package/dist/icons/CloseMenu/index.js.map +1 -1
  687. package/dist/icons/CodeBlock/index.js +13 -5
  688. package/dist/icons/CodeBlock/index.js.map +1 -1
  689. package/dist/icons/Copy/index.js +13 -5
  690. package/dist/icons/Copy/index.js.map +1 -1
  691. package/dist/icons/Document/index.js +13 -5
  692. package/dist/icons/Document/index.js.map +1 -1
  693. package/dist/icons/Dots/index.js +22 -6
  694. package/dist/icons/Dots/index.js.map +1 -1
  695. package/dist/icons/DragHandle/index.js +43 -15
  696. package/dist/icons/DragHandle/index.js.map +1 -1
  697. package/dist/icons/Edit/index.js +13 -5
  698. package/dist/icons/Edit/index.js.map +1 -1
  699. package/dist/icons/ExternalLink/index.js +13 -5
  700. package/dist/icons/ExternalLink/index.js.map +1 -1
  701. package/dist/icons/Eye/index.js +36 -12
  702. package/dist/icons/Eye/index.js.map +1 -1
  703. package/dist/icons/Folder/index.js +13 -5
  704. package/dist/icons/Folder/index.js.map +1 -1
  705. package/dist/icons/Gear/index.js +19 -7
  706. package/dist/icons/Gear/index.js.map +1 -1
  707. package/dist/icons/GridView/index.js +31 -11
  708. package/dist/icons/GridView/index.js.map +1 -1
  709. package/dist/icons/Line/index.js +13 -5
  710. package/dist/icons/Line/index.js.map +1 -1
  711. package/dist/icons/Link/index.js +13 -5
  712. package/dist/icons/Link/index.js.map +1 -1
  713. package/dist/icons/ListView/index.js +13 -5
  714. package/dist/icons/ListView/index.js.map +1 -1
  715. package/dist/icons/Lock/index.js +19 -7
  716. package/dist/icons/Lock/index.js.map +1 -1
  717. package/dist/icons/LogOut/index.js +13 -5
  718. package/dist/icons/LogOut/index.js.map +1 -1
  719. package/dist/icons/Menu/index.js +13 -5
  720. package/dist/icons/Menu/index.js.map +1 -1
  721. package/dist/icons/MinimizeMaximize/index.js +18 -6
  722. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  723. package/dist/icons/More/index.js +25 -9
  724. package/dist/icons/More/index.js.map +1 -1
  725. package/dist/icons/MoveFolder/index.js +37 -13
  726. package/dist/icons/MoveFolder/index.js.map +1 -1
  727. package/dist/icons/People/index.js +13 -5
  728. package/dist/icons/People/index.js.map +1 -1
  729. package/dist/icons/Plus/index.js +13 -5
  730. package/dist/icons/Plus/index.js.map +1 -1
  731. package/dist/icons/Search/index.js +13 -5
  732. package/dist/icons/Search/index.js.map +1 -1
  733. package/dist/icons/Sort/index.js +25 -9
  734. package/dist/icons/Sort/index.js.map +1 -1
  735. package/dist/icons/Swap/index.js +13 -5
  736. package/dist/icons/Swap/index.js.map +1 -1
  737. package/dist/icons/ThreeDots/index.js +22 -6
  738. package/dist/icons/ThreeDots/index.js.map +1 -1
  739. package/dist/icons/Trash/index.js +13 -5
  740. package/dist/icons/Trash/index.js.map +1 -1
  741. package/dist/icons/X/index.js +13 -5
  742. package/dist/icons/X/index.js.map +1 -1
  743. package/dist/providers/Actions/index.js +7 -3
  744. package/dist/providers/Actions/index.js.map +1 -1
  745. package/dist/providers/Auth/index.js +42 -6
  746. package/dist/providers/Auth/index.js.map +1 -1
  747. package/dist/providers/ClickOutside/index.js +7 -3
  748. package/dist/providers/ClickOutside/index.js.map +1 -1
  749. package/dist/providers/ClientFunction/index.js +13 -5
  750. package/dist/providers/ClientFunction/index.js.map +1 -1
  751. package/dist/providers/Config/index.js +23 -6
  752. package/dist/providers/Config/index.js.map +1 -1
  753. package/dist/providers/DocumentEvents/index.js +7 -3
  754. package/dist/providers/DocumentEvents/index.js.map +1 -1
  755. package/dist/providers/DocumentInfo/index.js +31 -16
  756. package/dist/providers/DocumentInfo/index.js.map +1 -1
  757. package/dist/providers/DocumentInfo/types.js +25 -1
  758. package/dist/providers/DocumentInfo/types.js.map +1 -1
  759. package/dist/providers/DocumentTitle/index.js +7 -3
  760. package/dist/providers/DocumentTitle/index.js.map +1 -1
  761. package/dist/providers/EditDepth/index.js +7 -3
  762. package/dist/providers/EditDepth/index.js.map +1 -1
  763. package/dist/providers/EntityVisibility/index.js +7 -3
  764. package/dist/providers/EntityVisibility/index.js.map +1 -1
  765. package/dist/providers/Folders/index.js +51 -5
  766. package/dist/providers/Folders/index.js.map +1 -1
  767. package/dist/providers/ListQuery/index.js +13 -5
  768. package/dist/providers/ListQuery/index.js.map +1 -1
  769. package/dist/providers/ListQuery/types.js +5 -1
  770. package/dist/providers/ListQuery/types.js.map +1 -1
  771. package/dist/providers/LivePreview/context.js +11 -1
  772. package/dist/providers/LivePreview/context.js.map +1 -1
  773. package/dist/providers/LivePreview/index.js +20 -9
  774. package/dist/providers/LivePreview/index.js.map +1 -1
  775. package/dist/providers/Locale/index.js +13 -5
  776. package/dist/providers/Locale/index.js.map +1 -1
  777. package/dist/providers/Operation/index.js +7 -3
  778. package/dist/providers/Operation/index.js.map +1 -1
  779. package/dist/providers/Params/index.js +7 -3
  780. package/dist/providers/Params/index.js.map +1 -1
  781. package/dist/providers/Preferences/index.js +14 -5
  782. package/dist/providers/Preferences/index.js.map +1 -1
  783. package/dist/providers/Root/index.js +154 -50
  784. package/dist/providers/Root/index.js.map +1 -1
  785. package/dist/providers/RouteCache/index.js +7 -3
  786. package/dist/providers/RouteCache/index.js.map +1 -1
  787. package/dist/providers/RouteTransition/ProgressBar/index.js +13 -5
  788. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  789. package/dist/providers/RouteTransition/index.js +16 -12
  790. package/dist/providers/RouteTransition/index.js.map +1 -1
  791. package/dist/providers/SearchParams/index.js +7 -3
  792. package/dist/providers/SearchParams/index.js.map +1 -1
  793. package/dist/providers/Selection/index.js +14 -5
  794. package/dist/providers/Selection/index.js.map +1 -1
  795. package/dist/providers/ServerFunctions/index.js +32 -25
  796. package/dist/providers/ServerFunctions/index.js.map +1 -1
  797. package/dist/providers/TableColumns/RenderDefaultCell/index.js +13 -5
  798. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  799. package/dist/providers/TableColumns/buildColumnState/index.js +17 -12
  800. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  801. package/dist/providers/TableColumns/buildColumnState/renderCell.js +17 -8
  802. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  803. package/dist/providers/TableColumns/index.js +7 -3
  804. package/dist/providers/TableColumns/index.js.map +1 -1
  805. package/dist/providers/TableColumns/types.js +17 -1
  806. package/dist/providers/TableColumns/types.js.map +1 -1
  807. package/dist/providers/Theme/index.js +7 -3
  808. package/dist/providers/Theme/index.js.map +1 -1
  809. package/dist/providers/ToastContainer/icons/Error.js +19 -7
  810. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  811. package/dist/providers/ToastContainer/icons/Info.js +19 -7
  812. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  813. package/dist/providers/ToastContainer/icons/Success.js +19 -7
  814. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  815. package/dist/providers/ToastContainer/icons/Warning.js +19 -7
  816. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  817. package/dist/providers/ToastContainer/index.js +27 -7
  818. package/dist/providers/ToastContainer/index.js.map +1 -1
  819. package/dist/providers/Translation/index.js +7 -3
  820. package/dist/providers/Translation/index.js.map +1 -1
  821. package/dist/providers/UploadControls/index.js +7 -3
  822. package/dist/providers/UploadControls/index.js.map +1 -1
  823. package/dist/providers/UploadEdits/index.js +7 -3
  824. package/dist/providers/UploadEdits/index.js.map +1 -1
  825. package/dist/providers/UploadHandlers/index.js +7 -3
  826. package/dist/providers/UploadHandlers/index.js.map +1 -1
  827. package/dist/utilities/abortAndIgnore.js +4 -6
  828. package/dist/utilities/abortAndIgnore.js.map +1 -1
  829. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +2 -2
  830. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  831. package/dist/utilities/combineFieldLabel.js +37 -13
  832. package/dist/utilities/combineFieldLabel.js.map +1 -1
  833. package/dist/utilities/copyDataFromLocale.js +6 -2
  834. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  835. package/dist/utilities/getDisplayedFieldValue.js +8 -8
  836. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  837. package/dist/utilities/getFolderResultsComponentAndData.js +31 -14
  838. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  839. package/dist/utilities/handleFormStateLocking.js +2 -2
  840. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  841. package/dist/utilities/hasSavePermission.js +5 -1
  842. package/dist/utilities/hasSavePermission.js.map +1 -1
  843. package/dist/utilities/isURLAllowed.js +6 -6
  844. package/dist/utilities/isURLAllowed.js.map +1 -1
  845. package/dist/utilities/renderTable.js +84 -27
  846. package/dist/utilities/renderTable.js.map +1 -1
  847. package/dist/utilities/schedulePublishHandler.js +3 -1
  848. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  849. package/dist/utilities/upsertPreferences.js +1 -0
  850. package/dist/utilities/upsertPreferences.js.map +1 -1
  851. package/dist/views/BrowseByFolder/index.js +168 -56
  852. package/dist/views/BrowseByFolder/index.js.map +1 -1
  853. package/dist/views/CollectionFolder/ListSelection/index.js +67 -23
  854. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  855. package/dist/views/CollectionFolder/index.js +147 -47
  856. package/dist/views/CollectionFolder/index.js.map +1 -1
  857. package/dist/views/Edit/Auth/APIKey.js +67 -23
  858. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  859. package/dist/views/Edit/Auth/index.js +91 -31
  860. package/dist/views/Edit/Auth/index.js.map +1 -1
  861. package/dist/views/Edit/index.js +124 -48
  862. package/dist/views/Edit/index.js.map +1 -1
  863. package/dist/views/List/GroupByHeader/index.js +19 -7
  864. package/dist/views/List/GroupByHeader/index.js.map +1 -1
  865. package/dist/views/List/ListHeader/index.js +68 -23
  866. package/dist/views/List/ListHeader/index.js.map +1 -1
  867. package/dist/views/List/ListSelection/index.js +49 -17
  868. package/dist/views/List/ListSelection/index.js.map +1 -1
  869. package/dist/views/List/index.js +162 -54
  870. package/dist/views/List/index.js.map +1 -1
  871. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ArrayFieldClientComponent,\n ArrayFieldClientProps,\n ArrayField as ArrayFieldType,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport const ArrayFieldComponent: ArrayFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n fields,\n label,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n forceRender = false,\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = minRowsProp ?? (required ? 1 : 0)\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldClientProps): Partial<ArrayFieldType['labels']> => {\n if ('labels' in p && p?.labels) {\n return p.labels\n }\n\n if ('labels' in p.field && p.field.labels) {\n return { plural: p.field.labels?.plural, singular: p.field.labels?.singular }\n }\n\n if ('label' in p.field && p.field.label) {\n return { plural: undefined, singular: p.field.label }\n }\n\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n (rowIndex: number) => {\n addFieldRow({\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({ path, rowIndex })\n },\n [removeFieldRow, path],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({\n moveFromIndex,\n moveToIndex,\n path,\n })\n },\n [path, moveFieldRow],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const formState = { ...getFields() }\n const clipboardResult = clipboardCopy({\n type,\n fields,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [fields, getFields, path, t, type],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const formState = { ...getFields() }\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaFields: fields,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [fields, getFields, path, replaceState, setModified, t],\n )\n\n const pasteField = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const getDataToCopy = useCallback(\n () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n }),\n [getFields, path],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = (readOnly || disabled) && rows.length === 0\n const showMinRows = (rows.length && rows.length < minRows) || (required && rows.length === 0)\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={styles}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows?.length > 0 && (\n <Fragment>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </Fragment>\n )}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n fields={fields}\n getDataToCopy={getDataToCopy}\n onPaste={pasteField}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {BeforeInput}\n {(rows?.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((rowData, i) => {\n const { id: rowID, isLoading } = rowData\n\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={rowID}\n key={rowID}\n >\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n addRow={addRow}\n copyRow={copyRow}\n CustomRowLabel={rows?.[i]?.customComponents?.RowLabel}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={fields}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={rowData}\n rowCount={rows?.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:rows' : 'general:row'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && !readOnly && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n disabled={disabled}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n void addRow(value || 0)\n }}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(ArrayFieldComponent)\n"],"names":["getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","DraggableSortableItem","DraggableSortable","ErrorPill","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","mergeFieldStyles","fieldBaseClass","ArrayRow","baseClass","ArrayFieldComponent","props","field","name","type","admin","className","description","isSortable","fields","label","localized","maxRows","minRows","minRowsProp","required","forceRender","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","submitted","code","locale","i18n","t","config","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","singular","undefined","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","addRow","rowIndex","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","formState","clipboardResult","getDataToCopy","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaFields","pasteField","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","styles","div","filter","Boolean","join","id","replace","style","CustomComponent","Fallback","header","h3","as","count","withMessage","ul","li","button","onClick","allowCopy","allowPaste","fieldValue","ids","map","row","onDragEnd","rowData","i","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","CustomRowLabel","RowLabel","errorCount","parentPath","rowCount","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ArrayFieldClientComponent,\n ArrayFieldClientProps,\n ArrayField as ArrayFieldType,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardPasteData } from '../../elements/ClipboardAction/types.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { clipboardCopy, clipboardPaste } from '../../elements/ClipboardAction/clipboardUtilities.js'\nimport { ClipboardAction } from '../../elements/ClipboardAction/index.js'\nimport {\n mergeFormStateFromClipboard,\n reduceFormStateByPath,\n} from '../../elements/ClipboardAction/mergeFormStateFromClipboard.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport const ArrayFieldComponent: ArrayFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n type,\n admin: { className, description, isSortable = true } = {},\n fields,\n label,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n forceRender = false,\n path: pathFromProps,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = minRowsProp ?? (required ? 1 : 0)\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const {\n addFieldRow,\n dispatchFields,\n getFields,\n moveFieldRow,\n removeFieldRow,\n replaceState,\n setModified,\n } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldClientProps): Partial<ArrayFieldType['labels']> => {\n if ('labels' in p && p?.labels) {\n return p.labels\n }\n\n if ('labels' in p.field && p.field.labels) {\n return { plural: p.field.labels?.plural, singular: p.field.labels?.singular }\n }\n\n if ('label' in p.field && p.field.label) {\n return { plural: undefined, singular: p.field.label }\n }\n\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n errorPaths,\n path,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n (rowIndex: number) => {\n addFieldRow({\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n removeFieldRow({ path, rowIndex })\n },\n [removeFieldRow, path],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n moveFieldRow({\n moveFromIndex,\n moveToIndex,\n path,\n })\n },\n [path, moveFieldRow],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const copyRow = useCallback(\n (rowIndex: number) => {\n const formState = { ...getFields() }\n const clipboardResult = clipboardCopy({\n type,\n fields,\n getDataToCopy: () =>\n reduceFormStateByPath({\n formState,\n path,\n rowIndex,\n }),\n path,\n rowIndex,\n t,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n },\n [fields, getFields, path, t, type],\n )\n\n const pasteRow = useCallback(\n (rowIndex: number) => {\n const formState = { ...getFields() }\n const pasteArgs = {\n onPaste: (dataFromClipboard: ClipboardPasteData) => {\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n rowIndex,\n })\n replaceState(newState)\n setModified(true)\n },\n path,\n schemaFields: fields,\n t,\n }\n\n const clipboardResult = clipboardPaste(pasteArgs)\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n },\n [fields, getFields, path, replaceState, setModified, t],\n )\n\n const pasteField = useCallback(\n (dataFromClipboard: ClipboardPasteData) => {\n const formState = { ...getFields() }\n const newState = mergeFormStateFromClipboard({\n dataFromClipboard,\n formState,\n path,\n })\n replaceState(newState)\n setModified(true)\n },\n [getFields, path, replaceState, setModified],\n )\n\n const getDataToCopy = useCallback(\n () =>\n reduceFormStateByPath({\n formState: { ...getFields() },\n path,\n }),\n [getFields, path],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = (readOnly || disabled) && rows.length === 0\n const showMinRows = (rows.length && rows.length < minRows) || (required && rows.length === 0)\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n style={styles}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel\n as=\"span\"\n label={label}\n localized={localized}\n path={path}\n required={required}\n />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n <ul className={`${baseClass}__header-actions`}>\n {rows?.length > 0 && (\n <Fragment>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </Fragment>\n )}\n <li>\n <ClipboardAction\n allowCopy={rows?.length > 0}\n allowPaste={!readOnly}\n className={`${baseClass}__header-action`}\n disabled={disabled}\n fields={fields}\n getDataToCopy={getDataToCopy}\n onPaste={pasteField}\n path={path}\n type={type}\n />\n </li>\n </ul>\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n <NullifyLocaleField\n fieldValue={value}\n localized={localized}\n path={path}\n readOnly={readOnly}\n />\n {BeforeInput}\n {(rows?.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((rowData, i) => {\n const { id: rowID, isLoading } = rowData\n\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem\n disabled={readOnly || disabled || !isSortable}\n id={rowID}\n key={rowID}\n >\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n addRow={addRow}\n copyRow={copyRow}\n CustomRowLabel={rows?.[i]?.customComponents?.RowLabel}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={fields}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n pasteRow={pasteRow}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly || disabled}\n removeRow={removeRow}\n row={rowData}\n rowCount={rows?.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:rows' : 'general:row'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && !readOnly && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n disabled={disabled}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => {\n void addRow(value || 0)\n }}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(ArrayFieldComponent)\n"],"names":["getTranslation","React","Fragment","useCallback","useMemo","toast","Banner","Button","clipboardCopy","clipboardPaste","ClipboardAction","mergeFormStateFromClipboard","reduceFormStateByPath","DraggableSortableItem","DraggableSortable","ErrorPill","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","mergeFieldStyles","fieldBaseClass","ArrayRow","baseClass","ArrayFieldComponent","props","field","name","type","admin","className","description","isSortable","fields","label","localized","maxRows","minRows","minRowsProp","required","forceRender","path","pathFromProps","permissions","readOnly","schemaPath","schemaPathFromProps","validate","setDocFieldPreferences","addFieldRow","dispatchFields","getFields","moveFieldRow","removeFieldRow","replaceState","setModified","submitted","code","locale","i18n","t","config","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","singular","undefined","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","errorPaths","rows","showError","valid","hasRows","potentiallyStalePath","addRow","rowIndex","setTimeout","duplicateRow","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","collapsedIDs","updatedRows","setCollapse","rowID","copyRow","formState","clipboardResult","getDataToCopy","error","success","pasteRow","pasteArgs","onPaste","dataFromClipboard","newState","schemaFields","pasteField","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","styles","div","filter","Boolean","join","id","replace","style","CustomComponent","Fallback","header","h3","as","count","withMessage","ul","li","button","onClick","allowCopy","allowPaste","fieldValue","ids","map","row","onDragEnd","rowData","i","isLoading","rowPath","rowErrorCount","errorPath","startsWith","draggableSortableItemProps","CustomRowLabel","RowLabel","errorCount","parentPath","rowCount","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV, Fragment as _Fragment } from "react/jsx-dev-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
4
  import React from 'react';
5
5
  import { Collapsible } from '../../elements/Collapsible/index.js';
@@ -54,14 +54,14 @@ export const BlockRow = ({ addRow, attributes, block, blocks, copyRow, duplicate
54
54
  }
55
55
  }
56
56
  }
57
- return /*#__PURE__*/ _jsx("div", {
57
+ return /*#__PURE__*/ _jsxDEV("div", {
58
58
  id: `${parentPath?.split('.').join('-')}-row-${rowIndex}`,
59
59
  ref: setNodeRef,
60
60
  style: {
61
61
  transform
62
62
  },
63
- children: /*#__PURE__*/ _jsx(Collapsible, {
64
- actions: !readOnly ? /*#__PURE__*/ _jsx(RowActions, {
63
+ children: /*#__PURE__*/ _jsxDEV(Collapsible, {
64
+ actions: !readOnly ? /*#__PURE__*/ _jsxDEV(RowActions, {
65
65
  addRow: addRow,
66
66
  blocks: blocks,
67
67
  blockType: row.blockType,
@@ -76,7 +76,11 @@ export const BlockRow = ({ addRow, attributes, block, blocks, copyRow, duplicate
76
76
  removeRow: removeRow,
77
77
  rowCount: rowCount,
78
78
  rowIndex: rowIndex
79
- }) : undefined,
79
+ }, void 0, false, {
80
+ fileName: "src/fields/Blocks/BlockRow.tsx",
81
+ lineNumber: 145,
82
+ columnNumber: 13
83
+ }, void 0) : undefined,
80
84
  className: classNames,
81
85
  collapsibleStyle: fieldHasErrors ? 'error' : 'default',
82
86
  dragHandleProps: isSortable ? {
@@ -84,45 +88,77 @@ export const BlockRow = ({ addRow, attributes, block, blocks, copyRow, duplicate
84
88
  attributes,
85
89
  listeners
86
90
  } : undefined,
87
- header: isLoading ? /*#__PURE__*/ _jsx(ShimmerEffect, {
91
+ header: isLoading ? /*#__PURE__*/ _jsxDEV(ShimmerEffect, {
88
92
  height: "1rem",
89
93
  width: "8rem"
90
- }) : /*#__PURE__*/ _jsxs("div", {
94
+ }, void 0, false, {
95
+ fileName: "src/fields/Blocks/BlockRow.tsx",
96
+ lineNumber: 176,
97
+ columnNumber: 13
98
+ }, void 0) : /*#__PURE__*/ _jsxDEV("div", {
91
99
  className: `${baseClass}__block-header`,
92
100
  children: [
93
- /*#__PURE__*/ _jsx(RowLabel, {
101
+ /*#__PURE__*/ _jsxDEV(RowLabel, {
94
102
  CustomComponent: Label,
95
- label: /*#__PURE__*/ _jsxs(_Fragment, {
103
+ label: /*#__PURE__*/ _jsxDEV(_Fragment, {
96
104
  children: [
97
- /*#__PURE__*/ _jsx("span", {
105
+ /*#__PURE__*/ _jsxDEV("span", {
98
106
  className: `${baseClass}__block-number`,
99
107
  children: String(rowIndex + 1).padStart(2, '0')
100
- }),
101
- /*#__PURE__*/ _jsx(Pill, {
108
+ }, void 0, false, {
109
+ fileName: "src/fields/Blocks/BlockRow.tsx",
110
+ lineNumber: 183,
111
+ columnNumber: 21
112
+ }, void 0),
113
+ /*#__PURE__*/ _jsxDEV(Pill, {
102
114
  className: `${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`,
103
115
  pillStyle: "white",
104
116
  size: "small",
105
117
  children: getTranslation(block.labels.singular, i18n)
106
- }),
107
- showBlockName && /*#__PURE__*/ _jsx(SectionTitle, {
118
+ }, void 0, false, {
119
+ fileName: "src/fields/Blocks/BlockRow.tsx",
120
+ lineNumber: 186,
121
+ columnNumber: 21
122
+ }, void 0),
123
+ showBlockName && /*#__PURE__*/ _jsxDEV(SectionTitle, {
108
124
  path: `${path}.blockName`,
109
125
  readOnly: readOnly
110
- })
126
+ }, void 0, false, {
127
+ fileName: "src/fields/Blocks/BlockRow.tsx",
128
+ lineNumber: 194,
129
+ columnNumber: 23
130
+ }, void 0)
111
131
  ]
112
- }),
132
+ }, void 0, true),
113
133
  path: path,
114
134
  rowNumber: rowIndex
115
- }),
116
- fieldHasErrors && /*#__PURE__*/ _jsx(ErrorPill, {
135
+ }, void 0, false, {
136
+ fileName: "src/fields/Blocks/BlockRow.tsx",
137
+ lineNumber: 179,
138
+ columnNumber: 15
139
+ }, void 0),
140
+ fieldHasErrors && /*#__PURE__*/ _jsxDEV(ErrorPill, {
117
141
  count: errorCount,
118
142
  i18n: i18n,
119
143
  withMessage: true
120
- })
144
+ }, void 0, false, {
145
+ fileName: "src/fields/Blocks/BlockRow.tsx",
146
+ lineNumber: 201,
147
+ columnNumber: 34
148
+ }, void 0)
121
149
  ]
122
- }),
150
+ }, void 0, true, {
151
+ fileName: "src/fields/Blocks/BlockRow.tsx",
152
+ lineNumber: 178,
153
+ columnNumber: 13
154
+ }, void 0),
123
155
  isCollapsed: row.collapsed,
124
156
  onToggle: (collapsed)=>setCollapse(row.id, collapsed),
125
- children: isLoading ? /*#__PURE__*/ _jsx(ShimmerEffect, {}) : /*#__PURE__*/ _jsx(RenderFields, {
157
+ children: isLoading ? /*#__PURE__*/ _jsxDEV(ShimmerEffect, {}, void 0, false, {
158
+ fileName: "src/fields/Blocks/BlockRow.tsx",
159
+ lineNumber: 210,
160
+ columnNumber: 11
161
+ }, this) : /*#__PURE__*/ _jsxDEV(RenderFields, {
126
162
  className: `${baseClass}__fields`,
127
163
  fields: fields,
128
164
  margins: "small",
@@ -131,9 +167,21 @@ export const BlockRow = ({ addRow, attributes, block, blocks, copyRow, duplicate
131
167
  parentSchemaPath: schemaPath,
132
168
  permissions: blockPermissions,
133
169
  readOnly: readOnly
134
- })
135
- }, row.id)
136
- }, `${parentPath}-row-${rowIndex}`);
170
+ }, void 0, false, {
171
+ fileName: "src/fields/Blocks/BlockRow.tsx",
172
+ lineNumber: 212,
173
+ columnNumber: 11
174
+ }, this)
175
+ }, row.id, false, {
176
+ fileName: "src/fields/Blocks/BlockRow.tsx",
177
+ lineNumber: 142,
178
+ columnNumber: 7
179
+ }, this)
180
+ }, `${parentPath}-row-${rowIndex}`, false, {
181
+ fileName: "src/fields/Blocks/BlockRow.tsx",
182
+ lineNumber: 134,
183
+ columnNumber: 5
184
+ }, this);
137
185
  };
138
186
 
139
187
  //# sourceMappingURL=BlockRow.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels, Row, SanitizedFieldPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { RenderFieldsProps } from '../../forms/RenderFields/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useThrottledValue } from '../../hooks/useThrottledValue.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlocksFieldProps = {\n addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n block: ClientBlock\n blocks: (ClientBlock | string)[] | ClientBlock[]\n copyRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fields: ClientField[]\n hasMaxRows?: boolean\n isLoading?: boolean\n isSortable?: boolean\n Label?: React.ReactNode\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n parentPath: string\n pasteRow: (rowIndex: number) => void\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n} & UseDraggableSortableReturn\n\nexport const BlockRow: React.FC<BlocksFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n copyRow,\n duplicateRow,\n errorCount,\n fields,\n hasMaxRows,\n isLoading: isLoadingFromProps,\n isSortable,\n Label,\n labels,\n listeners,\n moveRow,\n parentPath,\n pasteRow,\n path,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const isLoading = useThrottledValue(isLoadingFromProps, 500)\n\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const showBlockName = !block.admin?.disableBlockName\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let blockPermissions: RenderFieldsProps['permissions'] = true\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[block.slug] || permissions?.blocks\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else if (permissionsBlockSpecific?.fields) {\n blockPermissions = permissionsBlockSpecific.fields\n } else {\n // Check if we should fall back to read-only mode based on permission structure\n // This handles cases where field-level access control exists but block permissions were sanitized\n if (typeof permissions === 'object' && permissions && !permissionsBlockSpecific) {\n // If permissions object exists but has no block-specific permissions,\n // check if it has any restrictive characteristics\n const hasReadPermission = permissions.read === true\n const missingCreateOrUpdate = !permissions.create || !permissions.update\n const hasRestrictiveStructure =\n hasReadPermission &&\n (missingCreateOrUpdate ||\n (typeof permissions === 'object' &&\n Object.keys(permissions).length === 1 &&\n permissions.read))\n\n if (hasRestrictiveStructure) {\n blockPermissions = { read: true }\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n }\n\n return (\n <div\n id={`${parentPath?.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blocks={blocks}\n blockType={row.blockType}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n fields={block.fields}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n pasteRow={pasteRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n isLoading ? (\n <ShimmerEffect height=\"1rem\" width=\"8rem\" />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={Label}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n {showBlockName && (\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n )}\n </>\n }\n path={path}\n rowNumber={rowIndex}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n )\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n {isLoading ? (\n <ShimmerEffect />\n ) : (\n <RenderFields\n className={`${baseClass}__fields`}\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={blockPermissions}\n readOnly={readOnly}\n />\n )}\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","ShimmerEffect","useFormSubmitted","RenderFields","RowLabel","useThrottledValue","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","copyRow","duplicateRow","errorCount","fields","hasMaxRows","isLoading","isLoadingFromProps","isSortable","Label","labels","listeners","moveRow","parentPath","pasteRow","path","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","showBlockName","admin","disableBlockName","classNames","filter","Boolean","join","blockPermissions","permissionsBlockSpecific","slug","hasReadPermission","read","missingCreateOrUpdate","create","update","hasRestrictiveStructure","Object","keys","length","div","id","split","ref","style","actions","blockType","undefined","className","collapsibleStyle","dragHandleProps","header","height","width","CustomComponent","label","span","String","padStart","pillStyle","size","singular","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","parentIndexPath","parentSchemaPath"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels, Row, SanitizedFieldPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { RenderFieldsProps } from '../../forms/RenderFields/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useThrottledValue } from '../../hooks/useThrottledValue.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlocksFieldProps = {\n addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n block: ClientBlock\n blocks: (ClientBlock | string)[] | ClientBlock[]\n copyRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fields: ClientField[]\n hasMaxRows?: boolean\n isLoading?: boolean\n isSortable?: boolean\n Label?: React.ReactNode\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n parentPath: string\n pasteRow: (rowIndex: number) => void\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n} & UseDraggableSortableReturn\n\nexport const BlockRow: React.FC<BlocksFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n copyRow,\n duplicateRow,\n errorCount,\n fields,\n hasMaxRows,\n isLoading: isLoadingFromProps,\n isSortable,\n Label,\n labels,\n listeners,\n moveRow,\n parentPath,\n pasteRow,\n path,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const isLoading = useThrottledValue(isLoadingFromProps, 500)\n\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const showBlockName = !block.admin?.disableBlockName\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let blockPermissions: RenderFieldsProps['permissions'] = true\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[block.slug] || permissions?.blocks\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else if (permissionsBlockSpecific?.fields) {\n blockPermissions = permissionsBlockSpecific.fields\n } else {\n // Check if we should fall back to read-only mode based on permission structure\n // This handles cases where field-level access control exists but block permissions were sanitized\n if (typeof permissions === 'object' && permissions && !permissionsBlockSpecific) {\n // If permissions object exists but has no block-specific permissions,\n // check if it has any restrictive characteristics\n const hasReadPermission = permissions.read === true\n const missingCreateOrUpdate = !permissions.create || !permissions.update\n const hasRestrictiveStructure =\n hasReadPermission &&\n (missingCreateOrUpdate ||\n (typeof permissions === 'object' &&\n Object.keys(permissions).length === 1 &&\n permissions.read))\n\n if (hasRestrictiveStructure) {\n blockPermissions = { read: true }\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n }\n\n return (\n <div\n id={`${parentPath?.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blocks={blocks}\n blockType={row.blockType}\n copyRow={copyRow}\n duplicateRow={duplicateRow}\n fields={block.fields}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n pasteRow={pasteRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n isLoading ? (\n <ShimmerEffect height=\"1rem\" width=\"8rem\" />\n ) : (\n <div className={`${baseClass}__block-header`}>\n <RowLabel\n CustomComponent={Label}\n label={\n <>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n size=\"small\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n {showBlockName && (\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n )}\n </>\n }\n path={path}\n rowNumber={rowIndex}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n )\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n {isLoading ? (\n <ShimmerEffect />\n ) : (\n <RenderFields\n className={`${baseClass}__fields`}\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={blockPermissions}\n readOnly={readOnly}\n />\n )}\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","ShimmerEffect","useFormSubmitted","RenderFields","RowLabel","useThrottledValue","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","copyRow","duplicateRow","errorCount","fields","hasMaxRows","isLoading","isLoadingFromProps","isSortable","Label","labels","listeners","moveRow","parentPath","pasteRow","path","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","showBlockName","admin","disableBlockName","classNames","filter","Boolean","join","blockPermissions","permissionsBlockSpecific","slug","hasReadPermission","read","missingCreateOrUpdate","create","update","hasRestrictiveStructure","Object","keys","length","div","id","split","ref","style","actions","blockType","undefined","className","collapsibleStyle","dragHandleProps","header","height","width","CustomComponent","label","span","String","padStart","pillStyle","size","singular","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","parentIndexPath","parentSchemaPath"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import React from 'react';
4
4
  import { SearchIcon } from '../../../../icons/Search/index.js';
5
5
  import { useTranslation } from '../../../../providers/Translation/index.js';
@@ -11,17 +11,29 @@ export const BlockSearch = (props)=>{
11
11
  const handleChange = (e)=>{
12
12
  setSearchTerm(e.target.value);
13
13
  };
14
- return /*#__PURE__*/ _jsxs("div", {
14
+ return /*#__PURE__*/ _jsxDEV("div", {
15
15
  className: baseClass,
16
16
  children: [
17
- /*#__PURE__*/ _jsx("input", {
17
+ /*#__PURE__*/ _jsxDEV("input", {
18
18
  className: `${baseClass}__input`,
19
19
  onChange: handleChange,
20
20
  placeholder: t('fields:searchForBlock')
21
- }),
22
- /*#__PURE__*/ _jsx(SearchIcon, {})
21
+ }, void 0, false, {
22
+ fileName: "src/fields/Blocks/BlockSelector/BlockSearch/index.tsx",
23
+ lineNumber: 20,
24
+ columnNumber: 7
25
+ }, this),
26
+ /*#__PURE__*/ _jsxDEV(SearchIcon, {}, void 0, false, {
27
+ fileName: "src/fields/Blocks/BlockSelector/BlockSearch/index.tsx",
28
+ lineNumber: 25,
29
+ columnNumber: 7
30
+ }, this)
23
31
  ]
24
- });
32
+ }, void 0, true, {
33
+ fileName: "src/fields/Blocks/BlockSelector/BlockSearch/index.tsx",
34
+ lineNumber: 19,
35
+ columnNumber: 5
36
+ }, this);
25
37
  };
26
38
 
27
39
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/fields/Blocks/BlockSelector/BlockSearch/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { SearchIcon } from '../../../../icons/Search/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'block-search'\n\nexport const BlockSearch: React.FC<{ setSearchTerm: (term: string) => void }> = (props) => {\n const { setSearchTerm } = props\n const { t } = useTranslation()\n\n const handleChange = (e) => {\n setSearchTerm(e.target.value)\n }\n\n return (\n <div className={baseClass}>\n <input\n className={`${baseClass}__input`}\n onChange={handleChange}\n placeholder={t('fields:searchForBlock')}\n />\n <SearchIcon />\n </div>\n )\n}\n"],"names":["React","SearchIcon","useTranslation","baseClass","BlockSearch","props","setSearchTerm","t","handleChange","e","target","value","div","className","input","onChange","placeholder"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,UAAU,QAAQ,oCAAmC;AAC9D,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,CAAC,EAAE,GAAGL;IAEd,MAAMM,eAAe,CAACC;QACpBH,cAAcG,EAAEC,MAAM,CAACC,KAAK;IAC9B;IAEA,qBACE,MAACC;QAAIC,WAAWV;;0BACd,KAACW;gBACCD,WAAW,GAAGV,UAAU,OAAO,CAAC;gBAChCY,UAAUP;gBACVQ,aAAaT,EAAE;;0BAEjB,KAACN;;;AAGP,EAAC"}
1
+ {"version":3,"sources":["../../../../../src/fields/Blocks/BlockSelector/BlockSearch/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { SearchIcon } from '../../../../icons/Search/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'block-search'\n\nexport const BlockSearch: React.FC<{ setSearchTerm: (term: string) => void }> = (props) => {\n const { setSearchTerm } = props\n const { t } = useTranslation()\n\n const handleChange = (e) => {\n setSearchTerm(e.target.value)\n }\n\n return (\n <div className={baseClass}>\n <input\n className={`${baseClass}__input`}\n onChange={handleChange}\n placeholder={t('fields:searchForBlock')}\n />\n <SearchIcon />\n </div>\n )\n}\n"],"names":["React","SearchIcon","useTranslation","baseClass","BlockSearch","props","setSearchTerm","t","handleChange","e","target","value","div","className","input","onChange","placeholder"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,UAAU,QAAQ,oCAAmC;AAC9D,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,cAAmE,CAACC;IAC/E,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,CAAC,EAAE,GAAGL;IAEd,MAAMM,eAAe,CAACC;QACpBH,cAAcG,EAAEC,MAAM,CAACC,KAAK;IAC9B;IAEA,qBACE,QAACC;QAAIC,WAAWV;;0BACd,QAACW;gBACCD,WAAW,GAAGV,UAAU,OAAO,CAAC;gBAChCY,UAAUP;gBACVQ,aAAaT,EAAE;;;;;;0BAEjB,QAACN;;;;;;;;;;;AAGP,EAAC"}
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
4
  import React, { Fragment, useEffect, useMemo, useState } from 'react';
5
5
  import { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js';
@@ -9,7 +9,9 @@ import { useConfig } from '../../../providers/Config/index.js';
9
9
  import { useTranslation } from '../../../providers/Translation/index.js';
10
10
  import { BlockSearch } from './BlockSearch/index.js';
11
11
  import './index.scss';
12
- const baseClass = 'blocks-drawer';
12
+ /**
13
+ * Control the search term state externally
14
+ */ const baseClass = 'blocks-drawer';
13
15
  const getBlockLabel = (block, i18n)=>{
14
16
  if (typeof block.labels.singular === 'string') {
15
17
  return block.labels.singular.toLowerCase();
@@ -66,33 +68,41 @@ export const BlockSelector = (props)=>{
66
68
  i18n,
67
69
  config.blocksMap
68
70
  ]);
69
- return /*#__PURE__*/ _jsxs(Fragment, {
71
+ return /*#__PURE__*/ _jsxDEV(Fragment, {
70
72
  children: [
71
- /*#__PURE__*/ _jsx(BlockSearch, {
73
+ /*#__PURE__*/ _jsxDEV(BlockSearch, {
72
74
  setSearchTerm: setSearchTerm
73
- }),
74
- /*#__PURE__*/ _jsx("div", {
75
+ }, void 0, false, {
76
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
77
+ lineNumber: 86,
78
+ columnNumber: 7
79
+ }, this),
80
+ /*#__PURE__*/ _jsxDEV("div", {
75
81
  className: `${baseClass}__blocks-wrapper`,
76
- children: /*#__PURE__*/ _jsx("ul", {
82
+ children: /*#__PURE__*/ _jsxDEV("ul", {
77
83
  className: `${baseClass}__block-groups`,
78
- children: Object.entries(blockGroups).map(([groupLabel, groupBlocks])=>!groupBlocks.length ? null : /*#__PURE__*/ _jsxs("li", {
84
+ children: Object.entries(blockGroups).map(([groupLabel, groupBlocks])=>!groupBlocks.length ? null : /*#__PURE__*/ _jsxDEV("li", {
79
85
  className: [
80
86
  `${baseClass}__block-group`,
81
87
  groupLabel === '_none' && `${baseClass}__block-group-none`
82
88
  ].filter(Boolean).join(' '),
83
89
  children: [
84
- groupLabel !== '_none' && /*#__PURE__*/ _jsx("h3", {
90
+ groupLabel !== '_none' && /*#__PURE__*/ _jsxDEV("h3", {
85
91
  className: `${baseClass}__block-group-label`,
86
92
  children: groupLabel
87
- }),
88
- /*#__PURE__*/ _jsx("ul", {
93
+ }, void 0, false, {
94
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
95
+ lineNumber: 101,
96
+ columnNumber: 19
97
+ }, this),
98
+ /*#__PURE__*/ _jsxDEV("ul", {
89
99
  className: `${baseClass}__blocks`,
90
100
  children: groupBlocks.map((_block, index)=>{
91
101
  const block = typeof _block === 'string' ? config.blocksMap[_block] : _block;
92
102
  const { slug, imageAltText, imageURL, labels: blockLabels } = block;
93
- return /*#__PURE__*/ _jsx("li", {
103
+ return /*#__PURE__*/ _jsxDEV("li", {
94
104
  className: `${baseClass}__block`,
95
- children: /*#__PURE__*/ _jsx(ThumbnailCard, {
105
+ children: /*#__PURE__*/ _jsxDEV(ThumbnailCard, {
96
106
  alignLabel: "center",
97
107
  label: getTranslation(blockLabels?.singular, i18n),
98
108
  onClick: ()=>{
@@ -100,23 +110,63 @@ export const BlockSelector = (props)=>{
100
110
  onSelect(slug);
101
111
  }
102
112
  },
103
- thumbnail: /*#__PURE__*/ _jsx("div", {
113
+ thumbnail: /*#__PURE__*/ _jsxDEV("div", {
104
114
  className: `${baseClass}__default-image`,
105
- children: imageURL ? /*#__PURE__*/ _jsx("img", {
115
+ children: imageURL ? /*#__PURE__*/ _jsxDEV("img", {
106
116
  alt: imageAltText,
107
117
  src: imageURL
108
- }) : /*#__PURE__*/ _jsx(DefaultBlockImage, {})
109
- })
110
- })
111
- }, index);
118
+ }, void 0, false, {
119
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
120
+ lineNumber: 122,
121
+ columnNumber: 33
122
+ }, void 0) : /*#__PURE__*/ _jsxDEV(DefaultBlockImage, {}, void 0, false, {
123
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
124
+ lineNumber: 124,
125
+ columnNumber: 33
126
+ }, void 0)
127
+ }, void 0, false, {
128
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
129
+ lineNumber: 120,
130
+ columnNumber: 29
131
+ }, void 0)
132
+ }, void 0, false, {
133
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
134
+ lineNumber: 111,
135
+ columnNumber: 25
136
+ }, this)
137
+ }, index, false, {
138
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
139
+ lineNumber: 110,
140
+ columnNumber: 23
141
+ }, this);
112
142
  })
113
- })
143
+ }, void 0, false, {
144
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
145
+ lineNumber: 103,
146
+ columnNumber: 17
147
+ }, this)
114
148
  ]
115
- }, groupLabel))
116
- })
117
- })
149
+ }, groupLabel, true, {
150
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
151
+ lineNumber: 91,
152
+ columnNumber: 15
153
+ }, this))
154
+ }, void 0, false, {
155
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
156
+ lineNumber: 88,
157
+ columnNumber: 9
158
+ }, this)
159
+ }, void 0, false, {
160
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
161
+ lineNumber: 87,
162
+ columnNumber: 7
163
+ }, this)
118
164
  ]
119
- });
165
+ }, void 0, true, {
166
+ fileName: "src/fields/Blocks/BlockSelector/index.tsx",
167
+ lineNumber: 85,
168
+ columnNumber: 5
169
+ }, this);
120
170
  };
121
171
 
122
172
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/fields/Blocks/BlockSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useMemo, useState } from 'react'\n\nimport { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js'\nimport { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js'\nimport { useControllableState } from '../../../hooks/useControllableState.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { BlockSearch } from './BlockSearch/index.js'\nimport './index.scss'\n\nexport type Props = {\n readonly blocks: (ClientBlock | string)[]\n readonly onSelect?: (blockType: string) => void\n /**\n * Control the search term state externally\n */\n searchTerm?: string\n}\n\nconst baseClass = 'blocks-drawer'\n\nconst getBlockLabel = (block: ClientBlock, i18n: I18nClient) => {\n if (typeof block.labels.singular === 'string') {\n return block.labels.singular.toLowerCase()\n }\n if (typeof block.labels.singular === 'object') {\n return getTranslation(block.labels.singular, i18n).toLowerCase()\n }\n return ''\n}\n\nexport const BlockSelector: React.FC<Props> = (props) => {\n const { blocks, onSelect, searchTerm: searchTermFromProps } = props\n\n const [searchTerm, setSearchTerm] = useControllableState(searchTermFromProps ?? '')\n\n const [filteredBlocks, setFilteredBlocks] = useState(blocks)\n const { i18n } = useTranslation()\n const { config } = useConfig()\n\n const blockGroups = useMemo(() => {\n const groups: Record<string, (ClientBlock | string)[]> = {\n _none: [],\n }\n\n filteredBlocks.forEach((block) => {\n if (typeof block === 'object' && block.admin?.group) {\n const group = block.admin.group\n const label = typeof group === 'string' ? group : getTranslation(group, i18n)\n\n if (Object.hasOwn(groups, label)) {\n groups[label].push(block)\n } else {\n groups[label] = [block]\n }\n } else {\n groups._none.push(block)\n }\n })\n\n return groups\n }, [filteredBlocks, i18n])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n const blockLabel = getBlockLabel(block, i18n)\n if (blockLabel.includes(searchTermToUse)) {\n matchedBlocks.push(block)\n }\n return matchedBlocks\n }, [])\n\n setFilteredBlocks(matchingBlocks)\n }, [searchTerm, blocks, i18n, config.blocksMap])\n\n return (\n <Fragment>\n <BlockSearch setSearchTerm={setSearchTerm} />\n <div className={`${baseClass}__blocks-wrapper`}>\n <ul className={`${baseClass}__block-groups`}>\n {Object.entries(blockGroups).map(([groupLabel, groupBlocks]) =>\n !groupBlocks.length ? null : (\n <li\n className={[\n `${baseClass}__block-group`,\n groupLabel === '_none' && `${baseClass}__block-group-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={groupLabel}\n >\n {groupLabel !== '_none' && (\n <h3 className={`${baseClass}__block-group-label`}>{groupLabel}</h3>\n )}\n <ul className={`${baseClass}__blocks`}>\n {groupBlocks.map((_block, index) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const { slug, imageAltText, imageURL, labels: blockLabels } = block\n\n return (\n <li className={`${baseClass}__block`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={getTranslation(blockLabels?.singular, i18n)}\n onClick={() => {\n if (typeof onSelect === 'function') {\n onSelect(slug)\n }\n }}\n thumbnail={\n <div className={`${baseClass}__default-image`}>\n {imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <DefaultBlockImage />\n )}\n </div>\n }\n />\n </li>\n )\n })}\n </ul>\n </li>\n ),\n )}\n </ul>\n </div>\n </Fragment>\n )\n}\n"],"names":["getTranslation","React","Fragment","useEffect","useMemo","useState","ThumbnailCard","DefaultBlockImage","useControllableState","useConfig","useTranslation","BlockSearch","baseClass","getBlockLabel","block","i18n","labels","singular","toLowerCase","BlockSelector","props","blocks","onSelect","searchTerm","searchTermFromProps","setSearchTerm","filteredBlocks","setFilteredBlocks","config","blockGroups","groups","_none","forEach","admin","group","label","Object","hasOwn","push","searchTermToUse","matchingBlocks","reduce","matchedBlocks","_block","blocksMap","blockLabel","includes","div","className","ul","entries","map","groupLabel","groupBlocks","length","li","filter","Boolean","join","h3","index","slug","imageAltText","imageURL","blockLabels","alignLabel","onClick","thumbnail","img","alt","src"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/fields/Blocks/BlockSelector/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect, useMemo, useState } from 'react'\n\nimport { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js'\nimport { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js'\nimport { useControllableState } from '../../../hooks/useControllableState.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { BlockSearch } from './BlockSearch/index.js'\nimport './index.scss'\n\nexport type Props = {\n readonly blocks: (ClientBlock | string)[]\n readonly onSelect?: (blockType: string) => void\n /**\n * Control the search term state externally\n */\n searchTerm?: string\n}\n\nconst baseClass = 'blocks-drawer'\n\nconst getBlockLabel = (block: ClientBlock, i18n: I18nClient) => {\n if (typeof block.labels.singular === 'string') {\n return block.labels.singular.toLowerCase()\n }\n if (typeof block.labels.singular === 'object') {\n return getTranslation(block.labels.singular, i18n).toLowerCase()\n }\n return ''\n}\n\nexport const BlockSelector: React.FC<Props> = (props) => {\n const { blocks, onSelect, searchTerm: searchTermFromProps } = props\n\n const [searchTerm, setSearchTerm] = useControllableState(searchTermFromProps ?? '')\n\n const [filteredBlocks, setFilteredBlocks] = useState(blocks)\n const { i18n } = useTranslation()\n const { config } = useConfig()\n\n const blockGroups = useMemo(() => {\n const groups: Record<string, (ClientBlock | string)[]> = {\n _none: [],\n }\n\n filteredBlocks.forEach((block) => {\n if (typeof block === 'object' && block.admin?.group) {\n const group = block.admin.group\n const label = typeof group === 'string' ? group : getTranslation(group, i18n)\n\n if (Object.hasOwn(groups, label)) {\n groups[label].push(block)\n } else {\n groups[label] = [block]\n }\n } else {\n groups._none.push(block)\n }\n })\n\n return groups\n }, [filteredBlocks, i18n])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n const blockLabel = getBlockLabel(block, i18n)\n if (blockLabel.includes(searchTermToUse)) {\n matchedBlocks.push(block)\n }\n return matchedBlocks\n }, [])\n\n setFilteredBlocks(matchingBlocks)\n }, [searchTerm, blocks, i18n, config.blocksMap])\n\n return (\n <Fragment>\n <BlockSearch setSearchTerm={setSearchTerm} />\n <div className={`${baseClass}__blocks-wrapper`}>\n <ul className={`${baseClass}__block-groups`}>\n {Object.entries(blockGroups).map(([groupLabel, groupBlocks]) =>\n !groupBlocks.length ? null : (\n <li\n className={[\n `${baseClass}__block-group`,\n groupLabel === '_none' && `${baseClass}__block-group-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={groupLabel}\n >\n {groupLabel !== '_none' && (\n <h3 className={`${baseClass}__block-group-label`}>{groupLabel}</h3>\n )}\n <ul className={`${baseClass}__blocks`}>\n {groupBlocks.map((_block, index) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const { slug, imageAltText, imageURL, labels: blockLabels } = block\n\n return (\n <li className={`${baseClass}__block`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={getTranslation(blockLabels?.singular, i18n)}\n onClick={() => {\n if (typeof onSelect === 'function') {\n onSelect(slug)\n }\n }}\n thumbnail={\n <div className={`${baseClass}__default-image`}>\n {imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <DefaultBlockImage />\n )}\n </div>\n }\n />\n </li>\n )\n })}\n </ul>\n </li>\n ),\n )}\n </ul>\n </div>\n </Fragment>\n )\n}\n"],"names":["getTranslation","React","Fragment","useEffect","useMemo","useState","ThumbnailCard","DefaultBlockImage","useControllableState","useConfig","useTranslation","BlockSearch","baseClass","getBlockLabel","block","i18n","labels","singular","toLowerCase","BlockSelector","props","blocks","onSelect","searchTerm","searchTermFromProps","setSearchTerm","filteredBlocks","setFilteredBlocks","config","blockGroups","groups","_none","forEach","admin","group","label","Object","hasOwn","push","searchTermToUse","matchingBlocks","reduce","matchedBlocks","_block","blocksMap","blockLabel","includes","div","className","ul","entries","map","groupLabel","groupBlocks","length","li","filter","Boolean","join","h3","index","slug","imageAltText","imageURL","blockLabels","alignLabel","onClick","thumbnail","img","alt","src"],"mappings":"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"}