@payloadcms/ui 4.0.0-internal.fa183d3 → 4.0.0-internal.fec2230

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 (620) hide show
  1. package/dist/css/app.css +121 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/spacing.css +11 -3
  4. package/dist/css/z-index.css +1 -0
  5. package/dist/elements/AddNewRelation/index.css +0 -1
  6. package/dist/elements/AppHeader/index.css +1 -3
  7. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  8. package/dist/elements/AppHeader/index.js +6 -2
  9. package/dist/elements/AppHeader/index.js.map +1 -1
  10. package/dist/elements/ArrayAction/index.d.ts +3 -0
  11. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +83 -29
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.d.ts.map +1 -1
  15. package/dist/elements/Autosave/index.js +2 -3
  16. package/dist/elements/Autosave/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  18. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  19. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  20. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  22. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  23. package/dist/elements/BulkUpload/FileSidebar/index.css +4 -0
  24. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  25. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  26. package/dist/elements/BulkUpload/FormsManager/createFormData.js +4 -15
  27. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js +3 -4
  29. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  30. package/dist/elements/Button/index.css +2 -2
  31. package/dist/elements/Button/index.d.ts.map +1 -1
  32. package/dist/elements/Button/index.js +2 -0
  33. package/dist/elements/Button/index.js.map +1 -1
  34. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  35. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  36. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  37. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  38. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js +120 -0
  39. package/dist/elements/ClipboardAction/clipboardUtilities.spec.js.map +1 -0
  40. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  41. package/dist/elements/ClipboardAction/index.js +17 -1
  42. package/dist/elements/ClipboardAction/index.js.map +1 -1
  43. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js +144 -0
  44. package/dist/elements/ClipboardAction/isClipboardDataValid.spec.js.map +1 -0
  45. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  46. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  47. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  48. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  49. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  50. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  51. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  52. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  53. package/dist/elements/ClipboardAction/types.js.map +1 -1
  54. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  55. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  56. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  57. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  58. package/dist/elements/CodeEditor/index.css +0 -5
  59. package/dist/elements/CommandPalette/index.css +0 -7
  60. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  61. package/dist/elements/CopyLocaleData/index.js +8 -9
  62. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  63. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  64. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  65. package/dist/elements/CopyToClipboard/index.js +10 -8
  66. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  67. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  68. package/dist/elements/CreateDocumentButton/index.js +4 -1
  69. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  70. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  71. package/dist/elements/DatePicker/DatePicker.js +1 -0
  72. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  73. package/dist/elements/DatePicker/index.css +1 -1
  74. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  75. package/dist/elements/DeleteDocument/index.js +16 -1
  76. package/dist/elements/DeleteDocument/index.js.map +1 -1
  77. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  78. package/dist/elements/DeleteMany/index.js +2 -3
  79. package/dist/elements/DeleteMany/index.js.map +1 -1
  80. package/dist/elements/Drawer/index.css +10 -4
  81. package/dist/elements/Dropzone/index.css +10 -4
  82. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  83. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  84. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  85. package/dist/elements/DuplicateDocument/index.js +2 -3
  86. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  87. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  88. package/dist/elements/EditMany/DrawerContent.js +4 -5
  89. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  90. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  91. package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
  92. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  93. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
  94. package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
  95. package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
  96. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  97. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  98. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  99. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  100. package/dist/elements/FileManager/index.css +35 -52
  101. package/dist/elements/FileManager/index.d.ts +1 -1
  102. package/dist/elements/FileManager/index.d.ts.map +1 -1
  103. package/dist/elements/FileManager/index.js +385 -282
  104. package/dist/elements/FileManager/index.js.map +1 -1
  105. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  106. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  107. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  108. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  109. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  110. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  111. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  112. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  113. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  114. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  115. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  116. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  117. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  118. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  119. package/dist/elements/IDLabel/index.css +6 -0
  120. package/dist/elements/IDLabel/index.d.ts +1 -1
  121. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  122. package/dist/elements/IDLabel/index.js +16 -21
  123. package/dist/elements/IDLabel/index.js.map +1 -1
  124. package/dist/elements/InputStepper/index.css +0 -1
  125. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  126. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  127. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  128. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  129. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  130. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
  131. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  132. package/dist/elements/LivePreview/Window/index.js +1 -1
  133. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  134. package/dist/elements/Localizer/index.js +1 -1
  135. package/dist/elements/Localizer/index.js.map +1 -1
  136. package/dist/elements/Locked/index.css +0 -8
  137. package/dist/elements/Locked/index.d.ts.map +1 -1
  138. package/dist/elements/Locked/index.js +70 -64
  139. package/dist/elements/Locked/index.js.map +1 -1
  140. package/dist/elements/MiniCarousel/index.css +39 -37
  141. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  142. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  143. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  144. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  145. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  146. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  147. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
  148. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  149. package/dist/elements/NavGroup/index.css +0 -1
  150. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  151. package/dist/elements/Popup/index.js +1 -1
  152. package/dist/elements/Popup/index.js.map +1 -1
  153. package/dist/elements/PreviewButton/index.d.ts +1 -2
  154. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  155. package/dist/elements/PreviewButton/index.js +11 -5
  156. package/dist/elements/PreviewButton/index.js.map +1 -1
  157. package/dist/elements/PreviewSizes/index.css +8 -9
  158. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  159. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  160. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  161. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  162. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  163. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  164. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  165. package/dist/elements/PublishButton/index.js +5 -6
  166. package/dist/elements/PublishButton/index.js.map +1 -1
  167. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  168. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  169. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  170. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  171. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  172. package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
  173. package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
  174. package/dist/elements/ReactSelect/MultiValueLabel/index.css +2 -2
  175. package/dist/elements/ReactSelect/index.css +0 -3
  176. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  177. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  178. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  179. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  180. package/dist/elements/RelationshipTable/index.css +0 -2
  181. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  182. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  183. package/dist/elements/RelationshipTable/index.js +41 -5
  184. package/dist/elements/RelationshipTable/index.js.map +1 -1
  185. package/dist/elements/RenderTitle/index.css +4 -0
  186. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  187. package/dist/elements/RenderTitle/index.js +18 -13
  188. package/dist/elements/RenderTitle/index.js.map +1 -1
  189. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  190. package/dist/elements/RestoreMany/index.js +2 -3
  191. package/dist/elements/RestoreMany/index.js.map +1 -1
  192. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  193. package/dist/elements/SaveDraftButton/index.js +2 -3
  194. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  195. package/dist/elements/SelectRow/index.d.ts +4 -3
  196. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  197. package/dist/elements/SelectRow/index.js +10 -7
  198. package/dist/elements/SelectRow/index.js.map +1 -1
  199. package/dist/elements/SidebarToggle/index.css +0 -17
  200. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  201. package/dist/elements/SortColumn/index.js +42 -38
  202. package/dist/elements/SortColumn/index.js.map +1 -1
  203. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  204. package/dist/elements/SortHeader/index.js +29 -26
  205. package/dist/elements/SortHeader/index.js.map +1 -1
  206. package/dist/elements/Status/index.d.ts.map +1 -1
  207. package/dist/elements/Status/index.js +2 -3
  208. package/dist/elements/Status/index.js.map +1 -1
  209. package/dist/elements/StepNav/index.css +64 -14
  210. package/dist/elements/StepNav/index.d.ts.map +1 -1
  211. package/dist/elements/StepNav/index.js +143 -69
  212. package/dist/elements/StepNav/index.js.map +1 -1
  213. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  214. package/dist/elements/Table/DefaultCell/index.js +3 -11
  215. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  216. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  217. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  218. package/dist/elements/Table/OrderableRow.js +17 -1
  219. package/dist/elements/Table/OrderableRow.js.map +1 -1
  220. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  221. package/dist/elements/Table/OrderableTable.js +20 -4
  222. package/dist/elements/Table/OrderableTable.js.map +1 -1
  223. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  224. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  225. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  226. package/dist/elements/Table/index.css +1 -0
  227. package/dist/elements/TableSection/index.css +0 -1
  228. package/dist/elements/Thumbnail/index.d.ts +1 -1
  229. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  230. package/dist/elements/Thumbnail/index.js.map +1 -1
  231. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  232. package/dist/elements/TimezonePicker/index.js +5 -1
  233. package/dist/elements/TimezonePicker/index.js.map +1 -1
  234. package/dist/elements/Tooltip/index.css +15 -34
  235. package/dist/elements/Tooltip/index.d.ts +11 -3
  236. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  237. package/dist/elements/Tooltip/index.js +151 -85
  238. package/dist/elements/Tooltip/index.js.map +1 -1
  239. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  240. package/dist/elements/UnpublishButton/index.js +3 -4
  241. package/dist/elements/UnpublishButton/index.js.map +1 -1
  242. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  243. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  244. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  245. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  246. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  247. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  248. package/dist/elements/Upload/index.css +39 -37
  249. package/dist/elements/Upload/index.d.ts.map +1 -1
  250. package/dist/elements/Upload/index.js +37 -99
  251. package/dist/elements/Upload/index.js.map +1 -1
  252. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  253. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  254. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  255. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  256. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  257. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  258. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  259. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  260. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  261. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  262. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  263. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  264. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  265. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  266. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  267. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  268. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  269. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  270. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  271. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  272. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  273. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  274. package/dist/elements/WhereBuilder/index.js +15 -4
  275. package/dist/elements/WhereBuilder/index.js.map +1 -1
  276. package/dist/exports/client/index.d.ts +5 -1
  277. package/dist/exports/client/index.d.ts.map +1 -1
  278. package/dist/exports/client/index.js +1 -1
  279. package/dist/exports/client/index.js.map +3 -3
  280. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  281. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  282. package/dist/fields/Array/ArrayRow.js +99 -160
  283. package/dist/fields/Array/ArrayRow.js.map +1 -1
  284. package/dist/fields/Array/index.d.ts.map +1 -1
  285. package/dist/fields/Array/index.js +40 -13
  286. package/dist/fields/Array/index.js.map +1 -1
  287. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  288. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  289. package/dist/fields/Blocks/BlockRow.js +136 -195
  290. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  291. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  292. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  293. package/dist/fields/Blocks/RowActions.js +26 -20
  294. package/dist/fields/Blocks/RowActions.js.map +1 -1
  295. package/dist/fields/Blocks/index.d.ts.map +1 -1
  296. package/dist/fields/Blocks/index.js +40 -13
  297. package/dist/fields/Blocks/index.js.map +1 -1
  298. package/dist/fields/Checkbox/Input.d.ts +2 -0
  299. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  300. package/dist/fields/Checkbox/Input.js +32 -26
  301. package/dist/fields/Checkbox/Input.js.map +1 -1
  302. package/dist/fields/Checkbox/index.css +37 -73
  303. package/dist/fields/FieldError/index.css +0 -9
  304. package/dist/fields/FieldError/index.d.ts.map +1 -1
  305. package/dist/fields/FieldError/index.js +19 -9
  306. package/dist/fields/FieldError/index.js.map +1 -1
  307. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  308. package/dist/fields/FieldLabel/index.js +4 -5
  309. package/dist/fields/FieldLabel/index.js.map +1 -1
  310. package/dist/fields/Join/index.css +9 -0
  311. package/dist/fields/Join/index.d.ts.map +1 -1
  312. package/dist/fields/Join/index.js +13 -9
  313. package/dist/fields/Join/index.js.map +1 -1
  314. package/dist/fields/RadioGroup/index.css +0 -7
  315. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  316. package/dist/fields/Relationship/Input.js +34 -17
  317. package/dist/fields/Relationship/Input.js.map +1 -1
  318. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  319. package/dist/fields/Slug/index.css +0 -1
  320. package/dist/fields/Slug/index.d.ts.map +1 -1
  321. package/dist/fields/Slug/index.js +74 -111
  322. package/dist/fields/Slug/index.js.map +1 -1
  323. package/dist/fields/Upload/Input.d.ts.map +1 -1
  324. package/dist/fields/Upload/Input.js +46 -19
  325. package/dist/fields/Upload/Input.js.map +1 -1
  326. package/dist/fields/Upload/Input.spec.js +242 -0
  327. package/dist/fields/Upload/Input.spec.js.map +1 -0
  328. package/dist/fields/Upload/index.css +19 -4
  329. package/dist/fields/shared/index.d.ts +1 -1
  330. package/dist/fields/shared/index.d.ts.map +1 -1
  331. package/dist/fields/shared/index.js.map +1 -1
  332. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  333. package/dist/forms/Form/fieldReducer.js +3 -1
  334. package/dist/forms/Form/fieldReducer.js.map +1 -1
  335. package/dist/forms/Form/index.d.ts.map +1 -1
  336. package/dist/forms/Form/index.js +14 -18
  337. package/dist/forms/Form/index.js.map +1 -1
  338. package/dist/forms/Form/types.d.ts +1 -1
  339. package/dist/forms/Form/types.d.ts.map +1 -1
  340. package/dist/forms/Form/types.js.map +1 -1
  341. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  342. package/dist/forms/NullifyField/index.js +2 -3
  343. package/dist/forms/NullifyField/index.js.map +1 -1
  344. package/dist/forms/RenderFields/index.css +16 -2
  345. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  346. package/dist/forms/WatchChildErrors/index.js +2 -2
  347. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  348. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  349. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -1
  350. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  351. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  352. package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
  353. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  354. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  355. package/dist/hooks/usePayloadAPI.js +2 -3
  356. package/dist/hooks/usePayloadAPI.js.map +1 -1
  357. package/dist/icons/Edit/index.d.ts +0 -1
  358. package/dist/icons/Edit/index.d.ts.map +1 -1
  359. package/dist/icons/Edit/index.js +4 -4
  360. package/dist/icons/Edit/index.js.map +1 -1
  361. package/dist/layouts/Root/index.d.ts +1 -1
  362. package/dist/layouts/Root/index.d.ts.map +1 -1
  363. package/dist/layouts/Root/index.js +8 -2
  364. package/dist/layouts/Root/index.js.map +1 -1
  365. package/dist/providers/Actions/index.d.ts +1 -0
  366. package/dist/providers/Actions/index.d.ts.map +1 -1
  367. package/dist/providers/Actions/index.js +43 -11
  368. package/dist/providers/Actions/index.js.map +1 -1
  369. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  370. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  371. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  372. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  373. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  374. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  375. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  376. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  377. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  378. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  379. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  380. package/dist/providers/Auth/authSessionRequests.js +119 -0
  381. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  382. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  383. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  384. package/dist/providers/Auth/index.d.ts +2 -56
  385. package/dist/providers/Auth/index.d.ts.map +1 -1
  386. package/dist/providers/Auth/index.js +283 -135
  387. package/dist/providers/Auth/index.js.map +1 -1
  388. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  389. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  390. package/dist/providers/Auth/sessionActivity.js +49 -0
  391. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  392. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  393. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  394. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  395. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  396. package/dist/providers/Auth/sessionTiming.js +18 -0
  397. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  398. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  399. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  400. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  401. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  402. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  403. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  404. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  405. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  406. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  407. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  408. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  409. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  410. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  411. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  412. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  413. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  414. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  415. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  416. package/dist/providers/Auth/types.d.ts +65 -0
  417. package/dist/providers/Auth/types.d.ts.map +1 -0
  418. package/dist/providers/Auth/types.js +2 -0
  419. package/dist/providers/Auth/types.js.map +1 -0
  420. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  421. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  422. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  423. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  424. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  425. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  426. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  427. package/dist/providers/DocumentInfo/index.js +2 -3
  428. package/dist/providers/DocumentInfo/index.js.map +1 -1
  429. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  430. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  431. package/dist/providers/DocumentTitle/index.js +2 -0
  432. package/dist/providers/DocumentTitle/index.js.map +1 -1
  433. package/dist/providers/Embed/index.d.ts +24 -0
  434. package/dist/providers/Embed/index.d.ts.map +1 -0
  435. package/dist/providers/Embed/index.js +105 -0
  436. package/dist/providers/Embed/index.js.map +1 -0
  437. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  438. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  439. package/dist/providers/FormErrorHandler/index.js +6 -0
  440. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  441. package/dist/providers/Locale/index.d.ts +1 -5
  442. package/dist/providers/Locale/index.d.ts.map +1 -1
  443. package/dist/providers/Locale/index.js +64 -137
  444. package/dist/providers/Locale/index.js.map +1 -1
  445. package/dist/providers/Root/index.d.ts +1 -0
  446. package/dist/providers/Root/index.d.ts.map +1 -1
  447. package/dist/providers/Root/index.js +37 -31
  448. package/dist/providers/Root/index.js.map +1 -1
  449. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  450. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  451. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  452. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  453. package/dist/providers/RouteTransition/index.d.ts +2 -0
  454. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  455. package/dist/providers/RouteTransition/index.js +42 -14
  456. package/dist/providers/RouteTransition/index.js.map +1 -1
  457. package/dist/providers/Selection/index.d.ts.map +1 -1
  458. package/dist/providers/Selection/index.js +2 -3
  459. package/dist/providers/Selection/index.js.map +1 -1
  460. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  461. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  462. package/dist/providers/ServerFunctions/index.js +15 -0
  463. package/dist/providers/ServerFunctions/index.js.map +1 -1
  464. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  465. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  466. package/dist/providers/SidebarTabs/index.js.map +1 -1
  467. package/dist/providers/TableColumns/buildColumnState/index.js +1 -2
  468. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  469. package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
  470. package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
  471. package/dist/providers/Theme/index.d.ts +3 -0
  472. package/dist/providers/Theme/index.d.ts.map +1 -1
  473. package/dist/providers/Theme/index.js +107 -95
  474. package/dist/providers/Theme/index.js.map +1 -1
  475. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  476. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  477. package/dist/providers/UploadHandlers/index.js +102 -42
  478. package/dist/providers/UploadHandlers/index.js.map +1 -1
  479. package/dist/styles.css +13 -10
  480. package/dist/templates/Default/index.d.ts +1 -0
  481. package/dist/templates/Default/index.d.ts.map +1 -1
  482. package/dist/templates/Default/index.js +2 -0
  483. package/dist/templates/Default/index.js.map +1 -1
  484. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  485. package/dist/utilities/combineFieldLabel.js +5 -1
  486. package/dist/utilities/combineFieldLabel.js.map +1 -1
  487. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  488. package/dist/utilities/formatMetadata.js +0 -5
  489. package/dist/utilities/formatMetadata.js.map +1 -1
  490. package/dist/utilities/generateFieldID.d.ts +1 -1
  491. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  492. package/dist/utilities/generateFieldID.js +2 -2
  493. package/dist/utilities/generateFieldID.js.map +1 -1
  494. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  495. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  496. package/dist/utilities/getFilesFromClipboard.js +49 -0
  497. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  498. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  499. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  500. package/dist/utilities/getHasScheduledPublish.js +2 -5
  501. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  502. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  503. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  504. package/dist/utilities/getRequestEmbed.js +10 -0
  505. package/dist/utilities/getRequestEmbed.js.map +1 -0
  506. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  507. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  508. package/dist/utilities/handleServerFunctions.js +17 -37
  509. package/dist/utilities/handleServerFunctions.js.map +1 -1
  510. package/dist/utilities/renderTable.d.ts.map +1 -1
  511. package/dist/utilities/renderTable.js +18 -2
  512. package/dist/utilities/renderTable.js.map +1 -1
  513. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  514. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  515. package/dist/utilities/schedulePublishHandler.js +68 -4
  516. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  517. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  518. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  519. package/dist/utilities/serverFunctionRegistry.js +27 -8
  520. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  521. package/dist/utilities/slugify.d.ts.map +1 -1
  522. package/dist/utilities/slugify.js +52 -6
  523. package/dist/utilities/slugify.js.map +1 -1
  524. package/dist/views/API/index.client.d.ts.map +1 -1
  525. package/dist/views/API/index.client.js +2 -3
  526. package/dist/views/API/index.client.js.map +1 -1
  527. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  528. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  529. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  530. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  531. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  532. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  533. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  534. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  535. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  536. package/dist/views/Dashboard/Default/ModularDashboard/index.css +29 -144
  537. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  538. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  539. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
  540. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  541. package/dist/views/Document/index.d.ts.map +1 -1
  542. package/dist/views/Document/index.js +1 -2
  543. package/dist/views/Document/index.js.map +1 -1
  544. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  545. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  546. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  547. package/dist/views/Edit/index.css +61 -53
  548. package/dist/views/Edit/index.d.ts.map +1 -1
  549. package/dist/views/Edit/index.js +3 -2
  550. package/dist/views/Edit/index.js.map +1 -1
  551. package/dist/views/HierarchyList/index.css +1 -1
  552. package/dist/views/List/ListHeader/index.d.ts +1 -10
  553. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  554. package/dist/views/List/ListHeader/index.js +1 -3
  555. package/dist/views/List/ListHeader/index.js.map +1 -1
  556. package/dist/views/List/index.client.d.ts.map +1 -1
  557. package/dist/views/List/index.client.js +0 -14
  558. package/dist/views/List/index.client.js.map +1 -1
  559. package/dist/views/List/index.css +6 -1
  560. package/dist/views/List/index.d.ts.map +1 -1
  561. package/dist/views/List/index.js +4 -0
  562. package/dist/views/List/index.js.map +1 -1
  563. package/dist/views/Logout/index.d.ts.map +1 -1
  564. package/dist/views/Logout/index.js +11 -0
  565. package/dist/views/Logout/index.js.map +1 -1
  566. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  567. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  568. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  569. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  570. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  571. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  572. package/dist/views/Root/index.d.ts +12 -1
  573. package/dist/views/Root/index.d.ts.map +1 -1
  574. package/dist/views/Root/index.js +11 -3
  575. package/dist/views/Root/index.js.map +1 -1
  576. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  577. package/dist/views/Version/Default/SetStepNav.js +10 -13
  578. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  579. package/dist/views/Version/Default/index.d.ts.map +1 -1
  580. package/dist/views/Version/Default/index.js +12 -13
  581. package/dist/views/Version/Default/index.js.map +1 -1
  582. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  583. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  584. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  585. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  586. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  587. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  588. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  589. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js +258 -0
  590. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js.map +1 -0
  591. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  592. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  593. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  594. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  595. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  596. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  597. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +56 -2
  598. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  599. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  600. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  601. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  602. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  603. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +3 -13
  604. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  605. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  606. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  607. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  608. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  609. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  610. package/package.json +6 -10
  611. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  612. package/dist/scss/app.scss +0 -183
  613. package/dist/scss/colors.scss +0 -191
  614. package/dist/scss/custom.css +0 -1
  615. package/dist/scss/queries.scss +0 -27
  616. package/dist/scss/styles.scss +0 -9
  617. package/dist/scss/svg.scss +0 -10
  618. package/dist/scss/toastify.scss +0 -61
  619. package/dist/scss/vars.scss +0 -192
  620. package/dist/scss/z-index.scss +0 -9
