@payloadcms/ui 4.0.0-internal.183b315 → 4.0.0-internal.203916b

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 (1046) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/css/colors.css +112 -59
  3. package/dist/css/design-tokens.css +5 -0
  4. package/dist/css/elevations.css +4 -0
  5. package/dist/css/forms.css +6 -3
  6. package/dist/css/radius.css +1 -3
  7. package/dist/css/theme.css +6 -1
  8. package/dist/css/utilities.css +7 -1
  9. package/dist/elements/APIKeyInput/index.css +92 -0
  10. package/dist/elements/APIKeyInput/index.d.ts +14 -0
  11. package/dist/elements/APIKeyInput/index.d.ts.map +1 -0
  12. package/dist/elements/APIKeyInput/index.js +86 -0
  13. package/dist/elements/APIKeyInput/index.js.map +1 -0
  14. package/dist/elements/AddNewRelation/index.css +28 -28
  15. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  16. package/dist/elements/AddNewRelation/index.js +85 -103
  17. package/dist/elements/AddNewRelation/index.js.map +1 -1
  18. package/dist/elements/AppHeader/index.d.ts +4 -1
  19. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  20. package/dist/elements/AppHeader/index.js +16 -27
  21. package/dist/elements/AppHeader/index.js.map +1 -1
  22. package/dist/elements/ArrayAction/index.js +2 -2
  23. package/dist/elements/ArrayAction/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/ActionsBar/index.css +13 -11
  25. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +1 -5
  26. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -1
  27. package/dist/elements/BulkUpload/ActionsBar/index.js +57 -61
  28. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/AddFilesView/index.css +14 -8
  30. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +2 -2
  31. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  32. package/dist/elements/BulkUpload/AddFilesView/index.js +41 -36
  33. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  34. package/dist/elements/BulkUpload/AddingFilesView/index.css +177 -0
  35. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +6 -2
  36. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  37. package/dist/elements/BulkUpload/AddingFilesView/index.js +135 -66
  38. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  39. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
  40. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  41. package/dist/elements/BulkUpload/EditForm/index.css +9 -0
  42. package/dist/elements/BulkUpload/EditForm/index.d.ts +2 -2
  43. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
  44. package/dist/elements/BulkUpload/EditForm/index.js +17 -18
  45. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  46. package/dist/elements/BulkUpload/EditForm/types.d.ts +2 -3
  47. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -1
  48. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
  49. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts +1 -1
  50. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  51. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +77 -59
  52. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  53. package/dist/elements/BulkUpload/EditMany/index.css +71 -0
  54. package/dist/elements/BulkUpload/EditMany/index.d.ts +1 -1
  55. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  56. package/dist/elements/BulkUpload/EditMany/index.js +29 -11
  57. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  58. package/dist/elements/BulkUpload/FileSidebar/index.css +79 -180
  59. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  60. package/dist/elements/BulkUpload/FileSidebar/index.js +42 -165
  61. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  62. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  63. package/dist/elements/BulkUpload/FormsManager/index.js +14 -1
  64. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  65. package/dist/elements/BulkUpload/index.css +48 -0
  66. package/dist/elements/BulkUpload/index.d.ts +6 -5
  67. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  68. package/dist/elements/BulkUpload/index.js +42 -41
  69. package/dist/elements/BulkUpload/index.js.map +1 -1
  70. package/dist/elements/Button/index.css +8 -0
  71. package/dist/elements/Button/index.d.ts.map +1 -1
  72. package/dist/elements/Button/index.js +5 -0
  73. package/dist/elements/Button/index.js.map +1 -1
  74. package/dist/elements/Card/index.css +1 -1
  75. package/dist/elements/Chip/index.css +1 -1
  76. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  77. package/dist/elements/ClipboardAction/index.js +1 -0
  78. package/dist/elements/ClipboardAction/index.js.map +1 -1
  79. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  80. package/dist/elements/CodeEditor/CodeEditor.js +19 -0
  81. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  82. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  83. package/dist/elements/Collapsible/index.js +2 -0
  84. package/dist/elements/Collapsible/index.js.map +1 -1
  85. package/dist/elements/ColumnSelection/Popup.d.ts +12 -0
  86. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -0
  87. package/dist/elements/{ColumnSelector/index.js → ColumnSelection/Popup.js} +25 -18
  88. package/dist/elements/ColumnSelection/Popup.js.map +1 -0
  89. package/dist/elements/ColumnSelection/index.d.ts +10 -0
  90. package/dist/elements/ColumnSelection/index.d.ts.map +1 -0
  91. package/dist/elements/{ColumnsButton → ColumnSelection}/index.js +23 -17
  92. package/dist/elements/ColumnSelection/index.js.map +1 -0
  93. package/dist/elements/Combobox/index.css +9 -8
  94. package/dist/elements/ConfirmationModal/index.css +7 -0
  95. package/dist/elements/ConfirmationModal/index.d.ts +1 -0
  96. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  97. package/dist/elements/ConfirmationModal/index.js +7 -3
  98. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  99. package/dist/elements/CopyLocaleData/index.js +1 -1
  100. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  101. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  102. package/dist/elements/CreateDocumentButton/index.js +0 -1
  103. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  104. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  105. package/dist/elements/DatePicker/DatePicker.js +4 -2
  106. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  107. package/dist/elements/DatePicker/index.css +14 -9
  108. package/dist/elements/DatePicker/index.js +1 -1
  109. package/dist/elements/DatePicker/index.js.map +1 -1
  110. package/dist/elements/DeleteMany/index.d.ts +3 -26
  111. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  112. package/dist/elements/DeleteMany/index.js +1 -95
  113. package/dist/elements/DeleteMany/index.js.map +1 -1
  114. package/dist/elements/Dialog/DialogHeader/index.d.ts +4 -0
  115. package/dist/elements/Dialog/DialogHeader/index.d.ts.map +1 -1
  116. package/dist/elements/Dialog/DialogHeader/index.js +45 -30
  117. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  118. package/dist/elements/Dialog/DialogModal/index.d.ts +6 -1
  119. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  120. package/dist/elements/Dialog/DialogModal/index.js +58 -31
  121. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  122. package/dist/elements/Dialog/DialogTitle/index.css +9 -0
  123. package/dist/elements/Dialog/DialogTitle/index.d.ts +5 -0
  124. package/dist/elements/Dialog/DialogTitle/index.d.ts.map +1 -0
  125. package/dist/elements/Dialog/DialogTitle/index.js +10 -0
  126. package/dist/elements/Dialog/DialogTitle/index.js.map +1 -0
  127. package/dist/elements/Dialog/index.css +10 -0
  128. package/dist/elements/DocumentControls/index.css +18 -2
  129. package/dist/elements/DocumentControls/index.d.ts +6 -0
  130. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  131. package/dist/elements/DocumentControls/index.js +20 -9
  132. package/dist/elements/DocumentControls/index.js.map +1 -1
  133. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  134. package/dist/elements/DocumentDrawer/DrawerContent.js +10 -6
  135. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  136. package/dist/elements/DocumentDrawer/DrawerHeader/index.css +76 -4
  137. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +7 -1
  138. package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
  139. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +150 -87
  140. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  141. package/dist/elements/DocumentDrawer/types.d.ts +1 -0
  142. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  143. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  144. package/dist/elements/DocumentFields/index.css +75 -4
  145. package/dist/elements/DocumentFields/index.d.ts +5 -0
  146. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  147. package/dist/elements/DocumentFields/index.js +9 -1
  148. package/dist/elements/DocumentFields/index.js.map +1 -1
  149. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts +12 -0
  150. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.d.ts.map +1 -0
  151. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js +28 -0
  152. package/dist/elements/DocumentHeader/DocumentHeaderRoot/index.js.map +1 -0
  153. package/dist/elements/DocumentHeader/index.js +2 -3
  154. package/dist/elements/DocumentHeader/index.js.map +1 -1
  155. package/dist/elements/DraggableSortable/DragOverlayPreview/index.css +1 -1
  156. package/dist/elements/DraggableSortable/index.js.map +1 -1
  157. package/dist/elements/Drawer/index.css +57 -26
  158. package/dist/elements/Drawer/index.d.ts +25 -0
  159. package/dist/elements/Drawer/index.d.ts.map +1 -1
  160. package/dist/elements/Drawer/index.js +133 -54
  161. package/dist/elements/Drawer/index.js.map +1 -1
  162. package/dist/elements/Drawer/types.d.ts +1 -0
  163. package/dist/elements/Drawer/types.d.ts.map +1 -1
  164. package/dist/elements/Drawer/types.js.map +1 -1
  165. package/dist/elements/DrawerActionHeader/index.css +1 -1
  166. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.css +7 -1
  167. package/dist/elements/DrawerHeader/index.d.ts +10 -0
  168. package/dist/elements/DrawerHeader/index.d.ts.map +1 -0
  169. package/dist/elements/{BulkUpload/Header → DrawerHeader}/index.js +16 -11
  170. package/dist/elements/DrawerHeader/index.js.map +1 -0
  171. package/dist/elements/Dropzone/index.css +5 -13
  172. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +1 -1
  173. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  174. package/dist/elements/EditMany/DrawerContent.d.ts +1 -1
  175. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  176. package/dist/elements/EditMany/DrawerContent.js +76 -71
  177. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  178. package/dist/elements/EditMany/index.css +71 -0
  179. package/dist/elements/EditMany/index.d.ts +9 -11
  180. package/dist/elements/EditMany/index.d.ts.map +1 -1
  181. package/dist/elements/EditMany/index.js +2 -40
  182. package/dist/elements/EditMany/index.js.map +1 -1
  183. package/dist/elements/EditUpload/index.css +97 -158
  184. package/dist/elements/EditUpload/index.d.ts +2 -1
  185. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  186. package/dist/elements/EditUpload/index.js +209 -231
  187. package/dist/elements/EditUpload/index.js.map +1 -1
  188. package/dist/elements/EditUpload/{library.scss → library.css} +108 -46
  189. package/dist/elements/FieldSelect/index.css +3 -0
  190. package/dist/elements/FileDetails/DraggableFileDetails/index.css +32 -0
  191. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +2 -2
  192. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -1
  193. package/dist/elements/FileDetails/DraggableFileDetails/index.js +19 -18
  194. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  195. package/dist/elements/FileDetails/FileMeta/index.css +27 -0
  196. package/dist/elements/FileDetails/FileMeta/index.d.ts +1 -1
  197. package/dist/elements/FileDetails/FileMeta/index.d.ts.map +1 -1
  198. package/dist/elements/FileDetails/FileMeta/index.js +1 -1
  199. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  200. package/dist/elements/FileDetails/StaticFileDetails/index.css +140 -0
  201. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +2 -2
  202. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
  203. package/dist/elements/FileDetails/StaticFileDetails/index.js +1 -1
  204. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  205. package/dist/elements/FileDetails/index.d.ts +1 -1
  206. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  207. package/dist/elements/FileDetails/index.js.map +1 -1
  208. package/dist/elements/FileManager/FilePreview/AudioPreview/index.css +8 -0
  209. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts +10 -0
  210. package/dist/elements/FileManager/FilePreview/AudioPreview/index.d.ts.map +1 -0
  211. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js +24 -0
  212. package/dist/elements/FileManager/FilePreview/AudioPreview/index.js.map +1 -0
  213. package/dist/elements/FileManager/FilePreview/PdfPreview/index.css +9 -0
  214. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts +12 -0
  215. package/dist/elements/FileManager/FilePreview/PdfPreview/index.d.ts.map +1 -0
  216. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js +27 -0
  217. package/dist/elements/FileManager/FilePreview/PdfPreview/index.js.map +1 -0
  218. package/dist/elements/FileManager/FilePreview/VideoPreview/index.css +8 -0
  219. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts +10 -0
  220. package/dist/elements/FileManager/FilePreview/VideoPreview/index.d.ts.map +1 -0
  221. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js +24 -0
  222. package/dist/elements/FileManager/FilePreview/VideoPreview/index.js.map +1 -0
  223. package/dist/elements/FileManager/FilePreview/index.css +83 -0
  224. package/dist/elements/FileManager/FilePreview/index.d.ts +13 -0
  225. package/dist/elements/FileManager/FilePreview/index.d.ts.map +1 -0
  226. package/dist/elements/FileManager/FilePreview/index.js +140 -0
  227. package/dist/elements/FileManager/FilePreview/index.js.map +1 -0
  228. package/dist/elements/FileManager/FileToolbar/index.css +91 -0
  229. package/dist/elements/FileManager/FileToolbar/index.d.ts +14 -0
  230. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -0
  231. package/dist/elements/FileManager/FileToolbar/index.js +106 -0
  232. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -0
  233. package/dist/elements/FileManager/index.css +154 -0
  234. package/dist/elements/FileManager/index.d.ts +19 -0
  235. package/dist/elements/FileManager/index.d.ts.map +1 -0
  236. package/dist/elements/FileManager/index.js +424 -0
  237. package/dist/elements/FileManager/index.js.map +1 -0
  238. package/dist/elements/GroupBy/Popup.d.ts +21 -0
  239. package/dist/elements/GroupBy/Popup.d.ts.map +1 -0
  240. package/dist/elements/GroupBy/Popup.js +268 -0
  241. package/dist/elements/GroupBy/Popup.js.map +1 -0
  242. package/dist/elements/GroupBy/index.d.ts +12 -0
  243. package/dist/elements/GroupBy/index.d.ts.map +1 -0
  244. package/dist/elements/GroupBy/index.js +91 -0
  245. package/dist/elements/GroupBy/index.js.map +1 -0
  246. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +5 -3
  247. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +1 -0
  248. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +1 -1
  249. package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
  250. package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
  251. package/dist/elements/Hierarchy/DocHeaderButton/index.js +12 -12
  252. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  253. package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +36 -0
  254. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +1 -1
  255. package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +1 -1
  256. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +1 -1
  257. package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +1 -1
  258. package/dist/elements/Hierarchy/Field/index.client.d.ts +1 -1
  259. package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
  260. package/dist/elements/Hierarchy/Field/index.client.js +19 -16
  261. package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
  262. package/dist/elements/Hierarchy/Field/index.css +37 -0
  263. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -0
  264. package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -0
  265. package/dist/elements/Hierarchy/Modal/index.css +88 -0
  266. package/dist/elements/Hierarchy/Modal/index.d.ts +20 -0
  267. package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -0
  268. package/dist/elements/Hierarchy/{Drawer → Modal}/index.js +109 -83
  269. package/dist/elements/Hierarchy/Modal/index.js.map +1 -0
  270. package/dist/elements/Hierarchy/{Drawer → Modal}/types.d.ts +22 -18
  271. package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -0
  272. package/dist/elements/Hierarchy/Modal/types.js.map +1 -0
  273. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts +30 -0
  274. package/dist/elements/Hierarchy/Modal/useHierarchyModal.d.ts.map +1 -0
  275. package/dist/elements/Hierarchy/{Drawer/useHierarchyDrawer.js → Modal/useHierarchyModal.js} +51 -50
  276. package/dist/elements/Hierarchy/Modal/useHierarchyModal.js.map +1 -0
  277. package/dist/elements/Hierarchy/MoveMany/index.d.ts +2 -3
  278. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  279. package/dist/elements/Hierarchy/MoveMany/index.js +9 -10
  280. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  281. package/dist/elements/Hierarchy/Tree/LoadMore/index.css +27 -0
  282. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts +1 -1
  283. package/dist/elements/Hierarchy/Tree/LoadMore/index.d.ts.map +1 -1
  284. package/dist/elements/Hierarchy/Tree/LoadMore/index.js +1 -1
  285. package/dist/elements/Hierarchy/Tree/LoadMore/index.js.map +1 -1
  286. package/dist/elements/Hierarchy/Tree/TreeFocusContext.d.ts.map +1 -1
  287. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js +36 -16
  288. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  289. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +38 -13
  290. package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
  291. package/dist/elements/Hierarchy/Tree/TreeNode/index.js +54 -43
  292. package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
  293. package/dist/elements/Hierarchy/Tree/index.css +1 -1
  294. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  295. package/dist/elements/Hierarchy/Tree/index.js +18 -5
  296. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  297. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  298. package/dist/elements/ListColumnSelectionButton/index.d.ts +11 -0
  299. package/dist/elements/ListColumnSelectionButton/index.d.ts.map +1 -0
  300. package/dist/elements/ListColumnSelectionButton/index.js +37 -0
  301. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -0
  302. package/dist/elements/ListControls/index.css +5 -0
  303. package/dist/elements/ListControls/index.d.ts.map +1 -1
  304. package/dist/elements/ListControls/index.js +7 -8
  305. package/dist/elements/ListControls/index.js.map +1 -1
  306. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  307. package/dist/elements/ListDrawer/DrawerContent.js +13 -7
  308. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  309. package/dist/elements/ListDrawer/Provider.d.ts +1 -1
  310. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  311. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  312. package/dist/elements/ListGroupByButton/index.d.ts +12 -0
  313. package/dist/elements/ListGroupByButton/index.d.ts.map +1 -0
  314. package/dist/elements/ListGroupByButton/index.js +55 -0
  315. package/dist/elements/ListGroupByButton/index.js.map +1 -0
  316. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.d.ts.map +1 -1
  317. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +2 -0
  318. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  319. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +4 -4
  320. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  321. package/dist/elements/ListSelection/index.css +1 -1
  322. package/dist/elements/ListWhereBuilder/index.d.ts +16 -0
  323. package/dist/elements/ListWhereBuilder/index.d.ts.map +1 -0
  324. package/dist/elements/ListWhereBuilder/index.js +62 -0
  325. package/dist/elements/ListWhereBuilder/index.js.map +1 -0
  326. package/dist/elements/LivePreview/Toolbar/Controls/index.js +2 -2
  327. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  328. package/dist/elements/LivePreview/Toolbar/SizeInput/index.css +5 -44
  329. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -1
  330. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +26 -43
  331. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  332. package/dist/elements/LivePreview/Window/index.css +6 -0
  333. package/dist/elements/LoadMoreRow/index.css +34 -0
  334. package/dist/elements/LoadMoreRow/index.d.ts +1 -1
  335. package/dist/elements/LoadMoreRow/index.d.ts.map +1 -1
  336. package/dist/elements/LoadMoreRow/index.js +4 -8
  337. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  338. package/dist/elements/Loading/index.css +28 -74
  339. package/dist/elements/Loading/index.d.ts.map +1 -1
  340. package/dist/elements/Loading/index.js +16 -60
  341. package/dist/elements/Loading/index.js.map +1 -1
  342. package/dist/elements/Localizer/index.d.ts.map +1 -1
  343. package/dist/elements/Localizer/index.js +3 -4
  344. package/dist/elements/Localizer/index.js.map +1 -1
  345. package/dist/elements/MenuSeparator/index.d.ts +4 -0
  346. package/dist/elements/MenuSeparator/index.d.ts.map +1 -0
  347. package/dist/elements/MenuSeparator/index.js +10 -0
  348. package/dist/elements/MenuSeparator/index.js.map +1 -0
  349. package/dist/elements/MiniCarousel/index.css +94 -0
  350. package/dist/elements/MiniCarousel/index.d.ts +15 -0
  351. package/dist/elements/MiniCarousel/index.d.ts.map +1 -0
  352. package/dist/elements/MiniCarousel/index.js +84 -0
  353. package/dist/elements/MiniCarousel/index.js.map +1 -0
  354. package/dist/elements/Nav/SettingsMenuButton/index.css +5 -0
  355. package/dist/elements/Nav/SettingsMenuButton/index.d.ts +1 -1
  356. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  357. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -1
  358. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  359. package/dist/elements/Nav/index.css +2 -2
  360. package/dist/elements/Nav/index.d.ts.map +1 -1
  361. package/dist/elements/Nav/index.js +4 -23
  362. package/dist/elements/Nav/index.js.map +1 -1
  363. package/dist/elements/NavGroup/index.css +1 -1
  364. package/dist/elements/Pill/index.css +1 -1
  365. package/dist/elements/PillSelector/index.css +1 -1
  366. package/dist/elements/Popup/PopupButtonList/index.css +48 -4
  367. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  368. package/dist/elements/Popup/PopupButtonList/index.js +1 -0
  369. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  370. package/dist/elements/Popup/PopupGroupLabel/index.css +19 -4
  371. package/dist/elements/Popup/PopupTrigger/index.d.ts +1 -0
  372. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  373. package/dist/elements/Popup/PopupTrigger/index.js +3 -0
  374. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  375. package/dist/elements/Popup/index.d.ts +14 -1
  376. package/dist/elements/Popup/index.d.ts.map +1 -1
  377. package/dist/elements/Popup/index.js +162 -63
  378. package/dist/elements/Popup/index.js.map +1 -1
  379. package/dist/elements/PreviewSizes/index.css +149 -0
  380. package/dist/elements/PreviewSizes/index.d.ts +2 -2
  381. package/dist/elements/PreviewSizes/index.d.ts.map +1 -1
  382. package/dist/elements/PreviewSizes/index.js +1 -1
  383. package/dist/elements/PreviewSizes/index.js.map +1 -1
  384. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts +13 -0
  385. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.d.ts.map +1 -0
  386. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js +41 -0
  387. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js.map +1 -0
  388. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts +1 -0
  389. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  390. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  391. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  392. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  393. package/dist/elements/PublishButton/index.js +4 -5
  394. package/dist/elements/PublishButton/index.js.map +1 -1
  395. package/dist/elements/PublishMany/DrawerContent.d.ts +2 -1
  396. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  397. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  398. package/dist/elements/PublishMany/index.d.ts +2 -6
  399. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  400. package/dist/elements/PublishMany/index.js +0 -38
  401. package/dist/elements/PublishMany/index.js.map +1 -1
  402. package/dist/elements/QueryPresets/cells/ColumnsCell/{index.scss → index.css} +1 -3
  403. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts +1 -1
  404. package/dist/elements/QueryPresets/cells/ColumnsCell/index.d.ts.map +1 -1
  405. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +1 -1
  406. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  407. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +1 -1
  408. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  409. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +77 -48
  410. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  411. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +1 -1
  412. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  413. package/dist/elements/QueryPresets/fields/GroupByField/index.js +12 -21
  414. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  415. package/dist/elements/QueryPresets/fields/Heading/index.css +52 -0
  416. package/dist/elements/QueryPresets/fields/Heading/index.d.ts +7 -0
  417. package/dist/elements/QueryPresets/fields/Heading/index.d.ts.map +1 -0
  418. package/dist/elements/QueryPresets/fields/Heading/index.js +31 -0
  419. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -0
  420. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +1 -1
  421. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  422. package/dist/elements/QueryPresets/fields/WhereField/index.js +24 -23
  423. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  424. package/dist/elements/QueryPresets/fields/fields.css +23 -0
  425. package/dist/elements/ReactSelect/DropdownIndicator/index.css +1 -1
  426. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  427. package/dist/elements/ReactSelect/DropdownIndicator/index.js +19 -12
  428. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  429. package/dist/elements/ReactSelect/MultiValue/index.css +1 -1
  430. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts +5 -0
  431. package/dist/elements/ReactSelect/getCaptureMenuScroll.d.ts.map +1 -0
  432. package/dist/elements/ReactSelect/getCaptureMenuScroll.js +10 -0
  433. package/dist/elements/ReactSelect/getCaptureMenuScroll.js.map +1 -0
  434. package/dist/elements/ReactSelect/getMenuListStyles.d.ts +6 -0
  435. package/dist/elements/ReactSelect/getMenuListStyles.d.ts.map +1 -0
  436. package/dist/elements/ReactSelect/getMenuListStyles.js +7 -0
  437. package/dist/elements/ReactSelect/getMenuListStyles.js.map +1 -0
  438. package/dist/elements/ReactSelect/index.css +54 -54
  439. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  440. package/dist/elements/ReactSelect/index.js +211 -115
  441. package/dist/elements/ReactSelect/index.js.map +1 -1
  442. package/dist/elements/ReactSelect/types.d.ts +8 -1
  443. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  444. package/dist/elements/ReactSelect/types.js.map +1 -1
  445. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  446. package/dist/elements/RelationshipTable/AddNewButton.js +1 -2
  447. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  448. package/dist/elements/RelationshipTable/index.css +1 -2
  449. package/dist/elements/RelationshipTable/index.js +2 -2
  450. package/dist/elements/RelationshipTable/index.js.map +1 -1
  451. package/dist/elements/RenderTitle/index.css +10 -0
  452. package/dist/elements/RenderTitle/index.d.ts +5 -0
  453. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  454. package/dist/elements/RenderTitle/index.js +52 -27
  455. package/dist/elements/RenderTitle/index.js.map +1 -1
  456. package/dist/elements/SchedulePublishButton/index.d.ts.map +1 -1
  457. package/dist/elements/SchedulePublishButton/index.js +6 -1
  458. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  459. package/dist/elements/Search/SearchInput/index.js +1 -1
  460. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  461. package/dist/elements/SelectMany/index.js +1 -1
  462. package/dist/elements/SelectMany/index.js.map +1 -1
  463. package/dist/elements/SidebarRow/index.css +0 -2
  464. package/dist/elements/SortColumn/index.css +1 -1
  465. package/dist/elements/Spinner/index.css +16 -0
  466. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  467. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -2
  468. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  469. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
  470. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +32 -13
  471. package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
  472. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  473. package/dist/elements/Table/OrderableRow.js +1 -1
  474. package/dist/elements/Table/OrderableRow.js.map +1 -1
  475. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  476. package/dist/elements/Table/RelationshipProvider/index.js +1 -0
  477. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  478. package/dist/elements/Table/index.css +44 -10
  479. package/dist/elements/Tabs/index.css +100 -0
  480. package/dist/elements/Tabs/index.d.ts +32 -0
  481. package/dist/elements/Tabs/index.d.ts.map +1 -0
  482. package/dist/elements/Tabs/index.js +62 -0
  483. package/dist/elements/Tabs/index.js.map +1 -0
  484. package/dist/elements/Thumbnail/index.css +41 -0
  485. package/dist/elements/Thumbnail/index.d.ts +3 -3
  486. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  487. package/dist/elements/Thumbnail/index.js +1 -1
  488. package/dist/elements/Thumbnail/index.js.map +1 -1
  489. package/dist/elements/TimezonePicker/index.css +58 -24
  490. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  491. package/dist/elements/TimezonePicker/index.js +31 -4
  492. package/dist/elements/TimezonePicker/index.js.map +1 -1
  493. package/dist/elements/Toasts/fieldErrors.d.ts +1 -0
  494. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  495. package/dist/elements/Toasts/fieldErrors.js +25 -9
  496. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  497. package/dist/elements/Toasts/index.css +5 -0
  498. package/dist/elements/Tooltip/index.css +20 -4
  499. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  500. package/dist/elements/Tooltip/index.js +71 -3
  501. package/dist/elements/Tooltip/index.js.map +1 -1
  502. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  503. package/dist/elements/UnpublishButton/index.js +5 -13
  504. package/dist/elements/UnpublishButton/index.js.map +1 -1
  505. package/dist/elements/UnpublishMany/DrawerContent.d.ts +2 -1
  506. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  507. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  508. package/dist/elements/UnpublishMany/index.d.ts +2 -4
  509. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  510. package/dist/elements/UnpublishMany/index.js +0 -38
  511. package/dist/elements/UnpublishMany/index.js.map +1 -1
  512. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +11 -0
  513. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -0
  514. package/dist/elements/Upload/UploadFromURLModal/index.js +88 -0
  515. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -0
  516. package/dist/elements/Upload/index.css +134 -45
  517. package/dist/elements/Upload/index.d.ts +3 -8
  518. package/dist/elements/Upload/index.d.ts.map +1 -1
  519. package/dist/elements/Upload/index.js +71 -92
  520. package/dist/elements/Upload/index.js.map +1 -1
  521. package/dist/elements/UserMenu/LanguageMenu/index.d.ts +6 -0
  522. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -0
  523. package/dist/elements/UserMenu/LanguageMenu/index.js +133 -0
  524. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -0
  525. package/dist/elements/UserMenu/SettingsMenu/index.d.ts +15 -0
  526. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -0
  527. package/dist/elements/UserMenu/SettingsMenu/index.js +119 -0
  528. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -0
  529. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts +6 -0
  530. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -0
  531. package/dist/elements/UserMenu/SubMenuHeader/index.js +34 -0
  532. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -0
  533. package/dist/elements/UserMenu/ThemeMenu/index.d.ts +6 -0
  534. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -0
  535. package/dist/elements/UserMenu/ThemeMenu/index.js +145 -0
  536. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -0
  537. package/dist/elements/UserMenu/index.css +80 -0
  538. package/dist/elements/UserMenu/index.d.ts +11 -0
  539. package/dist/elements/UserMenu/index.d.ts.map +1 -0
  540. package/dist/elements/UserMenu/index.js +205 -0
  541. package/dist/elements/UserMenu/index.js.map +1 -0
  542. package/dist/elements/WhereBuilder/Condition/index.css +1 -1
  543. package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -0
  544. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  545. package/dist/elements/WhereBuilder/Condition/index.js +20 -2
  546. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  547. package/dist/elements/WhereBuilder/index.d.ts +4 -3
  548. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  549. package/dist/elements/WhereBuilder/index.js +71 -62
  550. package/dist/elements/WhereBuilder/index.js.map +1 -1
  551. package/dist/elements/WhereBuilder/types.d.ts +6 -5
  552. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  553. package/dist/elements/WhereBuilder/types.js.map +1 -1
  554. package/dist/exports/client/index.d.ts +22 -5
  555. package/dist/exports/client/index.d.ts.map +1 -1
  556. package/dist/exports/client/index.js +1 -2
  557. package/dist/exports/client/index.js.map +4 -4
  558. package/dist/exports/rsc/index.d.ts +3 -0
  559. package/dist/exports/rsc/index.d.ts.map +1 -1
  560. package/dist/exports/rsc/index.js +3 -0
  561. package/dist/exports/rsc/index.js.map +1 -1
  562. package/dist/exports/shared/index.js +2 -2
  563. package/dist/exports/shared/index.js.map +2 -2
  564. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.css +2 -50
  565. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.d.ts.map +1 -1
  566. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +27 -20
  567. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  568. package/dist/fields/Blocks/BlockSelector/index.css +15 -4
  569. package/dist/fields/Blocks/BlockSelector/index.js +1 -1
  570. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  571. package/dist/fields/Blocks/SectionTitle/index.d.ts.map +1 -1
  572. package/dist/fields/Blocks/SectionTitle/index.js +1 -0
  573. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  574. package/dist/fields/Blocks/index.d.ts.map +1 -1
  575. package/dist/fields/Blocks/index.js +6 -11
  576. package/dist/fields/Blocks/index.js.map +1 -1
  577. package/dist/fields/Checkbox/index.css +2 -2
  578. package/dist/fields/ConfirmPassword/index.d.ts +4 -0
  579. package/dist/fields/ConfirmPassword/index.d.ts.map +1 -1
  580. package/dist/fields/ConfirmPassword/index.js +37 -33
  581. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  582. package/dist/fields/Group/index.css +5 -11
  583. package/dist/fields/Join/index.js +1 -1
  584. package/dist/fields/Join/index.js.map +1 -1
  585. package/dist/fields/Number/Input.d.ts.map +1 -1
  586. package/dist/fields/Number/Input.js +62 -46
  587. package/dist/fields/Number/Input.js.map +1 -1
  588. package/dist/fields/Number/index.css +19 -0
  589. package/dist/fields/Number/types.d.ts +10 -0
  590. package/dist/fields/Number/types.d.ts.map +1 -1
  591. package/dist/fields/Number/types.js.map +1 -1
  592. package/dist/fields/Password/input.d.ts.map +1 -1
  593. package/dist/fields/Password/input.js +33 -29
  594. package/dist/fields/Password/input.js.map +1 -1
  595. package/dist/fields/Password/types.d.ts +4 -0
  596. package/dist/fields/Password/types.d.ts.map +1 -1
  597. package/dist/fields/Password/types.js.map +1 -1
  598. package/dist/fields/RadioGroup/index.css +6 -0
  599. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  600. package/dist/fields/Relationship/Input.js +4 -0
  601. package/dist/fields/Relationship/Input.js.map +1 -1
  602. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +4 -4
  603. package/dist/fields/Relationship/types.d.ts +4 -0
  604. package/dist/fields/Relationship/types.d.ts.map +1 -1
  605. package/dist/fields/Relationship/types.js.map +1 -1
  606. package/dist/fields/Row/index.d.ts +1 -1
  607. package/dist/fields/Select/Input.d.ts +4 -0
  608. package/dist/fields/Select/Input.d.ts.map +1 -1
  609. package/dist/fields/Select/Input.js +45 -40
  610. package/dist/fields/Select/Input.js.map +1 -1
  611. package/dist/fields/Tabs/Tab/index.d.ts +0 -1
  612. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  613. package/dist/fields/Tabs/Tab/index.js +12 -23
  614. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  615. package/dist/fields/Tabs/index.d.ts.map +1 -1
  616. package/dist/fields/Tabs/index.js +37 -37
  617. package/dist/fields/Tabs/index.js.map +1 -1
  618. package/dist/fields/Text/Input.d.ts.map +1 -1
  619. package/dist/fields/Text/Input.js +44 -37
  620. package/dist/fields/Text/Input.js.map +1 -1
  621. package/dist/fields/Text/types.d.ts +9 -0
  622. package/dist/fields/Text/types.d.ts.map +1 -1
  623. package/dist/fields/Text/types.js.map +1 -1
  624. package/dist/fields/Textarea/Input.d.ts.map +1 -1
  625. package/dist/fields/Textarea/Input.js +27 -23
  626. package/dist/fields/Textarea/Input.js.map +1 -1
  627. package/dist/fields/Textarea/index.css +1 -1
  628. package/dist/fields/Textarea/types.d.ts +4 -0
  629. package/dist/fields/Textarea/types.d.ts.map +1 -1
  630. package/dist/fields/Textarea/types.js.map +1 -1
  631. package/dist/fields/Upload/HasMany/index.css +4 -0
  632. package/dist/fields/Upload/Input.d.ts.map +1 -1
  633. package/dist/fields/Upload/Input.js +12 -11
  634. package/dist/fields/Upload/Input.js.map +1 -1
  635. package/dist/fields/Upload/index.js +1 -1
  636. package/dist/fields/Upload/index.js.map +1 -1
  637. package/dist/forms/Form/types.d.ts +2 -2
  638. package/dist/forms/Form/types.d.ts.map +1 -1
  639. package/dist/forms/Form/types.js.map +1 -1
  640. package/dist/forms/RenderFields/RenderField.d.ts +1 -1
  641. package/dist/forms/RenderFields/RenderField.js +2 -1
  642. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  643. package/dist/forms/RenderFields/index.css +4 -4
  644. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +1 -0
  645. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  646. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +10 -2
  647. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  648. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts +2 -2
  649. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.d.ts.map +1 -1
  650. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
  651. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts +2 -2
  652. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  653. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
  654. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts +2 -2
  655. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  656. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  657. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  658. package/dist/forms/fieldSchemasToFormState/index.d.ts +2 -1
  659. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  660. package/dist/forms/fieldSchemasToFormState/index.js +2 -0
  661. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  662. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +2 -1
  663. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  664. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  665. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  666. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -1
  667. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  668. package/dist/forms/useField/index.js.map +1 -1
  669. package/dist/graphics/Icon/index.js +1 -1
  670. package/dist/graphics/Icon/index.js.map +1 -1
  671. package/dist/hooks/useElementHeightVariable.d.ts +15 -0
  672. package/dist/hooks/useElementHeightVariable.d.ts.map +1 -0
  673. package/dist/hooks/useElementHeightVariable.js +53 -0
  674. package/dist/hooks/useElementHeightVariable.js.map +1 -0
  675. package/dist/icons/Check/index.css +1 -2
  676. package/dist/icons/Check/index.js +1 -1
  677. package/dist/icons/Check/index.js.map +1 -1
  678. package/dist/icons/Crop/index.css +5 -0
  679. package/dist/icons/Crop/index.d.ts +7 -0
  680. package/dist/icons/Crop/index.d.ts.map +1 -0
  681. package/dist/icons/Crop/index.js +24 -0
  682. package/dist/icons/Crop/index.js.map +1 -0
  683. package/dist/icons/Dots/index.css +4 -4
  684. package/dist/icons/Download/index.css +5 -0
  685. package/dist/icons/{ExternalLink → Download}/index.d.ts +1 -1
  686. package/dist/icons/Download/index.d.ts.map +1 -0
  687. package/dist/icons/Download/index.js +27 -0
  688. package/dist/icons/Download/index.js.map +1 -0
  689. package/dist/icons/Gear/index.d.ts.map +1 -1
  690. package/dist/icons/Gear/index.js +8 -1
  691. package/dist/icons/Gear/index.js.map +1 -1
  692. package/dist/icons/InteractionEnter/index.css +5 -0
  693. package/dist/icons/InteractionEnter/index.d.ts +11 -0
  694. package/dist/icons/InteractionEnter/index.d.ts.map +1 -0
  695. package/dist/icons/InteractionEnter/index.js +25 -0
  696. package/dist/icons/InteractionEnter/index.js.map +1 -0
  697. package/dist/icons/{Write → Key}/index.css +1 -1
  698. package/dist/icons/Key/index.d.ts +7 -0
  699. package/dist/icons/Key/index.d.ts.map +1 -0
  700. package/dist/icons/Key/index.js +24 -0
  701. package/dist/icons/Key/index.js.map +1 -0
  702. package/dist/icons/LogOut/index.js +2 -2
  703. package/dist/icons/LogOut/index.js.map +1 -1
  704. package/dist/icons/{ExternalLink → NewTab}/index.css +1 -1
  705. package/dist/icons/NewTab/index.d.ts +7 -0
  706. package/dist/icons/NewTab/index.d.ts.map +1 -0
  707. package/dist/icons/NewTab/index.js +25 -0
  708. package/dist/icons/NewTab/index.js.map +1 -0
  709. package/dist/icons/Replace/index.css +5 -0
  710. package/dist/icons/Replace/index.d.ts +6 -0
  711. package/dist/icons/Replace/index.d.ts.map +1 -0
  712. package/dist/icons/Replace/index.js +20 -0
  713. package/dist/icons/Replace/index.js.map +1 -0
  714. package/dist/icons/Reset/index.css +5 -0
  715. package/dist/icons/Reset/index.d.ts +7 -0
  716. package/dist/icons/Reset/index.d.ts.map +1 -0
  717. package/dist/icons/Reset/index.js +25 -0
  718. package/dist/icons/Reset/index.js.map +1 -0
  719. package/dist/icons/Schedule/index.d.ts.map +1 -1
  720. package/dist/icons/Schedule/index.js +38 -39
  721. package/dist/icons/Schedule/index.js.map +1 -1
  722. package/dist/icons/Swap/index.js +1 -1
  723. package/dist/icons/Swap/index.js.map +1 -1
  724. package/dist/icons/VariableColor/index.css +5 -0
  725. package/dist/icons/VariableColor/index.d.ts +7 -0
  726. package/dist/icons/VariableColor/index.d.ts.map +1 -0
  727. package/dist/icons/VariableColor/index.js +23 -0
  728. package/dist/icons/VariableColor/index.js.map +1 -0
  729. package/dist/icons/Warning/index.css +1 -7
  730. package/dist/icons/Warning/index.d.ts +1 -1
  731. package/dist/icons/Warning/index.d.ts.map +1 -1
  732. package/dist/icons/Warning/index.js +11 -16
  733. package/dist/icons/Warning/index.js.map +1 -1
  734. package/dist/icons/WarningTriangle/index.css +5 -0
  735. package/dist/icons/WarningTriangle/index.d.ts +6 -0
  736. package/dist/icons/WarningTriangle/index.d.ts.map +1 -0
  737. package/dist/icons/WarningTriangle/index.js +21 -0
  738. package/dist/icons/WarningTriangle/index.js.map +1 -0
  739. package/dist/icons/Write/index.d.ts +0 -1
  740. package/dist/icons/Write/index.d.ts.map +1 -1
  741. package/dist/icons/Write/index.js +1 -2
  742. package/dist/icons/Write/index.js.map +1 -1
  743. package/dist/providers/Auth/index.d.ts +2 -2
  744. package/dist/providers/Auth/index.d.ts.map +1 -1
  745. package/dist/providers/Auth/index.js.map +1 -1
  746. package/dist/providers/Config/index.js.map +1 -1
  747. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  748. package/dist/providers/DocumentInfo/index.js +4 -0
  749. package/dist/providers/DocumentInfo/index.js.map +1 -1
  750. package/dist/providers/DocumentInfo/types.d.ts +6 -2
  751. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  752. package/dist/providers/DocumentInfo/types.js.map +1 -1
  753. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  754. package/dist/providers/ListQuery/index.js +1 -8
  755. package/dist/providers/ListQuery/index.js.map +1 -1
  756. package/dist/providers/Root/index.d.ts +2 -2
  757. package/dist/providers/Root/index.d.ts.map +1 -1
  758. package/dist/providers/Root/index.js +27 -24
  759. package/dist/providers/Root/index.js.map +1 -1
  760. package/dist/providers/TableColumns/RenderDefaultCell/index.css +1 -0
  761. package/dist/providers/Theme/index.d.ts +17 -2
  762. package/dist/providers/Theme/index.d.ts.map +1 -1
  763. package/dist/providers/Theme/index.js +126 -75
  764. package/dist/providers/Theme/index.js.map +1 -1
  765. package/dist/providers/ToastContainer/index.css +208 -0
  766. package/dist/providers/ToastContainer/index.d.ts +1 -0
  767. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  768. package/dist/providers/ToastContainer/index.js +19 -6
  769. package/dist/providers/ToastContainer/index.js.map +1 -1
  770. package/dist/scss/app.scss +10 -4
  771. package/dist/styles.css +1369 -1
  772. package/dist/templates/Default/index.d.ts.map +1 -1
  773. package/dist/templates/Default/index.js +59 -3
  774. package/dist/templates/Default/index.js.map +1 -1
  775. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +1 -2
  776. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  777. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +1 -2
  778. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  779. package/dist/utilities/buildFormState.d.ts.map +1 -1
  780. package/dist/utilities/buildFormState.js +1 -0
  781. package/dist/utilities/buildFormState.js.map +1 -1
  782. package/dist/utilities/copyDataFromLocale.js +1 -1
  783. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  784. package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
  785. package/dist/utilities/formatDocTitle/formatDateTitle.js +1 -1
  786. package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
  787. package/dist/utilities/formatRelativeDate.d.ts +15 -0
  788. package/dist/utilities/formatRelativeDate.d.ts.map +1 -0
  789. package/dist/utilities/formatRelativeDate.js +62 -0
  790. package/dist/utilities/formatRelativeDate.js.map +1 -0
  791. package/dist/utilities/getDocPreferences.d.ts +2 -2
  792. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  793. package/dist/utilities/getDocPreferences.js.map +1 -1
  794. package/dist/utilities/getDocumentData.d.ts +2 -2
  795. package/dist/utilities/getDocumentData.d.ts.map +1 -1
  796. package/dist/utilities/getDocumentData.js.map +1 -1
  797. package/dist/utilities/getGlobalData.d.ts.map +1 -1
  798. package/dist/utilities/getGlobalData.js.map +1 -1
  799. package/dist/utilities/getHasScheduledPublish.d.ts +12 -0
  800. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -0
  801. package/dist/utilities/getHasScheduledPublish.js +38 -0
  802. package/dist/utilities/getHasScheduledPublish.js.map +1 -0
  803. package/dist/utilities/getIsLocked.d.ts +2 -2
  804. package/dist/utilities/getIsLocked.d.ts.map +1 -1
  805. package/dist/utilities/getIsLocked.js.map +1 -1
  806. package/dist/utilities/getVersions.d.ts +2 -2
  807. package/dist/utilities/getVersions.d.ts.map +1 -1
  808. package/dist/utilities/getVersions.js +3 -26
  809. package/dist/utilities/getVersions.js.map +1 -1
  810. package/dist/utilities/handleAuthRedirect.d.ts +2 -2
  811. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  812. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  813. package/dist/utilities/handleFormStateLocking.d.ts +2 -2
  814. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  815. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  816. package/dist/utilities/handleLivePreview.d.ts +1 -0
  817. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  818. package/dist/utilities/recentlyViewed.d.ts +16 -0
  819. package/dist/utilities/recentlyViewed.d.ts.map +1 -0
  820. package/dist/utilities/recentlyViewed.js +21 -0
  821. package/dist/utilities/recentlyViewed.js.map +1 -0
  822. package/dist/utilities/recentlyViewed.spec.js +92 -0
  823. package/dist/utilities/recentlyViewed.spec.js.map +1 -0
  824. package/dist/utilities/reduceFieldsToOptions.js +1 -1
  825. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  826. package/dist/utilities/renderTable.js +1 -1
  827. package/dist/utilities/renderTable.js.map +1 -1
  828. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
  829. package/dist/utilities/traverseForLocalizedFields.js +3 -0
  830. package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
  831. package/dist/views/API/index.client.js +2 -2
  832. package/dist/views/API/index.client.js.map +1 -1
  833. package/dist/views/Account/ResetPreferences/index.d.ts +2 -2
  834. package/dist/views/Account/ResetPreferences/index.d.ts.map +1 -1
  835. package/dist/views/Account/ResetPreferences/index.js +1 -0
  836. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  837. package/dist/views/Account/Settings/index.css +30 -13
  838. package/dist/views/Account/Settings/index.d.ts +2 -2
  839. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  840. package/dist/views/Account/Settings/index.js.map +1 -1
  841. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  842. package/dist/views/Account/ToggleTheme/index.js +31 -47
  843. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  844. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.d.ts.map +1 -1
  845. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js +27 -23
  846. package/dist/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.js.map +1 -1
  847. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  848. package/dist/views/Dashboard/Default/ModularDashboard/index.css +2 -0
  849. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +2 -2
  850. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  851. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +2 -2
  852. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  853. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts +2 -2
  854. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.d.ts.map +1 -1
  855. package/dist/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.js.map +1 -1
  856. package/dist/views/Document/index.d.ts.map +1 -1
  857. package/dist/views/Document/index.js +28 -2
  858. package/dist/views/Document/index.js.map +1 -1
  859. package/dist/views/Document/recordRecentlyViewed.d.ts +12 -0
  860. package/dist/views/Document/recordRecentlyViewed.d.ts.map +1 -0
  861. package/dist/views/Document/recordRecentlyViewed.js +40 -0
  862. package/dist/views/Document/recordRecentlyViewed.js.map +1 -0
  863. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  864. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  865. package/dist/views/Document/renderDocumentSlots.js +47 -1
  866. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  867. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  868. package/dist/views/Edit/Auth/APIKey.js +10 -32
  869. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  870. package/dist/views/Edit/Auth/index.css +0 -67
  871. package/dist/views/Edit/index.css +143 -6
  872. package/dist/views/Edit/index.d.ts +1 -1
  873. package/dist/views/Edit/index.d.ts.map +1 -1
  874. package/dist/views/Edit/index.js +96 -79
  875. package/dist/views/Edit/index.js.map +1 -1
  876. package/dist/views/HierarchyList/DocumentListSelection/index.js +8 -8
  877. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  878. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +2 -2
  879. package/dist/views/List/ListHeader/index.css +28 -1
  880. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  881. package/dist/views/List/ListHeader/index.js +0 -1
  882. package/dist/views/List/ListHeader/index.js.map +1 -1
  883. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  884. package/dist/views/List/ListSelection/index.js +84 -33
  885. package/dist/views/List/ListSelection/index.js.map +1 -1
  886. package/dist/views/List/handleGroupBy.d.ts.map +1 -1
  887. package/dist/views/List/handleGroupBy.js +9 -0
  888. package/dist/views/List/handleGroupBy.js.map +1 -1
  889. package/dist/views/List/index.client.d.ts.map +1 -1
  890. package/dist/views/List/index.client.js +10 -9
  891. package/dist/views/List/index.client.js.map +1 -1
  892. package/dist/views/List/index.css +15 -0
  893. package/dist/views/List/index.d.ts.map +1 -1
  894. package/dist/views/List/index.js +4 -3
  895. package/dist/views/List/index.js.map +1 -1
  896. package/dist/views/List/renderListViewSlots.d.ts.map +1 -1
  897. package/dist/views/List/renderListViewSlots.js +11 -0
  898. package/dist/views/List/renderListViewSlots.js.map +1 -1
  899. package/dist/views/Logout/LogoutClient.d.ts +14 -0
  900. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  901. package/dist/views/Logout/LogoutClient.js +7 -5
  902. package/dist/views/Logout/LogoutClient.js.map +1 -1
  903. package/dist/views/Logout/index.d.ts.map +1 -1
  904. package/dist/views/Logout/index.js +7 -2
  905. package/dist/views/Logout/index.js.map +1 -1
  906. package/dist/views/Verify/index.client.d.ts +4 -0
  907. package/dist/views/Verify/index.client.d.ts.map +1 -1
  908. package/dist/views/Verify/index.client.js +81 -0
  909. package/dist/views/Verify/index.client.js.map +1 -1
  910. package/dist/views/Verify/index.css +38 -0
  911. package/dist/views/Verify/index.d.ts +1 -1
  912. package/dist/views/Verify/index.d.ts.map +1 -1
  913. package/dist/views/Verify/index.js +13 -19
  914. package/dist/views/Verify/index.js.map +1 -1
  915. package/dist/views/Version/Default/index.css +3 -5
  916. package/dist/views/Version/Default/index.d.ts.map +1 -1
  917. package/dist/views/Version/Default/index.js +7 -28
  918. package/dist/views/Version/Default/index.js.map +1 -1
  919. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +2 -2
  920. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  921. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  922. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  923. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +3 -3
  924. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  925. package/dist/views/Version/Restore/index.css +2 -2
  926. package/dist/views/Version/SelectComparison/VersionDrawer/index.css +5 -0
  927. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts +1 -1
  928. package/dist/views/Version/SelectComparison/VersionDrawer/index.d.ts.map +1 -1
  929. package/dist/views/Version/SelectComparison/VersionDrawer/index.js +1 -2
  930. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  931. package/dist/views/Version/SelectComparison/index.css +5 -0
  932. package/dist/views/Version/SelectComparison/index.d.ts +1 -1
  933. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  934. package/dist/views/Version/SelectComparison/index.js +2 -1
  935. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  936. package/dist/views/Version/SelectLocales/index.d.ts +1 -2
  937. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  938. package/dist/views/Version/SelectLocales/index.js +83 -32
  939. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  940. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  941. package/dist/views/Versions/fetchVersions.d.ts +4 -4
  942. package/dist/views/Versions/fetchVersions.d.ts.map +1 -1
  943. package/dist/views/Versions/fetchVersions.js.map +1 -1
  944. package/dist/views/Versions/index.css +19 -16
  945. package/dist/views/Versions/index.d.ts +1 -1
  946. package/dist/views/Versions/index.d.ts.map +1 -1
  947. package/dist/views/Versions/index.js +3 -26
  948. package/dist/views/Versions/index.js.map +1 -1
  949. package/dist/views/Versions/types.d.ts +2 -2
  950. package/dist/views/Versions/types.d.ts.map +1 -1
  951. package/dist/views/Versions/types.js.map +1 -1
  952. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  953. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -0
  954. package/dist/widgets/CollectionQuery/SortField/index.js +118 -0
  955. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -0
  956. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts +18 -0
  957. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.d.ts.map +1 -0
  958. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js +91 -0
  959. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.js.map +1 -0
  960. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +100 -0
  961. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +1 -0
  962. package/dist/widgets/CollectionQuery/index.css +64 -0
  963. package/dist/widgets/CollectionQuery/index.d.ts +16 -0
  964. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -0
  965. package/dist/widgets/CollectionQuery/index.js +328 -0
  966. package/dist/widgets/CollectionQuery/index.js.map +1 -0
  967. package/dist/widgets/RecentlyViewed/CollectionsField/index.css +14 -0
  968. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +10 -0
  969. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -0
  970. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +76 -0
  971. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -0
  972. package/dist/widgets/RecentlyViewed/index.d.ts +10 -0
  973. package/dist/widgets/RecentlyViewed/index.d.ts.map +1 -0
  974. package/dist/widgets/RecentlyViewed/index.js +148 -0
  975. package/dist/widgets/RecentlyViewed/index.js.map +1 -0
  976. package/dist/widgets/WidgetCard/index.css +155 -0
  977. package/dist/widgets/WidgetCard/index.d.ts +19 -0
  978. package/dist/widgets/WidgetCard/index.d.ts.map +1 -0
  979. package/dist/widgets/WidgetCard/index.js +49 -0
  980. package/dist/widgets/WidgetCard/index.js.map +1 -0
  981. package/package.json +4 -508
  982. package/dist/elements/BulkUpload/AddingFilesView/index.scss +0 -25
  983. package/dist/elements/BulkUpload/EditForm/index.scss +0 -11
  984. package/dist/elements/BulkUpload/EditMany/index.scss +0 -171
  985. package/dist/elements/BulkUpload/Header/index.d.ts +0 -9
  986. package/dist/elements/BulkUpload/Header/index.d.ts.map +0 -1
  987. package/dist/elements/BulkUpload/Header/index.js.map +0 -1
  988. package/dist/elements/ColumnSelector/index.d.ts +0 -9
  989. package/dist/elements/ColumnSelector/index.d.ts.map +0 -1
  990. package/dist/elements/ColumnSelector/index.js.map +0 -1
  991. package/dist/elements/ColumnsButton/index.d.ts +0 -7
  992. package/dist/elements/ColumnsButton/index.d.ts.map +0 -1
  993. package/dist/elements/ColumnsButton/index.js.map +0 -1
  994. package/dist/elements/EditMany/index.scss +0 -182
  995. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +0 -35
  996. package/dist/elements/FileDetails/FileMeta/index.scss +0 -31
  997. package/dist/elements/FileDetails/StaticFileDetails/index.scss +0 -134
  998. package/dist/elements/GroupByBuilder/index.d.ts +0 -12
  999. package/dist/elements/GroupByBuilder/index.d.ts.map +0 -1
  1000. package/dist/elements/GroupByBuilder/index.js +0 -164
  1001. package/dist/elements/GroupByBuilder/index.js.map +0 -1
  1002. package/dist/elements/GroupByBuilder/index.scss +0 -39
  1003. package/dist/elements/GroupByControl/index.d.ts +0 -9
  1004. package/dist/elements/GroupByControl/index.d.ts.map +0 -1
  1005. package/dist/elements/GroupByControl/index.js +0 -255
  1006. package/dist/elements/GroupByControl/index.js.map +0 -1
  1007. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.d.ts.map +0 -1
  1008. package/dist/elements/Hierarchy/Drawer/fetchAncestorPath.js.map +0 -1
  1009. package/dist/elements/Hierarchy/Drawer/index.css +0 -108
  1010. package/dist/elements/Hierarchy/Drawer/index.d.ts +0 -20
  1011. package/dist/elements/Hierarchy/Drawer/index.d.ts.map +0 -1
  1012. package/dist/elements/Hierarchy/Drawer/index.js.map +0 -1
  1013. package/dist/elements/Hierarchy/Drawer/types.d.ts.map +0 -1
  1014. package/dist/elements/Hierarchy/Drawer/types.js.map +0 -1
  1015. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts +0 -30
  1016. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.d.ts.map +0 -1
  1017. package/dist/elements/Hierarchy/Drawer/useHierarchyDrawer.js.map +0 -1
  1018. package/dist/elements/Hierarchy/Field/SelectedHierarchies.scss +0 -78
  1019. package/dist/elements/Hierarchy/Field/index.scss +0 -41
  1020. package/dist/elements/Hierarchy/MoveMany/index.scss +0 -7
  1021. package/dist/elements/Hierarchy/Tree/LoadMore/index.scss +0 -26
  1022. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts +0 -7
  1023. package/dist/elements/Hierarchy/Tree/TreeConnector.d.ts.map +0 -1
  1024. package/dist/elements/Hierarchy/Tree/TreeConnector.js +0 -23
  1025. package/dist/elements/Hierarchy/Tree/TreeConnector.js.map +0 -1
  1026. package/dist/elements/LoadMoreRow/index.scss +0 -45
  1027. package/dist/elements/Nav/SettingsMenuButton/index.scss +0 -11
  1028. package/dist/elements/PreviewSizes/index.scss +0 -147
  1029. package/dist/elements/QueryPresets/fields/ColumnsField/index.scss +0 -17
  1030. package/dist/elements/QueryPresets/fields/GroupByField/index.scss +0 -17
  1031. package/dist/elements/QueryPresets/fields/WhereField/index.scss +0 -23
  1032. package/dist/elements/Thumbnail/index.scss +0 -53
  1033. package/dist/fields/Tabs/Tab/index.css +0 -82
  1034. package/dist/icons/ExternalLink/index.d.ts.map +0 -1
  1035. package/dist/icons/ExternalLink/index.js +0 -26
  1036. package/dist/icons/ExternalLink/index.js.map +0 -1
  1037. package/dist/scss/toasts.scss +0 -146
  1038. package/dist/views/Unauthorized/index.scss +0 -14
  1039. package/dist/views/Verify/index.scss +0 -18
  1040. package/dist/views/Version/SelectComparison/VersionDrawer/index.scss +0 -18
  1041. package/dist/views/Version/SelectComparison/index.scss +0 -9
  1042. /package/dist/elements/{ColumnSelector/index.css → ColumnSelection/Popup.css} +0 -0
  1043. /package/dist/elements/{GroupByControl/index.css → GroupBy/Popup.css} +0 -0
  1044. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.d.ts +0 -0
  1045. /package/dist/elements/Hierarchy/{Drawer → Modal}/fetchAncestorPath.js +0 -0
  1046. /package/dist/elements/Hierarchy/{Drawer → Modal}/types.js +0 -0
