@payloadcms/ui 4.0.0-internal.c7d5de4 → 4.0.0-internal.cb69780

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 (1195) hide show
  1. package/dist/css/app.css +122 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/preflight.css +1 -0
  4. package/dist/css/spacing.css +14 -3
  5. package/dist/css/z-index.css +1 -0
  6. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  7. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  8. package/dist/elements/APIKeyInput/index.js +27 -29
  9. package/dist/elements/APIKeyInput/index.js.map +1 -1
  10. package/dist/elements/AddNewRelation/index.css +0 -1
  11. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  12. package/dist/elements/AddNewRelation/index.js +1 -0
  13. package/dist/elements/AddNewRelation/index.js.map +1 -1
  14. package/dist/elements/AppHeader/index.css +4 -3
  15. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  16. package/dist/elements/AppHeader/index.js +6 -2
  17. package/dist/elements/AppHeader/index.js.map +1 -1
  18. package/dist/elements/ArrayAction/index.d.ts +4 -0
  19. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  20. package/dist/elements/ArrayAction/index.js +86 -29
  21. package/dist/elements/ArrayAction/index.js.map +1 -1
  22. package/dist/elements/Autosave/index.d.ts.map +1 -1
  23. package/dist/elements/Autosave/index.js +2 -3
  24. package/dist/elements/Autosave/index.js.map +1 -1
  25. package/dist/elements/Banner/index.css +4 -0
  26. package/dist/elements/Banner/index.d.ts.map +1 -1
  27. package/dist/elements/Banner/index.js +1 -0
  28. package/dist/elements/Banner/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  30. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  31. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  32. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  33. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  34. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  35. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  36. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  37. package/dist/elements/BulkUpload/FileSidebar/index.css +5 -0
  38. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  39. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  40. package/dist/elements/BulkUpload/FormsManager/createFormData.js +10 -17
  41. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  42. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  43. package/dist/elements/BulkUpload/FormsManager/index.js +19 -13
  44. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  45. package/dist/elements/BulkUpload/index.css +2 -0
  46. package/dist/elements/Button/index.css +2 -2
  47. package/dist/elements/Button/index.d.ts.map +1 -1
  48. package/dist/elements/Button/index.js +13 -0
  49. package/dist/elements/Button/index.js.map +1 -1
  50. package/dist/elements/Button/types.d.ts +7 -2
  51. package/dist/elements/Button/types.d.ts.map +1 -1
  52. package/dist/elements/Button/types.js.map +1 -1
  53. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  54. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  55. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  56. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  57. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  58. package/dist/elements/ClipboardAction/index.js +18 -1
  59. package/dist/elements/ClipboardAction/index.js.map +1 -1
  60. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  61. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  62. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  63. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  64. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  65. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  66. package/dist/elements/ClipboardAction/types.js.map +1 -1
  67. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  68. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  69. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  70. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  71. package/dist/elements/CodeEditor/index.css +0 -5
  72. package/dist/elements/Collapsible/index.css +1 -0
  73. package/dist/elements/ColumnSelection/Popup.css +8 -0
  74. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  75. package/dist/elements/ColumnSelection/Popup.js +17 -14
  76. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  77. package/dist/elements/ColumnSelection/index.d.ts.map +1 -1
  78. package/dist/elements/ColumnSelection/index.js +59 -55
  79. package/dist/elements/ColumnSelection/index.js.map +1 -1
  80. package/dist/elements/Combobox/index.d.ts.map +1 -1
  81. package/dist/elements/Combobox/index.js +2 -0
  82. package/dist/elements/Combobox/index.js.map +1 -1
  83. package/dist/elements/CommandPalette/index.css +0 -7
  84. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  85. package/dist/elements/CopyLocaleData/index.js +8 -9
  86. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  87. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  88. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  89. package/dist/elements/CopyToClipboard/index.js +10 -8
  90. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  91. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  92. package/dist/elements/CreateDocumentButton/index.js +5 -1
  93. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  94. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  95. package/dist/elements/DatePicker/DatePicker.js +113 -82
  96. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  97. package/dist/elements/DatePicker/index.css +8 -1
  98. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  99. package/dist/elements/DeleteDocument/index.js +16 -1
  100. package/dist/elements/DeleteDocument/index.js.map +1 -1
  101. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  102. package/dist/elements/DeleteMany/index.js +2 -3
  103. package/dist/elements/DeleteMany/index.js.map +1 -1
  104. package/dist/elements/Dialog/DialogModal/index.d.ts +1 -1
  105. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  106. package/dist/elements/Dialog/DialogModal/index.js +40 -28
  107. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  108. package/dist/elements/Dialog/index.css +1 -0
  109. package/dist/elements/DocumentControls/index.css +1 -0
  110. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  111. package/dist/elements/DocumentControls/index.js +1 -0
  112. package/dist/elements/DocumentControls/index.js.map +1 -1
  113. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -2
  114. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  115. package/dist/elements/DocumentFields/index.css +2 -0
  116. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  117. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  118. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -3
  119. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  120. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  121. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  122. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  123. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  124. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  125. package/dist/elements/DocumentHeader/index.css +1 -0
  126. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  127. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  128. package/dist/elements/DocumentHeader/index.js +4 -2
  129. package/dist/elements/DocumentHeader/index.js.map +1 -1
  130. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +1 -1
  131. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  132. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  133. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  134. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +11 -8
  135. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  136. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  137. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  138. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  139. package/dist/elements/Drawer/index.css +10 -4
  140. package/dist/elements/Drawer/index.d.ts.map +1 -1
  141. package/dist/elements/Drawer/index.js +3 -1
  142. package/dist/elements/Drawer/index.js.map +1 -1
  143. package/dist/elements/Dropzone/index.css +10 -4
  144. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  145. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  146. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  147. package/dist/elements/DuplicateDocument/index.js +2 -3
  148. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  149. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  150. package/dist/elements/EditMany/DrawerContent.js +4 -5
  151. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  152. package/dist/elements/EditUpload/index.css +2 -1
  153. package/dist/elements/EditUpload/index.js +53 -12
  154. package/dist/elements/EditUpload/index.js.map +1 -1
  155. package/dist/elements/FieldDiffContainer/index.css +1 -0
  156. package/dist/elements/FieldDiffContainer/index.js +1 -1
  157. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  158. package/dist/elements/FieldDiffLabel/index.css +1 -0
  159. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  160. package/dist/elements/FieldSelect/index.js +41 -24
  161. package/dist/elements/FieldSelect/index.js.map +1 -1
  162. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +5 -1
  163. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  164. package/dist/elements/FieldSelect/reduceFieldOptions.js +26 -4
  165. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  166. package/dist/elements/FileDetails/StaticFileDetails/index.css +10 -9
  167. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  168. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  169. package/dist/elements/FileManager/FileToolbar/index.js +4 -0
  170. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  171. package/dist/elements/FileManager/index.css +35 -52
  172. package/dist/elements/FileManager/index.d.ts +1 -1
  173. package/dist/elements/FileManager/index.d.ts.map +1 -1
  174. package/dist/elements/FileManager/index.js +385 -282
  175. package/dist/elements/FileManager/index.js.map +1 -1
  176. package/dist/elements/FilterTrigger/index.d.ts +5 -1
  177. package/dist/elements/FilterTrigger/index.d.ts.map +1 -1
  178. package/dist/elements/FilterTrigger/index.js +6 -0
  179. package/dist/elements/FilterTrigger/index.js.map +1 -1
  180. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  181. package/dist/elements/FullscreenModal/index.js +1 -1
  182. package/dist/elements/FullscreenModal/index.js.map +1 -1
  183. package/dist/elements/GroupBy/Popup.d.ts.map +1 -1
  184. package/dist/elements/GroupBy/Popup.js +74 -45
  185. package/dist/elements/GroupBy/Popup.js.map +1 -1
  186. package/dist/elements/GroupBy/index.d.ts.map +1 -1
  187. package/dist/elements/GroupBy/index.js +2 -0
  188. package/dist/elements/GroupBy/index.js.map +1 -1
  189. package/dist/elements/HTMLDiff/index.css +1 -0
  190. package/dist/elements/HTMLDiff/index.d.ts +3 -1
  191. package/dist/elements/HTMLDiff/index.d.ts.map +1 -1
  192. package/dist/elements/HTMLDiff/index.js +9 -3
  193. package/dist/elements/HTMLDiff/index.js.map +1 -1
  194. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +3 -0
  195. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  196. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +60 -47
  197. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  198. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  199. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  200. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +34 -27
  201. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  202. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -2
  203. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -1
  204. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -1
  205. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  206. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  207. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  208. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  209. package/dist/elements/Hierarchy/Search/index.js +6 -7
  210. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  211. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  212. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  213. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  214. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  215. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  216. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  217. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  218. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  219. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  220. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  221. package/dist/elements/IDLabel/index.css +6 -0
  222. package/dist/elements/IDLabel/index.d.ts +1 -1
  223. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  224. package/dist/elements/IDLabel/index.js +16 -21
  225. package/dist/elements/IDLabel/index.js.map +1 -1
  226. package/dist/elements/InputStepper/index.css +0 -1
  227. package/dist/elements/ItemsDrawer/index.css +3 -0
  228. package/dist/elements/ListControls/index.css +1 -0
  229. package/dist/elements/ListControls/index.d.ts.map +1 -1
  230. package/dist/elements/ListControls/index.js +8 -1
  231. package/dist/elements/ListControls/index.js.map +1 -1
  232. package/dist/elements/ListControls/types.d.ts +3 -1
  233. package/dist/elements/ListControls/types.d.ts.map +1 -1
  234. package/dist/elements/ListControls/types.js.map +1 -1
  235. package/dist/elements/ListControlsBar/index.css +1 -0
  236. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  237. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  238. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  239. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  240. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  241. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  242. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  243. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  244. package/dist/elements/LivePreview/Toolbar/Controls/index.js +3 -0
  245. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  246. package/dist/elements/LivePreview/Window/index.css +1 -0
  247. package/dist/elements/LivePreview/Window/index.js +1 -1
  248. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  249. package/dist/elements/Loading/index.d.ts.map +1 -1
  250. package/dist/elements/Loading/index.js +1 -0
  251. package/dist/elements/Loading/index.js.map +1 -1
  252. package/dist/elements/Localizer/index.d.ts +3 -6
  253. package/dist/elements/Localizer/index.d.ts.map +1 -1
  254. package/dist/elements/Localizer/index.js +20 -12
  255. package/dist/elements/Localizer/index.js.map +1 -1
  256. package/dist/elements/Locked/index.css +0 -8
  257. package/dist/elements/Locked/index.d.ts.map +1 -1
  258. package/dist/elements/Locked/index.js +70 -64
  259. package/dist/elements/Locked/index.js.map +1 -1
  260. package/dist/elements/MiniCarousel/index.css +39 -37
  261. package/dist/elements/Modal/index.d.ts +5 -1
  262. package/dist/elements/Modal/index.d.ts.map +1 -1
  263. package/dist/elements/Modal/index.js +69 -1
  264. package/dist/elements/Modal/index.js.map +1 -1
  265. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  266. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -0
  267. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  268. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  269. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  270. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  271. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  272. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  273. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  274. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +5 -3
  275. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  276. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  277. package/dist/elements/Nav/getNavPrefs.js +2 -0
  278. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  279. package/dist/elements/Nav/index.css +2 -0
  280. package/dist/elements/NavGroup/index.css +0 -1
  281. package/dist/elements/PageControls/GroupByPageControls.d.ts +1 -0
  282. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -1
  283. package/dist/elements/PageControls/GroupByPageControls.js +9 -6
  284. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  285. package/dist/elements/PageControls/index.css +1 -0
  286. package/dist/elements/PageControls/index.d.ts +3 -0
  287. package/dist/elements/PageControls/index.d.ts.map +1 -1
  288. package/dist/elements/PageControls/index.js +42 -27
  289. package/dist/elements/PageControls/index.js.map +1 -1
  290. package/dist/elements/Pagination/ClickableArrow/index.d.ts +1 -0
  291. package/dist/elements/Pagination/ClickableArrow/index.d.ts.map +1 -1
  292. package/dist/elements/Pagination/ClickableArrow/index.js +46 -10
  293. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  294. package/dist/elements/Pagination/SimplePagination/index.d.ts +1 -0
  295. package/dist/elements/Pagination/SimplePagination/index.d.ts.map +1 -1
  296. package/dist/elements/Pagination/SimplePagination/index.js +14 -8
  297. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  298. package/dist/elements/Pagination/index.d.ts +1 -0
  299. package/dist/elements/Pagination/index.d.ts.map +1 -1
  300. package/dist/elements/Pagination/index.js +36 -17
  301. package/dist/elements/Pagination/index.js.map +1 -1
  302. package/dist/elements/PerPage/index.d.ts +1 -0
  303. package/dist/elements/PerPage/index.d.ts.map +1 -1
  304. package/dist/elements/PerPage/index.js +24 -15
  305. package/dist/elements/PerPage/index.js.map +1 -1
  306. package/dist/elements/PillSelector/index.css +1 -0
  307. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  308. package/dist/elements/Popup/PopupButtonList/index.d.ts +8 -0
  309. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  310. package/dist/elements/Popup/PopupButtonList/index.js +50 -6
  311. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  312. package/dist/elements/Popup/PopupTrigger/index.d.ts +9 -2
  313. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  314. package/dist/elements/Popup/PopupTrigger/index.js +58 -6
  315. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  316. package/dist/elements/Popup/index.css +4 -2
  317. package/dist/elements/Popup/index.d.ts +6 -27
  318. package/dist/elements/Popup/index.d.ts.map +1 -1
  319. package/dist/elements/Popup/index.js +115 -76
  320. package/dist/elements/Popup/index.js.map +1 -1
  321. package/dist/elements/PreviewButton/index.d.ts +1 -2
  322. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  323. package/dist/elements/PreviewButton/index.js +11 -5
  324. package/dist/elements/PreviewButton/index.js.map +1 -1
  325. package/dist/elements/PreviewSizes/index.css +10 -9
  326. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  327. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  328. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  329. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  330. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  331. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  332. package/dist/elements/PublishButton/index.css +1 -0
  333. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  334. package/dist/elements/PublishButton/index.js +16 -31
  335. package/dist/elements/PublishButton/index.js.map +1 -1
  336. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  337. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  338. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  339. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  340. package/dist/elements/QueryPresets/QueryPresetBar/index.js +19 -5
  341. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  342. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +3 -2
  343. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  344. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  345. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +3 -2
  346. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  347. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  348. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  349. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +3 -2
  350. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  351. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  352. package/dist/elements/ReactSelect/ClearIndicator/index.css +5 -1
  353. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  354. package/dist/elements/ReactSelect/ClearIndicator/index.js +51 -20
  355. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  356. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  357. package/dist/elements/ReactSelect/DefaultMenuPortal.js +2 -1
  358. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  359. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -4
  360. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  361. package/dist/elements/ReactSelect/DropdownIndicator/index.js +16 -21
  362. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  363. package/dist/elements/ReactSelect/MultiValue/context.d.ts +6 -0
  364. package/dist/elements/ReactSelect/MultiValue/context.d.ts.map +1 -0
  365. package/dist/elements/ReactSelect/MultiValue/context.js +5 -0
  366. package/dist/elements/ReactSelect/MultiValue/context.js.map +1 -0
  367. package/dist/elements/ReactSelect/MultiValue/index.css +5 -1
  368. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  369. package/dist/elements/ReactSelect/MultiValue/index.js +89 -35
  370. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  371. package/dist/elements/ReactSelect/MultiValueLabel/index.css +43 -3
  372. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts +5 -1
  373. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  374. package/dist/elements/ReactSelect/MultiValueLabel/index.js +49 -4
  375. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  376. package/dist/elements/ReactSelect/MultiValueRemove/index.css +30 -4
  377. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  378. package/dist/elements/ReactSelect/MultiValueRemove/index.js +92 -66
  379. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  380. package/dist/elements/ReactSelect/Option/index.d.ts +6 -0
  381. package/dist/elements/ReactSelect/Option/index.d.ts.map +1 -0
  382. package/dist/elements/ReactSelect/Option/index.js +30 -0
  383. package/dist/elements/ReactSelect/Option/index.js.map +1 -0
  384. package/dist/elements/ReactSelect/index.css +0 -3
  385. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  386. package/dist/elements/ReactSelect/index.js +4 -1
  387. package/dist/elements/ReactSelect/index.js.map +1 -1
  388. package/dist/elements/ReactSelect/types.d.ts +7 -1
  389. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  390. package/dist/elements/ReactSelect/types.js.map +1 -1
  391. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  392. package/dist/elements/RelationshipTable/AddNewButton.js +1 -0
  393. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  394. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  395. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  396. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  397. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  398. package/dist/elements/RelationshipTable/index.css +0 -2
  399. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  400. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  401. package/dist/elements/RelationshipTable/index.js +100 -60
  402. package/dist/elements/RelationshipTable/index.js.map +1 -1
  403. package/dist/elements/RenderTitle/index.css +5 -0
  404. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  405. package/dist/elements/RenderTitle/index.js +18 -13
  406. package/dist/elements/RenderTitle/index.js.map +1 -1
  407. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  408. package/dist/elements/RestoreMany/index.js +2 -3
  409. package/dist/elements/RestoreMany/index.js.map +1 -1
  410. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  411. package/dist/elements/SaveDraftButton/index.js +2 -3
  412. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  413. package/dist/elements/SelectRow/index.d.ts +5 -3
  414. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  415. package/dist/elements/SelectRow/index.js +37 -26
  416. package/dist/elements/SelectRow/index.js.map +1 -1
  417. package/dist/elements/SidebarToggle/index.css +0 -17
  418. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  419. package/dist/elements/SortColumn/index.js +63 -91
  420. package/dist/elements/SortColumn/index.js.map +1 -1
  421. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  422. package/dist/elements/SortHeader/index.js +34 -49
  423. package/dist/elements/SortHeader/index.js.map +1 -1
  424. package/dist/elements/Status/index.d.ts.map +1 -1
  425. package/dist/elements/Status/index.js +2 -3
  426. package/dist/elements/Status/index.js.map +1 -1
  427. package/dist/elements/StepNav/index.css +64 -14
  428. package/dist/elements/StepNav/index.d.ts.map +1 -1
  429. package/dist/elements/StepNav/index.js +144 -69
  430. package/dist/elements/StepNav/index.js.map +1 -1
  431. package/dist/elements/Switch/index.d.ts +1 -0
  432. package/dist/elements/Switch/index.d.ts.map +1 -1
  433. package/dist/elements/Switch/index.js +18 -16
  434. package/dist/elements/Switch/index.js.map +1 -1
  435. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  436. package/dist/elements/Table/DefaultCell/index.js +3 -11
  437. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  438. package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts +8 -0
  439. package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts.map +1 -0
  440. package/dist/elements/Table/GridNavigation/useGridNavigation.js +397 -0
  441. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -0
  442. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  443. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  444. package/dist/elements/Table/OrderableRow.js +17 -1
  445. package/dist/elements/Table/OrderableRow.js.map +1 -1
  446. package/dist/elements/Table/OrderableTable.d.ts +1 -0
  447. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  448. package/dist/elements/Table/OrderableTable.js +26 -6
  449. package/dist/elements/Table/OrderableTable.js.map +1 -1
  450. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  451. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  452. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  453. package/dist/elements/Table/TableIdentity.d.ts +10 -0
  454. package/dist/elements/Table/TableIdentity.d.ts.map +1 -0
  455. package/dist/elements/Table/TableIdentity.js +52 -0
  456. package/dist/elements/Table/TableIdentity.js.map +1 -0
  457. package/dist/elements/Table/index.css +2 -0
  458. package/dist/elements/Table/index.d.ts +3 -0
  459. package/dist/elements/Table/index.d.ts.map +1 -1
  460. package/dist/elements/Table/index.js +72 -29
  461. package/dist/elements/Table/index.js.map +1 -1
  462. package/dist/elements/Table/useAriaSort.d.ts +7 -0
  463. package/dist/elements/Table/useAriaSort.d.ts.map +1 -0
  464. package/dist/elements/Table/useAriaSort.js +53 -0
  465. package/dist/elements/Table/useAriaSort.js.map +1 -0
  466. package/dist/elements/TableSection/index.css +1 -1
  467. package/dist/elements/Tabs/index.css +1 -0
  468. package/dist/elements/Thumbnail/index.css +1 -0
  469. package/dist/elements/Thumbnail/index.d.ts +1 -1
  470. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  471. package/dist/elements/Thumbnail/index.js.map +1 -1
  472. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  473. package/dist/elements/ThumbnailCard/index.js +10 -8
  474. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  475. package/dist/elements/TimezonePicker/index.css +1 -0
  476. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  477. package/dist/elements/TimezonePicker/index.js +5 -1
  478. package/dist/elements/TimezonePicker/index.js.map +1 -1
  479. package/dist/elements/Tooltip/index.css +22 -34
  480. package/dist/elements/Tooltip/index.d.ts +11 -3
  481. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  482. package/dist/elements/Tooltip/index.js +151 -85
  483. package/dist/elements/Tooltip/index.js.map +1 -1
  484. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  485. package/dist/elements/UnpublishButton/index.js +3 -4
  486. package/dist/elements/UnpublishButton/index.js.map +1 -1
  487. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  488. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  489. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  490. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  491. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  492. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  493. package/dist/elements/Upload/index.css +39 -37
  494. package/dist/elements/Upload/index.d.ts.map +1 -1
  495. package/dist/elements/Upload/index.js +37 -99
  496. package/dist/elements/Upload/index.js.map +1 -1
  497. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  498. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  499. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  500. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  501. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  502. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  503. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  504. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  505. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  506. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  507. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  508. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  509. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  510. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  511. package/dist/elements/UserMenu/LanguageMenu/index.js +3 -0
  512. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  513. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  514. package/dist/elements/UserMenu/SettingsMenu/index.js +3 -0
  515. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  516. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  517. package/dist/elements/UserMenu/SubMenuHeader/index.js +2 -0
  518. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  519. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  520. package/dist/elements/UserMenu/ThemeMenu/index.js +3 -0
  521. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  522. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  523. package/dist/elements/UserMenu/index.js +21 -4
  524. package/dist/elements/UserMenu/index.js.map +1 -1
  525. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  526. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  527. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  528. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  529. package/dist/elements/WhereBuilder/Condition/index.js +7 -1
  530. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  531. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  532. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  533. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  534. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  535. package/dist/elements/WhereBuilder/index.css +2 -0
  536. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  537. package/dist/elements/WhereBuilder/index.js +15 -4
  538. package/dist/elements/WhereBuilder/index.js.map +1 -1
  539. package/dist/exports/client/index.d.ts +5 -1
  540. package/dist/exports/client/index.d.ts.map +1 -1
  541. package/dist/exports/client/index.js +1 -1
  542. package/dist/exports/client/index.js.map +3 -3
  543. package/dist/exports/shared/index.js +1 -1
  544. package/dist/exports/shared/index.js.map +3 -3
  545. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  546. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  547. package/dist/fields/Array/ArrayRow.js +100 -160
  548. package/dist/fields/Array/ArrayRow.js.map +1 -1
  549. package/dist/fields/Array/index.css +1 -0
  550. package/dist/fields/Array/index.d.ts +3 -7
  551. package/dist/fields/Array/index.d.ts.map +1 -1
  552. package/dist/fields/Array/index.js +48 -17
  553. package/dist/fields/Array/index.js.map +1 -1
  554. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  555. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  556. package/dist/fields/Blocks/BlockRow.js +136 -195
  557. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  558. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  559. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  560. package/dist/fields/Blocks/RowActions.js +35 -20
  561. package/dist/fields/Blocks/RowActions.js.map +1 -1
  562. package/dist/fields/Blocks/index.css +1 -0
  563. package/dist/fields/Blocks/index.d.ts +2 -5
  564. package/dist/fields/Blocks/index.d.ts.map +1 -1
  565. package/dist/fields/Blocks/index.js +48 -17
  566. package/dist/fields/Blocks/index.js.map +1 -1
  567. package/dist/fields/Checkbox/Input.d.ts +2 -0
  568. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  569. package/dist/fields/Checkbox/Input.js +32 -26
  570. package/dist/fields/Checkbox/Input.js.map +1 -1
  571. package/dist/fields/Checkbox/index.css +37 -73
  572. package/dist/fields/Checkbox/index.d.ts +2 -12
  573. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  574. package/dist/fields/Checkbox/index.js.map +1 -1
  575. package/dist/fields/Code/index.d.ts +2 -8
  576. package/dist/fields/Code/index.d.ts.map +1 -1
  577. package/dist/fields/Code/index.js.map +1 -1
  578. package/dist/fields/Collapsible/index.d.ts +2 -3
  579. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  580. package/dist/fields/Collapsible/index.js.map +1 -1
  581. package/dist/fields/DateTime/index.d.ts +3 -7
  582. package/dist/fields/DateTime/index.d.ts.map +1 -1
  583. package/dist/fields/DateTime/index.js +1 -1
  584. package/dist/fields/DateTime/index.js.map +1 -1
  585. package/dist/fields/Email/index.d.ts +2 -7
  586. package/dist/fields/Email/index.d.ts.map +1 -1
  587. package/dist/fields/Email/index.js.map +1 -1
  588. package/dist/fields/FieldError/index.css +0 -9
  589. package/dist/fields/FieldError/index.d.ts.map +1 -1
  590. package/dist/fields/FieldError/index.js +19 -9
  591. package/dist/fields/FieldError/index.js.map +1 -1
  592. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  593. package/dist/fields/FieldLabel/index.js +4 -5
  594. package/dist/fields/FieldLabel/index.js.map +1 -1
  595. package/dist/fields/Group/index.css +1 -0
  596. package/dist/fields/Group/index.d.ts +3 -5
  597. package/dist/fields/Group/index.d.ts.map +1 -1
  598. package/dist/fields/Group/index.js.map +1 -1
  599. package/dist/fields/JSON/index.d.ts +2 -6
  600. package/dist/fields/JSON/index.d.ts.map +1 -1
  601. package/dist/fields/JSON/index.js.map +1 -1
  602. package/dist/fields/Join/index.css +9 -0
  603. package/dist/fields/Join/index.d.ts +2 -6
  604. package/dist/fields/Join/index.d.ts.map +1 -1
  605. package/dist/fields/Join/index.js +13 -9
  606. package/dist/fields/Join/index.js.map +1 -1
  607. package/dist/fields/Number/index.d.ts +2 -7
  608. package/dist/fields/Number/index.d.ts.map +1 -1
  609. package/dist/fields/Number/index.js.map +1 -1
  610. package/dist/fields/Point/index.d.ts +3 -8
  611. package/dist/fields/Point/index.d.ts.map +1 -1
  612. package/dist/fields/Point/index.js.map +1 -1
  613. package/dist/fields/RadioGroup/index.css +0 -7
  614. package/dist/fields/RadioGroup/index.js.map +1 -1
  615. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  616. package/dist/fields/Relationship/Input.js +34 -17
  617. package/dist/fields/Relationship/Input.js.map +1 -1
  618. package/dist/fields/Relationship/index.d.ts +2 -6
  619. package/dist/fields/Relationship/index.d.ts.map +1 -1
  620. package/dist/fields/Relationship/index.js.map +1 -1
  621. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  622. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  623. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +24 -2
  624. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  625. package/dist/fields/Row/index.css +2 -0
  626. package/dist/fields/Row/index.d.ts +2 -3
  627. package/dist/fields/Row/index.d.ts.map +1 -1
  628. package/dist/fields/Row/index.js.map +1 -1
  629. package/dist/fields/Select/index.d.ts +2 -9
  630. package/dist/fields/Select/index.d.ts.map +1 -1
  631. package/dist/fields/Select/index.js.map +1 -1
  632. package/dist/fields/Slug/index.css +0 -1
  633. package/dist/fields/Slug/index.d.ts.map +1 -1
  634. package/dist/fields/Slug/index.js +74 -111
  635. package/dist/fields/Slug/index.js.map +1 -1
  636. package/dist/fields/Tabs/index.css +1 -0
  637. package/dist/fields/Tabs/index.d.ts +2 -4
  638. package/dist/fields/Tabs/index.d.ts.map +1 -1
  639. package/dist/fields/Tabs/index.js.map +1 -1
  640. package/dist/fields/Text/index.d.ts +2 -8
  641. package/dist/fields/Text/index.d.ts.map +1 -1
  642. package/dist/fields/Text/index.js.map +1 -1
  643. package/dist/fields/Textarea/index.d.ts +2 -9
  644. package/dist/fields/Textarea/index.d.ts.map +1 -1
  645. package/dist/fields/Textarea/index.js.map +1 -1
  646. package/dist/fields/Upload/Input.d.ts.map +1 -1
  647. package/dist/fields/Upload/Input.js +46 -19
  648. package/dist/fields/Upload/Input.js.map +1 -1
  649. package/dist/fields/Upload/index.css +19 -4
  650. package/dist/fields/shared/index.d.ts +1 -1
  651. package/dist/fields/shared/index.d.ts.map +1 -1
  652. package/dist/fields/shared/index.js.map +1 -1
  653. package/dist/fields/shared/useRowFocus.d.ts +5 -0
  654. package/dist/fields/shared/useRowFocus.d.ts.map +1 -0
  655. package/dist/fields/shared/useRowFocus.js +50 -0
  656. package/dist/fields/shared/useRowFocus.js.map +1 -0
  657. package/dist/forms/Form/context.d.ts +3 -1
  658. package/dist/forms/Form/context.d.ts.map +1 -1
  659. package/dist/forms/Form/context.js +3 -1
  660. package/dist/forms/Form/context.js.map +1 -1
  661. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  662. package/dist/forms/Form/fieldReducer.js +3 -1
  663. package/dist/forms/Form/fieldReducer.js.map +1 -1
  664. package/dist/forms/Form/index.d.ts.map +1 -1
  665. package/dist/forms/Form/index.js +27 -22
  666. package/dist/forms/Form/index.js.map +1 -1
  667. package/dist/forms/Form/types.d.ts +1 -1
  668. package/dist/forms/Form/types.d.ts.map +1 -1
  669. package/dist/forms/Form/types.js.map +1 -1
  670. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  671. package/dist/forms/NullifyField/index.js +2 -3
  672. package/dist/forms/NullifyField/index.js.map +1 -1
  673. package/dist/forms/RenderFields/context.d.ts +2 -2
  674. package/dist/forms/RenderFields/context.js +2 -2
  675. package/dist/forms/RenderFields/context.js.map +1 -1
  676. package/dist/forms/RenderFields/index.css +17 -2
  677. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  678. package/dist/forms/WatchChildErrors/index.js +2 -2
  679. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  680. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  681. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +14 -5
  682. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  683. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  684. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -5
  685. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  686. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  687. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  688. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  689. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  690. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  691. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  692. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  693. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  694. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  695. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  696. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  697. package/dist/graphics/Logo/index.d.ts.map +1 -1
  698. package/dist/graphics/Logo/index.js +2 -0
  699. package/dist/graphics/Logo/index.js.map +1 -1
  700. package/dist/hooks/useControllableState.js +3 -3
  701. package/dist/hooks/useControllableState.js.map +1 -1
  702. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  703. package/dist/hooks/usePayloadAPI.js +2 -3
  704. package/dist/hooks/usePayloadAPI.js.map +1 -1
  705. package/dist/icons/Edit/index.d.ts +0 -1
  706. package/dist/icons/Edit/index.d.ts.map +1 -1
  707. package/dist/icons/Edit/index.js +4 -4
  708. package/dist/icons/Edit/index.js.map +1 -1
  709. package/dist/layouts/Root/index.d.ts +4 -7
  710. package/dist/layouts/Root/index.d.ts.map +1 -1
  711. package/dist/layouts/Root/index.js +17 -12
  712. package/dist/layouts/Root/index.js.map +1 -1
  713. package/dist/providers/Actions/index.d.ts +1 -0
  714. package/dist/providers/Actions/index.d.ts.map +1 -1
  715. package/dist/providers/Actions/index.js +43 -11
  716. package/dist/providers/Actions/index.js.map +1 -1
  717. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  718. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  719. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  720. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  721. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  722. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  723. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  724. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  725. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  726. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  727. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  728. package/dist/providers/Auth/authSessionRequests.js +119 -0
  729. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  730. package/dist/providers/Auth/index.d.ts +2 -56
  731. package/dist/providers/Auth/index.d.ts.map +1 -1
  732. package/dist/providers/Auth/index.js +283 -135
  733. package/dist/providers/Auth/index.js.map +1 -1
  734. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  735. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  736. package/dist/providers/Auth/sessionActivity.js +49 -0
  737. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  738. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  739. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  740. package/dist/providers/Auth/sessionTiming.js +18 -0
  741. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  742. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  743. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  744. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  745. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  746. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  747. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  748. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  749. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  750. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  751. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  752. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  753. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  754. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  755. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  756. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  757. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  758. package/dist/providers/Auth/types.d.ts +65 -0
  759. package/dist/providers/Auth/types.d.ts.map +1 -0
  760. package/dist/providers/Auth/types.js +2 -0
  761. package/dist/providers/Auth/types.js.map +1 -0
  762. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  763. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  764. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  765. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  766. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  767. package/dist/providers/DocumentInfo/index.js +32 -24
  768. package/dist/providers/DocumentInfo/index.js.map +1 -1
  769. package/dist/providers/DocumentInfo/types.d.ts +0 -10
  770. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  771. package/dist/providers/DocumentInfo/types.js.map +1 -1
  772. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  773. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  774. package/dist/providers/DocumentTitle/index.js +2 -0
  775. package/dist/providers/DocumentTitle/index.js.map +1 -1
  776. package/dist/providers/Embed/index.d.ts +24 -0
  777. package/dist/providers/Embed/index.d.ts.map +1 -0
  778. package/dist/providers/Embed/index.js +105 -0
  779. package/dist/providers/Embed/index.js.map +1 -0
  780. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  781. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  782. package/dist/providers/FormErrorHandler/index.js +6 -0
  783. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  784. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  785. package/dist/providers/LivePreview/index.js +13 -6
  786. package/dist/providers/LivePreview/index.js.map +1 -1
  787. package/dist/providers/Locale/index.d.ts +1 -5
  788. package/dist/providers/Locale/index.d.ts.map +1 -1
  789. package/dist/providers/Locale/index.js +64 -138
  790. package/dist/providers/Locale/index.js.map +1 -1
  791. package/dist/providers/ModalAccessibility/index.d.ts +3 -0
  792. package/dist/providers/ModalAccessibility/index.d.ts.map +1 -0
  793. package/dist/providers/ModalAccessibility/index.js +102 -0
  794. package/dist/providers/ModalAccessibility/index.js.map +1 -0
  795. package/dist/providers/Root/index.d.ts +1 -0
  796. package/dist/providers/Root/index.d.ts.map +1 -1
  797. package/dist/providers/Root/index.js +43 -36
  798. package/dist/providers/Root/index.js.map +1 -1
  799. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  800. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  801. package/dist/providers/RouteTransition/index.d.ts +2 -0
  802. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  803. package/dist/providers/RouteTransition/index.js +42 -14
  804. package/dist/providers/RouteTransition/index.js.map +1 -1
  805. package/dist/providers/Selection/index.d.ts.map +1 -1
  806. package/dist/providers/Selection/index.js +2 -3
  807. package/dist/providers/Selection/index.js.map +1 -1
  808. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  809. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  810. package/dist/providers/ServerFunctions/index.js +15 -0
  811. package/dist/providers/ServerFunctions/index.js.map +1 -1
  812. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  813. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  814. package/dist/providers/SidebarTabs/index.js.map +1 -1
  815. package/dist/providers/TableColumns/buildColumnState/index.js +1 -2
  816. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  817. package/dist/providers/Theme/index.d.ts +3 -0
  818. package/dist/providers/Theme/index.d.ts.map +1 -1
  819. package/dist/providers/Theme/index.js +107 -95
  820. package/dist/providers/Theme/index.js.map +1 -1
  821. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  822. package/dist/providers/ToastContainer/index.js +100 -33
  823. package/dist/providers/ToastContainer/index.js.map +1 -1
  824. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  825. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  826. package/dist/providers/UploadHandlers/index.js +102 -42
  827. package/dist/providers/UploadHandlers/index.js.map +1 -1
  828. package/dist/styles.css +17 -10
  829. package/dist/templates/Default/Wrapper/index.css +2 -0
  830. package/dist/templates/Default/index.css +1 -0
  831. package/dist/templates/Default/index.d.ts +1 -0
  832. package/dist/templates/Default/index.d.ts.map +1 -1
  833. package/dist/templates/Default/index.js +2 -0
  834. package/dist/templates/Default/index.js.map +1 -1
  835. package/dist/utilities/buildFormState.d.ts.map +1 -1
  836. package/dist/utilities/buildFormState.js +6 -2
  837. package/dist/utilities/buildFormState.js.map +1 -1
  838. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  839. package/dist/utilities/combineFieldLabel.js +5 -1
  840. package/dist/utilities/combineFieldLabel.js.map +1 -1
  841. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  842. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  843. package/dist/utilities/formatAbsoluteURL.js +18 -8
  844. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  845. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  846. package/dist/utilities/formatMetadata.js +0 -5
  847. package/dist/utilities/formatMetadata.js.map +1 -1
  848. package/dist/utilities/generateFieldID.d.ts +1 -1
  849. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  850. package/dist/utilities/generateFieldID.js +2 -2
  851. package/dist/utilities/generateFieldID.js.map +1 -1
  852. package/dist/utilities/getActiveModal.d.ts +6 -0
  853. package/dist/utilities/getActiveModal.d.ts.map +1 -0
  854. package/dist/utilities/getActiveModal.js +8 -0
  855. package/dist/utilities/getActiveModal.js.map +1 -0
  856. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  857. package/dist/utilities/getDocPreferences.js +1 -0
  858. package/dist/utilities/getDocPreferences.js.map +1 -1
  859. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  860. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  861. package/dist/utilities/getFilesFromClipboard.js +49 -0
  862. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  863. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  864. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  865. package/dist/utilities/getHasScheduledPublish.js +2 -5
  866. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  867. package/dist/utilities/getPreferences.d.ts.map +1 -1
  868. package/dist/utilities/getPreferences.js +1 -0
  869. package/dist/utilities/getPreferences.js.map +1 -1
  870. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  871. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  872. package/dist/utilities/getRequestEmbed.js +10 -0
  873. package/dist/utilities/getRequestEmbed.js.map +1 -0
  874. package/dist/utilities/getVersions.d.ts.map +1 -1
  875. package/dist/utilities/getVersions.js +8 -0
  876. package/dist/utilities/getVersions.js.map +1 -1
  877. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  878. package/dist/utilities/handleAuthRedirect.js +4 -1
  879. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  880. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  881. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  882. package/dist/utilities/handleServerFunctions.js +22 -40
  883. package/dist/utilities/handleServerFunctions.js.map +1 -1
  884. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  885. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  886. package/dist/utilities/isAbsoluteURL.js +15 -0
  887. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  888. package/dist/utilities/isHttpURL.d.ts +3 -0
  889. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  890. package/dist/utilities/isHttpURL.js +12 -0
  891. package/dist/utilities/isHttpURL.js.map +1 -0
  892. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  893. package/dist/utilities/isPathMatchingRoute.js +7 -5
  894. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  895. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  896. package/dist/utilities/isPublicAdminRoute.js +9 -6
  897. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  898. package/dist/utilities/renderTable.d.ts.map +1 -1
  899. package/dist/utilities/renderTable.js +29 -6
  900. package/dist/utilities/renderTable.js.map +1 -1
  901. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  902. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  903. package/dist/utilities/schedulePublishHandler.js +74 -5
  904. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  905. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  906. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  907. package/dist/utilities/serverFunctionRegistry.js +27 -8
  908. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  909. package/dist/utilities/slugify.d.ts.map +1 -1
  910. package/dist/utilities/slugify.js +52 -6
  911. package/dist/utilities/slugify.js.map +1 -1
  912. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  913. package/dist/utilities/upsertPreferences.js +3 -0
  914. package/dist/utilities/upsertPreferences.js.map +1 -1
  915. package/dist/views/API/index.client.d.ts.map +1 -1
  916. package/dist/views/API/index.client.js +2 -3
  917. package/dist/views/API/index.client.js.map +1 -1
  918. package/dist/views/API/index.css +1 -0
  919. package/dist/views/Account/index.d.ts +1 -1
  920. package/dist/views/Account/index.d.ts.map +1 -1
  921. package/dist/views/Account/index.js +8 -5
  922. package/dist/views/Account/index.js.map +1 -1
  923. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  924. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +75 -114
  925. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  926. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts +7 -0
  927. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts.map +1 -0
  928. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js +65 -0
  929. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js.map +1 -0
  930. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts +2 -1
  931. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  932. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +14 -8
  933. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  934. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  935. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +189 -113
  936. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  937. package/dist/views/Dashboard/Default/ModularDashboard/index.css +35 -146
  938. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  939. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  940. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  941. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  942. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  943. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  944. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  945. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  946. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  947. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +12 -10
  948. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  949. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  950. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +3 -0
  951. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  952. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.d.ts.map +1 -1
  953. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +2 -38
  954. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -1
  955. package/dist/views/Dashboard/index.d.ts.map +1 -1
  956. package/dist/views/Dashboard/index.js +2 -3
  957. package/dist/views/Dashboard/index.js.map +1 -1
  958. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  959. package/dist/views/Document/handleServerFunction.js +3 -0
  960. package/dist/views/Document/handleServerFunction.js.map +1 -1
  961. package/dist/views/Document/index.d.ts +1 -1
  962. package/dist/views/Document/index.d.ts.map +1 -1
  963. package/dist/views/Document/index.js +10 -6
  964. package/dist/views/Document/index.js.map +1 -1
  965. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  966. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  967. package/dist/views/Document/renderDocumentSlots.js +7 -4
  968. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  969. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  970. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  971. package/dist/views/Edit/Auth/APIKey.js +233 -59
  972. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  973. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  974. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  975. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  976. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  977. package/dist/views/Edit/Auth/index.css +91 -0
  978. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  979. package/dist/views/Edit/Auth/index.js +10 -28
  980. package/dist/views/Edit/Auth/index.js.map +1 -1
  981. package/dist/views/Edit/Auth/types.d.ts +3 -1
  982. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  983. package/dist/views/Edit/Auth/types.js.map +1 -1
  984. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  985. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  986. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  987. package/dist/views/Edit/index.css +62 -53
  988. package/dist/views/Edit/index.d.ts.map +1 -1
  989. package/dist/views/Edit/index.js +3 -2
  990. package/dist/views/Edit/index.js.map +1 -1
  991. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  992. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  993. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  994. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  995. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  996. package/dist/views/ForgotPassword/index.js +2 -11
  997. package/dist/views/ForgotPassword/index.js.map +1 -1
  998. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  999. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  1000. package/dist/views/HierarchyList/TypeFilter/index.js +6 -7
  1001. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  1002. package/dist/views/HierarchyList/index.css +2 -1
  1003. package/dist/views/List/ListHeader/index.css +1 -0
  1004. package/dist/views/List/ListHeader/index.d.ts +1 -11
  1005. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  1006. package/dist/views/List/ListHeader/index.js +3 -9
  1007. package/dist/views/List/ListHeader/index.js.map +1 -1
  1008. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  1009. package/dist/views/List/enrichDocsWithVersionStatus.js +1 -0
  1010. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  1011. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  1012. package/dist/views/List/handleServerFunction.js +4 -1
  1013. package/dist/views/List/handleServerFunction.js.map +1 -1
  1014. package/dist/views/List/index.client.d.ts.map +1 -1
  1015. package/dist/views/List/index.client.js +145 -138
  1016. package/dist/views/List/index.client.js.map +1 -1
  1017. package/dist/views/List/index.css +8 -1
  1018. package/dist/views/List/index.d.ts.map +1 -1
  1019. package/dist/views/List/index.js +6 -1
  1020. package/dist/views/List/index.js.map +1 -1
  1021. package/dist/views/Logout/index.d.ts.map +1 -1
  1022. package/dist/views/Logout/index.js +11 -0
  1023. package/dist/views/Logout/index.js.map +1 -1
  1024. package/dist/views/NotFound/client.d.ts +2 -0
  1025. package/dist/views/NotFound/client.d.ts.map +1 -0
  1026. package/dist/views/NotFound/client.js +4 -0
  1027. package/dist/views/NotFound/client.js.map +1 -0
  1028. package/dist/views/NotFound/page.d.ts +4 -11
  1029. package/dist/views/NotFound/page.d.ts.map +1 -1
  1030. package/dist/views/NotFound/page.js +6 -5
  1031. package/dist/views/NotFound/page.js.map +1 -1
  1032. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  1033. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  1034. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  1035. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  1036. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  1037. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  1038. package/dist/views/Root/index.d.ts +17 -7
  1039. package/dist/views/Root/index.d.ts.map +1 -1
  1040. package/dist/views/Root/index.js +44 -27
  1041. package/dist/views/Root/index.js.map +1 -1
  1042. package/dist/views/Verify/index.d.ts +1 -1
  1043. package/dist/views/Verify/index.d.ts.map +1 -1
  1044. package/dist/views/Verify/index.js +4 -4
  1045. package/dist/views/Verify/index.js.map +1 -1
  1046. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  1047. package/dist/views/Version/Default/SetStepNav.js +10 -13
  1048. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  1049. package/dist/views/Version/Default/index.css +2 -0
  1050. package/dist/views/Version/Default/index.d.ts.map +1 -1
  1051. package/dist/views/Version/Default/index.js +12 -13
  1052. package/dist/views/Version/Default/index.js.map +1 -1
  1053. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  1054. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  1055. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  1056. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  1057. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  1058. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  1059. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  1060. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts +3 -2
  1061. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts.map +1 -1
  1062. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  1063. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +3 -2
  1064. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  1065. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  1066. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  1067. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +3 -2
  1068. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -1
  1069. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  1070. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +3 -2
  1071. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  1072. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  1073. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  1074. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  1075. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  1076. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  1077. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +1 -0
  1078. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  1079. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  1080. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -2
  1081. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  1082. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  1083. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +3 -2
  1084. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -1
  1085. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  1086. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -2
  1087. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  1088. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  1089. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -2
  1090. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  1091. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  1092. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +3 -2
  1093. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  1094. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -1
  1095. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  1096. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  1097. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +2 -2
  1098. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  1099. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  1100. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  1101. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  1102. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  1103. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  1104. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  1105. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  1106. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  1107. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  1108. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  1109. package/dist/views/Version/Restore/index.js +9 -6
  1110. package/dist/views/Version/Restore/index.js.map +1 -1
  1111. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  1112. package/dist/views/Version/SelectLocales/index.js +1 -0
  1113. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  1114. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  1115. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  1116. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  1117. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  1118. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  1119. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  1120. package/dist/views/Versions/index.client.d.ts.map +1 -1
  1121. package/dist/views/Versions/index.client.js +3 -1
  1122. package/dist/views/Versions/index.client.js.map +1 -1
  1123. package/dist/views/Versions/index.css +1 -0
  1124. package/dist/widgets/CollectionCards/index.css +4 -0
  1125. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -2
  1126. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  1127. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  1128. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +3 -2
  1129. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  1130. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  1131. package/package.json +12 -11
  1132. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  1133. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  1134. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  1135. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  1136. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  1137. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  1138. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  1139. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  1140. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  1141. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  1142. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  1143. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  1144. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  1145. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  1146. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  1147. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  1148. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  1149. package/dist/layouts/Root/index.spec.js +0 -20
  1150. package/dist/layouts/Root/index.spec.js.map +0 -1
  1151. package/dist/scss/app.scss +0 -183
  1152. package/dist/scss/colors.scss +0 -191
  1153. package/dist/scss/custom.css +0 -1
  1154. package/dist/scss/queries.scss +0 -27
  1155. package/dist/scss/styles.scss +0 -9
  1156. package/dist/scss/svg.scss +0 -10
  1157. package/dist/scss/toastify.scss +0 -61
  1158. package/dist/scss/vars.scss +0 -192
  1159. package/dist/scss/z-index.scss +0 -9
  1160. package/dist/utilities/appendCacheTag.spec.js +0 -34
  1161. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  1162. package/dist/utilities/formatMetadata.spec.js +0 -83
  1163. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  1164. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  1165. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  1166. package/dist/utilities/getRequestLocale.d.ts +0 -7
  1167. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  1168. package/dist/utilities/getRequestLocale.js +0 -20
  1169. package/dist/utilities/getRequestLocale.js.map +0 -1
  1170. package/dist/utilities/initReq.d.ts +0 -16
  1171. package/dist/utilities/initReq.d.ts.map +0 -1
  1172. package/dist/utilities/initReq.js +0 -111
  1173. package/dist/utilities/initReq.js.map +0 -1
  1174. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  1175. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  1176. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  1177. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  1178. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  1179. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  1180. package/dist/utilities/recentlyViewed.spec.js +0 -92
  1181. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  1182. package/dist/utilities/selectiveCache.d.ts +0 -12
  1183. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  1184. package/dist/utilities/selectiveCache.js +0 -37
  1185. package/dist/utilities/selectiveCache.js.map +0 -1
  1186. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  1187. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  1188. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  1189. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  1190. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  1191. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  1192. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  1193. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  1194. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  1195. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -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","getTranslation","toWords","React","useEffect","useMemo","useState","Button","Popup","PopupList","ChevronIcon","useTranslation","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetContent","WidgetEditControl","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","i18n","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","activeControlsWidgetID","setActiveControlsWidgetID","sensors","t1","t2","t3","t4","Symbol","for","t5","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t6","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","slug_0","label","find","widgetConfig","DraggableItem","disabled","width","t7","dragHandle","filter","Boolean","join","component","onSave","data","widgetData","widgetID","widgetLabel","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onOpenChange","isOpen","onResize","buttonStyle","extraButtonProps","tabIndex","icon","margin","onClick","round","dropAnimation","duration","modifiers","draggedWidget","widget_2","inert","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","option","isDisabled","onToggleClose","onToggleOpen","popupType","render","close","ButtonGroup","isSelected","toFixed","renderButton","_active","onKeyDown","ariaProps","size","selected","verticalAlign","props","attributes","isDragging","listeners","setActivatorNodeRef","setNodeRef","mergedStyles","opacity","DroppableItem","undefined","ref","role","height","type","isOver","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 { getTranslation } from '@payloadcms/translations'\nimport { toWords } from 'payload/shared'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/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 { WidgetContent } from './WidgetContent/index.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 { i18n, 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 [activeControlsWidgetID, setActiveControlsWidgetID] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n useEffect(() => {\n if (!isEditing) {\n setActiveControlsWidgetID(null)\n }\n }, [isEditing])\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) => {\n const slug = widget.item.id.slice(0, widget.item.id.lastIndexOf('-'))\n const label = getTranslation(\n widgets.find((widgetConfig) => widgetConfig.slug === slug)?.label ?? toWords(slug),\n i18n,\n )\n\n return (\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n key={widget.item.id}\n label={label}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n }}\n width={widget.item.width}\n >\n {({ dragHandle }) => (\n <div\n className={[\n 'widget-wrapper',\n isEditing ? 'widget-wrapper--editing' : '',\n activeControlsWidgetID === widget.item.id\n ? 'widget-wrapper--controls-active'\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <WidgetContent id={`${widget.item.id}-content`} isEditing={isEditing}>\n {widget.component}\n </WidgetContent>\n {dragHandle}\n {isEditing && (\n <div className=\"widget-wrapper__controls\">\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n widgetLabel={label}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onOpenChange={(isOpen) => {\n setActiveControlsWidgetID(isOpen ? widget.item.id : null)\n }}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n widgetLabel={label}\n />\n <Button\n aria-label={t('general:deleteLabel', { label })}\n buttonStyle=\"destructive\"\n className=\"widget-wrapper__delete-btn\"\n extraButtonProps={{ tabIndex: 0 }}\n icon=\"x\"\n margin={false}\n onClick={() => deleteWidget(widget.item.id)}\n round\n />\n </div>\n )}\n </div>\n )}\n </DraggableItem>\n )\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 aria-hidden=\"true\"\n inert\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 onOpenChange,\n onResize,\n widgetLabel,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onOpenChange: (isOpen: boolean) => void\n onResize: (width: WidgetWidth) => void\n widgetLabel: string\n}) {\n const { t } = useTranslation()\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 onToggleClose={() => onOpenChange(false)}\n onToggleOpen={onOpenChange}\n popupType=\"menu\"\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 renderButton={({ active: _active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('dashboard:resizeWidget', { label: widgetLabel, size: currentWidth })}\n buttonStyle=\"secondary\"\n className=\"widget-wrapper__size-btn\"\n extraButtonProps={{\n onKeyDown,\n ...ariaProps,\n tabIndex: 0,\n }}\n icon={<ChevronIcon className=\"widget-wrapper__size-btn-icon\" size={16} />}\n margin={false}\n onClick={onClick}\n selected={_active}\n >\n {currentWidth}\n </Button>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: (args: { dragHandle: React.ReactNode }) => React.ReactNode\n disabled?: boolean\n id: string\n label: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { t } = useTranslation()\n const { attributes, isDragging, listeners, setActivatorNodeRef, 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 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 aria-label={props.label}\n aria-labelledby={props.disabled ? undefined : `${props.id}-content`}\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n role=\"group\"\n style={{\n width: '100%',\n height: '100%',\n position: 'relative',\n }}\n tabIndex={props.disabled ? undefined : 0}\n >\n {props.children({\n dragHandle: !props.disabled && (\n <button\n {...attributes}\n {...listeners}\n aria-describedby={[attributes['aria-describedby'], `${props.id}-content`]\n .filter(Boolean)\n .join(' ')}\n aria-label={t('general:dragToReorder')}\n className=\"widget-wrapper__edit-overlay widget-wrapper__drag-btn\"\n ref={setActivatorNodeRef}\n type=\"button\"\n />\n ),\n })}\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-brand-secondary)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,8 +26,10 @@