@@ -169,7 +169,7 @@ export function DashboardBreadcrumbDropdown(props) {
169
169
  if ($[9] !== t) {
170
170
  t1 = t2 => {
171
171
  const {
172
- active: _active,
172
+ active,
173
173
  onClick,
174
174
  onKeyDown,
175
175
  ...ariaProps
@@ -181,6 +181,7 @@ export function DashboardBreadcrumbDropdown(props) {
181
181
  onKeyDown
182
182
  },
183
183
  onClick,
184
+ selected: active,
184
185
  ...ariaProps,
185
186
  children: _jsxs("span", {
186
187
  className: "dashboard-breadcrumb-dropdown__label",
@@ -203,7 +204,7 @@ export function DashboardBreadcrumbDropdown(props) {
203
204
  horizontalAlign: "left",
204
205
  render: t0,
205
206
  renderButton: t1,
206
- size: "large"
207
+ size: "fit-content"
207
208
  });
208
209
  $[11] = t0;
209
210
  $[12] = t1;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardStepNav.js","names":["c","_c","useEffect","useId","Button","DrawerToggler","ItemsDrawer","Popup","PopupList","useStepNav","ChevronIcon","useTranslation","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","close","ButtonGroup","active","_active","onKeyDown","ariaProps","extraButtonProps","direction","horizontalAlign","render"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport { useEffect, useId } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { DrawerToggler } from '../../../../elements/Drawer/index.js'\nimport { ItemsDrawer } from '../../../../elements/ItemsDrawer/index.js'\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { useStepNav } from '../../../../elements/StepNav/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n const { t } = useTranslation()\n\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>{t('dashboard:editingDashboard')}</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"primary\" el=\"span\" size=\"medium\">\n {t('dashboard:addButton')}\n </Button>\n </DrawerToggler>\n <Button buttonStyle=\"pill\" onClick={onSaveChanges} size=\"medium\">\n {t('fields:saveChanges')}\n </Button>\n <Button buttonStyle=\"pill\" onClick={onCancel} size=\"medium\">\n {t('general:cancel')}\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <Popup\n className=\"dashboard-breadcrumb-dropdown\"\n horizontalAlign=\"left\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n close()\n onEditClick()\n }}\n >\n {t('dashboard:editDashboard')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n close()\n onResetLayout()\n }}\n >\n {t('dashboard:resetLayout')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active: _active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:dashboard')}\n buttonStyle=\"ghost\"\n extraButtonProps={{ onKeyDown }}\n onClick={onClick}\n {...ariaProps}\n >\n <span className=\"dashboard-breadcrumb-dropdown__label\">\n {t('general:dashboard')}\n <ChevronIcon direction=\"down\" size={16} />\n </span>\n </Button>\n )}\n size=\"large\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DashboardStepNav.js","names":["c","_c","useEffect","useId","Button","DrawerToggler","ItemsDrawer","Popup","PopupList","useStepNav","ChevronIcon","useTranslation","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","close","ButtonGroup","active","onKeyDown","ariaProps","extraButtonProps","selected","direction","horizontalAlign","render"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport { useEffect, useId } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { DrawerToggler } from '../../../../elements/Drawer/index.js'\nimport { ItemsDrawer } from '../../../../elements/ItemsDrawer/index.js'\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { useStepNav } from '../../../../elements/StepNav/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n const { t } = useTranslation()\n\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>{t('dashboard:editingDashboard')}</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"primary\" el=\"span\" size=\"medium\">\n {t('dashboard:addButton')}\n </Button>\n </DrawerToggler>\n <Button buttonStyle=\"pill\" onClick={onSaveChanges} size=\"medium\">\n {t('fields:saveChanges')}\n </Button>\n <Button buttonStyle=\"pill\" onClick={onCancel} size=\"medium\">\n {t('general:cancel')}\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <Popup\n className=\"dashboard-breadcrumb-dropdown\"\n horizontalAlign=\"left\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n close()\n onEditClick()\n }}\n >\n {t('dashboard:editDashboard')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n close()\n onResetLayout()\n }}\n >\n {t('dashboard:resetLayout')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:dashboard')}\n buttonStyle=\"ghost\"\n extraButtonProps={{ onKeyDown }}\n onClick={onClick}\n selected={active}\n {...ariaProps}\n >\n <span className=\"dashboard-breadcrumb-dropdown__label\">\n {t('general:dashboard')}\n <ChevronIcon direction=\"down\" size={16} />\n </span>\n </Button>\n )}\n size=\"fit-content\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetEditControl.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAgB,MAAM,OAAO,CAAA;AAWpC,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;CACjB,qBAsCA"}
1
+ {"version":3,"file":"WidgetEditControl.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAgB,MAAM,OAAO,CAAA;AAYpC,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;CACjB,qBAoCA"}
@@ -3,6 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  import React, { useId } from 'react';
6
+ import { Button } from '../../../../elements/Button/index.js';
6
7
  import { useModal } from '../../../../elements/Modal/index.js';
7
8
  import { EditIcon } from '../../../../icons/Edit/index.js';
8
9
  import { useConfig } from '../../../../providers/Config/index.js';
@@ -62,14 +63,13 @@ export function WidgetEditControl(t0) {
62
63
  t4 = $[6];
63
64
  }
64
65
  return _jsxs(_Fragment, {
65
- children: [_jsxs("button", {
66
+ children: [_jsx(Button, {
67
+ "aria-label": `${t("general:edit")} ${widgetID}`,
68
+ buttonStyle: "secondary",
66
69
  className: "widget-wrapper__edit-btn",
67
- onClick: t4,
68
- type: "button",
69
- children: [_jsxs("span", {
70
- className: "sr-only",
71
- children: [t("general:edit"), " ", widgetID]
72
- }), _jsx(EditIcon, {})]
70
+ icon: _jsx(EditIcon, {}),
71
+ margin: false,
72
+ onClick: t4
73
73
  }), _jsx(WidgetConfigDrawer, {
74
74
  drawerSlug,
75
75
  onSave,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetEditControl.js","names":["c","_c","React","useId","useModal","EditIcon","useConfig","useTranslation","WidgetConfigDrawer","getWidgetSlugFromID","widgetID","slice","lastIndexOf","WidgetEditControl","t0","$","onSave","widgetData","t","openModal","widgets","t1","config","admin","dashboard","configWidgets","undefined","t2","widgetSlug","t3","widget","slug","widgetConfig","find","hasEditableFields","Boolean","fields","length","drawerID","drawerSlug","t4","_jsxs","_Fragment","children","className","onClick","type","_jsx"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"sourcesContent":["'use client'\n\nimport type { Data } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport { useModal } from '../../../../elements/Modal/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { WidgetConfigDrawer } from './WidgetConfigDrawer.js'\n\nconst getWidgetSlugFromID = (widgetID: string): string =>\n widgetID.slice(0, widgetID.lastIndexOf('-'))\n\nexport function WidgetEditControl({\n onSave,\n widgetData,\n widgetID,\n}: {\n onSave: (data: Data) => void\n widgetData?: Record<string, unknown>\n widgetID: string\n}) {\n const { t } = useTranslation()\n const { openModal } = useModal()\n const { widgets: configWidgets = [] } = useConfig().config.admin.dashboard ?? {}\n\n const widgetSlug = getWidgetSlugFromID(widgetID)\n const widgetConfig = configWidgets.find((widget) => widget.slug === widgetSlug)\n const hasEditableFields = Boolean(widgetConfig?.fields?.length)\n\n const drawerID = useId()\n const drawerSlug = `widget-editor-${drawerID}`\n\n if (!hasEditableFields) {\n return null\n }\n\n return (\n <>\n <button\n className=\"widget-wrapper__edit-btn\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('general:edit')} {widgetID}\n </span>\n <EditIcon />\n </button>\n <WidgetConfigDrawer\n drawerSlug={drawerSlug}\n onSave={onSave}\n widget={widgetConfig}\n widgetData={widgetData}\n />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAE7B,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AAEnC,MAAMC,mBAAA,GAAuBC,QAAA,IAC3BA,QAAA,CAASC,KAAK,CAAC,GAAGD,QAAA,CAASE,WAAW,CAAC;AAEzC,OAAO,SAAAC,kBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAA2B;IAAAe,MAAA;IAAAC,UAAA;IAAAP;EAAA,IAAAI,EAQjC;EACC;IAAAI;EAAA,IAAcX,cAAA;EACd;IAAAY;EAAA,IAAsBf,QAAA;EACtB;IAAAgB,OAAA,EAAAC;EAAA,IAAwCf,SAAA,GAAAgB,MAAA,CAAAC,KAAA,CAAAC,SAAA,MAAuC;EAA9D,MAAAC,aAAA,GAAAJ,EAAkB,KAAAK,SAAA,QAAlBL,EAAkB;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAL,QAAA;IAEhBiB,EAAA,GAAAlB,mBAAA,CAAoBC,QAAA;IAAAK,CAAA,MAAAL,QAAA;IAAAK,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAvC,MAAAa,UAAA,GAAmBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAa,UAAA;IACCC,EAAA,GAAAC,MAAA,IAAYA,MAAA,CAAAC,IAAA,KAAgBH,UAAA;IAAAb,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAApE,MAAAiB,YAAA,GAAqBP,aAAA,CAAAQ,IAAA,CAAmBJ,EAA4B;EACpE,MAAAK,iBAAA,GAA0BC,OAAA,CAAQH,YAAA,EAAAI,MAAA,EAAAC,MAAsB;EAExD,MAAAC,QAAA,GAAiBnC,KAAA;EACjB,MAAAoC,UAAA,GAAmB,iBAAiBD,QAAA,EAAU;EAAA,KAEzCJ,iBAAA;IAAA;EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAzB,CAAA,QAAAwB,UAAA,IAAAxB,CAAA,QAAAI,SAAA;IAQUqB,EAAA,GAAAA,CAAA;MACPrB,SAAA,CAAUoB,UAAA;IAAA;IACZxB,CAAA,MAAAwB,UAAA;IAAAxB,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAAA,OALJ0B,KAAA,CAAAC,SAAA;IAAAC,QAAA,GACEF,KAAA,CAAC;MAAAG,SAAA,EACW;MAAAC,OAAA,EACDL,EAET;MAAAM,IAAA,EACK;MAAAH,QAAA,GAELF,KAAA,CAAC;QAAAG,SAAA,EAAe;QAAAD,QAAA,GACbzB,CAAA,CAAE,iBAAgB,KAAER,QAAA;MAAA,C,GAEvBqC,IAAA,CAAA1C,QAAA,IAAC;IAAA,C,GAEH0C,IAAA,CAAAvC,kBAAA;MAAA+B,UAAA;MAAAvB,MAAA;MAAAc,MAAA,EAGUE,YAAA;MAAAf;IAAA,C","ignoreList":[]}
1
+ {"version":3,"file":"WidgetEditControl.js","names":["c","_c","React","useId","Button","useModal","EditIcon","useConfig","useTranslation","WidgetConfigDrawer","getWidgetSlugFromID","widgetID","slice","lastIndexOf","WidgetEditControl","t0","$","onSave","widgetData","t","openModal","widgets","t1","config","admin","dashboard","configWidgets","undefined","t2","widgetSlug","t3","widget","slug","widgetConfig","find","hasEditableFields","Boolean","fields","length","drawerID","drawerSlug","t4","_jsxs","_Fragment","children","_jsx","buttonStyle","className","icon","margin","onClick"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"sourcesContent":["'use client'\n\nimport type { Data } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { useModal } from '../../../../elements/Modal/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { WidgetConfigDrawer } from './WidgetConfigDrawer.js'\n\nconst getWidgetSlugFromID = (widgetID: string): string =>\n widgetID.slice(0, widgetID.lastIndexOf('-'))\n\nexport function WidgetEditControl({\n onSave,\n widgetData,\n widgetID,\n}: {\n onSave: (data: Data) => void\n widgetData?: Record<string, unknown>\n widgetID: string\n}) {\n const { t } = useTranslation()\n const { openModal } = useModal()\n const { widgets: configWidgets = [] } = useConfig().config.admin.dashboard ?? {}\n\n const widgetSlug = getWidgetSlugFromID(widgetID)\n const widgetConfig = configWidgets.find((widget) => widget.slug === widgetSlug)\n const hasEditableFields = Boolean(widgetConfig?.fields?.length)\n\n const drawerID = useId()\n const drawerSlug = `widget-editor-${drawerID}`\n\n if (!hasEditableFields) {\n return null\n }\n\n return (\n <>\n <Button\n aria-label={`${t('general:edit')} ${widgetID}`}\n buttonStyle=\"secondary\"\n className=\"widget-wrapper__edit-btn\"\n icon={<EditIcon />}\n margin={false}\n onClick={() => {\n openModal(drawerSlug)\n }}\n />\n <WidgetConfigDrawer\n drawerSlug={drawerSlug}\n onSave={onSave}\n widget={widgetConfig}\n widgetData={widgetData}\n />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAE7B,SAASC,MAAM,QAAQ;AACvB,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AAEnC,MAAMC,mBAAA,GAAuBC,QAAA,IAC3BA,QAAA,CAASC,KAAK,CAAC,GAAGD,QAAA,CAASE,WAAW,CAAC;AAEzC,OAAO,SAAAC,kBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAA2B;IAAAgB,MAAA;IAAAC,UAAA;IAAAP;EAAA,IAAAI,EAQjC;EACC;IAAAI;EAAA,IAAcX,cAAA;EACd;IAAAY;EAAA,IAAsBf,QAAA;EACtB;IAAAgB,OAAA,EAAAC;EAAA,IAAwCf,SAAA,GAAAgB,MAAA,CAAAC,KAAA,CAAAC,SAAA,MAAuC;EAA9D,MAAAC,aAAA,GAAAJ,EAAkB,KAAAK,SAAA,QAAlBL,EAAkB;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAL,QAAA;IAEhBiB,EAAA,GAAAlB,mBAAA,CAAoBC,QAAA;IAAAK,CAAA,MAAAL,QAAA;IAAAK,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAvC,MAAAa,UAAA,GAAmBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAa,UAAA;IACCC,EAAA,GAAAC,MAAA,IAAYA,MAAA,CAAAC,IAAA,KAAgBH,UAAA;IAAAb,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAApE,MAAAiB,YAAA,GAAqBP,aAAA,CAAAQ,IAAA,CAAmBJ,EAA4B;EACpE,MAAAK,iBAAA,GAA0BC,OAAA,CAAQH,YAAA,EAAAI,MAAA,EAAAC,MAAsB;EAExD,MAAAC,QAAA,GAAiBpC,KAAA;EACjB,MAAAqC,UAAA,GAAmB,iBAAiBD,QAAA,EAAU;EAAA,KAEzCJ,iBAAA;IAAA;EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAzB,CAAA,QAAAwB,UAAA,IAAAxB,CAAA,QAAAI,SAAA;IAYUqB,EAAA,GAAAA,CAAA;MACPrB,SAAA,CAAUoB,UAAA;IAAA;IACZxB,CAAA,MAAAwB,UAAA;IAAAxB,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAAA,OATJ0B,KAAA,CAAAC,SAAA;IAAAC,QAAA,GACEC,IAAA,CAAAzC,MAAA;MAAA,cACc,GAAGe,CAAA,CAAE,mBAAmBR,QAAA,EAAU;MAAAmC,WAAA,EAClC;MAAAC,SAAA,EACF;MAAAC,IAAA,EACJH,IAAA,CAAAvC,QAAA,IAAC;MAAA2C,MAAA;MAAAC,OAAA,EAEET;IAET,C,GAEFI,IAAA,CAAApC,kBAAA;MAAA+B,UAAA;MAAAvB,MAAA;MAAAc,MAAA,EAGUE,YAAA;MAAAf;IAAA,C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAA4B,MAAM,OAAO,CAAA;AA6BhD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC5B,MAAM,EAAE,oBAAoB,CAAA;CAC7B,GAAG,IAAI,CAAA;AAYR,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,GACR,EAAE;IACD,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,qBA6KA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAAuC,MAAM,OAAO,CAAA;AA6B3D,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC5B,MAAM,EAAE,oBAAoB,CAAA;CAC7B,GAAG,IAAI,CAAA;AAYR,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,GACR,EAAE;IACD,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,qBAiMA"}
@@ -4,11 +4,11 @@ import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core';
6
6
  import { snapCenterToCursor } from '@dnd-kit/modifiers';
7
- import React, { useMemo, useState } from 'react';
7
+ import React, { useEffect, useMemo, useState } from 'react';
8
+ import { Button } from '../../../../elements/Button/index.js';
8
9
  import { Popup } from '../../../../elements/Popup/index.js';
9
10
  import * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js';
10
11
  import { ChevronIcon } from '../../../../icons/Chevron/index.js';
11
- import { XIcon } from '../../../../icons/X/index.js';
12
12
  import { useTranslation } from '../../../../providers/Translation/index.js';
13
13
  import { DashboardStepNav } from './DashboardStepNav.js';
14
14
  import { useDashboardLayout } from './useDashboardLayout.js';
@@ -40,7 +40,7 @@ const WIDTH_TO_PERCENTAGE = {
40
40
  full: 100
41
41
  };
42
42
  export function ModularDashboardClient(t0) {
43
- const $ = _c(22);
43
+ const $ = _c(26);
44
44
  const {
45
45
  clientLayout: initialLayout,
46
46
  widgets
@@ -63,21 +63,39 @@ export function ModularDashboardClient(t0) {
63
63
  updateWidgetData
64
64
  } = useDashboardLayout(initialLayout);
65
65
  const [activeDragId, setActiveDragId] = useState(null);
66
+ const [activeControlsWidgetID, setActiveControlsWidgetID] = useState(null);
66
67
  const sensors = useDashboardSensors();
67
68
  let t1;
68
- if ($[0] !== activeDragId || $[1] !== addWidget || $[2] !== cancel || $[3] !== cancelModal || $[4] !== currentLayout || $[5] !== deleteWidget || $[6] !== isEditing || $[7] !== moveWidget || $[8] !== resetLayout || $[9] !== resizeWidget || $[10] !== saveLayout || $[11] !== sensors || $[12] !== setIsEditing || $[13] !== t || $[14] !== updateWidgetData || $[15] !== widgets) {
69
- let t2;
70
- if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
71
- t2 = () => {
69
+ let t2;
70
+ if ($[0] !== isEditing) {
71
+ t1 = () => {
72
+ if (!isEditing) {
73
+ setActiveControlsWidgetID(null);
74
+ }
75
+ };
76
+ t2 = [isEditing];
77
+ $[0] = isEditing;
78
+ $[1] = t1;
79
+ $[2] = t2;
80
+ } else {
81
+ t1 = $[1];
82
+ t2 = $[2];
83
+ }
84
+ useEffect(t1, t2);
85
+ let t3;
86
+ if ($[3] !== activeControlsWidgetID || $[4] !== activeDragId || $[5] !== addWidget || $[6] !== cancel || $[7] !== cancelModal || $[8] !== currentLayout || $[9] !== deleteWidget || $[10] !== isEditing || $[11] !== moveWidget || $[12] !== resetLayout || $[13] !== resizeWidget || $[14] !== saveLayout || $[15] !== sensors || $[16] !== setIsEditing || $[17] !== t || $[18] !== updateWidgetData || $[19] !== widgets) {
87
+ let t4;
88
+ if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
89
+ t4 = () => {
72
90
  setActiveDragId(null);
73
91
  };
74
- $[17] = t2;
92
+ $[21] = t4;
75
93
  } else {
76
- t2 = $[17];
94
+ t4 = $[21];
77
95
  }
78
- let t3;
79
- if ($[18] !== currentLayout || $[19] !== moveWidget) {
80
- t3 = event => {
96
+ let t5;
97
+ if ($[22] !== currentLayout || $[23] !== moveWidget) {
98
+ t5 = event => {
81
99
  if (!event.over) {
82
100
  setActiveDragId(null);
83
101
  return;
@@ -103,22 +121,22 @@ export function ModularDashboardClient(t0) {
103
121
  });
104
122
  setActiveDragId(null);
105
123
  };
106
- $[18] = currentLayout;
107
- $[19] = moveWidget;
108
- $[20] = t3;
124
+ $[22] = currentLayout;
125
+ $[23] = moveWidget;
126
+ $[24] = t5;
109
127
  } else {
110
- t3 = $[20];
128
+ t5 = $[24];
111
129
  }
112
- let t4;
113
- if ($[21] === Symbol.for("react.memo_cache_sentinel")) {
114
- t4 = event_0 => {
130
+ let t6;
131
+ if ($[25] === Symbol.for("react.memo_cache_sentinel")) {
132
+ t6 = event_0 => {
115
133
  setActiveDragId(event_0.active.id);
116
134
  };
117
- $[21] = t4;
135
+ $[25] = t6;
118
136
  } else {
119
- t4 = $[21];
137
+ t6 = $[25];
120
138
  }
121
- t1 = _jsxs("div", {
139
+ t3 = _jsxs("div", {
122
140
  children: [_jsx(DndContext, {
123
141
  autoScroll: {
124
142
  enabled: true,
@@ -129,9 +147,9 @@ export function ModularDashboardClient(t0) {
129
147
  },
130
148
  collisionDetection: closestInXAxis,
131
149
  id: "dashboard-dnd-context",
132
- onDragCancel: t2,
133
- onDragEnd: t3,
134
- onDragStart: t4,
150
+ onDragCancel: t4,
151
+ onDragEnd: t5,
152
+ onDragStart: t6,
135
153
  sensors,
136
154
  children: _jsxs("div", {
137
155
  className: `modular-dashboard ${isEditing ? "editing" : ""}`,
@@ -153,12 +171,15 @@ export function ModularDashboardClient(t0) {
153
171
  },
154
172
  width: widget_1.item.width,
155
173
  children: _jsxs("div", {
156
- className: `widget-wrapper ${isEditing ? "widget-wrapper--editing" : ""}`,
174
+ className: ["widget-wrapper", isEditing ? "widget-wrapper--editing" : "", activeControlsWidgetID === widget_1.item.id ? "widget-wrapper--controls-active" : ""].filter(Boolean).join(" "),
157
175
  children: [_jsx("div", {
158
176
  "aria-hidden": isEditing,
159
177
  className: "widget-content",
160
178
  inert: isEditing,
161
179
  children: widget_1.component
180
+ }), isEditing && _jsx("div", {
181
+ "aria-hidden": true,
182
+ className: "widget-wrapper__edit-overlay"
162
183
  }), isEditing && _jsxs("div", {
163
184
  className: "widget-wrapper__controls",
164
185
  onPointerDown: _temp,
@@ -172,17 +193,20 @@ export function ModularDashboardClient(t0) {
172
193
  currentWidth: widget_1.item.width,
173
194
  maxWidth: widget_1.item.maxWidth,
174
195
  minWidth: widget_1.item.minWidth,
196
+ onOpenChange: isOpen => {
197
+ setActiveControlsWidgetID(isOpen ? widget_1.item.id : null);
198
+ },
175
199
  onResize: width => resizeWidget(widget_1.item.id, width)
176
- }), _jsxs("button", {
200
+ }), _jsx(Button, {
201
+ "aria-label": t("dashboard:deleteWidget", {
202
+ id: widget_1.item.id
203
+ }),
204
+ buttonStyle: "destructive",
177
205
  className: "widget-wrapper__delete-btn",
206
+ icon: "x",
207
+ margin: false,
178
208
  onClick: () => deleteWidget(widget_1.item.id),
179
- type: "button",
180
- children: [_jsx("span", {
181
- className: "sr-only",
182
- children: t("dashboard:deleteWidget", {
183
- id: widget_1.item.id
184
- })
185
- }), _jsx(XIcon, {})]
209
+ round: true
186
210
  })]
187
211
  })]
188
212
  })
@@ -220,27 +244,28 @@ export function ModularDashboardClient(t0) {
220
244
  widgets
221
245
  }), cancelModal]
222
246
  });
223
- $[0] = activeDragId;
224
- $[1] = addWidget;
225
- $[2] = cancel;
226
- $[3] = cancelModal;
227
- $[4] = currentLayout;
228
- $[5] = deleteWidget;
229
- $[6] = isEditing;
230
- $[7] = moveWidget;
231
- $[8] = resetLayout;
232
- $[9] = resizeWidget;
233
- $[10] = saveLayout;
234
- $[11] = sensors;
235
- $[12] = setIsEditing;
236
- $[13] = t;
237
- $[14] = updateWidgetData;
238
- $[15] = widgets;
239
- $[16] = t1;
247
+ $[3] = activeControlsWidgetID;
248
+ $[4] = activeDragId;
249
+ $[5] = addWidget;
250
+ $[6] = cancel;
251
+ $[7] = cancelModal;
252
+ $[8] = currentLayout;
253
+ $[9] = deleteWidget;
254
+ $[10] = isEditing;
255
+ $[11] = moveWidget;
256
+ $[12] = resetLayout;
257
+ $[13] = resizeWidget;
258
+ $[14] = saveLayout;
259
+ $[15] = sensors;
260
+ $[16] = setIsEditing;
261
+ $[17] = t;
262
+ $[18] = updateWidgetData;
263
+ $[19] = widgets;
264
+ $[20] = t3;
240
265
  } else {
241
- t1 = $[16];
266
+ t3 = $[20];
242
267
  }
243
- return t1;
268
+ return t3;
244
269
  }
245
270
  function _temp(e) {
246
271
  return e.stopPropagation();
@@ -249,6 +274,7 @@ function WidgetWidthDropdown({
249
274
  currentWidth,
250
275
  maxWidth,
251
276
  minWidth,
277
+ onOpenChange,
252
278
  onResize
253
279
  }) {
254
280
  // Filter options based on minWidth and maxWidth
@@ -265,18 +291,8 @@ function WidgetWidthDropdown({
265
291
  return null;
266
292
  }
267
293
  return /*#__PURE__*/_jsx(Popup, {
268
- button: /*#__PURE__*/_jsxs("button", {
269
- className: "widget-wrapper__size-btn",
270
- onPointerDown: e => e.stopPropagation(),
271
- type: "button",
272
- children: [/*#__PURE__*/_jsx("span", {
273
- className: "widget-wrapper__size-btn-text",
274
- children: currentWidth
275
- }), /*#__PURE__*/_jsx(ChevronIcon, {
276
- className: "widget-wrapper__size-btn-icon"
277
- })]
278
- }),
279
- buttonType: "custom",
294
+ onToggleClose: () => onOpenChange(false),
295
+ onToggleOpen: onOpenChange,
280
296
  render: ({
281
297
  close
282
298
  }) => /*#__PURE__*/_jsx(PopupList.ButtonGroup, {
@@ -298,6 +314,28 @@ function WidgetWidthDropdown({
298
314
  }, option_0.width);
299
315
  })
300
316
  }),
317
+ renderButton: ({
318
+ active: _active,
319
+ onClick,
320
+ onKeyDown,
321
+ ...ariaProps
322
+ }) => /*#__PURE__*/_jsx(Button, {
323
+ buttonStyle: "secondary",
324
+ className: "widget-wrapper__size-btn",
325
+ extraButtonProps: {
326
+ onKeyDown,
327
+ onPointerDown: e => e.stopPropagation(),
328
+ ...ariaProps
329
+ },
330
+ icon: /*#__PURE__*/_jsx(ChevronIcon, {
331
+ className: "widget-wrapper__size-btn-icon",
332
+ size: 16
333
+ }),
334
+ margin: false,
335
+ onClick: onClick,
336
+ selected: _active,
337
+ children: currentWidth
338
+ }),
301
339
  size: "small",
302
340
  verticalAlign: "bottom"
303
341
  });
@@ -408,7 +446,7 @@ function DroppableItem(t0) {
408
446
  const t4 = `${id}-${position}`;
409
447
  const t5 = position === "before" ? -2 : "auto";
410
448
  const t6 = position === "after" ? -2 : "auto";
411
- const t7 = isOver ? "var(--color-bg-success)" : "transparent";
449
+ const t7 = isOver ? "var(--color-bg-brand-secondary)" : "transparent";
412
450
  let t8;
413
451
  if ($[5] !== setNodeRef || $[6] !== t4 || $[7] !== t5 || $[8] !== t6 || $[9] !== t7) {
414
452
  t8 = _jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","React","useMemo","useState","Popup","PopupList","ChevronIcon","XIcon","useTranslation","DashboardStepNav","useDashboardLayout","closestInXAxis","useDashboardSensors","WidgetEditControl","snapCenterToCursorOnlyForPointer","args","activatorEvent","transform","WIDTH_TO_PERCENTAGE","small","medium","large","full","ModularDashboardClient","t0","$","clientLayout","initialLayout","widgets","t","addWidget","cancel","cancelModal","currentLayout","deleteWidget","isEditing","moveWidget","resetLayout","resizeWidget","saveLayout","setIsEditing","updateWidgetData","activeDragId","setActiveDragId","sensors","t1","t2","Symbol","for","t3","event","over","droppableId","id","i","lastIndexOf","slug","slice","position","active","moveFromIndex","findIndex","widget","item","moveToIndex","widget_0","t4","event_0","_jsxs","children","_jsx","autoScroll","enabled","threshold","x","y","collisionDetection","onDragCancel","onDragEnd","onDragStart","className","style","display","flexWrap","length","map","widget_1","_index","Fragment","DraggableItem","disabled","width","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onResize","onClick","type","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","filter","option","isDisabled","button","buttonType","render","close","ButtonGroup","isSelected","Button","toFixed","size","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","t5","t6","t7","t8","left","right","top","bottom","borderRadius","backgroundColor","marginBottom","marginTop","pointerEvents","zIndex"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"sourcesContent":["'use client'\n\nimport type { Modifier } from '@dnd-kit/core'\nimport type { ClientWidget, WidgetWidth } from 'payload'\n\nimport { DndContext, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'\nimport { snapCenterToCursor } from '@dnd-kit/modifiers'\nimport React, { useMemo, useState } from 'react'\n\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../../icons/X/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { DashboardStepNav } from './DashboardStepNav.js'\nimport { useDashboardLayout } from './useDashboardLayout.js'\nimport { closestInXAxis } from './utils/collisionDetection.js'\nimport { useDashboardSensors } from './utils/sensors.js'\nimport { WidgetEditControl } from './WidgetEditControl.js'\n\n/**\n * Custom modifier that only applies snapCenterToCursor for pointer events.\n * During keyboard navigation, we handle positioning ourselves via the coordinate getter.\n */\nconst snapCenterToCursorOnlyForPointer: Modifier = (args) => {\n const { activatorEvent } = args\n\n // Only apply snap for pointer events (mouse/touch), not keyboard\n // Check activatorEvent.type since KeyboardEvent may not exist on server\n if (activatorEvent && 'key' in activatorEvent) {\n return args.transform\n }\n\n return snapCenterToCursor(args)\n}\n\nexport type WidgetItem = {\n data?: Record<string, unknown>\n id: string\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n width: WidgetWidth\n}\n\nexport type WidgetInstanceClient = {\n component: React.ReactNode\n item: WidgetItem\n}\n\nexport type DropTargetWidget = {\n position: 'after' | 'before'\n widget: WidgetInstanceClient\n} | null\n\n/* eslint-disable perfectionist/sort-objects */\nconst WIDTH_TO_PERCENTAGE = {\n 'x-small': 25,\n small: (1 / 3) * 100,\n medium: 50,\n large: (2 / 3) * 100,\n 'x-large': 75,\n full: 100,\n} as const\n\nexport function ModularDashboardClient({\n clientLayout: initialLayout,\n widgets,\n}: {\n clientLayout: WidgetInstanceClient[]\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const {\n addWidget,\n cancel,\n cancelModal,\n currentLayout,\n deleteWidget,\n isEditing,\n moveWidget,\n resetLayout,\n resizeWidget,\n saveLayout,\n setIsEditing,\n updateWidgetData,\n } = useDashboardLayout(initialLayout)\n\n const [activeDragId, setActiveDragId] = useState<null | string>(null)\n const sensors = useDashboardSensors()\n\n return (\n <div>\n <DndContext\n autoScroll={{\n enabled: true,\n threshold: {\n x: 0, // No horizontal scroll\n y: 0.2, // Allow vertical scroll at 20% from edge\n },\n }}\n collisionDetection={closestInXAxis}\n // https://github.com/clauderic/dnd-kit/issues/926#issuecomment-1640115665\n id=\"dashboard-dnd-context\"\n onDragCancel={() => {\n setActiveDragId(null)\n }}\n onDragEnd={(event) => {\n if (!event.over) {\n setActiveDragId(null)\n return\n }\n const droppableId = event.over.id as string\n const i = droppableId.lastIndexOf('-')\n const slug = droppableId.slice(0, i)\n const position = droppableId.slice(i + 1)\n\n if (slug === event.active.id) {\n return\n }\n\n const moveFromIndex = currentLayout?.findIndex(\n (widget) => widget.item.id === event.active.id,\n )\n let moveToIndex = currentLayout?.findIndex((widget) => widget.item.id === slug)\n if (moveFromIndex < moveToIndex) {\n moveToIndex--\n }\n if (position === 'after') {\n moveToIndex++\n }\n moveWidget({ moveFromIndex, moveToIndex })\n setActiveDragId(null)\n }}\n onDragStart={(event) => {\n setActiveDragId(event.active.id as string)\n }}\n sensors={sensors}\n >\n <div\n className={`modular-dashboard ${isEditing ? 'editing' : ''}`}\n style={{\n display: 'flex',\n flexWrap: 'wrap',\n // Don't add gap here! We need to use padding on the widgets instead\n // to make sure all rows have the same width always.\n }}\n >\n {currentLayout?.length === 0 && (\n <div className=\"modular-dashboard__empty\">\n <p>{t('dashboard:noItems')}</p>\n </div>\n )}\n {currentLayout?.map((widget, _index) => (\n <React.Fragment key={widget.item.id}>\n <DraggableItem\n disabled={!isEditing}\n id={widget.item.id}\n style={{\n width: `${WIDTH_TO_PERCENTAGE[widget.item.width]}%`,\n }}\n width={widget.item.width}\n >\n <div className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}>\n <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && (\n <div\n className=\"widget-wrapper__controls\"\n onPointerDown={(e) => e.stopPropagation()}\n >\n <WidgetEditControl\n onSave={(data) => {\n updateWidgetData(widget.item.id, data)\n }}\n widgetData={widget.item.data}\n widgetID={widget.item.id}\n />\n <WidgetWidthDropdown\n currentWidth={widget.item.width}\n maxWidth={widget.item.maxWidth}\n minWidth={widget.item.minWidth}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <button\n className=\"widget-wrapper__delete-btn\"\n onClick={() => deleteWidget(widget.item.id)}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('dashboard:deleteWidget', { id: widget.item.id })}\n </span>\n <XIcon />\n </button>\n </div>\n )}\n </div>\n </DraggableItem>\n </React.Fragment>\n ))}\n <DragOverlay\n className=\"drag-overlay\"\n dropAnimation={{\n duration: 100,\n }}\n // Uses custom modifier that only applies for pointer, not keyboard navigation.\n modifiers={[snapCenterToCursorOnlyForPointer]}\n >\n {activeDragId\n ? (() => {\n const draggedWidget = currentLayout?.find(\n (widget) => widget.item.id === activeDragId,\n )\n return draggedWidget ? (\n <div\n style={{\n transform: 'scale(0.25)',\n }}\n >\n <div\n className={`widget-wrapper ${isEditing ? 'widget-wrapper--editing' : ''}`}\n >\n <div className=\"widget-content\">{draggedWidget.component}</div>\n </div>\n </div>\n ) : null\n })()\n : null}\n </DragOverlay>\n </div>\n </DndContext>\n <DashboardStepNav\n addWidget={addWidget}\n cancel={cancel}\n isEditing={isEditing}\n resetLayout={resetLayout}\n saveLayout={saveLayout}\n setIsEditing={setIsEditing}\n widgets={widgets}\n />\n {cancelModal}\n </div>\n )\n}\n\nfunction WidgetWidthDropdown({\n currentWidth,\n maxWidth,\n minWidth,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onResize: (width: WidgetWidth) => void\n}) {\n // Filter options based on minWidth and maxWidth\n const validOptions = useMemo(() => {\n const minPercentage = WIDTH_TO_PERCENTAGE[minWidth]\n const maxPercentage = WIDTH_TO_PERCENTAGE[maxWidth]\n\n return Object.entries(WIDTH_TO_PERCENTAGE)\n .map(([key, value]) => ({\n width: key as WidgetWidth,\n percentage: value,\n }))\n .filter((option) => option.percentage >= minPercentage && option.percentage <= maxPercentage)\n }, [minWidth, maxWidth])\n\n const isDisabled = validOptions.length <= 1\n\n if (isDisabled) {\n return null\n }\n\n return (\n <Popup\n button={\n <button\n className=\"widget-wrapper__size-btn\"\n onPointerDown={(e) => e.stopPropagation()}\n type=\"button\"\n >\n <span className=\"widget-wrapper__size-btn-text\">{currentWidth}</span>\n <ChevronIcon className=\"widget-wrapper__size-btn-icon\" />\n </button>\n }\n buttonType=\"custom\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n {validOptions.map((option) => {\n const isSelected = option.width === currentWidth\n return (\n <PopupList.Button\n active={isSelected}\n key={option.width}\n onClick={() => {\n onResize(option.width)\n close()\n }}\n >\n <span className=\"widget-wrapper__size-btn-label\">{option.width}</span>\n <span className=\"widget-wrapper__size-btn-percentage\">\n {option.percentage.toFixed(0)}%\n </span>\n </PopupList.Button>\n )\n })}\n </PopupList.ButtonGroup>\n )}\n size=\"small\"\n verticalAlign=\"bottom\"\n />\n )\n}\n\nfunction DraggableItem(props: {\n children: React.ReactNode\n disabled?: boolean\n id: string\n style?: React.CSSProperties\n width: WidgetWidth\n}) {\n const { attributes, isDragging, listeners, setNodeRef } = useDraggable({\n id: props.id,\n disabled: props.disabled,\n })\n\n const mergedStyles: React.CSSProperties = {\n ...props.style,\n opacity: isDragging ? 0.3 : 1,\n position: 'relative',\n }\n\n // Only apply draggable attributes and listeners when not disabled\n // to prevent disabling interactive elements inside the widget\n const draggableProps = props.disabled ? {} : { ...listeners, ...attributes }\n\n return (\n <div className=\"widget\" data-slug={props.id} data-width={props.width} style={mergedStyles}>\n <DroppableItem id={props.id} position=\"before\" />\n <div\n className=\"draggable\"\n id={props.id}\n ref={setNodeRef}\n {...draggableProps}\n style={{\n width: '100%',\n height: '100%',\n }}\n >\n {props.children}\n </div>\n <DroppableItem id={props.id} position=\"after\" />\n </div>\n )\n}\n\nfunction DroppableItem({ id, position }: { id: string; position: 'after' | 'before' }) {\n const { setNodeRef, isOver } = useDroppable({ id: `${id}-${position}`, data: { position } })\n\n return (\n <div\n className=\"droppable-widget\"\n data-testid={`${id}-${position}`}\n ref={setNodeRef}\n style={{\n position: 'absolute',\n left: position === 'before' ? -2 : 'auto',\n right: position === 'after' ? -2 : 'auto',\n top: 0,\n bottom: 0,\n borderRadius: '1000px',\n width: '4px',\n backgroundColor: isOver ? 'var(--color-bg-success)' : 'transparent',\n marginBottom: '10px',\n marginTop: '10px',\n pointerEvents: 'none',\n zIndex: 1000,\n }}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["c","_c","DndContext","DragOverlay","useDraggable","useDroppable","snapCenterToCursor","React","useEffect","useMemo","useState","Button","Popup","PopupList","ChevronIcon","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","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","_index","Fragment","DraggableItem","disabled","width","filter","Boolean","join","inert","component","onPointerDown","_temp","onSave","data","widgetData","widgetID","WidgetWidthDropdown","currentWidth","maxWidth","minWidth","onOpenChange","isOpen","onResize","buttonStyle","icon","margin","onClick","round","dropAnimation","duration","modifiers","draggedWidget","find","widget_2","e","stopPropagation","validOptions","minPercentage","maxPercentage","Object","entries","key","value","percentage","option","isDisabled","onToggleClose","onToggleOpen","render","close","ButtonGroup","isSelected","toFixed","renderButton","_active","onKeyDown","ariaProps","extraButtonProps","size","selected","verticalAlign","props","attributes","isDragging","listeners","setNodeRef","mergedStyles","opacity","draggableProps","DroppableItem","ref","height","isOver","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, { 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 { 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 [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, _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\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 <div aria-hidden={isEditing} className=\"widget-content\" inert={isEditing}>\n {widget.component}\n </div>\n {isEditing && <div aria-hidden className=\"widget-wrapper__edit-overlay\" />}\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 onOpenChange={(isOpen) => {\n setActiveControlsWidgetID(isOpen ? widget.item.id : null)\n }}\n onResize={(width) => resizeWidget(widget.item.id, width)}\n />\n <Button\n aria-label={t('dashboard:deleteWidget', { id: widget.item.id })}\n buttonStyle=\"destructive\"\n className=\"widget-wrapper__delete-btn\"\n icon=\"x\"\n margin={false}\n onClick={() => deleteWidget(widget.item.id)}\n round\n />\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 onOpenChange,\n onResize,\n}: {\n currentWidth: WidgetWidth\n maxWidth: WidgetWidth\n minWidth: WidgetWidth\n onOpenChange: (isOpen: boolean) => void\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 onToggleClose={() => onOpenChange(false)}\n onToggleOpen={onOpenChange}\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 buttonStyle=\"secondary\"\n className=\"widget-wrapper__size-btn\"\n extraButtonProps={{\n onKeyDown,\n onPointerDown: (e) => e.stopPropagation(),\n ...ariaProps,\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: 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-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":[]}