@@ -1,13 +1,12 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- import React, { useCallback } from 'react';
6
- import { RadioGroupField } from '../../../fields/RadioGroup/index.js';
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import React, { useCallback, useMemo } from 'react';
5
+ import { ReactSelect } from '../../../elements/ReactSelect/index.js';
6
+ import { FieldLabel } from '../../../fields/FieldLabel/index.js';
7
7
  import { useTheme } from '../../../providers/Theme/index.js';
8
8
  import { useTranslation } from '../../../providers/Translation/index.js';
9
9
  export const ToggleTheme = () => {
10
- const $ = _c(7);
11
10
  const {
12
11
  autoMode,
13
12
  setTheme,
@@ -16,47 +15,32 @@ export const ToggleTheme = () => {
16
15
  const {
17
16
  t
18
17
  } = useTranslation();
19
- let t0;
20
- if ($[0] !== setTheme) {
21
- t0 = newTheme => {
22
- setTheme(newTheme);
23
- };
24
- $[0] = setTheme;
25
- $[1] = t0;
26
- } else {
27
- t0 = $[1];
28
- }
29
- const onChange = t0;
30
- let t1;
31
- if ($[2] !== autoMode || $[3] !== onChange || $[4] !== t || $[5] !== theme) {
32
- t1 = _jsx(RadioGroupField, {
33
- disableModifyingForm: true,
34
- field: {
35
- name: "theme",
36
- label: t("general:adminTheme"),
37
- options: [{
38
- label: t("general:automatic"),
39
- value: "auto"
40
- }, {
41
- label: t("general:light"),
42
- value: "light"
43
- }, {
44
- label: t("general:dark"),
45
- value: "dark"
46
- }]
47
- },
48
- onChange,
49
- path: "theme",
50
- value: autoMode ? "auto" : theme
51
- });
52
- $[2] = autoMode;
53
- $[3] = onChange;
54
- $[4] = t;
55
- $[5] = theme;
56
- $[6] = t1;
57
- } else {
58
- t1 = $[6];
59
- }
60
- return t1;
18
+ const options = useMemo(() => [{
19
+ label: t('general:automatic'),
20
+ value: 'auto'
21
+ }, {
22
+ label: t('general:light'),
23
+ value: 'light'
24
+ }, {
25
+ label: t('general:dark'),
26
+ value: 'dark'
27
+ }], [t]);
28
+ const activeValue = autoMode ? 'auto' : theme;
29
+ const onChange = useCallback(option => {
30
+ setTheme(option.value);
31
+ }, [setTheme]);
32
+ return /*#__PURE__*/_jsxs("div", {
33
+ className: "payload-settings__theme",
34
+ children: [/*#__PURE__*/_jsx(FieldLabel, {
35
+ htmlFor: "theme-select",
36
+ label: t('general:theme')
37
+ }), /*#__PURE__*/_jsx(ReactSelect, {
38
+ inputId: "theme-select",
39
+ isClearable: false,
40
+ onChange: onChange,
41
+ options: options,
42
+ value: options.find(o => o.value === activeValue)
43
+ })]
44
+ });
61
45
  };
62
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","RadioGroupField","useTheme","useTranslation","ToggleTheme","$","autoMode","setTheme","theme","t","t0","newTheme","onChange","t1","_jsx","disableModifyingForm","field","name","label","options","value","path"],"sources":["../../../../src/views/Account/ToggleTheme/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback } from 'react'\n\nimport { RadioGroupField } from '../../../fields/RadioGroup/index.js'\nimport { useTheme } from '../../../providers/Theme/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport const ToggleTheme: React.FC = () => {\n const { autoMode, setTheme, theme } = useTheme()\n const { t } = useTranslation()\n\n const onChange = useCallback(\n (newTheme) => {\n setTheme(newTheme)\n },\n [setTheme],\n )\n\n return (\n <RadioGroupField\n disableModifyingForm={true}\n field={{\n name: 'theme',\n label: t('general:adminTheme'),\n options: [\n {\n label: t('general:automatic'),\n value: 'auto',\n },\n {\n label: t('general:light'),\n value: 'light',\n },\n {\n label: t('general:dark'),\n value: 'dark',\n },\n ],\n }}\n onChange={onChange}\n path=\"theme\"\n value={autoMode ? 'auto' : theme}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,QAAQ;AAEnC,SAASC,eAAe,QAAQ;AAChC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,WAAA,GAAwBA,CAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACnC;IAAAQ,QAAA;IAAAC,QAAA;IAAAC;EAAA,IAAsCN,QAAA;EACtC;IAAAO;EAAA,IAAcN,cAAA;EAAA,IAAAO,EAAA;EAAA,IAAAL,CAAA,QAAAE,QAAA;IAGZG,EAAA,GAAAC,QAAA;MACEJ,QAAA,CAASI,QAAA;IAAA;IACXN,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAHF,MAAAO,QAAA,GAAiBF,EAIL;EAAA,IAAAG,EAAA;EAAA,IAAAR,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAO,QAAA,IAAAP,CAAA,QAAAI,CAAA,IAAAJ,CAAA,QAAAG,KAAA;IAIVK,EAAA,GAAAC,IAAA,CAAAb,eAAA;MAAAc,oBAAA;MAAAC,KAAA;QAAAC,IAAA,EAGU;QAAAC,KAAA,EACCT,CAAA,CAAE;QAAAU,OAAA;UAAAD,KAAA,EAGET,CAAA,CAAE;UAAAW,KAAA,EACF;QAAA;UAAAF,KAAA,EAGAT,CAAA,CAAE;UAAAW,KAAA,EACF;QAAA;UAAAF,KAAA,EAGAT,CAAA,CAAE;UAAAW,KAAA,EACF;QAAA;MAAA;MAAAR,QAAA;MAAAS,IAAA,EAKR;MAAAD,KAAA,EACEd,QAAA,GAAW,SAASE;IAAA,C;;;;;;;;;SAtB7BK,E;CAyBJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useMemo","ReactSelect","FieldLabel","useTheme","useTranslation","ToggleTheme","autoMode","setTheme","theme","t","options","label","value","activeValue","onChange","option","_jsxs","className","_jsx","htmlFor","inputId","isClearable","find","o"],"sources":["../../../../src/views/Account/ToggleTheme/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { Option as ReactSelectOption } from '../../../elements/ReactSelect/index.js'\n\nimport { ReactSelect } from '../../../elements/ReactSelect/index.js'\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { useTheme } from '../../../providers/Theme/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\n\nexport const ToggleTheme: React.FC = () => {\n const { autoMode, setTheme, theme } = useTheme()\n const { t } = useTranslation()\n\n const options = useMemo(\n () => [\n { label: t('general:automatic'), value: 'auto' },\n { label: t('general:light'), value: 'light' },\n { label: t('general:dark'), value: 'dark' },\n ],\n [t],\n )\n\n const activeValue = autoMode ? 'auto' : theme\n\n const onChange = useCallback(\n (option: ReactSelectOption) => {\n setTheme(option.value as 'auto' | 'dark' | 'light')\n },\n [setTheme],\n )\n\n return (\n <div className=\"payload-settings__theme\">\n <FieldLabel htmlFor=\"theme-select\" label={t('general:theme')} />\n <ReactSelect\n inputId=\"theme-select\"\n isClearable={false}\n onChange={onChange}\n options={options}\n value={options.find((o) => o.value === activeValue)}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAI5C,SAASC,WAAW,QAAQ;AAC5B,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,WAAA,GAAwBA,CAAA;EACnC,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC;EAAK,CAAE,GAAGL,QAAA;EACtC,MAAM;IAAEM;EAAC,CAAE,GAAGL,cAAA;EAEd,MAAMM,OAAA,GAAUV,OAAA,CACd,MAAM,CACJ;IAAEW,KAAA,EAAOF,CAAA,CAAE;IAAsBG,KAAA,EAAO;EAAO,GAC/C;IAAED,KAAA,EAAOF,CAAA,CAAE;IAAkBG,KAAA,EAAO;EAAQ,GAC5C;IAAED,KAAA,EAAOF,CAAA,CAAE;IAAiBG,KAAA,EAAO;EAAO,EAC3C,EACD,CAACH,CAAA,CAAE;EAGL,MAAMI,WAAA,GAAcP,QAAA,GAAW,SAASE,KAAA;EAExC,MAAMM,QAAA,GAAWf,WAAA,CACdgB,MAAA;IACCR,QAAA,CAASQ,MAAA,CAAOH,KAAK;EACvB,GACA,CAACL,QAAA,CAAS;EAGZ,oBACES,KAAA,CAAC;IAAIC,SAAA,EAAU;4BACbC,IAAA,CAAChB,UAAA;MAAWiB,OAAA,EAAQ;MAAeR,KAAA,EAAOF,CAAA,CAAE;qBAC5CS,IAAA,CAACjB,WAAA;MACCmB,OAAA,EAAQ;MACRC,WAAA,EAAa;MACbP,QAAA,EAAUA,QAAA;MACVJ,OAAA,EAASA,OAAA;MACTE,KAAA,EAAOF,OAAA,CAAQY,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEX,KAAK,KAAKC,WAAA;;;AAI/C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetConfigDrawer.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,SAAS,CAAA;AAEtD,OAAO,KAA4D,MAAM,OAAO,CAAA;AAgBhF,KAAK,uBAAuB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/C,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAMD,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,uBAAuB,qBAwHzB"}
1
+ {"version":3,"file":"WidgetConfigDrawer.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,SAAS,CAAA;AAEtD,OAAO,KAA4D,MAAM,OAAO,CAAA;AAiBhF,KAAK,uBAAuB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAA;IAC/C,MAAM,EAAE,YAAY,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACrC,CAAA;AAMD,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,MAAM,EACN,MAAM,EACN,UAAU,GACX,EAAE,uBAAuB,qBA0HzB"}
@@ -4,6 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
5
  import { v4 as uuid } from 'uuid';
6
6
  import { Drawer } from '../../../../elements/Drawer/index.js';
7
+ import { Gutter } from '../../../../elements/Gutter/index.js';
7
8
  import { useModal } from '../../../../elements/Modal/index.js';
8
9
  import { ShimmerEffect } from '../../../../elements/ShimmerEffect/index.js';
9
10
  import { Form } from '../../../../forms/Form/index.js';
@@ -106,30 +107,33 @@ export function WidgetConfigDrawer({
106
107
  return /*#__PURE__*/_jsx(Drawer, {
107
108
  slug: drawerSlug,
108
109
  title: `${t('general:edit')} ${widgetLabel}`,
109
- children: initialState === false ? /*#__PURE__*/_jsx(ShimmerEffect, {
110
- height: "250px"
111
- }) : /*#__PURE__*/_jsx(OperationProvider, {
112
- operation: "update",
113
- children: /*#__PURE__*/_jsxs(Form, {
114
- fields: fields,
115
- initialState: initialState,
116
- onChange: [onChange],
117
- onSubmit: (_, data) => {
118
- onSave(mergeLocaleData(widgetData ?? {}, data, localeCode, fields));
119
- closeModal(drawerSlug);
120
- },
121
- uuid: formUUID,
122
- children: [/*#__PURE__*/_jsx(RenderFields, {
110
+ children: /*#__PURE__*/_jsx(Gutter, {
111
+ className: "widget-config-drawer__content",
112
+ children: initialState === false ? /*#__PURE__*/_jsx(ShimmerEffect, {
113
+ height: "250px"
114
+ }) : /*#__PURE__*/_jsx(OperationProvider, {
115
+ operation: "update",
116
+ children: /*#__PURE__*/_jsxs(Form, {
123
117
  fields: fields,
124
- forceRender: true,
125
- parentIndexPath: "",
126
- parentPath: "",
127
- parentSchemaPath: widget.slug,
128
- permissions: true,
129
- readOnly: false
130
- }), /*#__PURE__*/_jsx(FormSubmit, {
131
- children: t('fields:saveChanges')
132
- })]
118
+ initialState: initialState,
119
+ onChange: [onChange],
120
+ onSubmit: (_, data) => {
121
+ onSave(mergeLocaleData(widgetData ?? {}, data, localeCode, fields));
122
+ closeModal(drawerSlug);
123
+ },
124
+ uuid: formUUID,
125
+ children: [/*#__PURE__*/_jsx(RenderFields, {
126
+ fields: fields,
127
+ forceRender: true,
128
+ parentIndexPath: "",
129
+ parentPath: "",
130
+ parentSchemaPath: widget.slug,
131
+ permissions: true,
132
+ readOnly: false
133
+ }), /*#__PURE__*/_jsx(FormSubmit, {
134
+ children: t('fields:saveChanges')
135
+ })]
136
+ })
133
137
  })
134
138
  })
135
139
  });
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetConfigDrawer.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","v4","uuid","Drawer","useModal","ShimmerEffect","Form","RenderFields","FormSubmit","useLocale","OperationProvider","useServerFunctions","useTranslation","abortAndIgnore","extractLocaleData","mergeLocaleData","EMPTY_WIDGET_PREFERENCES","fields","WidgetConfigDrawer","drawerSlug","onSave","widget","widgetData","closeModal","modalState","getFormState","t","locale","localeCode","code","onChangeAbortControllerRef","initialState","setInitialState","isOpen","Boolean","formUUID","widgetLabel","label","slug","length","controller","AbortController","loadInitialState","localeFilteredData","state","data","docPermissions","docPreferences","operation","renderAllFields","schemaPath","signal","widgetSlug","onChange","formState","prevFormState","current","_jsx","title","height","_jsxs","onSubmit","_","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","readOnly"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientWidget, FormState } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport { Drawer } from '../../../../elements/Drawer/index.js'\nimport { useModal } from '../../../../elements/Modal/index.js'\nimport { ShimmerEffect } from '../../../../elements/ShimmerEffect/index.js'\nimport { Form } from '../../../../forms/Form/index.js'\nimport { RenderFields } from '../../../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../../../forms/Submit/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { OperationProvider } from '../../../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { abortAndIgnore } from '../../../../utilities/abortAndIgnore.js'\nimport { extractLocaleData, mergeLocaleData } from './utils/localeUtils.js'\n\ntype WidgetConfigDrawerProps = {\n drawerSlug: string\n onSave: (data: Record<string, unknown>) => void\n widget: ClientWidget\n widgetData?: Record<string, unknown>\n}\n\nconst EMPTY_WIDGET_PREFERENCES = {\n fields: {},\n}\n\nexport function WidgetConfigDrawer({\n drawerSlug,\n onSave,\n widget,\n widgetData,\n}: WidgetConfigDrawerProps) {\n const { closeModal, modalState } = useModal()\n const { getFormState } = useServerFunctions()\n const { t } = useTranslation()\n const locale = useLocale()\n const localeCode = locale?.code ?? 'en'\n const onChangeAbortControllerRef = useRef<AbortController>(null)\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const isOpen = Boolean(modalState?.[drawerSlug]?.isOpen)\n const formUUID = useMemo(() => uuid(), [])\n const widgetLabel = useMemo(\n () => (typeof widget.label === 'string' ? widget.label : widget.slug),\n [widget.label, widget.slug],\n )\n const fields = useMemo(() => widget.fields ?? [], [widget.fields])\n\n useEffect(() => {\n if (!isOpen || fields.length === 0) {\n setInitialState(false)\n return\n }\n\n const controller = new AbortController()\n\n const loadInitialState = async () => {\n const localeFilteredData = extractLocaleData(widgetData ?? {}, localeCode, fields)\n\n const { state } = await getFormState({\n data: localeFilteredData,\n docPermissions: {\n fields: true,\n },\n docPreferences: EMPTY_WIDGET_PREFERENCES,\n locale: localeCode,\n operation: 'update',\n renderAllFields: true,\n schemaPath: widget.slug,\n signal: controller.signal,\n widgetSlug: widget.slug,\n })\n\n if (state) {\n setInitialState(state)\n }\n }\n\n void loadInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [fields, getFormState, isOpen, localeCode, widget.slug, widgetData])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n docPermissions: {\n fields: true,\n },\n docPreferences: EMPTY_WIDGET_PREFERENCES,\n formState: prevFormState,\n operation: 'update',\n schemaPath: widget.slug,\n signal: controller.signal,\n widgetSlug: widget.slug,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [getFormState, widget.slug],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n return (\n <Drawer slug={drawerSlug} title={`${t('general:edit')} ${widgetLabel}`}>\n {initialState === false ? (\n <ShimmerEffect height=\"250px\" />\n ) : (\n <OperationProvider operation=\"update\">\n <Form\n fields={fields}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={(_, data) => {\n onSave(mergeLocaleData(widgetData ?? {}, data, localeCode, fields))\n closeModal(drawerSlug)\n }}\n uuid={formUUID}\n >\n <RenderFields\n fields={fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={widget.slug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n </OperationProvider>\n )}\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WidgetConfigDrawer.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","v4","uuid","Drawer","Gutter","useModal","ShimmerEffect","Form","RenderFields","FormSubmit","useLocale","OperationProvider","useServerFunctions","useTranslation","abortAndIgnore","extractLocaleData","mergeLocaleData","EMPTY_WIDGET_PREFERENCES","fields","WidgetConfigDrawer","drawerSlug","onSave","widget","widgetData","closeModal","modalState","getFormState","t","locale","localeCode","code","onChangeAbortControllerRef","initialState","setInitialState","isOpen","Boolean","formUUID","widgetLabel","label","slug","length","controller","AbortController","loadInitialState","localeFilteredData","state","data","docPermissions","docPreferences","operation","renderAllFields","schemaPath","signal","widgetSlug","onChange","formState","prevFormState","current","_jsx","title","className","height","_jsxs","onSubmit","_","forceRender","parentIndexPath","parentPath","parentSchemaPath","permissions","readOnly"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetConfigDrawer.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientWidget, FormState } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { v4 as uuid } from 'uuid'\n\nimport { Drawer } from '../../../../elements/Drawer/index.js'\nimport { Gutter } from '../../../../elements/Gutter/index.js'\nimport { useModal } from '../../../../elements/Modal/index.js'\nimport { ShimmerEffect } from '../../../../elements/ShimmerEffect/index.js'\nimport { Form } from '../../../../forms/Form/index.js'\nimport { RenderFields } from '../../../../forms/RenderFields/index.js'\nimport { FormSubmit } from '../../../../forms/Submit/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { OperationProvider } from '../../../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { abortAndIgnore } from '../../../../utilities/abortAndIgnore.js'\nimport { extractLocaleData, mergeLocaleData } from './utils/localeUtils.js'\n\ntype WidgetConfigDrawerProps = {\n drawerSlug: string\n onSave: (data: Record<string, unknown>) => void\n widget: ClientWidget\n widgetData?: Record<string, unknown>\n}\n\nconst EMPTY_WIDGET_PREFERENCES = {\n fields: {},\n}\n\nexport function WidgetConfigDrawer({\n drawerSlug,\n onSave,\n widget,\n widgetData,\n}: WidgetConfigDrawerProps) {\n const { closeModal, modalState } = useModal()\n const { getFormState } = useServerFunctions()\n const { t } = useTranslation()\n const locale = useLocale()\n const localeCode = locale?.code ?? 'en'\n const onChangeAbortControllerRef = useRef<AbortController>(null)\n\n const [initialState, setInitialState] = useState<false | FormState | undefined>(false)\n\n const isOpen = Boolean(modalState?.[drawerSlug]?.isOpen)\n const formUUID = useMemo(() => uuid(), [])\n const widgetLabel = useMemo(\n () => (typeof widget.label === 'string' ? widget.label : widget.slug),\n [widget.label, widget.slug],\n )\n const fields = useMemo(() => widget.fields ?? [], [widget.fields])\n\n useEffect(() => {\n if (!isOpen || fields.length === 0) {\n setInitialState(false)\n return\n }\n\n const controller = new AbortController()\n\n const loadInitialState = async () => {\n const localeFilteredData = extractLocaleData(widgetData ?? {}, localeCode, fields)\n\n const { state } = await getFormState({\n data: localeFilteredData,\n docPermissions: {\n fields: true,\n },\n docPreferences: EMPTY_WIDGET_PREFERENCES,\n locale: localeCode,\n operation: 'update',\n renderAllFields: true,\n schemaPath: widget.slug,\n signal: controller.signal,\n widgetSlug: widget.slug,\n })\n\n if (state) {\n setInitialState(state)\n }\n }\n\n void loadInitialState()\n\n return () => {\n abortAndIgnore(controller)\n }\n }, [fields, getFormState, isOpen, localeCode, widget.slug, widgetData])\n\n const onChange = useCallback(\n async ({ formState: prevFormState }: { formState: FormState }) => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n\n const controller = new AbortController()\n onChangeAbortControllerRef.current = controller\n\n const { state } = await getFormState({\n docPermissions: {\n fields: true,\n },\n docPreferences: EMPTY_WIDGET_PREFERENCES,\n formState: prevFormState,\n operation: 'update',\n schemaPath: widget.slug,\n signal: controller.signal,\n widgetSlug: widget.slug,\n })\n\n if (!state) {\n return prevFormState\n }\n\n return state\n },\n [getFormState, widget.slug],\n )\n\n useEffect(() => {\n return () => {\n abortAndIgnore(onChangeAbortControllerRef.current)\n }\n }, [])\n\n return (\n <Drawer slug={drawerSlug} title={`${t('general:edit')} ${widgetLabel}`}>\n <Gutter className=\"widget-config-drawer__content\">\n {initialState === false ? (\n <ShimmerEffect height=\"250px\" />\n ) : (\n <OperationProvider operation=\"update\">\n <Form\n fields={fields}\n initialState={initialState}\n onChange={[onChange]}\n onSubmit={(_, data) => {\n onSave(mergeLocaleData(widgetData ?? {}, data, localeCode, fields))\n closeModal(drawerSlug)\n }}\n uuid={formUUID}\n >\n <RenderFields\n fields={fields}\n forceRender\n parentIndexPath=\"\"\n parentPath=\"\"\n parentSchemaPath={widget.slug}\n permissions={true}\n readOnly={false}\n />\n <FormSubmit>{t('fields:saveChanges')}</FormSubmit>\n </Form>\n </OperationProvider>\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","React","useMemo","useState","Popup","PopupList","ChevronIcon","XIcon","useTranslation","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport React, { useMemo, useState } from 'react'\n\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../../icons/X/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--color-bg-success)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","React","useMemo","useState","Popup","PopupList","ChevronIcon","XIcon","useTranslation","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport React, { useMemo, useState } from 'react'\n\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../../icons/X/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--color-bg-success)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,8 @@
14
14
 
15
15
  .widget-config-drawer__content {
16
16
  height: 100%;
17
+ padding-top: var(--gutter-v);
18
+ padding-bottom: var(--gutter-v);
17
19
 
18
20
  .form-submit {
19
21
  margin-top: var(--spacer-2-5);
@@ -46,9 +46,9 @@ export const RenderWidget = t0 => {
46
46
  setComponent(React.createElement("div", {
47
47
  style: {
48
48
  background: "var(--theme-error-50)",
49
- border: "1px solid var(--theme-error-200)",
49
+ border: "var(--stroke-width-small) solid var(--theme-error-200)",
50
50
  borderRadius: "4px",
51
- color: "var(--theme-error-text)",
51
+ color: "var(--color-text-danger)",
52
52
  padding: "20px",
53
53
  textAlign: "center"
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderWidget.js","names":["c","_c","React","useCallback","useEffect","useRef","ShimmerEffect","useServerFunctions","RenderWidget","t0","$","widgetData","widgetId","Component","setComponent","useState","serverFunction","requestIDRef","t1","render","requestID","current","widgetSlug","slice","lastIndexOf","result","name","args","component","t2","createElement","style","background","border","borderRadius","color","padding","textAlign","renderWidget","t3","t4","Symbol","for","_jsx","height","_Fragment","children"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type {\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType,\n} from './renderWidgetServerFn.js'\n\nimport { ShimmerEffect } from '../../../../../elements/ShimmerEffect/index.js'\nimport { useServerFunctions } from '../../../../../providers/ServerFunctions/index.js'\n\n/**\n * Utility to render a widget on-demand on the client.\n */\nexport const RenderWidget: React.FC<{\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * Unique ID for this widget instance (format: \"slug-timestamp\")\n */\n widgetId: string\n}> = ({ widgetData, widgetId }) => {\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const { serverFunction } = useServerFunctions()\n const requestIDRef = useRef(0)\n\n const renderWidget = useCallback(() => {\n async function render() {\n const requestID = ++requestIDRef.current\n setComponent(null)\n\n try {\n const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf('-'))\n\n const result = (await serverFunction({\n name: 'render-widget',\n args: {\n widgetData,\n widgetSlug,\n } as RenderWidgetServerFnArgs,\n })) as RenderWidgetServerFnReturnType\n\n if (requestID !== requestIDRef.current) {\n return\n }\n\n setComponent(result.component)\n } catch (_error) {\n if (requestID !== requestIDRef.current) {\n return\n }\n\n // Log error but don't expose details to console in production\n\n // Fallback error component\n setComponent(\n React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-error-50)',\n border: '1px solid var(--theme-error-200)',\n borderRadius: '4px',\n color: 'var(--theme-error-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n 'Failed to load widget. Please try again later.',\n ),\n )\n }\n }\n void render()\n }, [serverFunction, widgetData, widgetId])\n\n useEffect(() => {\n void renderWidget()\n }, [renderWidget])\n\n if (!Component) {\n return <ShimmerEffect height=\"100%\" />\n }\n\n return <>{Component}</>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAOtD,SAASC,aAAa,QAAQ;AAC9B,SAASC,kBAAkB,QAAQ;AAEnC;;;AAGA,OAAO,MAAMC,YAAA,GASRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC;EAAA,IAAAH,EAAwB;EAC5B,OAAAI,SAAA,EAAAC,YAAA,IAAkCZ,KAAA,CAAAa,QAAA,KAAuC;EACzE;IAAAC;EAAA,IAA2BT,kBAAA;EAC3B,MAAAU,YAAA,GAAqBZ,MAAA,EAAO;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAM,cAAA,IAAAN,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAE,QAAA;IAEKM,EAAA,GAAAA,CAAA;MAC/B,MAAAC,MAAA,kBAAAA,OAAA;QACE,MAAAC,SAAA,GAAoBH,YAAA,CAAAI,OAAA,GAAAJ,YAAA,CAAAI,OAAA,IAAoB;QACxCP,YAAA,KAAa;QAAA;QAAA;UAGX,MAAAQ,UAAA,GAAmBV,QAAA,CAAAW,KAAA,IAAkBX,QAAA,CAAAY,WAAA,CAAqB;UAE1D,MAAAC,MAAA,SAAsBT,cAAA;YAAAU,IAAA,EACd;YAAAC,IAAA;cAAAhB,UAAA;cAAAW;YAAA;UAAA,CAKR;UAAA,IAEIF,SAAA,KAAcH,YAAA,CAAAI,OAAoB;YAAA;UAAA;UAItCP,YAAA,CAAaW,MAAA,CAAAG,SAAgB;QAAA,SAAAC,EAAA;UAAA,IAEzBT,SAAA,KAAcH,YAAA,CAAAI,OAAoB;YAAA;UAAA;UAOtCP,YAAA,CACEZ,KAAA,CAAA4B,aAAA,CACE;YAAAC,KAAA;cAAAC,UAAA,EAGgB;cAAAC,MAAA,EACJ;cAAAC,YAAA,EACM;cAAAC,KAAA,EACP;cAAAC,OAAA,EACE;cAAAC,SAAA,EACE;YAAA;UAAA,GAGf;QAAA;MAAA;MAKHlB,MAAA;IAAA;IACPT,CAAA,MAAAM,cAAA;IAAAN,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAhDA,MAAA4B,YAAA,GAAqBpB,EAgDoB;EAAA,IAAAW,EAAA;EAAA,IAAAU,EAAA;EAAA,IAAA7B,CAAA,QAAA4B,YAAA;IAE/BT,EAAA,GAAAA,CAAA;MACHS,YAAA;IAAA;IACJC,EAAA,IAACD,YAAA;IAAa5B,CAAA,MAAA4B,YAAA;IAAA5B,CAAA,MAAAmB,EAAA;IAAAnB,CAAA,MAAA6B,EAAA;EAAA;IAAAV,EAAA,GAAAnB,CAAA;IAAA6B,EAAA,GAAA7B,CAAA;EAAA;EAFjBN,SAAA,CAAUyB,EAEV,EAAGU,EAAc;EAAA,KAEZ1B,SAAA;IAAA,IAAA2B,EAAA;IAAA,IAAA9B,CAAA,QAAA+B,MAAA,CAAAC,GAAA;MACIF,EAAA,GAAAG,IAAA,CAAArC,aAAA;QAAAsC,MAAA,EAAsB;MAAA,C;;;;;WAAtBJ,E;;;;IAGFA,EAAA,GAAAG,IAAA,CAAAE,SAAA;MAAAC,QAAA,EAAGjC;IAAA,C;;;;;;SAAH2B,E;CACT","ignoreList":[]}
1
+ {"version":3,"file":"RenderWidget.js","names":["c","_c","React","useCallback","useEffect","useRef","ShimmerEffect","useServerFunctions","RenderWidget","t0","$","widgetData","widgetId","Component","setComponent","useState","serverFunction","requestIDRef","t1","render","requestID","current","widgetSlug","slice","lastIndexOf","result","name","args","component","t2","createElement","style","background","border","borderRadius","color","padding","textAlign","renderWidget","t3","t4","Symbol","for","_jsx","height","_Fragment","children"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect, useRef } from 'react'\n\nimport type {\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType,\n} from './renderWidgetServerFn.js'\n\nimport { ShimmerEffect } from '../../../../../elements/ShimmerEffect/index.js'\nimport { useServerFunctions } from '../../../../../providers/ServerFunctions/index.js'\n\n/**\n * Utility to render a widget on-demand on the client.\n */\nexport const RenderWidget: React.FC<{\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * Unique ID for this widget instance (format: \"slug-timestamp\")\n */\n widgetId: string\n}> = ({ widgetData, widgetId }) => {\n const [Component, setComponent] = React.useState<null | React.ReactNode>(null)\n const { serverFunction } = useServerFunctions()\n const requestIDRef = useRef(0)\n\n const renderWidget = useCallback(() => {\n async function render() {\n const requestID = ++requestIDRef.current\n setComponent(null)\n\n try {\n const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf('-'))\n\n const result = (await serverFunction({\n name: 'render-widget',\n args: {\n widgetData,\n widgetSlug,\n } as RenderWidgetServerFnArgs,\n })) as RenderWidgetServerFnReturnType\n\n if (requestID !== requestIDRef.current) {\n return\n }\n\n setComponent(result.component)\n } catch (_error) {\n if (requestID !== requestIDRef.current) {\n return\n }\n\n // Log error but don't expose details to console in production\n\n // Fallback error component\n setComponent(\n React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-error-50)',\n border: 'var(--stroke-width-small) solid var(--theme-error-200)',\n borderRadius: '4px',\n color: 'var(--color-text-danger)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n 'Failed to load widget. Please try again later.',\n ),\n )\n }\n }\n void render()\n }, [serverFunction, widgetData, widgetId])\n\n useEffect(() => {\n void renderWidget()\n }, [renderWidget])\n\n if (!Component) {\n return <ShimmerEffect height=\"100%\" />\n }\n\n return <>{Component}</>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAOtD,SAASC,aAAa,QAAQ;AAC9B,SAASC,kBAAkB,QAAQ;AAEnC;;;AAGA,OAAO,MAAMC,YAAA,GASRC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,UAAA;IAAAC;EAAA,IAAAH,EAAwB;EAC5B,OAAAI,SAAA,EAAAC,YAAA,IAAkCZ,KAAA,CAAAa,QAAA,KAAuC;EACzE;IAAAC;EAAA,IAA2BT,kBAAA;EAC3B,MAAAU,YAAA,GAAqBZ,MAAA,EAAO;EAAA,IAAAa,EAAA;EAAA,IAAAR,CAAA,QAAAM,cAAA,IAAAN,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAE,QAAA;IAEKM,EAAA,GAAAA,CAAA;MAC/B,MAAAC,MAAA,kBAAAA,OAAA;QACE,MAAAC,SAAA,GAAoBH,YAAA,CAAAI,OAAA,GAAAJ,YAAA,CAAAI,OAAA,IAAoB;QACxCP,YAAA,KAAa;QAAA;QAAA;UAGX,MAAAQ,UAAA,GAAmBV,QAAA,CAAAW,KAAA,IAAkBX,QAAA,CAAAY,WAAA,CAAqB;UAE1D,MAAAC,MAAA,SAAsBT,cAAA;YAAAU,IAAA,EACd;YAAAC,IAAA;cAAAhB,UAAA;cAAAW;YAAA;UAAA,CAKR;UAAA,IAEIF,SAAA,KAAcH,YAAA,CAAAI,OAAoB;YAAA;UAAA;UAItCP,YAAA,CAAaW,MAAA,CAAAG,SAAgB;QAAA,SAAAC,EAAA;UAAA,IAEzBT,SAAA,KAAcH,YAAA,CAAAI,OAAoB;YAAA;UAAA;UAOtCP,YAAA,CACEZ,KAAA,CAAA4B,aAAA,CACE;YAAAC,KAAA;cAAAC,UAAA,EAGgB;cAAAC,MAAA,EACJ;cAAAC,YAAA,EACM;cAAAC,KAAA,EACP;cAAAC,OAAA,EACE;cAAAC,SAAA,EACE;YAAA;UAAA,GAGf;QAAA;MAAA;MAKHlB,MAAA;IAAA;IACPT,CAAA,MAAAM,cAAA;IAAAN,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAE,QAAA;IAAAF,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAhDA,MAAA4B,YAAA,GAAqBpB,EAgDoB;EAAA,IAAAW,EAAA;EAAA,IAAAU,EAAA;EAAA,IAAA7B,CAAA,QAAA4B,YAAA;IAE/BT,EAAA,GAAAA,CAAA;MACHS,YAAA;IAAA;IACJC,EAAA,IAACD,YAAA;IAAa5B,CAAA,MAAA4B,YAAA;IAAA5B,CAAA,MAAAmB,EAAA;IAAAnB,CAAA,MAAA6B,EAAA;EAAA;IAAAV,EAAA,GAAAnB,CAAA;IAAA6B,EAAA,GAAA7B,CAAA;EAAA;EAFjBN,SAAA,CAAUyB,EAEV,EAAGU,EAAc;EAAA,KAEZ1B,SAAA;IAAA,IAAA2B,EAAA;IAAA,IAAA9B,CAAA,QAAA+B,MAAA,CAAAC,GAAA;MACIF,EAAA,GAAAG,IAAA,CAAArC,aAAA;QAAAsC,MAAA,EAAsB;MAAA,C;;;;;WAAtBJ,E;;;;IAGFA,EAAA,GAAAG,IAAA,CAAAE,SAAA;MAAAC,QAAA,EAAGjC;IAAA,C;;;;;;SAAH2B,E;CACT","ignoreList":[]}
@@ -29,7 +29,7 @@ export const renderWidgetHandler = ({
29
29
  component: React.createElement('div', {
30
30
  style: {
31
31
  background: 'var(--theme-elevation-50)',
32
- border: '1px solid var(--theme-elevation-200)',
32
+ border: 'var(--stroke-width-small) solid var(--theme-elevation-200)',
33
33
  borderRadius: '4px',
34
34
  color: 'var(--theme-text)',
35
35
  padding: '20px',
@@ -67,7 +67,7 @@ export const renderWidgetHandler = ({
67
67
  component: React.createElement('div', {
68
68
  style: {
69
69
  background: 'var(--theme-error-50)',
70
- border: '1px solid var(--theme-error-200)',
70
+ border: 'var(--stroke-width-small) solid var(--theme-error-200)',
71
71
  borderRadius: '4px',
72
72
  color: 'var(--theme-error-text)',
73
73
  padding: '20px',
@@ -1 +1 @@
1
- {"version":3,"file":"renderWidgetServerFn.js","names":["React","RenderServerComponent","extractLocaleData","renderWidgetHandler","cookies","locale","permissions","req","widgetData","widgetSlug","user","Error","widgets","payload","config","admin","dashboard","importMap","widgetConfig","find","widget","slug","component","createElement","style","background","border","borderRadius","color","padding","textAlign","localeFilteredData","fields","length","serverProps","Component","error","errorMessage","message","String","logger","err","msg"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.ts"],"sourcesContent":["import type { Field, ServerFunction, WidgetServerProps } from 'payload'\n\nimport React from 'react'\n\nimport { RenderServerComponent } from '../../../../../elements/RenderServerComponent/index.js'\nimport { extractLocaleData } from '../utils/localeUtils.js'\n\nexport type RenderWidgetServerFnArgs = {\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * The slug of the widget to render\n */\n widgetSlug: string\n}\n\nexport type RenderWidgetServerFnReturnType = {\n component: React.ReactNode\n}\n\n/**\n * Server function to render a widget on-demand.\n * Similar to render-field but specifically for dashboard widgets.\n */\nexport const renderWidgetHandler: ServerFunction<\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType\n> = ({ cookies, locale, permissions, req, widgetData, widgetSlug }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { widgets } = req.payload.config.admin.dashboard\n const { importMap } = req.payload\n\n // Find the widget configuration\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n\n if (!widgetConfig) {\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-elevation-50)',\n border: '1px solid var(--theme-elevation-200)',\n borderRadius: '4px',\n color: 'var(--theme-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n `Widget \"${widgetSlug}\" not found`,\n ),\n }\n }\n\n try {\n const localeFilteredData = widgetConfig.fields?.length\n ? extractLocaleData(widgetData || {}, req.locale || 'en', widgetConfig.fields)\n : widgetData || {}\n\n const serverProps: WidgetServerProps = {\n cookies,\n locale,\n permissions,\n req,\n widgetData: localeFilteredData,\n widgetSlug,\n }\n\n // Render the widget server component\n const component = RenderServerComponent({\n Component: widgetConfig.Component,\n importMap,\n serverProps,\n })\n\n return { component }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n req.payload.logger.error({\n err: error,\n msg: `Error rendering widget \"${widgetSlug}\": ${errorMessage}`,\n })\n\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-error-50)',\n border: '1px solid var(--theme-error-200)',\n borderRadius: '4px',\n color: 'var(--theme-error-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n 'Error loading widget',\n ),\n }\n }\n}\n"],"mappings":"AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAiBlC;;;;AAIA,OAAO,MAAMC,mBAAA,GAGTA,CAAC;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC,GAAG;EAAEC,UAAU;EAAEC;AAAU,CAAE;EAChE,IAAI,CAACF,GAAA,CAAIG,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAO,CAAE,GAAGL,GAAA,CAAIM,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS;EACtD,MAAM;IAAEC;EAAS,CAAE,GAAGV,GAAA,CAAIM,OAAO;EAEjC;EACA,MAAMK,YAAA,GAAeN,OAAA,CAAQO,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKZ,UAAA;EAE9D,IAAI,CAACS,YAAA,EAAc;IACjB,OAAO;MACLI,SAAA,EAAWtB,KAAA,CAAMuB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA,WAAWrB,UAAA,aAAuB;IAEtC;EACF;EAEA,IAAI;IACF,MAAMsB,kBAAA,GAAqBb,YAAA,CAAac,MAAM,EAAEC,MAAA,GAC5C/B,iBAAA,CAAkBM,UAAA,IAAc,CAAC,GAAGD,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAac,MAAM,IAC3ExB,UAAA,IAAc,CAAC;IAEnB,MAAM0B,WAAA,GAAiC;MACrC9B,OAAA;MACAC,MAAA;MACAC,WAAA;MACAC,GAAA;MACAC,UAAA,EAAYuB,kBAAA;MACZtB;IACF;IAEA;IACA,MAAMa,SAAA,GAAYrB,qBAAA,CAAsB;MACtCkC,SAAA,EAAWjB,YAAA,CAAaiB,SAAS;MACjClB,SAAA;MACAiB;IACF;IAEA,OAAO;MAAEZ;IAAU;EACrB,EAAE,OAAOc,KAAA,EAAO;IACd,MAAMC,YAAA,GAAeD,KAAA,YAAiBzB,KAAA,GAAQyB,KAAA,CAAME,OAAO,GAAGC,MAAA,CAAOH,KAAA;IAErE7B,GAAA,CAAIM,OAAO,CAAC2B,MAAM,CAACJ,KAAK,CAAC;MACvBK,GAAA,EAAKL,KAAA;MACLM,GAAA,EAAK,2BAA2BjC,UAAA,MAAgB4B,YAAA;IAClD;IAEA,OAAO;MACLf,SAAA,EAAWtB,KAAA,CAAMuB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA;IAEJ;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"renderWidgetServerFn.js","names":["React","RenderServerComponent","extractLocaleData","renderWidgetHandler","cookies","locale","permissions","req","widgetData","widgetSlug","user","Error","widgets","payload","config","admin","dashboard","importMap","widgetConfig","find","widget","slug","component","createElement","style","background","border","borderRadius","color","padding","textAlign","localeFilteredData","fields","length","serverProps","Component","error","errorMessage","message","String","logger","err","msg"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.ts"],"sourcesContent":["import type { Field, ServerFunction, WidgetServerProps } from 'payload'\n\nimport React from 'react'\n\nimport { RenderServerComponent } from '../../../../../elements/RenderServerComponent/index.js'\nimport { extractLocaleData } from '../utils/localeUtils.js'\n\nexport type RenderWidgetServerFnArgs = {\n /**\n * Instance-specific data for this widget\n */\n widgetData?: Record<string, unknown>\n /**\n * The slug of the widget to render\n */\n widgetSlug: string\n}\n\nexport type RenderWidgetServerFnReturnType = {\n component: React.ReactNode\n}\n\n/**\n * Server function to render a widget on-demand.\n * Similar to render-field but specifically for dashboard widgets.\n */\nexport const renderWidgetHandler: ServerFunction<\n RenderWidgetServerFnArgs,\n RenderWidgetServerFnReturnType\n> = ({ cookies, locale, permissions, req, widgetData, widgetSlug }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { widgets } = req.payload.config.admin.dashboard\n const { importMap } = req.payload\n\n // Find the widget configuration\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n\n if (!widgetConfig) {\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-elevation-50)',\n border: 'var(--stroke-width-small) solid var(--theme-elevation-200)',\n borderRadius: '4px',\n color: 'var(--theme-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n `Widget \"${widgetSlug}\" not found`,\n ),\n }\n }\n\n try {\n const localeFilteredData = widgetConfig.fields?.length\n ? extractLocaleData(widgetData || {}, req.locale || 'en', widgetConfig.fields)\n : widgetData || {}\n\n const serverProps: WidgetServerProps = {\n cookies,\n locale,\n permissions,\n req,\n widgetData: localeFilteredData,\n widgetSlug,\n }\n\n // Render the widget server component\n const component = RenderServerComponent({\n Component: widgetConfig.Component,\n importMap,\n serverProps,\n })\n\n return { component }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error)\n\n req.payload.logger.error({\n err: error,\n msg: `Error rendering widget \"${widgetSlug}\": ${errorMessage}`,\n })\n\n return {\n component: React.createElement(\n 'div',\n {\n style: {\n background: 'var(--theme-error-50)',\n border: 'var(--stroke-width-small) solid var(--theme-error-200)',\n borderRadius: '4px',\n color: 'var(--theme-error-text)',\n padding: '20px',\n textAlign: 'center',\n },\n },\n 'Error loading widget',\n ),\n }\n }\n}\n"],"mappings":"AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,qBAAqB,QAAQ;AACtC,SAASC,iBAAiB,QAAQ;AAiBlC;;;;AAIA,OAAO,MAAMC,mBAAA,GAGTA,CAAC;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC,GAAG;EAAEC,UAAU;EAAEC;AAAU,CAAE;EAChE,IAAI,CAACF,GAAA,CAAIG,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC;EAAO,CAAE,GAAGL,GAAA,CAAIM,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS;EACtD,MAAM;IAAEC;EAAS,CAAE,GAAGV,GAAA,CAAIM,OAAO;EAEjC;EACA,MAAMK,YAAA,GAAeN,OAAA,CAAQO,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKZ,UAAA;EAE9D,IAAI,CAACS,YAAA,EAAc;IACjB,OAAO;MACLI,SAAA,EAAWtB,KAAA,CAAMuB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA,WAAWrB,UAAA,aAAuB;IAEtC;EACF;EAEA,IAAI;IACF,MAAMsB,kBAAA,GAAqBb,YAAA,CAAac,MAAM,EAAEC,MAAA,GAC5C/B,iBAAA,CAAkBM,UAAA,IAAc,CAAC,GAAGD,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAac,MAAM,IAC3ExB,UAAA,IAAc,CAAC;IAEnB,MAAM0B,WAAA,GAAiC;MACrC9B,OAAA;MACAC,MAAA;MACAC,WAAA;MACAC,GAAA;MACAC,UAAA,EAAYuB,kBAAA;MACZtB;IACF;IAEA;IACA,MAAMa,SAAA,GAAYrB,qBAAA,CAAsB;MACtCkC,SAAA,EAAWjB,YAAA,CAAaiB,SAAS;MACjClB,SAAA;MACAiB;IACF;IAEA,OAAO;MAAEZ;IAAU;EACrB,EAAE,OAAOc,KAAA,EAAO;IACd,MAAMC,YAAA,GAAeD,KAAA,YAAiBzB,KAAA,GAAQyB,KAAA,CAAME,OAAO,GAAGC,MAAA,CAAOH,KAAA;IAErE7B,GAAA,CAAIM,OAAO,CAAC2B,MAAM,CAACJ,KAAK,CAAC;MACvBK,GAAA,EAAKL,KAAA;MACLM,GAAA,EAAK,2BAA2BjC,UAAA,MAAgB4B,YAAA;IAClD;IAEA,OAAO;MACLf,SAAA,EAAWtB,KAAA,CAAMuB,aAAa,CAC5B,OACA;QACEC,KAAA,EAAO;UACLC,UAAA,EAAY;UACZC,MAAA,EAAQ;UACRC,YAAA,EAAc;UACdC,KAAA,EAAO;UACPC,OAAA,EAAS;UACTC,SAAA,EAAW;QACb;MACF,GACA;IAEJ;EACF;AACF","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { BasePayload, TypedUser } from 'payload';
1
+ import type { BasePayload, User } from 'payload';
2
2
  import type { WidgetItem } from '../index.client.js';
3
- export declare function getItemsFromPreferences(payload: BasePayload, user: TypedUser): Promise<null | WidgetItem[]>;
3
+ export declare function getItemsFromPreferences(payload: BasePayload, user: User): Promise<null | WidgetItem[]>;
4
4
  //# sourceMappingURL=getItemsFromPreferences.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getItemsFromPreferences.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAIrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,CAe9B"}
1
+ {"version":3,"file":"getItemsFromPreferences.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAIpD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,IAAI,GAAG,UAAU,EAAE,CAAC,CAe9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"getItemsFromPreferences.js","names":["PREFERENCE_KEYS","getPreferences","getItemsFromPreferences","payload","user","savedPreferences","DASHBOARD_LAYOUT","id","collection","value","layouts"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"sourcesContent":["import type { BasePayload, TypedUser } from 'payload'\n\nimport { PREFERENCE_KEYS } from 'payload/shared'\n\nimport type { WidgetItem } from '../index.client.js'\n\nimport { getPreferences } from '../../../../../utilities/upsertPreferences.js'\n\nexport async function getItemsFromPreferences(\n payload: BasePayload,\n user: TypedUser,\n): Promise<null | WidgetItem[]> {\n const savedPreferences = await getPreferences(\n PREFERENCE_KEYS.DASHBOARD_LAYOUT,\n payload,\n user.id,\n user.collection,\n )\n if (\n !savedPreferences?.value ||\n typeof savedPreferences.value !== 'object' ||\n !('layouts' in savedPreferences.value)\n ) {\n return null\n }\n return savedPreferences.value.layouts as null | WidgetItem[]\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ;AAIhC,SAASC,cAAc,QAAQ;AAE/B,OAAO,eAAeC,wBACpBC,OAAoB,EACpBC,IAAe;EAEf,MAAMC,gBAAA,GAAmB,MAAMJ,cAAA,CAC7BD,eAAA,CAAgBM,gBAAgB,EAChCH,OAAA,EACAC,IAAA,CAAKG,EAAE,EACPH,IAAA,CAAKI,UAAU;EAEjB,IACE,CAACH,gBAAA,EAAkBI,KAAA,IACnB,OAAOJ,gBAAA,CAAiBI,KAAK,KAAK,YAClC,EAAE,aAAaJ,gBAAA,CAAiBI,KAAK,CAAD,EACpC;IACA,OAAO;EACT;EACA,OAAOJ,gBAAA,CAAiBI,KAAK,CAACC,OAAO;AACvC","ignoreList":[]}
1
+ {"version":3,"file":"getItemsFromPreferences.js","names":["PREFERENCE_KEYS","getPreferences","getItemsFromPreferences","payload","user","savedPreferences","DASHBOARD_LAYOUT","id","collection","value","layouts"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/utils/getItemsFromPreferences.ts"],"sourcesContent":["import type { BasePayload, User } from 'payload'\n\nimport { PREFERENCE_KEYS } from 'payload/shared'\n\nimport type { WidgetItem } from '../index.client.js'\n\nimport { getPreferences } from '../../../../../utilities/upsertPreferences.js'\n\nexport async function getItemsFromPreferences(\n payload: BasePayload,\n user: User,\n): Promise<null | WidgetItem[]> {\n const savedPreferences = await getPreferences(\n PREFERENCE_KEYS.DASHBOARD_LAYOUT,\n payload,\n user.id,\n user.collection,\n )\n if (\n !savedPreferences?.value ||\n typeof savedPreferences.value !== 'object' ||\n !('layouts' in savedPreferences.value)\n ) {\n return null\n }\n return savedPreferences.value.layouts as null | WidgetItem[]\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ;AAIhC,SAASC,cAAc,QAAQ;AAE/B,OAAO,eAAeC,wBACpBC,OAAoB,EACpBC,IAAU;EAEV,MAAMC,gBAAA,GAAmB,MAAMJ,cAAA,CAC7BD,eAAA,CAAgBM,gBAAgB,EAChCH,OAAA,EACAC,IAAA,CAAKG,EAAE,EACPH,IAAA,CAAKI,UAAU;EAEjB,IACE,CAACH,gBAAA,EAAkBI,KAAA,IACnB,OAAOJ,gBAAA,CAAiBI,KAAK,KAAK,YAClC,EAAE,aAAaJ,gBAAA,CAAiBI,KAAK,CAAD,EACpC;IACA,OAAO;EACT;EACA,OAAOJ,gBAAA,CAAiBI,KAAK,CAACC,OAAO;AACvC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AA2BzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,0PAgBlC;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAgYA,CAAA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,oBAAoB,+QAe7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAEpB,IAAI,EACJ,uBAAuB,EACvB,uBAAuB,EAEvB,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EACjC,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AA6BzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,gBAAgB,CAAC,uBAAuB,CAAC,GACzC,KAAK,CAAC,EAAE,GACR,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,0PAgBlC;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,EAAE,gCAAgC,CAAA;CAC5C,GAAG,oBAAoB,KAAG,OAAO,CAAC;IACjC,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAsZA,CAAA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,oBAAoB,+QAuB7D"}
@@ -11,6 +11,7 @@ import { buildFormState } from '../../utilities/buildFormState.js';
11
11
  import { getDocPreferences } from '../../utilities/getDocPreferences.js';
12
12
  import { getDocumentData } from '../../utilities/getDocumentData.js';
13
13
  import { getDocumentPermissions } from '../../utilities/getDocumentPermissions.js';
14
+ import { getHasScheduledPublish } from '../../utilities/getHasScheduledPublish.js';
14
15
  import { getIsLocked } from '../../utilities/getIsLocked.js';
15
16
  import { getVersions } from '../../utilities/getVersions.js';
16
17
  import { handleLivePreview } from '../../utilities/handleLivePreview.js';
@@ -20,6 +21,7 @@ import { getPreferences } from '../../utilities/upsertPreferences.js';
20
21
  import { NotFoundView } from '../NotFound/index.js';
21
22
  import { UnauthorizedViewWithGutter } from '../Unauthorized/index.js';
22
23
  import { getDocumentView } from './getDocumentView.js';
24
+ import { recordRecentlyViewed } from './recordRecentlyViewed.js';
23
25
  import { renderDocumentSlots } from './renderDocumentSlots.js';
24
26
  export { getDocumentView } from './getDocumentView.js';
25
27
  /**
@@ -159,6 +161,13 @@ export const renderDocument = async ({
159
161
  // get entity preferences
160
162
  getPreferences(collectionSlug ? `collection-${collectionSlug}` : `global-${globalSlug}`, payload, req.user.id, req.user.collection)]);
161
163
  const operation = collectionSlug && idFromArgs || globalSlug ? 'update' : 'create';
164
+ // Record the document as recently viewed (collections only, never on the create route or for
165
+ // trashed docs). Runs concurrently with the work below and never throws.
166
+ const recentlyViewedPromise = collectionSlug && idFromArgs && doc && !isTrashedDoc ? recordRecentlyViewed({
167
+ id: idFromArgs,
168
+ collectionSlug,
169
+ req
170
+ }) : undefined;
162
171
  const [{
163
172
  hasPublishedDoc,
164
173
  mostRecentVersionIsAutosaved,
@@ -166,7 +175,7 @@ export const renderDocument = async ({
166
175
  versionCount
167
176
  }, {
168
177
  state: formState
169
- }] = await Promise.all([getVersions({
178
+ }, hasScheduledPublish] = await Promise.all([getVersions({
170
179
  id: idFromArgs,
171
180
  collectionConfig,
172
181
  doc,
@@ -190,7 +199,15 @@ export const renderDocument = async ({
190
199
  req,
191
200
  schemaPath: collectionSlug || globalSlug,
192
201
  skipValidation: true
202
+ }), getHasScheduledPublish({
203
+ id: idFromArgs,
204
+ collectionConfig,
205
+ globalConfig,
206
+ hasPublishPermission,
207
+ payload,
208
+ user
193
209
  })]);
210
+ await recentlyViewedPromise;
194
211
  const documentViewServerProps = {
195
212
  doc,
196
213
  hasPublishedDoc,
@@ -284,6 +301,7 @@ export const renderDocument = async ({
284
301
  const documentSlots = renderDocumentSlots({
285
302
  id,
286
303
  collectionConfig,
304
+ doc: doc,
287
305
  globalConfig,
288
306
  hasSavePermission,
289
307
  locale,
@@ -336,6 +354,7 @@ export const renderDocument = async ({
336
354
  hasPublishedDoc: hasPublishedDoc,
337
355
  hasPublishPermission: hasPublishPermission,
338
356
  hasSavePermission: hasSavePermission,
357
+ hasScheduledPublish: hasScheduledPublish,
339
358
  hasTrashPermission: hasTrashPermission,
340
359
  id: id,
341
360
  initialData: doc,
@@ -354,7 +373,7 @@ export const renderDocument = async ({
354
373
  children: /*#__PURE__*/_jsxs(LivePreviewProvider, {
355
374
  breakpoints: livePreviewConfig?.breakpoints,
356
375
  isLivePreviewEnabled: isLivePreviewEnabled && operation !== 'create',
357
- isLivePreviewing: Boolean(entityPreferences?.value?.editViewType === 'live-preview' && livePreviewURL),
376
+ isLivePreviewing: Boolean((entityPreferences?.value?.editViewType === undefined ? livePreviewConfig?.openByDefault : entityPreferences.value.editViewType === 'live-preview') && livePreviewURL),
358
377
  isPreviewEnabled: Boolean(isPreviewEnabled),
359
378
  previewURL: previewURL,
360
379
  typeofLivePreviewURL: typeof livePreviewConfig?.url,
@@ -389,6 +408,13 @@ export async function DocumentView(props) {
389
408
  if (error?.message === 'NEXT_REDIRECT') {
390
409
  throw error;
391
410
  }
411
+ // The TanStack adapter's `req.server.redirect()` throws `redirect:<url>` as a
412
+ // control-flow signal — the target is already recorded on `req.server` and
413
+ // honored upstream in `loadAdminPage`. It isn't a real error, so swallow it
414
+ // without logging, mirroring the `NEXT_REDIRECT` guard above.
415
+ if (error?.message?.startsWith('redirect:')) {
416
+ return;
417
+ }
392
418
  logError({
393
419
  err: error,
394
420
  payload: props.initPageResult.req.payload