26
26
  }
27
27
  }
28
28
 
29
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
29
30
  @media (max-width: 768px) {
30
31
  .modular-dashboard .widget {
32
+ /* stylelint-disable-next-line plugin/no-important -- TODO: pre-existing; revisit whether specificity can win instead */
31
33
  width: 100% !important;
32
34
  }
33
35
 
@@ -39,10 +41,9 @@
39
41
  .modular-dashboard.editing .widget-content {
40
42
  user-select: none;
41
43
  -webkit-user-select: none;
42
- pointer-events: none;
43
44
  }
44
45
 
45
- .modular-dashboard.editing .draggable {
46
+ .modular-dashboard.editing .widget-wrapper__drag-btn {
46
47
  cursor: grab;
47
48
  }
48
49
 
@@ -66,7 +67,6 @@
66
67
 
67
68
  .widget-wrapper__controls {
68
69
  opacity: 0;
69
- transition: opacity 0.2s ease;
70
70
  }
71
71
 
72
72
  .widget:focus-visible .widget-wrapper__controls,
@@ -98,7 +98,32 @@
98
98
  transition: opacity 0.2s ease;
99
99
  }
100
100
 
101
- .widget-wrapper--editing:hover .widget-wrapper__controls {
101
+ .widget-wrapper--editing:hover .widget-wrapper__controls,
102
+ .widget-wrapper--editing:has(:focus-visible) .widget-wrapper__controls,
103
+ .widget-wrapper--controls-active .widget-wrapper__controls {
104
+ opacity: 1;
105
+ }
106
+
107
+ .widget-wrapper__edit-overlay {
108
+ position: absolute;
109
+ inset: 0;
110
+ z-index: 5;
111
+ border: 0;
112
+ padding: 0;
113
+ width: 100%;
114
+ height: 100%;
115
+ background: rgba(0, 0, 0, 0.35);
116
+ outline: var(--accessibility-outline);
117
+ outline-offset: var(--accessibility-outline-offset);
118
+ border-radius: var(--radius-medium);
119
+ box-sizing: border-box;
120
+ opacity: 0;
121
+ transition: opacity 0.2s ease;
122
+ }
123
+
124
+ .widget-wrapper--editing:hover .widget-wrapper__edit-overlay,
125
+ .widget-wrapper--editing:has(:focus-visible) .widget-wrapper__edit-overlay,
126
+ .widget-wrapper--controls-active .widget-wrapper__edit-overlay {
102
127
  opacity: 1;
103
128
  }
104
129
 
@@ -112,162 +137,26 @@
112
137
  gap: var(--spacer-2);
113
138
  }
114
139
 
115
- .widget-wrapper__delete-btn {
116
- display: flex;
117
- align-items: center;
118
- justify-content: center;
119
- width: var(--spacer-4);
120
- height: var(--spacer-4);
121
- background: var(--color-bg-danger);
122
- border: none;
123
- border-radius: var(--radius-small);
124
- cursor: pointer;
125
- color: var(--color-text-ondanger);
126
- transition: all 0.2s ease;
127
-
128
- &:hover {
129
- background: var(--color-bg-danger-hover);
130
- }
131
-
132
- &:active {
133
- background: var(--color-bg-danger-pressed);
134
- }
135
-
136
- &:focus-visible {
137
- outline: var(--accessibility-outline);
138
- outline-offset: var(--accessibility-outline-offset);
139
- }
140
-
141
- & svg {
142
- pointer-events: none;
143
- }
144
- }
145
-
146
- .widget-wrapper__edit-btn {
147
- display: flex;
148
- align-items: center;
149
- justify-content: center;
150
- width: var(--spacer-4);
151
- height: var(--spacer-4);
152
- background: var(--color-text);
153
- border: none;
154
- border-radius: var(--radius-small);
155
- cursor: pointer;
156
- color: var(--color-bg);
157
- transition: all 0.2s ease;
158
-
159
- & .icon {
160
- width: var(--spacer-3);
161
- height: var(--spacer-3);
162
- }
163
-
164
- &:hover {
165
- background: var(--color-text-secondary);
166
- }
167
-
168
- &:active {
169
- background: var(--color-text-tertiary);
170
- }
171
-
172
- & svg {
173
- pointer-events: none;
174
- }
175
- }
176
-
177
140
  .widget-wrapper__size-btn {
178
- display: flex;
179
- align-items: center;
180
- gap: var(--spacer-1);
181
- padding: var(--spacer-1) var(--spacer-2);
182
141
  min-width: auto;
183
- height: var(--spacer-4);
184
- background: var(--color-bg-inverse);
185
- border: none;
186
- border-radius: var(--radius-small);
187
- cursor: pointer;
188
- transition: all 0.2s ease;
189
- font-family: var(--text-body-small-font-family);
190
- font-size: var(--text-body-small-font-size);
191
- font-weight: var(--text-body-small-font-weight);
192
- line-height: var(--text-body-small-line-height);
193
- letter-spacing: var(--text-body-small-letter-spacing);
194
- color: var(--color-text-oninverse);
195
- white-space: nowrap;
196
-
197
- & .icon .stroke {
198
- stroke: var(--color-icon-oninverse);
199
- stroke-width: var(--stroke-width-medium);
200
- }
201
-
202
- &:hover {
203
- background: var(--color-bg-inverse-hover);
204
- }
205
-
206
- &:active {
207
- background: var(--color-bg-inverse-pressed);
208
- }
209
-
210
- &:disabled {
211
- opacity: 0.5;
212
- cursor: not-allowed;
213
- }
214
-
215
- &:disabled:hover {
216
- background: var(--color-bg-inverse);
217
- }
218
-
219
- &:focus-visible {
220
- outline: var(--accessibility-outline);
221
- outline-offset: var(--accessibility-outline-offset);
222
- }
223
142
 
224
- & svg {
225
- pointer-events: none;
143
+ & .btn__content {
144
+ gap: var(--spacer-1);
226
145
  }
227
146
  }
228
147
 
229
148
  .widget-wrapper__size-btn-percentage {
230
- font-family: var(--text-body-small-font-family);
231
- font-size: var(--text-body-small-font-size);
232
- margin-left: auto;
149
+ margin-left: var(--spacer-1);
233
150
  color: var(--color-text-tertiary);
234
151
  }
235
152
 
236
- .popup-button-list:has(.widget-wrapper__size-btn-label) .popup__scroll-container {
237
- padding: 0;
238
- }
239
-
240
- .popup__content:has(.widget-wrapper__size-btn-label) {
241
- padding: var(--spacer-1);
242
- box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
243
- }
244
-
245
- .popup-button-list__button:has(.widget-wrapper__size-btn-label) {
246
- display: flex !important;
247
- align-items: center !important;
248
- gap: var(--spacer-3);
249
- }
250
-
251
- .popup-button-list__button:has(.widget-wrapper__size-btn-label) .widget-wrapper__size-btn-label {
252
- flex: 0 0 auto;
253
- }
254
-
255
- .popup-button-list__button:has(.widget-wrapper__size-btn-label)
256
- .widget-wrapper__size-btn-percentage {
257
- margin-left: auto !important;
258
- }
259
-
260
153
  .step-nav .dashboard-breadcrumb-dropdown .btn {
261
154
  padding-right: var(--spacer-1);
262
155
  }
263
156
 
264
- /* .step-nav .dashboard-breadcrumb-dropdown {
265
- margin-left: calc(var(--spacer-2) * -1);
266
- } */
267
-
268
157
  .step-nav .dashboard-breadcrumb-dropdown__editing {
269
158
  align-items: center;
270
- display: flex !important;
159
+ display: flex;
271
160
  gap: var(--spacer-2-5);
272
161
 
273
162
  > span:first-child {
@@ -276,8 +165,8 @@
276
165
  }
277
166
 
278
167
  .step-nav .dashboard-breadcrumb-dropdown__actions {
279
- display: flex !important;
280
- gap: var(--spacer-2-5);
168
+ display: flex;
169
+ gap: var(--spacer-2);
281
170
  }
282
171
 
283
172
  .step-nav .dashboard-breadcrumb-dropdown__label {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAS3D,OAAO,aAAa,CAAA;AAIpB,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,8BAiDrE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAS3D,OAAO,aAAa,CAAA;AAIpB,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,8BAkDrE"}
@@ -41,6 +41,7 @@ export async function ModularDashboard(props) {
41
41
  locale,
42
42
  permissions,
43
43
  req,
44
+ user,
44
45
  widgetData,
45
46
  widgetSlug
46
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","RenderServerComponent","ModularDashboardClient","getItemsFromConfig","getItemsFromPreferences","extractLocaleData","ModularDashboard","props","defaultLayout","widgets","payload","config","admin","dashboard","importMap","user","cookies","locale","permissions","req","initPageResult","i18n","layout","serverLayout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","widgetConfig","find","widget","slug","widgetData","fields","length","data","component","Component","serverProps","item","clientWidgets","_","__","label","rest","t","_jsx","clientLayout"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { ClientWidget, Field, WidgetServerProps } from 'payload'\n\nimport React from 'react'\n\nimport type { DashboardViewServerProps } from '../index.js'\nimport type { WidgetInstanceClient } from './index.client.js'\n\nimport { RenderServerComponent } from '../../../../elements/RenderServerComponent/index.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds\nimport { ModularDashboardClient } from '../../../../exports/client/index.js'\nimport { getItemsFromConfig } from './utils/getItemsFromConfig.js'\nimport { getItemsFromPreferences } from './utils/getItemsFromPreferences.js'\nimport { extractLocaleData } from './utils/localeUtils.js'\nimport './index.css'\n\ntype ServerLayout = WidgetInstanceClient[]\n\nexport async function ModularDashboard(props: DashboardViewServerProps) {\n const { defaultLayout = [], widgets = [] } = props.payload.config.admin.dashboard || {}\n const { importMap } = props.payload\n const { user } = props\n const { cookies, locale, permissions, req } = props.initPageResult\n const { i18n } = req\n\n const layout =\n (await getItemsFromPreferences(props.payload, user)) ??\n (await getItemsFromConfig(defaultLayout, req, widgets))\n\n const serverLayout: ServerLayout = layout.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n const widgetData = widgetConfig?.fields?.length\n ? extractLocaleData(layoutItem.data || {}, req.locale || 'en', widgetConfig.fields)\n : layoutItem.data || {}\n\n return {\n component: RenderServerComponent({\n Component: widgetConfig?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n widgetData,\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n // Resolve function labels to static labels for client components\n const clientWidgets: ClientWidget[] = widgets.map((widget) => {\n const { Component: _, fields: __, label, ...rest } = widget\n return {\n ...rest,\n label: typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n })\n\n return (\n <div>\n <ModularDashboardClient clientLayout={serverLayout} widgets={clientWidgets} />\n </div>\n )\n}\n"],"mappings":";AAGA,OAAOA,KAAA,MAAW;AAKlB,SAASC,qBAAqB,QAAQ;AACtC;AACA,SAASC,sBAAsB,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,iBAAiB,QAAQ;AAClC,OAAO;AAIP,OAAO,eAAeC,iBAAiBC,KAA+B;EACpE,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGF,KAAA,CAAMG,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACtF,MAAM;IAAEC;EAAS,CAAE,GAAGP,KAAA,CAAMG,OAAO;EACnC,MAAM;IAAEK;EAAI,CAAE,GAAGR,KAAA;EACjB,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAGZ,KAAA,CAAMa,cAAc;EAClE,MAAM;IAAEC;EAAI,CAAE,GAAGF,GAAA;EAEjB,MAAMG,MAAA,GACJ,OAAOlB,uBAAA,CAAwBG,KAAA,CAAMG,OAAO,EAAEK,IAAA,OAC7C,MAAMZ,kBAAA,CAAmBK,aAAA,EAAeW,GAAA,EAAKV,OAAA;EAEhD,MAAMc,YAAA,GAA6BD,MAAA,CAAOE,GAAG,CAAEC,UAAA;IAC7C,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,MAAMC,YAAA,GAAerB,OAAA,CAAQsB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKP,UAAA;IAC9D,MAAMQ,UAAA,GAAaJ,YAAA,EAAcK,MAAA,EAAQC,MAAA,GACrC/B,iBAAA,CAAkBoB,UAAA,CAAWY,IAAI,IAAI,CAAC,GAAGlB,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAaK,MAAM,IAChFV,UAAA,CAAWY,IAAI,IAAI,CAAC;IAExB,OAAO;MACLC,SAAA,EAAWrC,qBAAA,CAAsB;QAC/BsC,SAAA,EAAWT,YAAA,EAAcS,SAAA;QACzBzB,SAAA;QACA0B,WAAA,EAAa;UACXxB,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAe,UAAA;UACAR;QACF;MACF;MACAe,IAAA,EAAMhB;IACR;EACF;EAEA;EACA,MAAMiB,aAAA,GAAgCjC,OAAA,CAAQe,GAAG,CAAEQ,MAAA;IACjD,MAAM;MAAEO,SAAA,EAAWI,CAAC;MAAER,MAAA,EAAQS,EAAE;MAAEC,KAAK;MAAE,GAAGC;IAAA,CAAM,GAAGd,MAAA;IACrD,OAAO;MACL,GAAGc,IAAI;MACPD,KAAA,EAAO,OAAOA,KAAA,KAAU,aAAaA,KAAA,CAAM;QAAExB,IAAA;QAAM0B,CAAA,EAAG1B,IAAA,CAAK0B;MAAe,KAAKF;IACjF;EACF;EAEA,oBACEG,IAAA,CAAC;cACC,aAAAA,IAAA,CAAC9C,sBAAA;MAAuB+C,YAAA,EAAc1B,YAAA;MAAcd,OAAA,EAASiC;;;AAGnE","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","RenderServerComponent","ModularDashboardClient","getItemsFromConfig","getItemsFromPreferences","extractLocaleData","ModularDashboard","props","defaultLayout","widgets","payload","config","admin","dashboard","importMap","user","cookies","locale","permissions","req","initPageResult","i18n","layout","serverLayout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","widgetConfig","find","widget","slug","widgetData","fields","length","data","component","Component","serverProps","item","clientWidgets","_","__","label","rest","t","_jsx","clientLayout"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.tsx"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\nimport type { ClientWidget, Field, WidgetServerProps } from 'payload'\n\nimport React from 'react'\n\nimport type { DashboardViewServerProps } from '../index.js'\nimport type { WidgetInstanceClient } from './index.client.js'\n\nimport { RenderServerComponent } from '../../../../elements/RenderServerComponent/index.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- Server component must reference exports/client bundle for proper client boundary in prod builds\nimport { ModularDashboardClient } from '../../../../exports/client/index.js'\nimport { getItemsFromConfig } from './utils/getItemsFromConfig.js'\nimport { getItemsFromPreferences } from './utils/getItemsFromPreferences.js'\nimport { extractLocaleData } from './utils/localeUtils.js'\nimport './index.css'\n\ntype ServerLayout = WidgetInstanceClient[]\n\nexport async function ModularDashboard(props: DashboardViewServerProps) {\n const { defaultLayout = [], widgets = [] } = props.payload.config.admin.dashboard || {}\n const { importMap } = props.payload\n const { user } = props\n const { cookies, locale, permissions, req } = props.initPageResult\n const { i18n } = req\n\n const layout =\n (await getItemsFromPreferences(props.payload, user)) ??\n (await getItemsFromConfig(defaultLayout, req, widgets))\n\n const serverLayout: ServerLayout = layout.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n const widgetConfig = widgets.find((widget) => widget.slug === widgetSlug)\n const widgetData = widgetConfig?.fields?.length\n ? extractLocaleData(layoutItem.data || {}, req.locale || 'en', widgetConfig.fields)\n : layoutItem.data || {}\n\n return {\n component: RenderServerComponent({\n Component: widgetConfig?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n user,\n widgetData,\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n // Resolve function labels to static labels for client components\n const clientWidgets: ClientWidget[] = widgets.map((widget) => {\n const { Component: _, fields: __, label, ...rest } = widget\n return {\n ...rest,\n label: typeof label === 'function' ? label({ i18n, t: i18n.t as TFunction }) : label,\n }\n })\n\n return (\n <div>\n <ModularDashboardClient clientLayout={serverLayout} widgets={clientWidgets} />\n </div>\n )\n}\n"],"mappings":";AAGA,OAAOA,KAAA,MAAW;AAKlB,SAASC,qBAAqB,QAAQ;AACtC;AACA,SAASC,sBAAsB,QAAQ;AACvC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,uBAAuB,QAAQ;AACxC,SAASC,iBAAiB,QAAQ;AAClC,OAAO;AAIP,OAAO,eAAeC,iBAAiBC,KAA+B;EACpE,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGF,KAAA,CAAMG,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACtF,MAAM;IAAEC;EAAS,CAAE,GAAGP,KAAA,CAAMG,OAAO;EACnC,MAAM;IAAEK;EAAI,CAAE,GAAGR,KAAA;EACjB,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAGZ,KAAA,CAAMa,cAAc;EAClE,MAAM;IAAEC;EAAI,CAAE,GAAGF,GAAA;EAEjB,MAAMG,MAAA,GACJ,OAAOlB,uBAAA,CAAwBG,KAAA,CAAMG,OAAO,EAAEK,IAAA,OAC7C,MAAMZ,kBAAA,CAAmBK,aAAA,EAAeW,GAAA,EAAKV,OAAA;EAEhD,MAAMc,YAAA,GAA6BD,MAAA,CAAOE,GAAG,CAAEC,UAAA;IAC7C,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,MAAMC,YAAA,GAAerB,OAAA,CAAQsB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKP,UAAA;IAC9D,MAAMQ,UAAA,GAAaJ,YAAA,EAAcK,MAAA,EAAQC,MAAA,GACrC/B,iBAAA,CAAkBoB,UAAA,CAAWY,IAAI,IAAI,CAAC,GAAGlB,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAaK,MAAM,IAChFV,UAAA,CAAWY,IAAI,IAAI,CAAC;IAExB,OAAO;MACLC,SAAA,EAAWrC,qBAAA,CAAsB;QAC/BsC,SAAA,EAAWT,YAAA,EAAcS,SAAA;QACzBzB,SAAA;QACA0B,WAAA,EAAa;UACXxB,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAJ,IAAA;UACAmB,UAAA;UACAR;QACF;MACF;MACAe,IAAA,EAAMhB;IACR;EACF;EAEA;EACA,MAAMiB,aAAA,GAAgCjC,OAAA,CAAQe,GAAG,CAAEQ,MAAA;IACjD,MAAM;MAAEO,SAAA,EAAWI,CAAC;MAAER,MAAA,EAAQS,EAAE;MAAEC,KAAK;MAAE,GAAGC;IAAA,CAAM,GAAGd,MAAA;IACrD,OAAO;MACL,GAAGc,IAAI;MACPD,KAAA,EAAO,OAAOA,KAAA,KAAU,aAAaA,KAAA,CAAM;QAAExB,IAAA;QAAM0B,CAAA,EAAG1B,IAAA,CAAK0B;MAAe,KAAKF;IACjF;EACF;EAEA,oBACEG,IAAA,CAAC;cACC,aAAAA,IAAA,CAAC9C,sBAAA;MAAuB+C,YAAA,EAAc1B,YAAA;MAAcd,OAAA,EAASiC;;;AAGnE","ignoreList":[]}
@@ -45,11 +45,11 @@ export const RenderWidget = t0 => {
45
45
  }
46
46
  setComponent(React.createElement("div", {
47
47
  style: {
48
- background: "var(--theme-error-50)",
49
- border: "var(--stroke-width-small) solid var(--theme-error-200)",
50
- borderRadius: "4px",
48
+ background: "var(--color-bg-danger-tertiary)",
49
+ border: "var(--stroke-width-small) solid var(--color-border-danger)",
50
+ borderRadius: "var(--radius-medium)",
51
51
  color: "var(--color-text-danger)",
52
- padding: "20px",
52
+ padding: "var(--spacer-3)",
53
53
  textAlign: "center"
54
54
  }
55
55
  }, "Failed to load widget. Please try again later."));
@@ -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: '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":[]}
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(--color-bg-danger-tertiary)',\n border: 'var(--stroke-width-small) solid var(--color-border-danger)',\n borderRadius: 'var(--radius-medium)',\n color: 'var(--color-text-danger)',\n padding: 'var(--spacer-3)',\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 +1 @@
1
- {"version":3,"file":"getDefaultLayoutServerFn.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,oBAAoB,CAAA;AAI1E,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEhE,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,oBAAoB,EAAE,CAAA;CAC/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAClD,4BAA4B,EAC5B,OAAO,CAAC,kCAAkC,CAAC,CA+B5C,CAAA"}
1
+ {"version":3,"file":"getDefaultLayoutServerFn.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EAGf,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,oBAAoB,CAAA;AAI1E,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAEhE,MAAM,MAAM,kCAAkC,GAAG;IAC/C,MAAM,EAAE,oBAAoB,EAAE,CAAA;CAC/B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAAc,CAClD,4BAA4B,EAC5B,OAAO,CAAC,kCAAkC,CAAC,CAgC5C,CAAA"}
@@ -7,7 +7,8 @@ export const getDefaultLayoutHandler = async ({
7
7
  cookies,
8
8
  locale,
9
9
  permissions,
10
- req
10
+ req,
11
+ user
11
12
  }) => {
12
13
  if (!req.user) {
13
14
  throw new Error('Unauthorized');
@@ -31,6 +32,7 @@ export const getDefaultLayoutHandler = async ({
31
32
  locale,
32
33
  permissions,
33
34
  req,
35
+ user,
34
36
  widgetData: layoutItem.data || {},
35
37
  widgetSlug
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultLayoutServerFn.js","names":["RenderServerComponent","getDefaultLayoutHandler","cookies","locale","permissions","req","user","Error","defaultLayout","widgets","payload","config","admin","dashboard","importMap","layoutItems","getItemsFromConfig","layout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","component","Component","find","widget","slug","serverProps","widgetData","data","item","widgetInstances","widgetInstance","index","w","maxWidth","minWidth","width"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.ts"],"sourcesContent":["import type {\n DashboardConfig,\n PayloadRequest,\n ServerFunction,\n Widget,\n WidgetServerProps,\n} from 'payload'\n\nimport type { WidgetInstanceClient, WidgetItem } from '../index.client.js'\n\nimport { RenderServerComponent } from '../../../../../elements/RenderServerComponent/index.js'\n\nexport type GetDefaultLayoutServerFnArgs = Record<string, never>\n\nexport type GetDefaultLayoutServerFnReturnType = {\n layout: WidgetInstanceClient[]\n}\n\n/**\n * Server function to get the default dashboard layout on-demand.\n * Used when resetting the dashboard to its default configuration.\n */\nexport const getDefaultLayoutHandler: ServerFunction<\n GetDefaultLayoutServerFnArgs,\n Promise<GetDefaultLayoutServerFnReturnType>\n> = async ({ cookies, locale, permissions, req }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { defaultLayout = [], widgets = [] } = req.payload.config.admin.dashboard || {}\n const { importMap } = req.payload\n\n const layoutItems = await getItemsFromConfig(defaultLayout, req, widgets)\n\n const layout: WidgetInstanceClient[] = layoutItems.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n return {\n component: RenderServerComponent({\n Component: widgets.find((widget) => widget.slug === widgetSlug)?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n widgetData: layoutItem.data || {},\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n return { layout }\n}\n\nasync function getItemsFromConfig(\n defaultLayout: NonNullable<DashboardConfig['defaultLayout']>,\n req: PayloadRequest,\n widgets: Pick<Widget, 'maxWidth' | 'minWidth' | 'slug'>[],\n): Promise<WidgetItem[]> {\n let widgetInstances\n if (typeof defaultLayout === 'function') {\n widgetInstances = await defaultLayout({ req })\n } else {\n widgetInstances = defaultLayout\n }\n\n return widgetInstances.map((widgetInstance, index) => {\n const widget = widgets.find((w) => w.slug === widgetInstance.widgetSlug)\n return {\n id: `${widgetInstance.widgetSlug}-${index}`,\n data: widgetInstance.data,\n maxWidth: widget?.maxWidth ?? 'full',\n minWidth: widget?.minWidth ?? 'x-small',\n width: widgetInstance.width || 'x-small',\n }\n })\n}\n"],"mappings":"AAUA,SAASA,qBAAqB,QAAQ;AAQtC;;;;AAIA,OAAO,MAAMC,uBAAA,GAGT,MAAAA,CAAO;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC;AAAG,CAAE;EAC9C,IAAI,CAACA,GAAA,CAAIC,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGJ,GAAA,CAAIK,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACpF,MAAM;IAAEC;EAAS,CAAE,GAAGT,GAAA,CAAIK,OAAO;EAEjC,MAAMK,WAAA,GAAc,MAAMC,kBAAA,CAAmBR,aAAA,EAAeH,GAAA,EAAKI,OAAA;EAEjE,MAAMQ,MAAA,GAAiCF,WAAA,CAAYG,GAAG,CAAEC,UAAA;IACtD,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,OAAO;MACLC,SAAA,EAAWxB,qBAAA,CAAsB;QAC/ByB,SAAA,EAAWhB,OAAA,CAAQiB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKR,UAAA,GAAaK,SAAA;QACjEX,SAAA;QACAe,WAAA,EAAa;UACX3B,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAyB,UAAA,EAAYX,UAAA,CAAWY,IAAI,IAAI,CAAC;UAChCX;QACF;MACF;MACAY,IAAA,EAAMb;IACR;EACF;EAEA,OAAO;IAAEF;EAAO;AAClB;AAEA,eAAeD,mBACbR,aAA4D,EAC5DH,GAAmB,EACnBI,OAAyD;EAEzD,IAAIwB,eAAA;EACJ,IAAI,OAAOzB,aAAA,KAAkB,YAAY;IACvCyB,eAAA,GAAkB,MAAMzB,aAAA,CAAc;MAAEH;IAAI;EAC9C,OAAO;IACL4B,eAAA,GAAkBzB,aAAA;EACpB;EAEA,OAAOyB,eAAA,CAAgBf,GAAG,CAAC,CAACgB,cAAA,EAAgBC,KAAA;IAC1C,MAAMR,MAAA,GAASlB,OAAA,CAAQiB,IAAI,CAAEU,CAAA,IAAMA,CAAA,CAAER,IAAI,KAAKM,cAAA,CAAed,UAAU;IACvE,OAAO;MACLC,EAAA,EAAI,GAAGa,cAAA,CAAed,UAAU,IAAIe,KAAA,EAAO;MAC3CJ,IAAA,EAAMG,cAAA,CAAeH,IAAI;MACzBM,QAAA,EAAUV,MAAA,EAAQU,QAAA,IAAY;MAC9BC,QAAA,EAAUX,MAAA,EAAQW,QAAA,IAAY;MAC9BC,KAAA,EAAOL,cAAA,CAAeK,KAAK,IAAI;IACjC;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"getDefaultLayoutServerFn.js","names":["RenderServerComponent","getDefaultLayoutHandler","cookies","locale","permissions","req","user","Error","defaultLayout","widgets","payload","config","admin","dashboard","importMap","layoutItems","getItemsFromConfig","layout","map","layoutItem","widgetSlug","id","slice","lastIndexOf","component","Component","find","widget","slug","serverProps","widgetData","data","item","widgetInstances","widgetInstance","index","w","maxWidth","minWidth","width"],"sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.ts"],"sourcesContent":["import type {\n DashboardConfig,\n PayloadRequest,\n ServerFunction,\n Widget,\n WidgetServerProps,\n} from 'payload'\n\nimport type { WidgetInstanceClient, WidgetItem } from '../index.client.js'\n\nimport { RenderServerComponent } from '../../../../../elements/RenderServerComponent/index.js'\n\nexport type GetDefaultLayoutServerFnArgs = Record<string, never>\n\nexport type GetDefaultLayoutServerFnReturnType = {\n layout: WidgetInstanceClient[]\n}\n\n/**\n * Server function to get the default dashboard layout on-demand.\n * Used when resetting the dashboard to its default configuration.\n */\nexport const getDefaultLayoutHandler: ServerFunction<\n GetDefaultLayoutServerFnArgs,\n Promise<GetDefaultLayoutServerFnReturnType>\n> = async ({ cookies, locale, permissions, req, user }) => {\n if (!req.user) {\n throw new Error('Unauthorized')\n }\n\n const { defaultLayout = [], widgets = [] } = req.payload.config.admin.dashboard || {}\n const { importMap } = req.payload\n\n const layoutItems = await getItemsFromConfig(defaultLayout, req, widgets)\n\n const layout: WidgetInstanceClient[] = layoutItems.map((layoutItem) => {\n const widgetSlug = layoutItem.id.slice(0, layoutItem.id.lastIndexOf('-'))\n return {\n component: RenderServerComponent({\n Component: widgets.find((widget) => widget.slug === widgetSlug)?.Component,\n importMap,\n serverProps: {\n cookies,\n locale,\n permissions,\n req,\n user,\n widgetData: layoutItem.data || {},\n widgetSlug,\n } satisfies WidgetServerProps,\n }),\n item: layoutItem,\n }\n })\n\n return { layout }\n}\n\nasync function getItemsFromConfig(\n defaultLayout: NonNullable<DashboardConfig['defaultLayout']>,\n req: PayloadRequest,\n widgets: Pick<Widget, 'maxWidth' | 'minWidth' | 'slug'>[],\n): Promise<WidgetItem[]> {\n let widgetInstances\n if (typeof defaultLayout === 'function') {\n widgetInstances = await defaultLayout({ req })\n } else {\n widgetInstances = defaultLayout\n }\n\n return widgetInstances.map((widgetInstance, index) => {\n const widget = widgets.find((w) => w.slug === widgetInstance.widgetSlug)\n return {\n id: `${widgetInstance.widgetSlug}-${index}`,\n data: widgetInstance.data,\n maxWidth: widget?.maxWidth ?? 'full',\n minWidth: widget?.minWidth ?? 'x-small',\n width: widgetInstance.width || 'x-small',\n }\n })\n}\n"],"mappings":"AAUA,SAASA,qBAAqB,QAAQ;AAQtC;;;;AAIA,OAAO,MAAMC,uBAAA,GAGT,MAAAA,CAAO;EAAEC,OAAO;EAAEC,MAAM;EAAEC,WAAW;EAAEC,GAAG;EAAEC;AAAI,CAAE;EACpD,IAAI,CAACD,GAAA,CAAIC,IAAI,EAAE;IACb,MAAM,IAAIC,KAAA,CAAM;EAClB;EAEA,MAAM;IAAEC,aAAA,GAAgB,EAAE;IAAEC,OAAA,GAAU;EAAE,CAAE,GAAGJ,GAAA,CAAIK,OAAO,CAACC,MAAM,CAACC,KAAK,CAACC,SAAS,IAAI,CAAC;EACpF,MAAM;IAAEC;EAAS,CAAE,GAAGT,GAAA,CAAIK,OAAO;EAEjC,MAAMK,WAAA,GAAc,MAAMC,kBAAA,CAAmBR,aAAA,EAAeH,GAAA,EAAKI,OAAA;EAEjE,MAAMQ,MAAA,GAAiCF,WAAA,CAAYG,GAAG,CAAEC,UAAA;IACtD,MAAMC,UAAA,GAAaD,UAAA,CAAWE,EAAE,CAACC,KAAK,CAAC,GAAGH,UAAA,CAAWE,EAAE,CAACE,WAAW,CAAC;IACpE,OAAO;MACLC,SAAA,EAAWxB,qBAAA,CAAsB;QAC/ByB,SAAA,EAAWhB,OAAA,CAAQiB,IAAI,CAAEC,MAAA,IAAWA,MAAA,CAAOC,IAAI,KAAKR,UAAA,GAAaK,SAAA;QACjEX,SAAA;QACAe,WAAA,EAAa;UACX3B,OAAA;UACAC,MAAA;UACAC,WAAA;UACAC,GAAA;UACAC,IAAA;UACAwB,UAAA,EAAYX,UAAA,CAAWY,IAAI,IAAI,CAAC;UAChCX;QACF;MACF;MACAY,IAAA,EAAMb;IACR;EACF;EAEA,OAAO;IAAEF;EAAO;AAClB;AAEA,eAAeD,mBACbR,aAA4D,EAC5DH,GAAmB,EACnBI,OAAyD;EAEzD,IAAIwB,eAAA;EACJ,IAAI,OAAOzB,aAAA,KAAkB,YAAY;IACvCyB,eAAA,GAAkB,MAAMzB,aAAA,CAAc;MAAEH;IAAI;EAC9C,OAAO;IACL4B,eAAA,GAAkBzB,aAAA;EACpB;EAEA,OAAOyB,eAAA,CAAgBf,GAAG,CAAC,CAACgB,cAAA,EAAgBC,KAAA;IAC1C,MAAMR,MAAA,GAASlB,OAAA,CAAQiB,IAAI,CAAEU,CAAA,IAAMA,CAAA,CAAER,IAAI,KAAKM,cAAA,CAAed,UAAU;IACvE,OAAO;MACLC,EAAA,EAAI,GAAGa,cAAA,CAAed,UAAU,IAAIe,KAAA,EAAO;MAC3CJ,IAAA,EAAMG,cAAA,CAAeH,IAAI;MACzBM,QAAA,EAAUV,MAAA,EAAQU,QAAA,IAAY;MAC9BC,QAAA,EAAUX,MAAA,EAAQW,QAAA,IAAY;MAC9BC,KAAA,EAAOL,cAAA,CAAeK,KAAK,IAAI;IACjC;EACF;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderWidgetServerFn.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,cAAc,EAAqB,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAC9C,wBAAwB,EACxB,8BAA8B,CA8E/B,CAAA"}
1
+ {"version":3,"file":"renderWidgetServerFn.d.ts","sourceRoot":"","sources":["../../../../../../src/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,cAAc,EAAqB,MAAM,SAAS,CAAA;AAEvE,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAC9C,wBAAwB,EACxB,8BAA8B,CA+E/B,CAAA"}
@@ -10,6 +10,7 @@ export const renderWidgetHandler = ({
10
10
  locale,
11
11
  permissions,
12
12
  req,
13
+ user,
13
14
  widgetData,
14
15
  widgetSlug
15
16
  }) => {
@@ -28,11 +29,11 @@ export const renderWidgetHandler = ({
28
29
  return {
29
30
  component: React.createElement('div', {
30
31
  style: {
31
- background: 'var(--theme-elevation-50)',
32
- border: 'var(--stroke-width-small) solid var(--theme-elevation-200)',
33
- borderRadius: '4px',
34
- color: 'var(--theme-text)',
35
- padding: '20px',
32
+ background: 'var(--color-bg-secondary)',
33
+ border: 'var(--stroke-width-small) solid var(--color-border)',
34
+ borderRadius: 'var(--radius-medium)',
35
+ color: 'var(--color-text)',
36
+ padding: 'var(--spacer-3)',
36
37
  textAlign: 'center'
37
38
  }
38
39
  }, `Widget "${widgetSlug}" not found`)
@@ -45,6 +46,7 @@ export const renderWidgetHandler = ({
45
46
  locale,
46
47
  permissions,
47
48
  req,
49
+ user,
48
50
  widgetData: localeFilteredData,
49
51
  widgetSlug
50
52
  };
@@ -66,11 +68,11 @@ export const renderWidgetHandler = ({
66
68
  return {
67
69
  component: React.createElement('div', {
68
70
  style: {
69
- background: 'var(--theme-error-50)',
70
- border: 'var(--stroke-width-small) solid var(--theme-error-200)',
71
- borderRadius: '4px',
72
- color: 'var(--theme-error-text)',
73
- padding: '20px',
71
+ background: 'var(--color-bg-danger-tertiary)',
72
+ border: 'var(--stroke-width-small) solid var(--color-border-danger)',
73
+ borderRadius: 'var(--radius-medium)',
74
+ color: 'var(--color-text-danger)',
75
+ padding: 'var(--spacer-3)',
74
76
  textAlign: 'center'
75
77
  }
76
78
  }, 'Error loading widget')
@@ -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: '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
+ {"version":3,"file":"renderWidgetServerFn.js","names":["React","RenderServerComponent","extractLocaleData","renderWidgetHandler","cookies","locale","permissions","req","user","widgetData","widgetSlug","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, user, 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(--color-bg-secondary)',\n border: 'var(--stroke-width-small) solid var(--color-border)',\n borderRadius: 'var(--radius-medium)',\n color: 'var(--color-text)',\n padding: 'var(--spacer-3)',\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 user,\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(--color-bg-danger-tertiary)',\n border: 'var(--stroke-width-small) solid var(--color-border-danger)',\n borderRadius: 'var(--radius-medium)',\n color: 'var(--color-text-danger)',\n padding: 'var(--spacer-3)',\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,IAAI;EAAEC,UAAU;EAAEC;AAAU,CAAE;EACtE,IAAI,CAACH,GAAA,CAAIC,IAAI,EAAE;IACb,MAAM,IAAIG,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,KAAKX,UAAA;EAE9D,IAAI,CAACQ,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,WAAWpB,UAAA,aAAuB;IAEtC;EACF;EAEA,IAAI;IACF,MAAMqB,kBAAA,GAAqBb,YAAA,CAAac,MAAM,EAAEC,MAAA,GAC5C/B,iBAAA,CAAkBO,UAAA,IAAc,CAAC,GAAGF,GAAA,CAAIF,MAAM,IAAI,MAAMa,YAAA,CAAac,MAAM,IAC3EvB,UAAA,IAAc,CAAC;IAEnB,MAAMyB,WAAA,GAAiC;MACrC9B,OAAA;MACAC,MAAA;MACAC,WAAA;MACAC,GAAA;MACAC,IAAA;MACAC,UAAA,EAAYsB,kBAAA;MACZrB;IACF;IAEA;IACA,MAAMY,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,2BAA2BhC,UAAA,MAAgB2B,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 +1 @@
1
- {"version":3,"file":"useDashboardLayout.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/useDashboardLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,mBAAmB,CAAA;AAWzE,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,oBAAoB,EAAE;4BAuFvD,MAAM;;;;6BAkDR,MAAM;;iDA/DgB;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;;6BAyEpE,MAAM,YAAY,WAAW;;;iCAsB7B,MAAM,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EA+CnD"}
1
+ {"version":3,"file":"useDashboardLayout.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/useDashboardLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAc,MAAM,mBAAmB,CAAA;AAWzE,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,oBAAoB,EAAE;4BAuFvD,MAAM;;;;6BAmDR,MAAM;;iDAhEgB;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;;6BA0EpE,MAAM,YAAY,WAAW;;;iCAsB7B,MAAM,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;EA+CnD"}
@@ -110,6 +110,9 @@ export function useDashboardLayout(initialLayout) {
110
110
  setTimeout(() => {
111
111
  const element = document.getElementById(widgetId);
112
112
  if (element) {
113
+ element.focus({
114
+ preventScroll: true
115
+ });
113
116
  element.scrollIntoView({
114
117
  behavior: 'smooth',
115
118
  block: 'center'