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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1195) hide show
  1. package/dist/css/app.css +122 -0
  2. package/dist/css/forms.css +0 -6
  3. package/dist/css/preflight.css +1 -0
  4. package/dist/css/spacing.css +14 -3
  5. package/dist/css/z-index.css +1 -0
  6. package/dist/elements/APIKeyInput/index.d.ts +2 -0
  7. package/dist/elements/APIKeyInput/index.d.ts.map +1 -1
  8. package/dist/elements/APIKeyInput/index.js +27 -29
  9. package/dist/elements/APIKeyInput/index.js.map +1 -1
  10. package/dist/elements/AddNewRelation/index.css +0 -1
  11. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  12. package/dist/elements/AddNewRelation/index.js +1 -0
  13. package/dist/elements/AddNewRelation/index.js.map +1 -1
  14. package/dist/elements/AppHeader/index.css +4 -3
  15. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  16. package/dist/elements/AppHeader/index.js +6 -2
  17. package/dist/elements/AppHeader/index.js.map +1 -1
  18. package/dist/elements/ArrayAction/index.d.ts +4 -0
  19. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  20. package/dist/elements/ArrayAction/index.js +86 -29
  21. package/dist/elements/ArrayAction/index.js.map +1 -1
  22. package/dist/elements/Autosave/index.d.ts.map +1 -1
  23. package/dist/elements/Autosave/index.js +2 -3
  24. package/dist/elements/Autosave/index.js.map +1 -1
  25. package/dist/elements/Banner/index.css +4 -0
  26. package/dist/elements/Banner/index.d.ts.map +1 -1
  27. package/dist/elements/Banner/index.js +1 -0
  28. package/dist/elements/Banner/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/ActionsBar/index.css +1 -0
  30. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  31. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  32. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  33. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  34. package/dist/elements/BulkUpload/AddingFilesView/index.css +2 -4
  35. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
  36. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  37. package/dist/elements/BulkUpload/FileSidebar/index.css +5 -0
  38. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +2 -2
  39. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  40. package/dist/elements/BulkUpload/FormsManager/createFormData.js +10 -17
  41. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  42. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  43. package/dist/elements/BulkUpload/FormsManager/index.js +19 -13
  44. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  45. package/dist/elements/BulkUpload/index.css +2 -0
  46. package/dist/elements/Button/index.css +2 -2
  47. package/dist/elements/Button/index.d.ts.map +1 -1
  48. package/dist/elements/Button/index.js +13 -0
  49. package/dist/elements/Button/index.js.map +1 -1
  50. package/dist/elements/Button/types.d.ts +7 -2
  51. package/dist/elements/Button/types.d.ts.map +1 -1
  52. package/dist/elements/Button/types.js.map +1 -1
  53. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts +8 -1
  54. package/dist/elements/ClipboardAction/clipboardUtilities.d.ts.map +1 -1
  55. package/dist/elements/ClipboardAction/clipboardUtilities.js +40 -8
  56. package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
  57. package/dist/elements/ClipboardAction/index.d.ts.map +1 -1
  58. package/dist/elements/ClipboardAction/index.js +18 -1
  59. package/dist/elements/ClipboardAction/index.js.map +1 -1
  60. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  61. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  62. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  63. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  64. package/dist/elements/ClipboardAction/types.d.ts +3 -0
  65. package/dist/elements/ClipboardAction/types.d.ts.map +1 -1
  66. package/dist/elements/ClipboardAction/types.js.map +1 -1
  67. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts +10 -0
  68. package/dist/elements/ClipboardAction/useCanPasteClipboard.d.ts.map +1 -0
  69. package/dist/elements/ClipboardAction/useCanPasteClipboard.js +21 -0
  70. package/dist/elements/ClipboardAction/useCanPasteClipboard.js.map +1 -0
  71. package/dist/elements/CodeEditor/index.css +0 -5
  72. package/dist/elements/Collapsible/index.css +1 -0
  73. package/dist/elements/ColumnSelection/Popup.css +8 -0
  74. package/dist/elements/ColumnSelection/Popup.d.ts.map +1 -1
  75. package/dist/elements/ColumnSelection/Popup.js +17 -14
  76. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  77. package/dist/elements/ColumnSelection/index.d.ts.map +1 -1
  78. package/dist/elements/ColumnSelection/index.js +59 -55
  79. package/dist/elements/ColumnSelection/index.js.map +1 -1
  80. package/dist/elements/Combobox/index.d.ts.map +1 -1
  81. package/dist/elements/Combobox/index.js +2 -0
  82. package/dist/elements/Combobox/index.js.map +1 -1
  83. package/dist/elements/CommandPalette/index.css +0 -7
  84. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  85. package/dist/elements/CopyLocaleData/index.js +8 -9
  86. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  87. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  88. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  89. package/dist/elements/CopyToClipboard/index.js +10 -8
  90. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  91. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  92. package/dist/elements/CreateDocumentButton/index.js +5 -1
  93. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  94. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  95. package/dist/elements/DatePicker/DatePicker.js +113 -82
  96. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  97. package/dist/elements/DatePicker/index.css +8 -1
  98. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  99. package/dist/elements/DeleteDocument/index.js +16 -1
  100. package/dist/elements/DeleteDocument/index.js.map +1 -1
  101. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  102. package/dist/elements/DeleteMany/index.js +2 -3
  103. package/dist/elements/DeleteMany/index.js.map +1 -1
  104. package/dist/elements/Dialog/DialogModal/index.d.ts +1 -1
  105. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  106. package/dist/elements/Dialog/DialogModal/index.js +40 -28
  107. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  108. package/dist/elements/Dialog/index.css +1 -0
  109. package/dist/elements/DocumentControls/index.css +1 -0
  110. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  111. package/dist/elements/DocumentControls/index.js +1 -0
  112. package/dist/elements/DocumentControls/index.js.map +1 -1
  113. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -2
  114. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  115. package/dist/elements/DocumentFields/index.css +2 -0
  116. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  117. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  118. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -3
  119. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  120. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  121. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  122. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  123. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  124. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  125. package/dist/elements/DocumentHeader/index.css +1 -0
  126. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  127. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  128. package/dist/elements/DocumentHeader/index.js +4 -2
  129. package/dist/elements/DocumentHeader/index.js.map +1 -1
  130. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +1 -1
  131. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  132. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  133. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  134. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +11 -8
  135. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  136. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  137. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  138. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  139. package/dist/elements/Drawer/index.css +10 -4
  140. package/dist/elements/Drawer/index.d.ts.map +1 -1
  141. package/dist/elements/Drawer/index.js +3 -1
  142. package/dist/elements/Drawer/index.js.map +1 -1
  143. package/dist/elements/Dropzone/index.css +10 -4
  144. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  145. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  146. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  147. package/dist/elements/DuplicateDocument/index.js +2 -3
  148. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  149. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  150. package/dist/elements/EditMany/DrawerContent.js +4 -5
  151. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  152. package/dist/elements/EditUpload/index.css +2 -1
  153. package/dist/elements/EditUpload/index.js +53 -12
  154. package/dist/elements/EditUpload/index.js.map +1 -1
  155. package/dist/elements/FieldDiffContainer/index.css +1 -0
  156. package/dist/elements/FieldDiffContainer/index.js +1 -1
  157. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  158. package/dist/elements/FieldDiffLabel/index.css +1 -0
  159. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  160. package/dist/elements/FieldSelect/index.js +41 -24
  161. package/dist/elements/FieldSelect/index.js.map +1 -1
  162. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +5 -1
  163. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  164. package/dist/elements/FieldSelect/reduceFieldOptions.js +26 -4
  165. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  166. package/dist/elements/FileDetails/StaticFileDetails/index.css +10 -9
  167. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  168. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  169. package/dist/elements/FileManager/FileToolbar/index.js +4 -0
  170. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  171. package/dist/elements/FileManager/index.css +35 -52
  172. package/dist/elements/FileManager/index.d.ts +1 -1
  173. package/dist/elements/FileManager/index.d.ts.map +1 -1
  174. package/dist/elements/FileManager/index.js +385 -282
  175. package/dist/elements/FileManager/index.js.map +1 -1
  176. package/dist/elements/FilterTrigger/index.d.ts +5 -1
  177. package/dist/elements/FilterTrigger/index.d.ts.map +1 -1
  178. package/dist/elements/FilterTrigger/index.js +6 -0
  179. package/dist/elements/FilterTrigger/index.js.map +1 -1
  180. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  181. package/dist/elements/FullscreenModal/index.js +1 -1
  182. package/dist/elements/FullscreenModal/index.js.map +1 -1
  183. package/dist/elements/GroupBy/Popup.d.ts.map +1 -1
  184. package/dist/elements/GroupBy/Popup.js +74 -45
  185. package/dist/elements/GroupBy/Popup.js.map +1 -1
  186. package/dist/elements/GroupBy/index.d.ts.map +1 -1
  187. package/dist/elements/GroupBy/index.js +2 -0
  188. package/dist/elements/GroupBy/index.js.map +1 -1
  189. package/dist/elements/HTMLDiff/index.css +1 -0
  190. package/dist/elements/HTMLDiff/index.d.ts +3 -1
  191. package/dist/elements/HTMLDiff/index.d.ts.map +1 -1
  192. package/dist/elements/HTMLDiff/index.js +9 -3
  193. package/dist/elements/HTMLDiff/index.js.map +1 -1
  194. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +3 -0
  195. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  196. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +60 -47
  197. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  198. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  199. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  200. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +34 -27
  201. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  202. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -2
  203. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -1
  204. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -1
  205. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  206. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  207. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  208. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  209. package/dist/elements/Hierarchy/Search/index.js +6 -7
  210. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  211. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  212. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  213. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  214. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  215. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  216. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  217. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  218. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  219. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  220. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  221. package/dist/elements/IDLabel/index.css +6 -0
  222. package/dist/elements/IDLabel/index.d.ts +1 -1
  223. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  224. package/dist/elements/IDLabel/index.js +16 -21
  225. package/dist/elements/IDLabel/index.js.map +1 -1
  226. package/dist/elements/InputStepper/index.css +0 -1
  227. package/dist/elements/ItemsDrawer/index.css +3 -0
  228. package/dist/elements/ListControls/index.css +1 -0
  229. package/dist/elements/ListControls/index.d.ts.map +1 -1
  230. package/dist/elements/ListControls/index.js +8 -1
  231. package/dist/elements/ListControls/index.js.map +1 -1
  232. package/dist/elements/ListControls/types.d.ts +3 -1
  233. package/dist/elements/ListControls/types.d.ts.map +1 -1
  234. package/dist/elements/ListControls/types.js.map +1 -1
  235. package/dist/elements/ListControlsBar/index.css +1 -0
  236. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  237. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  238. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  239. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  240. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  241. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  242. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  243. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  244. package/dist/elements/LivePreview/Toolbar/Controls/index.js +3 -0
  245. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  246. package/dist/elements/LivePreview/Window/index.css +1 -0
  247. package/dist/elements/LivePreview/Window/index.js +1 -1
  248. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  249. package/dist/elements/Loading/index.d.ts.map +1 -1
  250. package/dist/elements/Loading/index.js +1 -0
  251. package/dist/elements/Loading/index.js.map +1 -1
  252. package/dist/elements/Localizer/index.d.ts +3 -6
  253. package/dist/elements/Localizer/index.d.ts.map +1 -1
  254. package/dist/elements/Localizer/index.js +20 -12
  255. package/dist/elements/Localizer/index.js.map +1 -1
  256. package/dist/elements/Locked/index.css +0 -8
  257. package/dist/elements/Locked/index.d.ts.map +1 -1
  258. package/dist/elements/Locked/index.js +70 -64
  259. package/dist/elements/Locked/index.js.map +1 -1
  260. package/dist/elements/MiniCarousel/index.css +39 -37
  261. package/dist/elements/Modal/index.d.ts +5 -1
  262. package/dist/elements/Modal/index.d.ts.map +1 -1
  263. package/dist/elements/Modal/index.js +69 -1
  264. package/dist/elements/Modal/index.js.map +1 -1
  265. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  266. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -0
  267. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  268. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  269. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  270. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  271. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  272. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  273. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  274. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +5 -3
  275. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  276. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  277. package/dist/elements/Nav/getNavPrefs.js +2 -0
  278. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  279. package/dist/elements/Nav/index.css +2 -0
  280. package/dist/elements/NavGroup/index.css +0 -1
  281. package/dist/elements/PageControls/GroupByPageControls.d.ts +1 -0
  282. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -1
  283. package/dist/elements/PageControls/GroupByPageControls.js +9 -6
  284. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  285. package/dist/elements/PageControls/index.css +1 -0
  286. package/dist/elements/PageControls/index.d.ts +3 -0
  287. package/dist/elements/PageControls/index.d.ts.map +1 -1
  288. package/dist/elements/PageControls/index.js +42 -27
  289. package/dist/elements/PageControls/index.js.map +1 -1
  290. package/dist/elements/Pagination/ClickableArrow/index.d.ts +1 -0
  291. package/dist/elements/Pagination/ClickableArrow/index.d.ts.map +1 -1
  292. package/dist/elements/Pagination/ClickableArrow/index.js +46 -10
  293. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  294. package/dist/elements/Pagination/SimplePagination/index.d.ts +1 -0
  295. package/dist/elements/Pagination/SimplePagination/index.d.ts.map +1 -1
  296. package/dist/elements/Pagination/SimplePagination/index.js +14 -8
  297. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  298. package/dist/elements/Pagination/index.d.ts +1 -0
  299. package/dist/elements/Pagination/index.d.ts.map +1 -1
  300. package/dist/elements/Pagination/index.js +36 -17
  301. package/dist/elements/Pagination/index.js.map +1 -1
  302. package/dist/elements/PerPage/index.d.ts +1 -0
  303. package/dist/elements/PerPage/index.d.ts.map +1 -1
  304. package/dist/elements/PerPage/index.js +24 -15
  305. package/dist/elements/PerPage/index.js.map +1 -1
  306. package/dist/elements/PillSelector/index.css +1 -0
  307. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  308. package/dist/elements/Popup/PopupButtonList/index.d.ts +8 -0
  309. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  310. package/dist/elements/Popup/PopupButtonList/index.js +50 -6
  311. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  312. package/dist/elements/Popup/PopupTrigger/index.d.ts +9 -2
  313. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  314. package/dist/elements/Popup/PopupTrigger/index.js +58 -6
  315. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  316. package/dist/elements/Popup/index.css +4 -2
  317. package/dist/elements/Popup/index.d.ts +6 -27
  318. package/dist/elements/Popup/index.d.ts.map +1 -1
  319. package/dist/elements/Popup/index.js +115 -76
  320. package/dist/elements/Popup/index.js.map +1 -1
  321. package/dist/elements/PreviewButton/index.d.ts +1 -2
  322. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  323. package/dist/elements/PreviewButton/index.js +11 -5
  324. package/dist/elements/PreviewButton/index.js.map +1 -1
  325. package/dist/elements/PreviewSizes/index.css +10 -9
  326. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  327. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  328. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  329. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  330. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  331. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  332. package/dist/elements/PublishButton/index.css +1 -0
  333. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  334. package/dist/elements/PublishButton/index.js +16 -31
  335. package/dist/elements/PublishButton/index.js.map +1 -1
  336. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  337. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  338. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  339. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  340. package/dist/elements/QueryPresets/QueryPresetBar/index.js +19 -5
  341. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  342. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +3 -2
  343. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  344. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  345. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +3 -2
  346. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  347. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  348. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  349. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +3 -2
  350. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  351. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  352. package/dist/elements/ReactSelect/ClearIndicator/index.css +5 -1
  353. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  354. package/dist/elements/ReactSelect/ClearIndicator/index.js +51 -20
  355. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  356. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  357. package/dist/elements/ReactSelect/DefaultMenuPortal.js +2 -1
  358. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  359. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -4
  360. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  361. package/dist/elements/ReactSelect/DropdownIndicator/index.js +16 -21
  362. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  363. package/dist/elements/ReactSelect/MultiValue/context.d.ts +6 -0
  364. package/dist/elements/ReactSelect/MultiValue/context.d.ts.map +1 -0
  365. package/dist/elements/ReactSelect/MultiValue/context.js +5 -0
  366. package/dist/elements/ReactSelect/MultiValue/context.js.map +1 -0
  367. package/dist/elements/ReactSelect/MultiValue/index.css +5 -1
  368. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  369. package/dist/elements/ReactSelect/MultiValue/index.js +89 -35
  370. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  371. package/dist/elements/ReactSelect/MultiValueLabel/index.css +43 -3
  372. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts +5 -1
  373. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  374. package/dist/elements/ReactSelect/MultiValueLabel/index.js +49 -4
  375. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  376. package/dist/elements/ReactSelect/MultiValueRemove/index.css +30 -4
  377. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  378. package/dist/elements/ReactSelect/MultiValueRemove/index.js +92 -66
  379. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  380. package/dist/elements/ReactSelect/Option/index.d.ts +6 -0
  381. package/dist/elements/ReactSelect/Option/index.d.ts.map +1 -0
  382. package/dist/elements/ReactSelect/Option/index.js +30 -0
  383. package/dist/elements/ReactSelect/Option/index.js.map +1 -0
  384. package/dist/elements/ReactSelect/index.css +0 -3
  385. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  386. package/dist/elements/ReactSelect/index.js +4 -1
  387. package/dist/elements/ReactSelect/index.js.map +1 -1
  388. package/dist/elements/ReactSelect/types.d.ts +7 -1
  389. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  390. package/dist/elements/ReactSelect/types.js.map +1 -1
  391. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  392. package/dist/elements/RelationshipTable/AddNewButton.js +1 -0
  393. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  394. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  395. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  396. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  397. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  398. package/dist/elements/RelationshipTable/index.css +0 -2
  399. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  400. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  401. package/dist/elements/RelationshipTable/index.js +100 -60
  402. package/dist/elements/RelationshipTable/index.js.map +1 -1
  403. package/dist/elements/RenderTitle/index.css +5 -0
  404. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  405. package/dist/elements/RenderTitle/index.js +18 -13
  406. package/dist/elements/RenderTitle/index.js.map +1 -1
  407. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  408. package/dist/elements/RestoreMany/index.js +2 -3
  409. package/dist/elements/RestoreMany/index.js.map +1 -1
  410. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  411. package/dist/elements/SaveDraftButton/index.js +2 -3
  412. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  413. package/dist/elements/SelectRow/index.d.ts +5 -3
  414. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  415. package/dist/elements/SelectRow/index.js +37 -26
  416. package/dist/elements/SelectRow/index.js.map +1 -1
  417. package/dist/elements/SidebarToggle/index.css +0 -17
  418. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  419. package/dist/elements/SortColumn/index.js +63 -91
  420. package/dist/elements/SortColumn/index.js.map +1 -1
  421. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  422. package/dist/elements/SortHeader/index.js +34 -49
  423. package/dist/elements/SortHeader/index.js.map +1 -1
  424. package/dist/elements/Status/index.d.ts.map +1 -1
  425. package/dist/elements/Status/index.js +2 -3
  426. package/dist/elements/Status/index.js.map +1 -1
  427. package/dist/elements/StepNav/index.css +64 -14
  428. package/dist/elements/StepNav/index.d.ts.map +1 -1
  429. package/dist/elements/StepNav/index.js +144 -69
  430. package/dist/elements/StepNav/index.js.map +1 -1
  431. package/dist/elements/Switch/index.d.ts +1 -0
  432. package/dist/elements/Switch/index.d.ts.map +1 -1
  433. package/dist/elements/Switch/index.js +18 -16
  434. package/dist/elements/Switch/index.js.map +1 -1
  435. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  436. package/dist/elements/Table/DefaultCell/index.js +3 -11
  437. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  438. package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts +8 -0
  439. package/dist/elements/Table/GridNavigation/useGridNavigation.d.ts.map +1 -0
  440. package/dist/elements/Table/GridNavigation/useGridNavigation.js +397 -0
  441. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -0
  442. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  443. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  444. package/dist/elements/Table/OrderableRow.js +17 -1
  445. package/dist/elements/Table/OrderableRow.js.map +1 -1
  446. package/dist/elements/Table/OrderableTable.d.ts +1 -0
  447. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  448. package/dist/elements/Table/OrderableTable.js +26 -6
  449. package/dist/elements/Table/OrderableTable.js.map +1 -1
  450. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  451. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  452. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  453. package/dist/elements/Table/TableIdentity.d.ts +10 -0
  454. package/dist/elements/Table/TableIdentity.d.ts.map +1 -0
  455. package/dist/elements/Table/TableIdentity.js +52 -0
  456. package/dist/elements/Table/TableIdentity.js.map +1 -0
  457. package/dist/elements/Table/index.css +2 -0
  458. package/dist/elements/Table/index.d.ts +3 -0
  459. package/dist/elements/Table/index.d.ts.map +1 -1
  460. package/dist/elements/Table/index.js +72 -29
  461. package/dist/elements/Table/index.js.map +1 -1
  462. package/dist/elements/Table/useAriaSort.d.ts +7 -0
  463. package/dist/elements/Table/useAriaSort.d.ts.map +1 -0
  464. package/dist/elements/Table/useAriaSort.js +53 -0
  465. package/dist/elements/Table/useAriaSort.js.map +1 -0
  466. package/dist/elements/TableSection/index.css +1 -1
  467. package/dist/elements/Tabs/index.css +1 -0
  468. package/dist/elements/Thumbnail/index.css +1 -0
  469. package/dist/elements/Thumbnail/index.d.ts +1 -1
  470. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  471. package/dist/elements/Thumbnail/index.js.map +1 -1
  472. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  473. package/dist/elements/ThumbnailCard/index.js +10 -8
  474. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  475. package/dist/elements/TimezonePicker/index.css +1 -0
  476. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  477. package/dist/elements/TimezonePicker/index.js +5 -1
  478. package/dist/elements/TimezonePicker/index.js.map +1 -1
  479. package/dist/elements/Tooltip/index.css +22 -34
  480. package/dist/elements/Tooltip/index.d.ts +11 -3
  481. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  482. package/dist/elements/Tooltip/index.js +151 -85
  483. package/dist/elements/Tooltip/index.js.map +1 -1
  484. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  485. package/dist/elements/UnpublishButton/index.js +3 -4
  486. package/dist/elements/UnpublishButton/index.js.map +1 -1
  487. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  488. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  489. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  490. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  491. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  492. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  493. package/dist/elements/Upload/index.css +39 -37
  494. package/dist/elements/Upload/index.d.ts.map +1 -1
  495. package/dist/elements/Upload/index.js +37 -99
  496. package/dist/elements/Upload/index.js.map +1 -1
  497. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  498. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  499. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  500. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  501. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  502. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  503. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  504. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  505. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  506. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  507. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  508. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  509. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  510. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  511. package/dist/elements/UserMenu/LanguageMenu/index.js +3 -0
  512. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  513. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  514. package/dist/elements/UserMenu/SettingsMenu/index.js +3 -0
  515. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  516. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  517. package/dist/elements/UserMenu/SubMenuHeader/index.js +2 -0
  518. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  519. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  520. package/dist/elements/UserMenu/ThemeMenu/index.js +3 -0
  521. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  522. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  523. package/dist/elements/UserMenu/index.js +21 -4
  524. package/dist/elements/UserMenu/index.js.map +1 -1
  525. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  526. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  527. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  528. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  529. package/dist/elements/WhereBuilder/Condition/index.js +7 -1
  530. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  531. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  532. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  533. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  534. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  535. package/dist/elements/WhereBuilder/index.css +2 -0
  536. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  537. package/dist/elements/WhereBuilder/index.js +15 -4
  538. package/dist/elements/WhereBuilder/index.js.map +1 -1
  539. package/dist/exports/client/index.d.ts +5 -1
  540. package/dist/exports/client/index.d.ts.map +1 -1
  541. package/dist/exports/client/index.js +1 -1
  542. package/dist/exports/client/index.js.map +3 -3
  543. package/dist/exports/shared/index.js +1 -1
  544. package/dist/exports/shared/index.js.map +3 -3
  545. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  546. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  547. package/dist/fields/Array/ArrayRow.js +100 -160
  548. package/dist/fields/Array/ArrayRow.js.map +1 -1
  549. package/dist/fields/Array/index.css +1 -0
  550. package/dist/fields/Array/index.d.ts +3 -7
  551. package/dist/fields/Array/index.d.ts.map +1 -1
  552. package/dist/fields/Array/index.js +48 -17
  553. package/dist/fields/Array/index.js.map +1 -1
  554. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  555. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  556. package/dist/fields/Blocks/BlockRow.js +136 -195
  557. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  558. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  559. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  560. package/dist/fields/Blocks/RowActions.js +35 -20
  561. package/dist/fields/Blocks/RowActions.js.map +1 -1
  562. package/dist/fields/Blocks/index.css +1 -0
  563. package/dist/fields/Blocks/index.d.ts +2 -5
  564. package/dist/fields/Blocks/index.d.ts.map +1 -1
  565. package/dist/fields/Blocks/index.js +48 -17
  566. package/dist/fields/Blocks/index.js.map +1 -1
  567. package/dist/fields/Checkbox/Input.d.ts +2 -0
  568. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  569. package/dist/fields/Checkbox/Input.js +32 -26
  570. package/dist/fields/Checkbox/Input.js.map +1 -1
  571. package/dist/fields/Checkbox/index.css +37 -73
  572. package/dist/fields/Checkbox/index.d.ts +2 -12
  573. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  574. package/dist/fields/Checkbox/index.js.map +1 -1
  575. package/dist/fields/Code/index.d.ts +2 -8
  576. package/dist/fields/Code/index.d.ts.map +1 -1
  577. package/dist/fields/Code/index.js.map +1 -1
  578. package/dist/fields/Collapsible/index.d.ts +2 -3
  579. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  580. package/dist/fields/Collapsible/index.js.map +1 -1
  581. package/dist/fields/DateTime/index.d.ts +3 -7
  582. package/dist/fields/DateTime/index.d.ts.map +1 -1
  583. package/dist/fields/DateTime/index.js +1 -1
  584. package/dist/fields/DateTime/index.js.map +1 -1
  585. package/dist/fields/Email/index.d.ts +2 -7
  586. package/dist/fields/Email/index.d.ts.map +1 -1
  587. package/dist/fields/Email/index.js.map +1 -1
  588. package/dist/fields/FieldError/index.css +0 -9
  589. package/dist/fields/FieldError/index.d.ts.map +1 -1
  590. package/dist/fields/FieldError/index.js +19 -9
  591. package/dist/fields/FieldError/index.js.map +1 -1
  592. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  593. package/dist/fields/FieldLabel/index.js +4 -5
  594. package/dist/fields/FieldLabel/index.js.map +1 -1
  595. package/dist/fields/Group/index.css +1 -0
  596. package/dist/fields/Group/index.d.ts +3 -5
  597. package/dist/fields/Group/index.d.ts.map +1 -1
  598. package/dist/fields/Group/index.js.map +1 -1
  599. package/dist/fields/JSON/index.d.ts +2 -6
  600. package/dist/fields/JSON/index.d.ts.map +1 -1
  601. package/dist/fields/JSON/index.js.map +1 -1
  602. package/dist/fields/Join/index.css +9 -0
  603. package/dist/fields/Join/index.d.ts +2 -6
  604. package/dist/fields/Join/index.d.ts.map +1 -1
  605. package/dist/fields/Join/index.js +13 -9
  606. package/dist/fields/Join/index.js.map +1 -1
  607. package/dist/fields/Number/index.d.ts +2 -7
  608. package/dist/fields/Number/index.d.ts.map +1 -1
  609. package/dist/fields/Number/index.js.map +1 -1
  610. package/dist/fields/Point/index.d.ts +3 -8
  611. package/dist/fields/Point/index.d.ts.map +1 -1
  612. package/dist/fields/Point/index.js.map +1 -1
  613. package/dist/fields/RadioGroup/index.css +0 -7
  614. package/dist/fields/RadioGroup/index.js.map +1 -1
  615. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  616. package/dist/fields/Relationship/Input.js +34 -17
  617. package/dist/fields/Relationship/Input.js.map +1 -1
  618. package/dist/fields/Relationship/index.d.ts +2 -6
  619. package/dist/fields/Relationship/index.d.ts.map +1 -1
  620. package/dist/fields/Relationship/index.js.map +1 -1
  621. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  622. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  623. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +24 -2
  624. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  625. package/dist/fields/Row/index.css +2 -0
  626. package/dist/fields/Row/index.d.ts +2 -3
  627. package/dist/fields/Row/index.d.ts.map +1 -1
  628. package/dist/fields/Row/index.js.map +1 -1
  629. package/dist/fields/Select/index.d.ts +2 -9
  630. package/dist/fields/Select/index.d.ts.map +1 -1
  631. package/dist/fields/Select/index.js.map +1 -1
  632. package/dist/fields/Slug/index.css +0 -1
  633. package/dist/fields/Slug/index.d.ts.map +1 -1
  634. package/dist/fields/Slug/index.js +74 -111
  635. package/dist/fields/Slug/index.js.map +1 -1
  636. package/dist/fields/Tabs/index.css +1 -0
  637. package/dist/fields/Tabs/index.d.ts +2 -4
  638. package/dist/fields/Tabs/index.d.ts.map +1 -1
  639. package/dist/fields/Tabs/index.js.map +1 -1
  640. package/dist/fields/Text/index.d.ts +2 -8
  641. package/dist/fields/Text/index.d.ts.map +1 -1
  642. package/dist/fields/Text/index.js.map +1 -1
  643. package/dist/fields/Textarea/index.d.ts +2 -9
  644. package/dist/fields/Textarea/index.d.ts.map +1 -1
  645. package/dist/fields/Textarea/index.js.map +1 -1
  646. package/dist/fields/Upload/Input.d.ts.map +1 -1
  647. package/dist/fields/Upload/Input.js +46 -19
  648. package/dist/fields/Upload/Input.js.map +1 -1
  649. package/dist/fields/Upload/index.css +19 -4
  650. package/dist/fields/shared/index.d.ts +1 -1
  651. package/dist/fields/shared/index.d.ts.map +1 -1
  652. package/dist/fields/shared/index.js.map +1 -1
  653. package/dist/fields/shared/useRowFocus.d.ts +5 -0
  654. package/dist/fields/shared/useRowFocus.d.ts.map +1 -0
  655. package/dist/fields/shared/useRowFocus.js +50 -0
  656. package/dist/fields/shared/useRowFocus.js.map +1 -0
  657. package/dist/forms/Form/context.d.ts +3 -1
  658. package/dist/forms/Form/context.d.ts.map +1 -1
  659. package/dist/forms/Form/context.js +3 -1
  660. package/dist/forms/Form/context.js.map +1 -1
  661. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  662. package/dist/forms/Form/fieldReducer.js +3 -1
  663. package/dist/forms/Form/fieldReducer.js.map +1 -1
  664. package/dist/forms/Form/index.d.ts.map +1 -1
  665. package/dist/forms/Form/index.js +27 -22
  666. package/dist/forms/Form/index.js.map +1 -1
  667. package/dist/forms/Form/types.d.ts +1 -1
  668. package/dist/forms/Form/types.d.ts.map +1 -1
  669. package/dist/forms/Form/types.js.map +1 -1
  670. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  671. package/dist/forms/NullifyField/index.js +2 -3
  672. package/dist/forms/NullifyField/index.js.map +1 -1
  673. package/dist/forms/RenderFields/context.d.ts +2 -2
  674. package/dist/forms/RenderFields/context.js +2 -2
  675. package/dist/forms/RenderFields/context.js.map +1 -1
  676. package/dist/forms/RenderFields/index.css +17 -2
  677. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  678. package/dist/forms/WatchChildErrors/index.js +2 -2
  679. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  680. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  681. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +14 -5
  682. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  683. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  684. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -5
  685. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  686. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  687. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  688. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  689. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  690. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  691. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  692. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  693. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  694. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  695. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  696. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  697. package/dist/graphics/Logo/index.d.ts.map +1 -1
  698. package/dist/graphics/Logo/index.js +2 -0
  699. package/dist/graphics/Logo/index.js.map +1 -1
  700. package/dist/hooks/useControllableState.js +3 -3
  701. package/dist/hooks/useControllableState.js.map +1 -1
  702. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  703. package/dist/hooks/usePayloadAPI.js +2 -3
  704. package/dist/hooks/usePayloadAPI.js.map +1 -1
  705. package/dist/icons/Edit/index.d.ts +0 -1
  706. package/dist/icons/Edit/index.d.ts.map +1 -1
  707. package/dist/icons/Edit/index.js +4 -4
  708. package/dist/icons/Edit/index.js.map +1 -1
  709. package/dist/layouts/Root/index.d.ts +4 -7
  710. package/dist/layouts/Root/index.d.ts.map +1 -1
  711. package/dist/layouts/Root/index.js +17 -12
  712. package/dist/layouts/Root/index.js.map +1 -1
  713. package/dist/providers/Actions/index.d.ts +1 -0
  714. package/dist/providers/Actions/index.d.ts.map +1 -1
  715. package/dist/providers/Actions/index.js +43 -11
  716. package/dist/providers/Actions/index.js.map +1 -1
  717. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  718. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  719. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  720. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  721. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  722. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  723. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  724. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  725. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  726. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  727. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  728. package/dist/providers/Auth/authSessionRequests.js +119 -0
  729. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  730. package/dist/providers/Auth/index.d.ts +2 -56
  731. package/dist/providers/Auth/index.d.ts.map +1 -1
  732. package/dist/providers/Auth/index.js +283 -135
  733. package/dist/providers/Auth/index.js.map +1 -1
  734. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  735. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  736. package/dist/providers/Auth/sessionActivity.js +49 -0
  737. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  738. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  739. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  740. package/dist/providers/Auth/sessionTiming.js +18 -0
  741. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  742. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  743. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  744. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  745. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  746. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  747. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  748. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  749. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  750. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  751. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  752. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  753. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  754. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  755. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  756. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  757. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  758. package/dist/providers/Auth/types.d.ts +65 -0
  759. package/dist/providers/Auth/types.d.ts.map +1 -0
  760. package/dist/providers/Auth/types.js +2 -0
  761. package/dist/providers/Auth/types.js.map +1 -0
  762. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  763. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  764. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  765. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  766. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  767. package/dist/providers/DocumentInfo/index.js +32 -24
  768. package/dist/providers/DocumentInfo/index.js.map +1 -1
  769. package/dist/providers/DocumentInfo/types.d.ts +0 -10
  770. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  771. package/dist/providers/DocumentInfo/types.js.map +1 -1
  772. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  773. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  774. package/dist/providers/DocumentTitle/index.js +2 -0
  775. package/dist/providers/DocumentTitle/index.js.map +1 -1
  776. package/dist/providers/Embed/index.d.ts +24 -0
  777. package/dist/providers/Embed/index.d.ts.map +1 -0
  778. package/dist/providers/Embed/index.js +105 -0
  779. package/dist/providers/Embed/index.js.map +1 -0
  780. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  781. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  782. package/dist/providers/FormErrorHandler/index.js +6 -0
  783. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  784. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  785. package/dist/providers/LivePreview/index.js +13 -6
  786. package/dist/providers/LivePreview/index.js.map +1 -1
  787. package/dist/providers/Locale/index.d.ts +1 -5
  788. package/dist/providers/Locale/index.d.ts.map +1 -1
  789. package/dist/providers/Locale/index.js +64 -138
  790. package/dist/providers/Locale/index.js.map +1 -1
  791. package/dist/providers/ModalAccessibility/index.d.ts +3 -0
  792. package/dist/providers/ModalAccessibility/index.d.ts.map +1 -0
  793. package/dist/providers/ModalAccessibility/index.js +102 -0
  794. package/dist/providers/ModalAccessibility/index.js.map +1 -0
  795. package/dist/providers/Root/index.d.ts +1 -0
  796. package/dist/providers/Root/index.d.ts.map +1 -1
  797. package/dist/providers/Root/index.js +43 -36
  798. package/dist/providers/Root/index.js.map +1 -1
  799. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  800. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  801. package/dist/providers/RouteTransition/index.d.ts +2 -0
  802. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  803. package/dist/providers/RouteTransition/index.js +42 -14
  804. package/dist/providers/RouteTransition/index.js.map +1 -1
  805. package/dist/providers/Selection/index.d.ts.map +1 -1
  806. package/dist/providers/Selection/index.js +2 -3
  807. package/dist/providers/Selection/index.js.map +1 -1
  808. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  809. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  810. package/dist/providers/ServerFunctions/index.js +15 -0
  811. package/dist/providers/ServerFunctions/index.js.map +1 -1
  812. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  813. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  814. package/dist/providers/SidebarTabs/index.js.map +1 -1
  815. package/dist/providers/TableColumns/buildColumnState/index.js +1 -2
  816. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  817. package/dist/providers/Theme/index.d.ts +3 -0
  818. package/dist/providers/Theme/index.d.ts.map +1 -1
  819. package/dist/providers/Theme/index.js +107 -95
  820. package/dist/providers/Theme/index.js.map +1 -1
  821. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  822. package/dist/providers/ToastContainer/index.js +100 -33
  823. package/dist/providers/ToastContainer/index.js.map +1 -1
  824. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  825. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  826. package/dist/providers/UploadHandlers/index.js +102 -42
  827. package/dist/providers/UploadHandlers/index.js.map +1 -1
  828. package/dist/styles.css +17 -10
  829. package/dist/templates/Default/Wrapper/index.css +2 -0
  830. package/dist/templates/Default/index.css +1 -0
  831. package/dist/templates/Default/index.d.ts +1 -0
  832. package/dist/templates/Default/index.d.ts.map +1 -1
  833. package/dist/templates/Default/index.js +2 -0
  834. package/dist/templates/Default/index.js.map +1 -1
  835. package/dist/utilities/buildFormState.d.ts.map +1 -1
  836. package/dist/utilities/buildFormState.js +6 -2
  837. package/dist/utilities/buildFormState.js.map +1 -1
  838. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  839. package/dist/utilities/combineFieldLabel.js +5 -1
  840. package/dist/utilities/combineFieldLabel.js.map +1 -1
  841. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  842. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  843. package/dist/utilities/formatAbsoluteURL.js +18 -8
  844. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  845. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  846. package/dist/utilities/formatMetadata.js +0 -5
  847. package/dist/utilities/formatMetadata.js.map +1 -1
  848. package/dist/utilities/generateFieldID.d.ts +1 -1
  849. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  850. package/dist/utilities/generateFieldID.js +2 -2
  851. package/dist/utilities/generateFieldID.js.map +1 -1
  852. package/dist/utilities/getActiveModal.d.ts +6 -0
  853. package/dist/utilities/getActiveModal.d.ts.map +1 -0
  854. package/dist/utilities/getActiveModal.js +8 -0
  855. package/dist/utilities/getActiveModal.js.map +1 -0
  856. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  857. package/dist/utilities/getDocPreferences.js +1 -0
  858. package/dist/utilities/getDocPreferences.js.map +1 -1
  859. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  860. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  861. package/dist/utilities/getFilesFromClipboard.js +49 -0
  862. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  863. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  864. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  865. package/dist/utilities/getHasScheduledPublish.js +2 -5
  866. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  867. package/dist/utilities/getPreferences.d.ts.map +1 -1
  868. package/dist/utilities/getPreferences.js +1 -0
  869. package/dist/utilities/getPreferences.js.map +1 -1
  870. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  871. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  872. package/dist/utilities/getRequestEmbed.js +10 -0
  873. package/dist/utilities/getRequestEmbed.js.map +1 -0
  874. package/dist/utilities/getVersions.d.ts.map +1 -1
  875. package/dist/utilities/getVersions.js +8 -0
  876. package/dist/utilities/getVersions.js.map +1 -1
  877. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  878. package/dist/utilities/handleAuthRedirect.js +4 -1
  879. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  880. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  881. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  882. package/dist/utilities/handleServerFunctions.js +22 -40
  883. package/dist/utilities/handleServerFunctions.js.map +1 -1
  884. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  885. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  886. package/dist/utilities/isAbsoluteURL.js +15 -0
  887. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  888. package/dist/utilities/isHttpURL.d.ts +3 -0
  889. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  890. package/dist/utilities/isHttpURL.js +12 -0
  891. package/dist/utilities/isHttpURL.js.map +1 -0
  892. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  893. package/dist/utilities/isPathMatchingRoute.js +7 -5
  894. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  895. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  896. package/dist/utilities/isPublicAdminRoute.js +9 -6
  897. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  898. package/dist/utilities/renderTable.d.ts.map +1 -1
  899. package/dist/utilities/renderTable.js +29 -6
  900. package/dist/utilities/renderTable.js.map +1 -1
  901. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  902. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  903. package/dist/utilities/schedulePublishHandler.js +74 -5
  904. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  905. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  906. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  907. package/dist/utilities/serverFunctionRegistry.js +27 -8
  908. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  909. package/dist/utilities/slugify.d.ts.map +1 -1
  910. package/dist/utilities/slugify.js +52 -6
  911. package/dist/utilities/slugify.js.map +1 -1
  912. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  913. package/dist/utilities/upsertPreferences.js +3 -0
  914. package/dist/utilities/upsertPreferences.js.map +1 -1
  915. package/dist/views/API/index.client.d.ts.map +1 -1
  916. package/dist/views/API/index.client.js +2 -3
  917. package/dist/views/API/index.client.js.map +1 -1
  918. package/dist/views/API/index.css +1 -0
  919. package/dist/views/Account/index.d.ts +1 -1
  920. package/dist/views/Account/index.d.ts.map +1 -1
  921. package/dist/views/Account/index.js +8 -5
  922. package/dist/views/Account/index.js.map +1 -1
  923. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  924. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +75 -114
  925. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  926. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts +7 -0
  927. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.d.ts.map +1 -0
  928. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js +65 -0
  929. package/dist/views/Dashboard/Default/ModularDashboard/WidgetContent/index.js.map +1 -0
  930. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts +2 -1
  931. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  932. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +14 -8
  933. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  934. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  935. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +189 -113
  936. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  937. package/dist/views/Dashboard/Default/ModularDashboard/index.css +35 -146
  938. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  939. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  940. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  941. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  942. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  943. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  944. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  945. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  946. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  947. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +12 -10
  948. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  949. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  950. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +3 -0
  951. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  952. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.d.ts.map +1 -1
  953. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js +2 -38
  954. package/dist/views/Dashboard/Default/ModularDashboard/utils/sensors.js.map +1 -1
  955. package/dist/views/Dashboard/index.d.ts.map +1 -1
  956. package/dist/views/Dashboard/index.js +2 -3
  957. package/dist/views/Dashboard/index.js.map +1 -1
  958. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  959. package/dist/views/Document/handleServerFunction.js +3 -0
  960. package/dist/views/Document/handleServerFunction.js.map +1 -1
  961. package/dist/views/Document/index.d.ts +1 -1
  962. package/dist/views/Document/index.d.ts.map +1 -1
  963. package/dist/views/Document/index.js +10 -6
  964. package/dist/views/Document/index.js.map +1 -1
  965. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  966. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  967. package/dist/views/Document/renderDocumentSlots.js +7 -4
  968. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  969. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  970. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  971. package/dist/views/Edit/Auth/APIKey.js +233 -59
  972. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  973. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  974. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  975. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  976. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  977. package/dist/views/Edit/Auth/index.css +91 -0
  978. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  979. package/dist/views/Edit/Auth/index.js +10 -28
  980. package/dist/views/Edit/Auth/index.js.map +1 -1
  981. package/dist/views/Edit/Auth/types.d.ts +3 -1
  982. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  983. package/dist/views/Edit/Auth/types.js.map +1 -1
  984. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  985. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  986. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  987. package/dist/views/Edit/index.css +62 -53
  988. package/dist/views/Edit/index.d.ts.map +1 -1
  989. package/dist/views/Edit/index.js +3 -2
  990. package/dist/views/Edit/index.js.map +1 -1
  991. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  992. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  993. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  994. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  995. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  996. package/dist/views/ForgotPassword/index.js +2 -11
  997. package/dist/views/ForgotPassword/index.js.map +1 -1
  998. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  999. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  1000. package/dist/views/HierarchyList/TypeFilter/index.js +6 -7
  1001. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  1002. package/dist/views/HierarchyList/index.css +2 -1
  1003. package/dist/views/List/ListHeader/index.css +1 -0
  1004. package/dist/views/List/ListHeader/index.d.ts +1 -11
  1005. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  1006. package/dist/views/List/ListHeader/index.js +3 -9
  1007. package/dist/views/List/ListHeader/index.js.map +1 -1
  1008. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  1009. package/dist/views/List/enrichDocsWithVersionStatus.js +1 -0
  1010. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  1011. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  1012. package/dist/views/List/handleServerFunction.js +4 -1
  1013. package/dist/views/List/handleServerFunction.js.map +1 -1
  1014. package/dist/views/List/index.client.d.ts.map +1 -1
  1015. package/dist/views/List/index.client.js +145 -138
  1016. package/dist/views/List/index.client.js.map +1 -1
  1017. package/dist/views/List/index.css +8 -1
  1018. package/dist/views/List/index.d.ts.map +1 -1
  1019. package/dist/views/List/index.js +6 -1
  1020. package/dist/views/List/index.js.map +1 -1
  1021. package/dist/views/Logout/index.d.ts.map +1 -1
  1022. package/dist/views/Logout/index.js +11 -0
  1023. package/dist/views/Logout/index.js.map +1 -1
  1024. package/dist/views/NotFound/client.d.ts +2 -0
  1025. package/dist/views/NotFound/client.d.ts.map +1 -0
  1026. package/dist/views/NotFound/client.js +4 -0
  1027. package/dist/views/NotFound/client.js.map +1 -0
  1028. package/dist/views/NotFound/page.d.ts +4 -11
  1029. package/dist/views/NotFound/page.d.ts.map +1 -1
  1030. package/dist/views/NotFound/page.js +6 -5
  1031. package/dist/views/NotFound/page.js.map +1 -1
  1032. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  1033. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  1034. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  1035. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  1036. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  1037. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  1038. package/dist/views/Root/index.d.ts +17 -7
  1039. package/dist/views/Root/index.d.ts.map +1 -1
  1040. package/dist/views/Root/index.js +44 -27
  1041. package/dist/views/Root/index.js.map +1 -1
  1042. package/dist/views/Verify/index.d.ts +1 -1
  1043. package/dist/views/Verify/index.d.ts.map +1 -1
  1044. package/dist/views/Verify/index.js +4 -4
  1045. package/dist/views/Verify/index.js.map +1 -1
  1046. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  1047. package/dist/views/Version/Default/SetStepNav.js +10 -13
  1048. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  1049. package/dist/views/Version/Default/index.css +2 -0
  1050. package/dist/views/Version/Default/index.d.ts.map +1 -1
  1051. package/dist/views/Version/Default/index.js +12 -13
  1052. package/dist/views/Version/Default/index.js.map +1 -1
  1053. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  1054. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  1055. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  1056. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  1057. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  1058. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  1059. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  1060. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts +3 -2
  1061. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts.map +1 -1
  1062. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  1063. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +3 -2
  1064. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  1065. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  1066. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  1067. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +3 -2
  1068. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -1
  1069. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  1070. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +3 -2
  1071. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  1072. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  1073. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  1074. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  1075. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  1076. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  1077. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +1 -0
  1078. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  1079. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  1080. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -2
  1081. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  1082. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  1083. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +3 -2
  1084. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -1
  1085. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  1086. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -2
  1087. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  1088. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  1089. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -2
  1090. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  1091. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  1092. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +3 -2
  1093. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  1094. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js +3 -1
  1095. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  1096. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  1097. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +2 -2
  1098. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  1099. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  1100. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  1101. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  1102. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  1103. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  1104. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  1105. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  1106. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  1107. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  1108. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  1109. package/dist/views/Version/Restore/index.js +9 -6
  1110. package/dist/views/Version/Restore/index.js.map +1 -1
  1111. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  1112. package/dist/views/Version/SelectLocales/index.js +1 -0
  1113. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  1114. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  1115. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  1116. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  1117. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  1118. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  1119. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  1120. package/dist/views/Versions/index.client.d.ts.map +1 -1
  1121. package/dist/views/Versions/index.client.js +3 -1
  1122. package/dist/views/Versions/index.client.js.map +1 -1
  1123. package/dist/views/Versions/index.css +1 -0
  1124. package/dist/widgets/CollectionCards/index.css +4 -0
  1125. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -2
  1126. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  1127. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  1128. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +3 -2
  1129. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  1130. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  1131. package/package.json +12 -11
  1132. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  1133. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  1134. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  1135. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  1136. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  1137. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  1138. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  1139. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  1140. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  1141. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  1142. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  1143. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  1144. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  1145. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  1146. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  1147. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  1148. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  1149. package/dist/layouts/Root/index.spec.js +0 -20
  1150. package/dist/layouts/Root/index.spec.js.map +0 -1
  1151. package/dist/scss/app.scss +0 -183
  1152. package/dist/scss/colors.scss +0 -191
  1153. package/dist/scss/custom.css +0 -1
  1154. package/dist/scss/queries.scss +0 -27
  1155. package/dist/scss/styles.scss +0 -9
  1156. package/dist/scss/svg.scss +0 -10
  1157. package/dist/scss/toastify.scss +0 -61
  1158. package/dist/scss/vars.scss +0 -192
  1159. package/dist/scss/z-index.scss +0 -9
  1160. package/dist/utilities/appendCacheTag.spec.js +0 -34
  1161. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  1162. package/dist/utilities/formatMetadata.spec.js +0 -83
  1163. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  1164. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  1165. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  1166. package/dist/utilities/getRequestLocale.d.ts +0 -7
  1167. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  1168. package/dist/utilities/getRequestLocale.js +0 -20
  1169. package/dist/utilities/getRequestLocale.js.map +0 -1
  1170. package/dist/utilities/initReq.d.ts +0 -16
  1171. package/dist/utilities/initReq.d.ts.map +0 -1
  1172. package/dist/utilities/initReq.js +0 -111
  1173. package/dist/utilities/initReq.js.map +0 -1
  1174. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  1175. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  1176. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  1177. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  1178. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  1179. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  1180. package/dist/utilities/recentlyViewed.spec.js +0 -92
  1181. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  1182. package/dist/utilities/selectiveCache.d.ts +0 -12
  1183. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  1184. package/dist/utilities/selectiveCache.js +0 -37
  1185. package/dist/utilities/selectiveCache.js.map +0 -1
  1186. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  1187. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  1188. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  1189. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  1190. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  1191. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  1192. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  1193. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  1194. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  1195. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["PopupList","React","createContext","use","useCallback","useEffect","useRef","useState","createPortal","useEffectEvent","ThemeProvider","PopupTrigger","baseClass","PopupContext","TABBABLE_SELECTOR","map","s","join","hasFixedAncestor","element","node","parentElement","document","body","window","getComputedStyle","position","Popup","props","id","button","buttonAriaLabel","buttonClassName","buttonSize","buttonType","caret","children","className","disabled","forceOpen","horizontalAlign","initActive","noBackground","onToggleClose","onToggleOpen","portalClassName","render","renderButton","showOnHover","showScrollbar","side","size","theme","verticalAlign","popupRef","triggerRef","isFixedRef","openedViaKeyboardRef","parentPopup","mounted","setMounted","active","setActiveInternal","isOnTop","setIsOnTop","setActive","isActive","viaKeyboard","current","updatePosition","trigger","popup","triggerRect","getBoundingClientRect","popupRect","useFixed","scrollY","scrollX","offset","sideOffset","top","left","caretLeft","maxTop","innerHeight","height","Math","max","min","anchorRect","width","right","innerWidth","onTop","bottom","topIfAbove","triggerCenter","newTop","round","newLeft","newCaretLeft","newPosition","style","getPropertyValue","setProperty","handleClickOutside","e","target","isOutsidePopup","contains","isOutsideTrigger","clickedPopupContent","closest","isInsideChildPopup","handleKeyDown","key","preventDefault","querySelector","focus","focusable","Array","from","querySelectorAll","length","currentIndex","findIndex","el","activeElement","goBackward","shiftKey","nextIndex","handleActionableClick","actionable","rafId","requestAnimationFrame","firstFocusable","addEventListener","capture","passive","cancelAnimationFrame","removeEventListener","undefined","Trigger","_jsx","_jsxs","filter","Boolean","ref","onMouseEnter","onMouseLeave","role","tabIndex","value","_Fragment","close"],"sources":["../../../src/elements/Popup/index.tsx"],"sourcesContent":["'use client'\nimport type { CSSProperties } from 'react'\n\nexport * as PopupList from './PopupButtonList/index.js'\n\nimport React, { createContext, use, useCallback, useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ThemeProvider } from '../../providers/Theme/index.js'\nimport './index.css'\nimport { PopupTrigger } from './PopupTrigger/index.js'\n\nconst baseClass = 'popup'\n\ntype PopupContextValue = {\n popupRef: React.RefObject<HTMLDivElement | null>\n}\n\nconst PopupContext = createContext<null | PopupContextValue>(null)\n\n/**\n * Selector for all elements the browser considers tabbable.\n */\nconst TABBABLE_SELECTOR = [\n 'a[href]',\n 'button:not(:disabled)',\n 'input:not(:disabled):not([type=\"hidden\"])',\n 'select:not(:disabled)',\n 'textarea:not(:disabled)',\n '[tabindex]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'audio[controls]',\n 'video[controls]',\n 'summary',\n]\n .map((s) => `${s}:not([tabindex=\"-1\"])`)\n .join(', ')\n\n/**\n * Returns whether the element has a `position: fixed` ancestor (e.g. an open Drawer).\n * Such popups must be positioned with `fixed` so they don't drift when the background scrolls.\n */\nconst hasFixedAncestor = (element: HTMLElement | null): boolean => {\n let node = element?.parentElement\n while (node && node !== document.body) {\n if (window.getComputedStyle(node).position === 'fixed') {\n return true\n }\n node = node.parentElement\n }\n return false\n}\n\nexport type PopupProps = {\n backgroundColor?: CSSProperties['backgroundColor']\n boundingRef?: React.RefObject<HTMLElement>\n button?: React.ReactNode\n /**\n * Accessible label for the trigger button.\n * Necessary when the button has an icon-only content,\n * so the button has an accessible name for screen readers.\n */\n buttonAriaLabel?: string\n /**\n * The class name to apply to the button that triggers the popup.\n */\n buttonClassName?: string\n buttonSize?: 'large' | 'medium'\n buttonType?: 'custom' | 'default'\n caret?: boolean\n children?: React.ReactNode\n /**\n * The class name to apply to the popup container containing the trigger.\n * This does not wrap the actual popup content, which is rendered in a portal.\n */\n className?: string\n disabled?: boolean\n /**\n * Force control the open state of the popup, regardless of the trigger.\n */\n forceOpen?: boolean\n /**\n * Preferred horizontal alignment of the popup, if there is enough space available.\n *\n * @default 'left'\n */\n horizontalAlign?: 'center' | 'left' | 'right'\n id?: string\n initActive?: boolean\n noBackground?: boolean\n onToggleClose?: () => void\n onToggleOpen?: (active: boolean) => void\n /**\n * Class name to apply to the portal container.\n */\n portalClassName?: string\n render?: (args: { close: () => void }) => React.ReactNode\n /**\n * Render prop for custom trigger button. Receives onClick/onKeyDown/aria props.\n * When provided, `button` and `buttonType` are ignored.\n */\n renderButton?: (props: {\n active: boolean\n 'aria-expanded': boolean\n 'aria-haspopup': true\n onClick: React.MouseEventHandler\n onKeyDown: React.KeyboardEventHandler\n }) => React.ReactNode\n showOnHover?: boolean\n /**\n * By default, the scrollbar is hidden. If you want to show it, set this to true.\n * In both cases, the container is still scrollable.\n *\n * @default false\n */\n showScrollbar?: boolean\n /**\n * Position the popup to the side of the trigger instead of above/below.\n * The popup's top edge aligns with the trigger's top edge (with viewport clamping).\n * Automatically flips to the opposite side if there is not enough space.\n * When set, `verticalAlign`, `horizontalAlign`, and the caret are ignored.\n */\n side?: 'left' | 'right'\n size?: 'fit-content' | 'large' | 'small'\n /**\n * Theme for the popup content. Defaults to 'dark'.\n * Set to 'auto' to inherit the current theme.\n *\n * @default 'dark'\n */\n theme?: 'auto' | 'dark' | 'light'\n /**\n * Preferred vertical alignment of the popup (position below or above the trigger),\n * if there is enough space available.\n *\n * If the popup is too close to the edge of the viewport, it will flip to the opposite side\n * regardless of the preferred vertical alignment.\n *\n * @default 'bottom'\n */\n verticalAlign?: 'bottom' | 'top'\n}\n\n/**\n * Component that renders a popup, as well as a button that triggers the popup.\n *\n * The popup is rendered in a portal, and is automatically positioned above / below the trigger,\n * depending on the verticalAlign prop and the space available.\n */\nexport const Popup: React.FC<PopupProps> = (props) => {\n const {\n id,\n button,\n buttonAriaLabel,\n buttonClassName,\n buttonSize,\n buttonType = 'default',\n caret = true,\n children,\n className,\n disabled,\n forceOpen,\n horizontalAlign = 'left',\n initActive = false,\n noBackground,\n onToggleClose,\n onToggleOpen,\n portalClassName,\n render,\n renderButton,\n showOnHover = false,\n showScrollbar = false,\n side,\n size = 'fit-content',\n theme = 'dark',\n verticalAlign = 'bottom',\n } = props\n\n const popupRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLDivElement>(null)\n\n /**\n * Whether the trigger is inside a `position: fixed` ancestor (e.g. a Drawer),\n * in which case the popup is positioned with `fixed` instead of `absolute`.\n */\n const isFixedRef = useRef(false)\n\n /**\n * Keeps track of whether the popup was opened via keyboard.\n * This is used to determine whether to autofocus the first element in the popup.\n * If the popup was opened via mouse, we do not want to autofocus the first element.\n */\n const openedViaKeyboardRef = useRef(false)\n\n const parentPopup = use(PopupContext)\n\n const [mounted, setMounted] = useState(false)\n const [active, setActiveInternal] = useState(initActive)\n const [isOnTop, setIsOnTop] = useState(verticalAlign === 'top')\n\n // Track when component is mounted to avoid SSR/client hydration mismatch\n useEffect(() => {\n setMounted(true)\n }, [])\n\n const setActive = useCallback(\n (isActive: boolean, viaKeyboard = false) => {\n if (isActive) {\n openedViaKeyboardRef.current = viaKeyboard\n onToggleOpen?.(true)\n } else {\n onToggleClose?.()\n }\n setActiveInternal(isActive)\n },\n [onToggleClose, onToggleOpen],\n )\n\n // /////////////////////////////////////\n // Position Calculation\n //\n // Calculates and applies popup position relative to trigger.\n // Always checks viewport bounds (for flipping), but only updates\n // styles if the calculated position differs from current position.\n // /////////////////////////////////////\n\n const updatePosition = useEffectEvent(() => {\n const trigger = triggerRef.current\n const popup = popupRef.current\n if (!trigger || !popup) {\n return\n }\n\n const triggerRect = trigger.getBoundingClientRect()\n const popupRect = popup.getBoundingClientRect()\n\n // Inside a fixed ancestor, use `fixed` (no scroll offset) so background scrolling\n // doesn't shift the popup. Otherwise use page coordinates (absolute).\n const useFixed = isFixedRef.current\n const scrollY = useFixed ? 0 : window.scrollY\n const scrollX = useFixed ? 0 : window.scrollX\n\n // Gap between the popup and the trigger/viewport edges (in pixels)\n const offset = 10\n // Additional gap used in side mode so the child popup has breathing room from its parent\n const sideOffset = 4\n\n let top: number\n let left: number\n let caretLeft: number\n\n if (side) {\n // /////////////////////////////////////\n // Side Positioning\n // Places the popup to the left or right of the parent popup (not just the trigger),\n // top-aligned with the trigger. Flips to the opposite side if there is not enough\n // viewport space.\n // /////////////////////////////////////\n\n // Top: align with trigger top, clamped to viewport\n top = triggerRect.top + scrollY\n const maxTop = scrollY + window.innerHeight - popupRect.height - offset\n top = Math.max(scrollY + offset, Math.min(top, maxTop))\n\n // Use the parent popup's bounding rect as the reference for left/right positioning\n // so the child appears 4px from the parent popup edge, not just the trigger button.\n const anchorRect = parentPopup?.popupRef.current\n ? parentPopup.popupRef.current.getBoundingClientRect()\n : triggerRect\n\n if (side === 'left') {\n left = anchorRect.left - popupRect.width - sideOffset\n if (left < offset) {\n // flip to right side\n left = anchorRect.right + sideOffset\n }\n } else {\n left = anchorRect.right + sideOffset\n if (left + popupRect.width + offset > window.innerWidth) {\n // flip to left side\n left = anchorRect.left - popupRect.width - sideOffset\n }\n }\n\n left = left + scrollX\n // Caret not used in side mode; set a neutral value\n caretLeft = popupRect.width / 2\n\n setIsOnTop(false)\n } else {\n // /////////////////////////////////////\n // Vertical Positioning\n // Calculates the `top` position in absolute page coordinates.\n // Uses `verticalAlign` prop as the preferred direction, but flips\n // to the opposite side if there's not enough viewport space.\n // /////////////////////////////////////\n\n let onTop = verticalAlign === 'top'\n\n if (verticalAlign === 'bottom') {\n top = triggerRect.bottom + scrollY + offset\n\n if (triggerRect.bottom + popupRect.height + offset > window.innerHeight) {\n // Try to flip above — only do so if there's actually enough room\n const topIfAbove = triggerRect.top + scrollY - popupRect.height - offset\n if (topIfAbove >= scrollY) {\n top = topIfAbove\n onTop = true\n }\n // else: not enough room above either — keep below and let it overflow rather than going off-screen\n }\n } else {\n top = triggerRect.top + scrollY - popupRect.height - offset\n\n if (triggerRect.top - popupRect.height - offset < 0) {\n top = triggerRect.bottom + scrollY + offset\n onTop = false\n }\n }\n\n setIsOnTop(onTop)\n\n // /////////////////////////////////////\n // Horizontal Positioning\n // Calculates the `left` position based on `horizontalAlign` prop:\n // - 'left': aligns popup's left edge with trigger's left edge\n // - 'right': aligns popup's right edge with trigger's right edge\n // - 'center': centers popup horizontally relative to trigger\n // Then clamps to keep the popup within viewport bounds.\n // /////////////////////////////////////\n\n left =\n horizontalAlign === 'right'\n ? triggerRect.right - popupRect.width\n : horizontalAlign === 'center'\n ? triggerRect.left + triggerRect.width / 2 - popupRect.width / 2\n : triggerRect.left\n\n left = Math.max(offset, Math.min(left, window.innerWidth - popupRect.width - offset))\n\n // /////////////////////////////////////\n // Caret Positioning\n // Positions the caret arrow to point at the trigger's horizontal center.\n // Clamps between 12px from edges to prevent caret from overflowing the popup.\n // /////////////////////////////////////\n\n const triggerCenter = triggerRect.left + triggerRect.width / 2\n caretLeft = Math.max(12, Math.min(triggerCenter - left, popupRect.width - 12))\n }\n\n // /////////////////////////////////////\n // Apply Styles (only if changed)\n // Compares calculated position with current styles to avoid unnecessary\n // DOM updates during scroll. This prevents visual lag by relying on the absolute\n // positioning where possible (popup slightly lags behind when scrolling really fast),\n // while still allowing position changes when needed (e.g., sticky parent, viewport flip).\n // Values are rounded to match browser's CSS precision and avoid false updates.\n // /////////////////////////////////////\n\n const newTop = `${Math.round(top)}px`\n const newLeft = `${Math.round(left + scrollX)}px`\n const newCaretLeft = `${Math.round(caretLeft)}px`\n const newPosition = useFixed ? 'fixed' : ''\n\n if (popup.style.position !== newPosition) {\n popup.style.position = newPosition\n }\n if (popup.style.top !== newTop) {\n popup.style.top = newTop\n }\n if (popup.style.left !== newLeft) {\n popup.style.left = newLeft\n }\n if (popup.style.getPropertyValue('--caret-left') !== newCaretLeft) {\n popup.style.setProperty('--caret-left', newCaretLeft)\n }\n })\n\n // /////////////////////////////////////\n // Click Outside Handler\n // Closes popup when clicking outside both the popup and trigger.\n // Distinguishes between parent and child popups:\n // - Click in child popup: parent stays open\n // - Click in parent popup: child closes\n // /////////////////////////////////////\n\n const handleClickOutside = useEffectEvent((e: MouseEvent) => {\n const target = e.target as Node\n const isOutsidePopup = !popupRef.current?.contains(target)\n const isOutsideTrigger = !triggerRef.current?.contains(target)\n\n // Check if click is inside a popup portal\n const clickedPopupContent = (target as Element).closest?.('.popup__content')\n\n // If the clicked popup contains this popup's trigger, it's a parent popup\n // and we should close. If it doesn't contain our trigger, it's a child popup\n // and we should stay open to avoid closing parent when interacting with child.\n const isInsideChildPopup =\n clickedPopupContent && !clickedPopupContent.contains(triggerRef.current)\n\n if (isOutsidePopup && isOutsideTrigger && !isInsideChildPopup) {\n setActive(false)\n }\n })\n\n // /////////////////////////////////////\n // Keyboard Navigation\n // Handles keyboard interactions when popup is open:\n // - Escape: closes popup and returns focus to trigger\n // - Tab/Shift+Tab: cycles through focusable items with wrapping\n // - ArrowUp/ArrowDown: same as Shift+Tab/Tab for menu-style navigation\n // Focus is managed manually to support elements the browser might skip.\n // /////////////////////////////////////\n\n const handleKeyDown = useEffectEvent((e: KeyboardEvent) => {\n const popup = popupRef.current\n if (!popup || !active) {\n return\n }\n\n if (e.key === 'Escape') {\n e.preventDefault()\n setActive(false)\n triggerRef.current?.querySelector<HTMLElement>('button, [tabindex=\"0\"]')?.focus()\n return\n }\n\n if (e.key === 'Tab' || e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n const focusable = Array.from(popup.querySelectorAll<HTMLElement>(TABBABLE_SELECTOR))\n if (focusable.length === 0) {\n return\n }\n\n e.preventDefault()\n\n const currentIndex = focusable.findIndex((el) => el === document.activeElement)\n const goBackward = e.key === 'ArrowUp' || (e.key === 'Tab' && e.shiftKey)\n\n let nextIndex: number\n if (currentIndex === -1) {\n nextIndex = goBackward ? focusable.length - 1 : 0\n } else if (goBackward) {\n nextIndex = currentIndex === 0 ? focusable.length - 1 : currentIndex - 1\n } else {\n nextIndex = currentIndex === focusable.length - 1 ? 0 : currentIndex + 1\n }\n\n focusable[nextIndex].focus()\n }\n })\n\n // /////////////////////////////////////\n // Click Handler for Actionable Elements\n // Closes popup when buttons/links inside are clicked (includes Enter/Space activation).\n // /////////////////////////////////////\n\n const handleActionableClick = useEffectEvent((e: MouseEvent) => {\n const target = e.target as HTMLElement\n\n // Allow opting out with data-popup-prevent-close attribute on element or ancestor\n if (target.closest('[data-popup-prevent-close]')) {\n return\n }\n\n // Check if the clicked element or any ancestor is an actionable element\n const actionable = target.closest('button, a[href], [role=\"button\"], [role=\"menuitem\"]')\n if (actionable && popupRef.current?.contains(actionable)) {\n // Don't close if clicking a nested popup's trigger — it will manage its own open state\n if (actionable.closest(`.${baseClass}__trigger-wrap`)) {\n return\n }\n setActive(false)\n }\n })\n\n // /////////////////////////////////////\n // Effect: Setup/Teardown position and focus management\n // /////////////////////////////////////\n\n useEffect(() => {\n if (!active) {\n const popup = popupRef.current\n if (popup) {\n // Clear inline position styles so the CSS `top: -9999px` rule on\n // `.popup__hidden-content` takes effect. Without this, the inline\n // styles set during positioning would win over the CSS rule, keeping\n // portaled children (e.g. a ReactSelect menu) visually on-screen.\n popup.style.position = ''\n popup.style.top = ''\n popup.style.left = ''\n }\n return\n }\n\n const popup = popupRef.current\n if (!popup) {\n return\n }\n\n // /////////////////////////////////////\n // Initial Position\n // Calculate and apply popup position.\n // getBoundingClientRect() forces synchronous layout.\n //\n // We call updatePosition() twice: once synchronously (so the popup\n // snaps to roughly the right place immediately rather than flashing\n // from -9999px) and once in a requestAnimationFrame, which fires\n // after the browser has finished laying out the newly-visible popup\n // content. The rAF call is the authoritative one — it catches cases\n // where the popup height wasn't stable yet during the first call\n // (e.g. ColumnSelection popup content rendering after hidden → visible\n // class switch), which was causing incorrect flip-to-top decisions.\n // /////////////////////////////////////\n\n // Decide the positioning strategy once per open.\n isFixedRef.current = hasFixedAncestor(triggerRef.current)\n\n updatePosition()\n const rafId = requestAnimationFrame(() => {\n updatePosition()\n })\n\n // /////////////////////////////////////\n // Focus Management\n // When opened via keyboard, autofocus the first focusable button.\n // When opened via mouse, skip autofocus to avoid unwanted highlights.\n // /////////////////////////////////////\n\n if (openedViaKeyboardRef.current) {\n // Use requestAnimationFrame to ensure DOM is ready.\n requestAnimationFrame(() => {\n const firstFocusable = popup.querySelector<HTMLElement>(TABBABLE_SELECTOR)\n firstFocusable?.focus()\n })\n }\n\n // /////////////////////////////////////\n // Event Listeners\n // - resize/scroll: recalculate position (only applies styles if changed)\n // - mousedown: detect clicks outside to close\n // - keydown: handle keyboard navigation\n // /////////////////////////////////////\n\n window.addEventListener('resize', updatePosition)\n window.addEventListener('scroll', updatePosition, { capture: true, passive: true })\n document.addEventListener('mousedown', handleClickOutside)\n document.addEventListener('keydown', handleKeyDown)\n popup.addEventListener('click', handleActionableClick)\n\n return () => {\n cancelAnimationFrame(rafId)\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('scroll', updatePosition, { capture: true })\n document.removeEventListener('mousedown', handleClickOutside)\n document.removeEventListener('keydown', handleKeyDown)\n popup.removeEventListener('click', handleActionableClick)\n }\n }, [active])\n\n useEffect(() => {\n if (forceOpen !== undefined) {\n setActive(forceOpen)\n }\n }, [forceOpen, setActive])\n\n const Trigger = (\n <PopupTrigger\n active={active}\n button={button}\n buttonAriaLabel={buttonAriaLabel}\n buttonType={buttonType}\n className={buttonClassName}\n disabled={disabled}\n noBackground={noBackground}\n renderButton={renderButton}\n setActive={setActive}\n size={buttonSize}\n />\n )\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} id={id}>\n <div className={`${baseClass}__trigger-wrap`} ref={triggerRef}>\n {showOnHover ? (\n <div\n className={`${baseClass}__on-hover-watch`}\n onMouseEnter={() => setActive(true)}\n onMouseLeave={() => setActive(false)}\n role=\"button\"\n tabIndex={0}\n >\n {Trigger}\n </div>\n ) : (\n Trigger\n )}\n </div>\n\n {mounted\n ? // We need to make sure the popup is part of the DOM (although invisible), even if it's not active.\n // This ensures that components within the popup, like modals, do not unmount when the popup closes.\n // Otherwise, modals opened from the popup will close unexpectedly when clicking within the modal, since\n // that closes the popup due to the click outside handler.\n createPortal(\n <PopupContext value={{ popupRef }}>\n <div\n className={\n active\n ? [\n `${baseClass}__content`,\n `${baseClass}--size-${size}`,\n side\n ? `${baseClass}--side-${side}`\n : isOnTop\n ? `${baseClass}--v-top`\n : `${baseClass}--v-bottom`,\n portalClassName,\n ]\n .filter(Boolean)\n .join(' ')\n : // Do not share any class names between active and disabled popups, to make sure\n // tests do not accidentally target inactive popups.\n `${baseClass}__hidden-content`\n }\n data-popup-id={id || undefined}\n data-theme={theme === 'auto' ? undefined : theme}\n ref={popupRef}\n >\n <div\n className={`${baseClass}__scroll-container${showScrollbar ? ` ${baseClass}__scroll-container--show-scrollbar` : ''}`}\n >\n {theme === 'auto' ? (\n <>\n {render?.({ close: () => setActive(false) })}\n {children}\n </>\n ) : (\n <ThemeProvider theme={theme}>\n {render?.({ close: () => setActive(false) })}\n {children}\n </ThemeProvider>\n )}\n </div>\n {caret && !side && <div className={`${baseClass}__caret`} />}\n </div>\n </PopupContext>,\n document.body,\n )\n : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,SAAS,MAAM;AAE3B,OAAOC,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AACpF,SAASC,YAAY,QAAQ;AAE7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,OAAO;AACP,SAASC,YAAY,QAAQ;AAE7B,MAAMC,SAAA,GAAY;AAMlB,MAAMC,YAAA,gBAAeX,aAAA,CAAwC;AAE7D;;;AAGA,MAAMY,iBAAA,GAAoB,CACxB,WACA,yBACA,6CACA,yBACA,2BACA,cACA,oDACA,mBACA,mBACA,UACD,CACEC,GAAG,CAAEC,CAAA,IAAM,GAAGA,CAAA,uBAAwB,EACtCC,IAAI,CAAC;AAER;;;;AAIA,MAAMC,gBAAA,GAAoBC,OAAA;EACxB,IAAIC,IAAA,GAAOD,OAAA,EAASE,aAAA;EACpB,OAAOD,IAAA,IAAQA,IAAA,KAASE,QAAA,CAASC,IAAI,EAAE;IACrC,IAAIC,MAAA,CAAOC,gBAAgB,CAACL,IAAA,EAAMM,QAAQ,KAAK,SAAS;MACtD,OAAO;IACT;IACAN,IAAA,GAAOA,IAAA,CAAKC,aAAa;EAC3B;EACA,OAAO;AACT;AA4FA;;;;;;AAMA,OAAO,MAAMM,KAAA,GAA+BC,KAAA;EAC1C,MAAM;IACJC,EAAE;IACFC,MAAM;IACNC,eAAe;IACfC,eAAe;IACfC,UAAU;IACVC,UAAA,GAAa,SAAS;IACtBC,KAAA,GAAQ,IAAI;IACZC,QAAQ;IACRC,SAAS;IACTC,QAAQ;IACRC,SAAS;IACTC,eAAA,GAAkB,MAAM;IACxBC,UAAA,GAAa,KAAK;IAClBC,YAAY;IACZC,aAAa;IACbC,YAAY;IACZC,eAAe;IACfC,MAAM;IACNC,YAAY;IACZC,WAAA,GAAc,KAAK;IACnBC,aAAA,GAAgB,KAAK;IACrBC,IAAI;IACJC,IAAA,GAAO,aAAa;IACpBC,KAAA,GAAQ,MAAM;IACdC,aAAA,GAAgB;EAAQ,CACzB,GAAGzB,KAAA;EAEJ,MAAM0B,QAAA,GAAWhD,MAAA,CAAuB;EACxC,MAAMiD,UAAA,GAAajD,MAAA,CAAuB;EAE1C;;;;EAIA,MAAMkD,UAAA,GAAalD,MAAA,CAAO;EAE1B;;;;;EAKA,MAAMmD,oBAAA,GAAuBnD,MAAA,CAAO;EAEpC,MAAMoD,WAAA,GAAcvD,GAAA,CAAIU,YAAA;EAExB,MAAM,CAAC8C,OAAA,EAASC,UAAA,CAAW,GAAGrD,QAAA,CAAS;EACvC,MAAM,CAACsD,MAAA,EAAQC,iBAAA,CAAkB,GAAGvD,QAAA,CAASkC,UAAA;EAC7C,MAAM,CAACsB,OAAA,EAASC,UAAA,CAAW,GAAGzD,QAAA,CAAS8C,aAAA,KAAkB;EAEzD;EACAhD,SAAA,CAAU;IACRuD,UAAA,CAAW;EACb,GAAG,EAAE;EAEL,MAAMK,SAAA,GAAY7D,WAAA,CAChB,CAAC8D,QAAA,EAAmBC,WAAA,GAAc,KAAK;IACrC,IAAID,QAAA,EAAU;MACZT,oBAAA,CAAqBW,OAAO,GAAGD,WAAA;MAC/BvB,YAAA,GAAe;IACjB,OAAO;MACLD,aAAA;IACF;IACAmB,iBAAA,CAAkBI,QAAA;EACpB,GACA,CAACvB,aAAA,EAAeC,YAAA,CAAa;EAG/B;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,MAAMyB,cAAA,GAAiB5D,cAAA,CAAe;IACpC,MAAM6D,OAAA,GAAUf,UAAA,CAAWa,OAAO;IAClC,MAAMG,KAAA,GAAQjB,QAAA,CAASc,OAAO;IAC9B,IAAI,CAACE,OAAA,IAAW,CAACC,KAAA,EAAO;MACtB;IACF;IAEA,MAAMC,WAAA,GAAcF,OAAA,CAAQG,qBAAqB;IACjD,MAAMC,SAAA,GAAYH,KAAA,CAAME,qBAAqB;IAE7C;IACA;IACA,MAAME,QAAA,GAAWnB,UAAA,CAAWY,OAAO;IACnC,MAAMQ,OAAA,GAAUD,QAAA,GAAW,IAAInD,MAAA,CAAOoD,OAAO;IAC7C,MAAMC,OAAA,GAAUF,QAAA,GAAW,IAAInD,MAAA,CAAOqD,OAAO;IAE7C;IACA,MAAMC,MAAA,GAAS;IACf;IACA,MAAMC,UAAA,GAAa;IAEnB,IAAIC,GAAA;IACJ,IAAIC,IAAA;IACJ,IAAIC,SAAA;IAEJ,IAAIhC,IAAA,EAAM;MACR;MACA;MACA;MACA;MACA;MACA;MAEA;MACA8B,GAAA,GAAMR,WAAA,CAAYQ,GAAG,GAAGJ,OAAA;MACxB,MAAMO,MAAA,GAASP,OAAA,GAAUpD,MAAA,CAAO4D,WAAW,GAAGV,SAAA,CAAUW,MAAM,GAAGP,MAAA;MACjEE,GAAA,GAAMM,IAAA,CAAKC,GAAG,CAACX,OAAA,GAAUE,MAAA,EAAQQ,IAAA,CAAKE,GAAG,CAACR,GAAA,EAAKG,MAAA;MAE/C;MACA;MACA,MAAMM,UAAA,GAAa/B,WAAA,EAAaJ,QAAA,CAASc,OAAA,GACrCV,WAAA,CAAYJ,QAAQ,CAACc,OAAO,CAACK,qBAAqB,KAClDD,WAAA;MAEJ,IAAItB,IAAA,KAAS,QAAQ;QACnB+B,IAAA,GAAOQ,UAAA,CAAWR,IAAI,GAAGP,SAAA,CAAUgB,KAAK,GAAGX,UAAA;QAC3C,IAAIE,IAAA,GAAOH,MAAA,EAAQ;UACjB;UACAG,IAAA,GAAOQ,UAAA,CAAWE,KAAK,GAAGZ,UAAA;QAC5B;MACF,OAAO;QACLE,IAAA,GAAOQ,UAAA,CAAWE,KAAK,GAAGZ,UAAA;QAC1B,IAAIE,IAAA,GAAOP,SAAA,CAAUgB,KAAK,GAAGZ,MAAA,GAAStD,MAAA,CAAOoE,UAAU,EAAE;UACvD;UACAX,IAAA,GAAOQ,UAAA,CAAWR,IAAI,GAAGP,SAAA,CAAUgB,KAAK,GAAGX,UAAA;QAC7C;MACF;MAEAE,IAAA,GAAOA,IAAA,GAAOJ,OAAA;MACd;MACAK,SAAA,GAAYR,SAAA,CAAUgB,KAAK,GAAG;MAE9B1B,UAAA,CAAW;IACb,OAAO;MACL;MACA;MACA;MACA;MACA;MACA;MAEA,IAAI6B,KAAA,GAAQxC,aAAA,KAAkB;MAE9B,IAAIA,aAAA,KAAkB,UAAU;QAC9B2B,GAAA,GAAMR,WAAA,CAAYsB,MAAM,GAAGlB,OAAA,GAAUE,MAAA;QAErC,IAAIN,WAAA,CAAYsB,MAAM,GAAGpB,SAAA,CAAUW,MAAM,GAAGP,MAAA,GAAStD,MAAA,CAAO4D,WAAW,EAAE;UACvE;UACA,MAAMW,UAAA,GAAavB,WAAA,CAAYQ,GAAG,GAAGJ,OAAA,GAAUF,SAAA,CAAUW,MAAM,GAAGP,MAAA;UAClE,IAAIiB,UAAA,IAAcnB,OAAA,EAAS;YACzBI,GAAA,GAAMe,UAAA;YACNF,KAAA,GAAQ;UACV;UACA;QACF;MACF,OAAO;QACLb,GAAA,GAAMR,WAAA,CAAYQ,GAAG,GAAGJ,OAAA,GAAUF,SAAA,CAAUW,MAAM,GAAGP,MAAA;QAErD,IAAIN,WAAA,CAAYQ,GAAG,GAAGN,SAAA,CAAUW,MAAM,GAAGP,MAAA,GAAS,GAAG;UACnDE,GAAA,GAAMR,WAAA,CAAYsB,MAAM,GAAGlB,OAAA,GAAUE,MAAA;UACrCe,KAAA,GAAQ;QACV;MACF;MAEA7B,UAAA,CAAW6B,KAAA;MAEX;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAEAZ,IAAA,GACEzC,eAAA,KAAoB,UAChBgC,WAAA,CAAYmB,KAAK,GAAGjB,SAAA,CAAUgB,KAAK,GACnClD,eAAA,KAAoB,WAClBgC,WAAA,CAAYS,IAAI,GAAGT,WAAA,CAAYkB,KAAK,GAAG,IAAIhB,SAAA,CAAUgB,KAAK,GAAG,IAC7DlB,WAAA,CAAYS,IAAI;MAExBA,IAAA,GAAOK,IAAA,CAAKC,GAAG,CAACT,MAAA,EAAQQ,IAAA,CAAKE,GAAG,CAACP,IAAA,EAAMzD,MAAA,CAAOoE,UAAU,GAAGlB,SAAA,CAAUgB,KAAK,GAAGZ,MAAA;MAE7E;MACA;MACA;MACA;MACA;MAEA,MAAMkB,aAAA,GAAgBxB,WAAA,CAAYS,IAAI,GAAGT,WAAA,CAAYkB,KAAK,GAAG;MAC7DR,SAAA,GAAYI,IAAA,CAAKC,GAAG,CAAC,IAAID,IAAA,CAAKE,GAAG,CAACQ,aAAA,GAAgBf,IAAA,EAAMP,SAAA,CAAUgB,KAAK,GAAG;IAC5E;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA,MAAMO,MAAA,GAAS,GAAGX,IAAA,CAAKY,KAAK,CAAClB,GAAA,KAAQ;IACrC,MAAMmB,OAAA,GAAU,GAAGb,IAAA,CAAKY,KAAK,CAACjB,IAAA,GAAOJ,OAAA,KAAY;IACjD,MAAMuB,YAAA,GAAe,GAAGd,IAAA,CAAKY,KAAK,CAAChB,SAAA,KAAc;IACjD,MAAMmB,WAAA,GAAc1B,QAAA,GAAW,UAAU;IAEzC,IAAIJ,KAAA,CAAM+B,KAAK,CAAC5E,QAAQ,KAAK2E,WAAA,EAAa;MACxC9B,KAAA,CAAM+B,KAAK,CAAC5E,QAAQ,GAAG2E,WAAA;IACzB;IACA,IAAI9B,KAAA,CAAM+B,KAAK,CAACtB,GAAG,KAAKiB,MAAA,EAAQ;MAC9B1B,KAAA,CAAM+B,KAAK,CAACtB,GAAG,GAAGiB,MAAA;IACpB;IACA,IAAI1B,KAAA,CAAM+B,KAAK,CAACrB,IAAI,KAAKkB,OAAA,EAAS;MAChC5B,KAAA,CAAM+B,KAAK,CAACrB,IAAI,GAAGkB,OAAA;IACrB;IACA,IAAI5B,KAAA,CAAM+B,KAAK,CAACC,gBAAgB,CAAC,oBAAoBH,YAAA,EAAc;MACjE7B,KAAA,CAAM+B,KAAK,CAACE,WAAW,CAAC,gBAAgBJ,YAAA;IAC1C;EACF;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,MAAMK,kBAAA,GAAqBhG,cAAA,CAAgBiG,CAAA;IACzC,MAAMC,MAAA,GAASD,CAAA,CAAEC,MAAM;IACvB,MAAMC,cAAA,GAAiB,CAACtD,QAAA,CAASc,OAAO,EAAEyC,QAAA,CAASF,MAAA;IACnD,MAAMG,gBAAA,GAAmB,CAACvD,UAAA,CAAWa,OAAO,EAAEyC,QAAA,CAASF,MAAA;IAEvD;IACA,MAAMI,mBAAA,GAAsBJ,MAAC,CAAmBK,OAAO,GAAG;IAE1D;IACA;IACA;IACA,MAAMC,kBAAA,GACJF,mBAAA,IAAuB,CAACA,mBAAA,CAAoBF,QAAQ,CAACtD,UAAA,CAAWa,OAAO;IAEzE,IAAIwC,cAAA,IAAkBE,gBAAA,IAAoB,CAACG,kBAAA,EAAoB;MAC7DhD,SAAA,CAAU;IACZ;EACF;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,MAAMiD,aAAA,GAAgBzG,cAAA,CAAgBiG,GAAA;IACpC,MAAMnC,OAAA,GAAQjB,QAAA,CAASc,OAAO;IAC9B,IAAI,CAACG,OAAA,IAAS,CAACV,MAAA,EAAQ;MACrB;IACF;IAEA,IAAI6C,GAAA,CAAES,GAAG,KAAK,UAAU;MACtBT,GAAA,CAAEU,cAAc;MAChBnD,SAAA,CAAU;MACVV,UAAA,CAAWa,OAAO,EAAEiD,aAAA,CAA2B,2BAA2BC,KAAA;MAC1E;IACF;IAEA,IAAIZ,GAAA,CAAES,GAAG,KAAK,SAAST,GAAA,CAAES,GAAG,KAAK,eAAeT,GAAA,CAAES,GAAG,KAAK,WAAW;MACnE,MAAMI,SAAA,GAAYC,KAAA,CAAMC,IAAI,CAAClD,OAAA,CAAMmD,gBAAgB,CAAc5G,iBAAA;MACjE,IAAIyG,SAAA,CAAUI,MAAM,KAAK,GAAG;QAC1B;MACF;MAEAjB,GAAA,CAAEU,cAAc;MAEhB,MAAMQ,YAAA,GAAeL,SAAA,CAAUM,SAAS,CAAEC,EAAA,IAAOA,EAAA,KAAOxG,QAAA,CAASyG,aAAa;MAC9E,MAAMC,UAAA,GAAatB,GAAA,CAAES,GAAG,KAAK,aAAcT,GAAA,CAAES,GAAG,KAAK,SAAST,GAAA,CAAEuB,QAAQ;MAExE,IAAIC,SAAA;MACJ,IAAIN,YAAA,KAAiB,CAAC,GAAG;QACvBM,SAAA,GAAYF,UAAA,GAAaT,SAAA,CAAUI,MAAM,GAAG,IAAI;MAClD,OAAO,IAAIK,UAAA,EAAY;QACrBE,SAAA,GAAYN,YAAA,KAAiB,IAAIL,SAAA,CAAUI,MAAM,GAAG,IAAIC,YAAA,GAAe;MACzE,OAAO;QACLM,SAAA,GAAYN,YAAA,KAAiBL,SAAA,CAAUI,MAAM,GAAG,IAAI,IAAIC,YAAA,GAAe;MACzE;MAEAL,SAAS,CAACW,SAAA,CAAU,CAACZ,KAAK;IAC5B;EACF;EAEA;EACA;EACA;EACA;EAEA,MAAMa,qBAAA,GAAwB1H,cAAA,CAAgBiG,GAAA;IAC5C,MAAMC,QAAA,GAASD,GAAA,CAAEC,MAAM;IAEvB;IACA,IAAIA,QAAA,CAAOK,OAAO,CAAC,+BAA+B;MAChD;IACF;IAEA;IACA,MAAMoB,UAAA,GAAazB,QAAA,CAAOK,OAAO,CAAC;IAClC,IAAIoB,UAAA,IAAc9E,QAAA,CAASc,OAAO,EAAEyC,QAAA,CAASuB,UAAA,GAAa;MACxD;MACA,IAAIA,UAAA,CAAWpB,OAAO,CAAC,IAAIpG,SAAA,gBAAyB,GAAG;QACrD;MACF;MACAqD,SAAA,CAAU;IACZ;EACF;EAEA;EACA;EACA;EAEA5D,SAAA,CAAU;IACR,IAAI,CAACwD,MAAA,EAAQ;MACX,MAAMU,OAAA,GAAQjB,QAAA,CAASc,OAAO;MAC9B,IAAIG,OAAA,EAAO;QACT;QACA;QACA;QACA;QACAA,OAAA,CAAM+B,KAAK,CAAC5E,QAAQ,GAAG;QACvB6C,OAAA,CAAM+B,KAAK,CAACtB,GAAG,GAAG;QAClBT,OAAA,CAAM+B,KAAK,CAACrB,IAAI,GAAG;MACrB;MACA;IACF;IAEA,MAAMV,OAAA,GAAQjB,QAAA,CAASc,OAAO;IAC9B,IAAI,CAACG,OAAA,EAAO;MACV;IACF;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAEA;IACAf,UAAA,CAAWY,OAAO,GAAGlD,gBAAA,CAAiBqC,UAAA,CAAWa,OAAO;IAExDC,cAAA;IACA,MAAMgE,KAAA,GAAQC,qBAAA,CAAsB;MAClCjE,cAAA;IACF;IAEA;IACA;IACA;IACA;IACA;IAEA,IAAIZ,oBAAA,CAAqBW,OAAO,EAAE;MAChC;MACAkE,qBAAA,CAAsB;QACpB,MAAMC,cAAA,GAAiBhE,OAAA,CAAM8C,aAAa,CAAcvG,iBAAA;QACxDyH,cAAA,EAAgBjB,KAAA;MAClB;IACF;IAEA;IACA;IACA;IACA;IACA;IACA;IAEA9F,MAAA,CAAOgH,gBAAgB,CAAC,UAAUnE,cAAA;IAClC7C,MAAA,CAAOgH,gBAAgB,CAAC,UAAUnE,cAAA,EAAgB;MAAEoE,OAAA,EAAS;MAAMC,OAAA,EAAS;IAAK;IACjFpH,QAAA,CAASkH,gBAAgB,CAAC,aAAa/B,kBAAA;IACvCnF,QAAA,CAASkH,gBAAgB,CAAC,WAAWtB,aAAA;IACrC3C,OAAA,CAAMiE,gBAAgB,CAAC,SAASL,qBAAA;IAEhC,OAAO;MACLQ,oBAAA,CAAqBN,KAAA;MACrB7G,MAAA,CAAOoH,mBAAmB,CAAC,UAAUvE,cAAA;MACrC7C,MAAA,CAAOoH,mBAAmB,CAAC,UAAUvE,cAAA,EAAgB;QAAEoE,OAAA,EAAS;MAAK;MACrEnH,QAAA,CAASsH,mBAAmB,CAAC,aAAanC,kBAAA;MAC1CnF,QAAA,CAASsH,mBAAmB,CAAC,WAAW1B,aAAA;MACxC3C,OAAA,CAAMqE,mBAAmB,CAAC,SAAST,qBAAA;IACrC;EACF,GAAG,CAACtE,MAAA,CAAO;EAEXxD,SAAA,CAAU;IACR,IAAIkC,SAAA,KAAcsG,SAAA,EAAW;MAC3B5E,SAAA,CAAU1B,SAAA;IACZ;EACF,GAAG,CAACA,SAAA,EAAW0B,SAAA,CAAU;EAEzB,MAAM6E,OAAA,gBACJC,IAAA,CAACpI,YAAA;IACCkD,MAAA,EAAQA,MAAA;IACR/B,MAAA,EAAQA,MAAA;IACRC,eAAA,EAAiBA,eAAA;IACjBG,UAAA,EAAYA,UAAA;IACZG,SAAA,EAAWL,eAAA;IACXM,QAAA,EAAUA,QAAA;IACVI,YAAA,EAAcA,YAAA;IACdK,YAAA,EAAcA,YAAA;IACdkB,SAAA,EAAWA,SAAA;IACXd,IAAA,EAAMlB;;EAIV,oBACE+G,KAAA,CAAC;IAAI3G,SAAA,EAAW,CAACzB,SAAA,EAAWyB,SAAA,CAAU,CAAC4G,MAAM,CAACC,OAAA,EAASjI,IAAI,CAAC;IAAMY,EAAA,EAAIA,EAAA;4BACpEkH,IAAA,CAAC;MAAI1G,SAAA,EAAW,GAAGzB,SAAA,gBAAyB;MAAEuI,GAAA,EAAK5F,UAAA;gBAChDP,WAAA,gBACC+F,IAAA,CAAC;QACC1G,SAAA,EAAW,GAAGzB,SAAA,kBAA2B;QACzCwI,YAAA,EAAcA,CAAA,KAAMnF,SAAA,CAAU;QAC9BoF,YAAA,EAAcA,CAAA,KAAMpF,SAAA,CAAU;QAC9BqF,IAAA,EAAK;QACLC,QAAA,EAAU;kBAETT;WAGHA;QAIHnF,OAAA;IAEG;IACA;IACA;;IACAnD,YAAA,cACEuI,IAAA,CAAClI,YAAA;MAAa2I,KAAA,EAAO;QAAElG;MAAS;gBAC9B,aAAA0F,KAAA,CAAC;QACC3G,SAAA,EACEwB,MAAA,GACI,CACE,GAAGjD,SAAA,WAAoB,EACvB,GAAGA,SAAA,UAAmBuC,IAAA,EAAM,EAC5BD,IAAA,GACI,GAAGtC,SAAA,UAAmBsC,IAAA,EAAM,GAC5Ba,OAAA,GACE,GAAGnD,SAAA,SAAkB,GACrB,GAAGA,SAAA,YAAqB,EAC9BiC,eAAA,CACD,CACEoG,MAAM,CAACC,OAAA,EACPjI,IAAI,CAAC;QAER;QACA,GAAGL,SAAA,kBAA2B;QAEpC,iBAAeiB,EAAA,IAAMgH,SAAA;QACrB,cAAYzF,KAAA,KAAU,SAASyF,SAAA,GAAYzF,KAAA;QAC3C+F,GAAA,EAAK7F,QAAA;gCAELyF,IAAA,CAAC;UACC1G,SAAA,EAAW,GAAGzB,SAAA,qBAA8BqC,aAAA,GAAgB,IAAIrC,SAAA,oCAA6C,GAAG,IAAI;oBAEnHwC,KAAA,KAAU,sBACT4F,KAAA,CAAAS,SAAA;uBACG3G,MAAA,GAAS;cAAE4G,KAAA,EAAOA,CAAA,KAAMzF,SAAA,CAAU;YAAO,IACzC7B,QAAA;4BAGH4G,KAAA,CAACtI,aAAA;YAAc0C,KAAA,EAAOA,KAAA;uBACnBN,MAAA,GAAS;cAAE4G,KAAA,EAAOA,CAAA,KAAMzF,SAAA,CAAU;YAAO,IACzC7B,QAAA;;YAIND,KAAA,IAAS,CAACe,IAAA,iBAAQ6F,IAAA,CAAC;UAAI1G,SAAA,EAAW,GAAGzB,SAAA;;;QAG1CU,QAAA,CAASC,IAAI,IAEf;;AAGV","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["PopupList","React","createContext","use","useCallback","useEffect","useId","useRef","useState","useEffectEvent","ThemeProvider","PopupTrigger","baseClass","PopupContext","TABBABLE_SELECTOR","map","s","join","MENU_ITEM_SELECTOR","POPUP_CONTENT_SELECTOR","getMenuItems","popup","Array","from","querySelectorAll","filter","item","closest","Popup","props","id","button","buttonAriaLabel","buttonClassName","buttonSize","buttonType","caret","children","className","disabled","forceOpen","horizontalAlign","initActive","noBackground","onToggleClose","onToggleOpen","popupAriaLabel","popupType","portalClassName","render","renderButton","showOnHover","showScrollbar","side","size","theme","verticalAlign","popupRef","triggerRef","generatedContentId","contentId","openedViaKeyboardRef","parentPopup","popupRole","undefined","active","setActiveInternal","isOnTop","setIsOnTop","setActive","isActive","viaKeyboard","current","closePopup","restoreFocus","trigger","querySelector","requestAnimationFrame","focus","close","closePopupChain","options","updatePosition","triggerRect","getBoundingClientRect","popupRect","offset","sideOffset","top","left","caretLeft","maxTop","window","innerHeight","height","Math","max","min","anchorRect","width","right","innerWidth","onTop","bottom","topIfAbove","triggerCenter","newTop","round","newLeft","newCaretLeft","newPosition","style","position","getPropertyValue","setProperty","handleClickOutside","e","target","isOutsidePopup","contains","isOutsideTrigger","clickedPopupContent","isInsideChildPopup","handleKeyDown","activePopup","document","activeElement","key","preventDefault","stopPropagation","shiftKey","setTimeout","includes","menuItems","length","currentIndex","findIndex","nextIndex","forEach","index","setAttribute","focusable","el","goBackward","handleActionableClick","actionable","matches","showPopover","rafId","firstFocusable","addEventListener","capture","passive","cancelAnimationFrame","removeEventListener","hidePopover","Trigger","_jsx","isMenuItem","_jsxs","Boolean","ref","onMouseEnter","onMouseLeave","role","tabIndex","value","popover","_Fragment"],"sources":["../../../src/elements/Popup/index.tsx"],"sourcesContent":["'use client'\nimport type { AriaAttributes, AriaRole, CSSProperties } from 'react'\n\nexport * as PopupList from './PopupButtonList/index.js'\n\nimport React, { createContext, use, useCallback, useEffect, useId, useRef, useState } from 'react'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { ThemeProvider } from '../../providers/Theme/index.js'\nimport './index.css'\nimport { type PopupButtonRenderProps, PopupTrigger } from './PopupTrigger/index.js'\n\nconst baseClass = 'popup'\n\ntype PopupContextValue = {\n closePopupChain: (options?: { restoreFocus?: boolean }) => void\n popupRef: React.RefObject<HTMLDivElement | null>\n popupRole?: AriaRole\n}\n\nconst PopupContext = createContext<null | PopupContextValue>(null)\n\n/**\n * Selector for all elements the browser considers tabbable.\n */\nconst TABBABLE_SELECTOR = [\n 'a[href]',\n 'button:not(:disabled)',\n 'input:not(:disabled):not([type=\"hidden\"])',\n 'select:not(:disabled)',\n 'textarea:not(:disabled)',\n '[tabindex]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'audio[controls]',\n 'video[controls]',\n 'summary',\n]\n .map((s) => `${s}:not([tabindex=\"-1\"])`)\n .join(', ')\n\nconst MENU_ITEM_SELECTOR = '[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]'\nconst POPUP_CONTENT_SELECTOR = `.${baseClass}__content, .${baseClass}__hidden-content`\n\nconst getMenuItems = (popup: HTMLElement): HTMLElement[] =>\n Array.from(popup.querySelectorAll<HTMLElement>(MENU_ITEM_SELECTOR)).filter(\n (item) => item.closest(POPUP_CONTENT_SELECTOR) === popup,\n )\n\nexport type PopupProps = {\n backgroundColor?: CSSProperties['backgroundColor']\n boundingRef?: React.RefObject<HTMLElement>\n button?: React.ReactNode\n buttonAriaLabel?: string\n buttonClassName?: string\n buttonSize?: 'large' | 'medium'\n buttonType?: 'custom' | 'default'\n caret?: boolean\n children?: React.ReactNode\n className?: string\n disabled?: boolean\n forceOpen?: boolean\n /**\n * Preferred horizontal alignment of the popup, if there is enough space available.\n *\n * @default 'left'\n */\n horizontalAlign?: 'center' | 'left' | 'right'\n id?: string\n initActive?: boolean\n noBackground?: boolean\n onToggleClose?: () => void\n onToggleOpen?: (active: boolean) => void\n popupAriaLabel?: string\n popupType?: AriaAttributes['aria-haspopup']\n portalClassName?: string\n render?: (args: { close: () => void }) => React.ReactNode\n /**\n * Render prop for custom trigger button. Receives onClick/onKeyDown/aria props.\n * When provided, `button` and `buttonType` are ignored.\n */\n renderButton?: (props: PopupButtonRenderProps) => React.ReactNode\n showOnHover?: boolean\n /**\n * By default, the scrollbar is hidden. If you want to show it, set this to true.\n * In both cases, the container is still scrollable.\n *\n * @default false\n */\n showScrollbar?: boolean\n /**\n * Position the popup to the side of the trigger instead of above/below.\n * The popup's top edge aligns with the trigger's top edge (with viewport clamping).\n * Automatically flips to the opposite side if there is not enough space.\n * When set, `verticalAlign`, `horizontalAlign`, and the caret are ignored.\n */\n side?: 'left' | 'right'\n size?: 'fit-content' | 'large' | 'small'\n /**\n * Theme for the popup content. Defaults to 'dark'.\n * Set to 'auto' to inherit the current theme.\n *\n * @default 'dark'\n */\n theme?: 'auto' | 'dark' | 'light'\n /**\n * Preferred vertical alignment of the popup (position below or above the trigger),\n * if there is enough space available.\n *\n * If the popup is too close to the edge of the viewport, it will flip to the opposite side\n * regardless of the preferred vertical alignment.\n *\n * @default 'bottom'\n */\n verticalAlign?: 'bottom' | 'top'\n}\n\n/**\n * Component that renders a popup, as well as a button that triggers the popup.\n *\n * The popup is rendered next to its trigger in the DOM and positioned above / below it,\n * depending on the verticalAlign prop and the space available.\n */\nexport const Popup: React.FC<PopupProps> = (props) => {\n const {\n id,\n button,\n buttonAriaLabel,\n buttonClassName,\n buttonSize,\n buttonType = 'default',\n caret = true,\n children,\n className,\n disabled,\n forceOpen,\n horizontalAlign = 'left',\n initActive = false,\n noBackground,\n onToggleClose,\n onToggleOpen,\n popupAriaLabel,\n popupType,\n portalClassName,\n render,\n renderButton,\n showOnHover = false,\n showScrollbar = false,\n side,\n size = 'fit-content',\n theme = 'dark',\n verticalAlign = 'bottom',\n } = props\n\n const popupRef = useRef<HTMLDivElement>(null)\n const triggerRef = useRef<HTMLDivElement>(null)\n const generatedContentId = useId()\n const contentId = `${id || generatedContentId}-content`\n\n /**\n * Keeps track of whether the popup was opened via keyboard.\n * This is used to determine whether to autofocus the first element in the popup.\n * If the popup was opened via mouse, we do not want to autofocus the first element.\n */\n const openedViaKeyboardRef = useRef(false)\n\n const parentPopup = use(PopupContext)\n const popupRole = (popupType === true ? 'menu' : popupType || undefined) as AriaRole | undefined\n\n const [active, setActiveInternal] = useState(initActive)\n const [isOnTop, setIsOnTop] = useState(verticalAlign === 'top')\n\n const setActive = useCallback(\n (isActive: boolean, viaKeyboard = false) => {\n if (isActive) {\n openedViaKeyboardRef.current = viaKeyboard\n onToggleOpen?.(true)\n } else {\n onToggleClose?.()\n }\n setActiveInternal(isActive)\n },\n [onToggleClose, onToggleOpen],\n )\n\n const closePopup = useCallback(\n ({ restoreFocus = true }: { restoreFocus?: boolean } = {}) => {\n const trigger = triggerRef.current?.querySelector<HTMLElement>('button, [tabindex=\"0\"]')\n\n setActive(false)\n if (restoreFocus) {\n requestAnimationFrame(() => trigger?.focus())\n }\n },\n [setActive],\n )\n const close = useCallback(() => closePopup(), [closePopup])\n const closePopupChain = useCallback(\n (options: { restoreFocus?: boolean } = {}) => {\n if (parentPopup) {\n closePopup({ restoreFocus: false })\n parentPopup.closePopupChain(options)\n return\n }\n\n closePopup(options)\n },\n [closePopup, parentPopup],\n )\n\n // /////////////////////////////////////\n // Position Calculation\n //\n // Calculates and applies popup position relative to trigger.\n // Always checks viewport bounds (for flipping), but only updates\n // styles if the calculated position differs from current position.\n // /////////////////////////////////////\n\n const updatePosition = useEffectEvent(() => {\n const trigger = triggerRef.current\n const popup = popupRef.current\n if (!trigger || !popup) {\n return\n }\n\n const triggerRect = trigger.getBoundingClientRect()\n const popupRect = popup.getBoundingClientRect()\n\n // Gap between the popup and the trigger/viewport edges (in pixels)\n const offset = 8\n // Additional gap used in side mode so the child popup has breathing room from its parent\n const sideOffset = 4\n\n let top: number\n let left: number\n let caretLeft: number\n\n if (side) {\n // /////////////////////////////////////\n // Side Positioning\n // Places the popup to the left or right of the parent popup (not just the trigger),\n // top-aligned with the trigger. Flips to the opposite side if there is not enough\n // viewport space.\n // /////////////////////////////////////\n\n // Top: align with trigger top, clamped to viewport\n top = triggerRect.top\n const maxTop = window.innerHeight - popupRect.height - offset\n top = Math.max(offset, Math.min(top, maxTop))\n\n // Use the parent popup's bounding rect as the reference for left/right positioning\n // so the child appears 4px from the parent popup edge, not just the trigger button.\n const anchorRect = parentPopup?.popupRef.current\n ? parentPopup.popupRef.current.getBoundingClientRect()\n : triggerRect\n\n if (side === 'left') {\n left = anchorRect.left - popupRect.width - sideOffset\n if (left < offset) {\n // flip to right side\n left = anchorRect.right + sideOffset\n }\n } else {\n left = anchorRect.right + sideOffset\n if (left + popupRect.width + offset > window.innerWidth) {\n // flip to left side\n left = anchorRect.left - popupRect.width - sideOffset\n }\n }\n\n left = Math.max(\n offset,\n Math.min(left, Math.max(offset, window.innerWidth - popupRect.width - offset)),\n )\n\n // Caret not used in side mode; set a neutral value\n caretLeft = popupRect.width / 2\n\n setIsOnTop(false)\n } else {\n // /////////////////////////////////////\n // Vertical Positioning\n // Calculates the `top` position in absolute page coordinates.\n // Uses `verticalAlign` prop as the preferred direction, but flips\n // to the opposite side if there's not enough viewport space.\n // /////////////////////////////////////\n\n let onTop = verticalAlign === 'top'\n\n if (verticalAlign === 'bottom') {\n top = triggerRect.bottom + offset\n\n if (triggerRect.bottom + popupRect.height + offset > window.innerHeight) {\n // Try to flip above — only do so if there's actually enough room\n const topIfAbove = triggerRect.top - popupRect.height - offset\n if (topIfAbove >= 0) {\n top = topIfAbove\n onTop = true\n }\n // else: not enough room above either — keep below and let it overflow rather than going off-screen\n }\n } else {\n top = triggerRect.top - popupRect.height - offset\n\n if (triggerRect.top - popupRect.height - offset < 0) {\n top = triggerRect.bottom + offset\n onTop = false\n }\n }\n\n const maxTop = Math.max(offset, window.innerHeight - popupRect.height - offset)\n top = Math.max(offset, Math.min(top, maxTop))\n\n setIsOnTop(onTop)\n\n // /////////////////////////////////////\n // Horizontal Positioning\n // Calculates the `left` position based on `horizontalAlign` prop:\n // - 'left': aligns popup's left edge with trigger's left edge\n // - 'right': aligns popup's right edge with trigger's right edge\n // - 'center': centers popup horizontally relative to trigger\n // Then clamps to keep the popup within viewport bounds.\n // /////////////////////////////////////\n\n left =\n horizontalAlign === 'right'\n ? triggerRect.right - popupRect.width\n : horizontalAlign === 'center'\n ? triggerRect.left + triggerRect.width / 2 - popupRect.width / 2\n : triggerRect.left\n\n left = Math.max(offset, Math.min(left, window.innerWidth - popupRect.width - offset))\n\n // /////////////////////////////////////\n // Caret Positioning\n // Positions the caret arrow to point at the trigger's horizontal center.\n // Clamps between 12px from edges to prevent caret from overflowing the popup.\n // /////////////////////////////////////\n\n const triggerCenter = triggerRect.left + triggerRect.width / 2\n caretLeft = Math.max(12, Math.min(triggerCenter - left, popupRect.width - 12))\n }\n\n // /////////////////////////////////////\n // Apply Styles (only if changed)\n // Compares calculated position with current styles to avoid unnecessary\n // DOM updates during scroll. This prevents visual lag by relying on the absolute\n // positioning where possible (popup slightly lags behind when scrolling really fast),\n // while still allowing position changes when needed (e.g., sticky parent, viewport flip).\n // Values are rounded to match browser's CSS precision and avoid false updates.\n // /////////////////////////////////////\n\n const newTop = `${Math.round(top)}px`\n const newLeft = `${Math.round(left)}px`\n const newCaretLeft = `${Math.round(caretLeft)}px`\n const newPosition = 'fixed'\n\n if (popup.style.position !== newPosition) {\n popup.style.position = newPosition\n }\n if (popup.style.top !== newTop) {\n popup.style.top = newTop\n }\n if (popup.style.left !== newLeft) {\n popup.style.left = newLeft\n }\n if (popup.style.getPropertyValue('--caret-left') !== newCaretLeft) {\n popup.style.setProperty('--caret-left', newCaretLeft)\n }\n })\n\n // /////////////////////////////////////\n // Click Outside Handler\n // Closes popup when clicking outside both the popup and trigger.\n // Distinguishes between parent and child popups:\n // - Click in child popup: parent stays open\n // - Click in parent popup: child closes\n // /////////////////////////////////////\n\n const handleClickOutside = useEffectEvent((e: MouseEvent) => {\n const target = e.target as Node\n const isOutsidePopup = !popupRef.current?.contains(target)\n const isOutsideTrigger = !triggerRef.current?.contains(target)\n\n // Check if click is inside a popup portal\n const clickedPopupContent = (target as Element).closest?.('.popup__content')\n\n // If the clicked popup contains this popup's trigger, it's a parent popup\n // and we should close. If it doesn't contain our trigger, it's a child popup\n // and we should stay open to avoid closing parent when interacting with child.\n const isInsideChildPopup =\n clickedPopupContent && !clickedPopupContent.contains(triggerRef.current)\n\n if (isOutsidePopup && isOutsideTrigger && !isInsideChildPopup) {\n setActive(false)\n }\n })\n\n // /////////////////////////////////////\n // Keyboard Navigation\n // Handles keyboard interactions when popup is open:\n // - Escape: closes popup and returns focus to trigger\n // - Tab/Shift+Tab: closes menus; dialogs retain normal document tab order\n // - ArrowUp/ArrowDown: moves between menu items with wrapping\n // Focus is managed manually to support elements the browser might skip.\n // /////////////////////////////////////\n\n const handleKeyDown = useEffectEvent((e: KeyboardEvent) => {\n const popup = popupRef.current\n if (!popup || !active) {\n return\n }\n\n const activePopup = document.activeElement?.closest(`.${baseClass}__content`)\n if (activePopup && activePopup !== popup) {\n return\n }\n\n if (e.key === 'Escape') {\n e.preventDefault()\n e.stopPropagation()\n closePopup()\n return\n }\n\n if (e.key === 'Tab' && popupRole === 'menu') {\n if (e.shiftKey) {\n e.preventDefault()\n closePopupChain({ restoreFocus: true })\n return\n }\n\n setTimeout(closePopupChain)\n return\n }\n\n if (['ArrowDown', 'ArrowUp', 'End', 'Home'].includes(e.key)) {\n const menuItems = getMenuItems(popup)\n if (menuItems.length > 0) {\n e.preventDefault()\n\n const currentIndex = menuItems.findIndex((item) => item === document.activeElement)\n const nextIndex =\n e.key === 'Home'\n ? 0\n : e.key === 'End'\n ? menuItems.length - 1\n : e.key === 'ArrowUp'\n ? currentIndex <= 0\n ? menuItems.length - 1\n : currentIndex - 1\n : currentIndex === -1 || currentIndex === menuItems.length - 1\n ? 0\n : currentIndex + 1\n\n menuItems.forEach((item, index) =>\n item.setAttribute('tabindex', index === nextIndex ? '0' : '-1'),\n )\n menuItems[nextIndex].focus()\n return\n }\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n const focusable = Array.from(popup.querySelectorAll<HTMLElement>(TABBABLE_SELECTOR))\n if (focusable.length === 0) {\n return\n }\n\n e.preventDefault()\n\n const currentIndex = focusable.findIndex((el) => el === document.activeElement)\n const goBackward = e.key === 'ArrowUp'\n\n let nextIndex: number\n if (currentIndex === -1) {\n nextIndex = goBackward ? focusable.length - 1 : 0\n } else if (goBackward) {\n nextIndex = currentIndex === 0 ? focusable.length - 1 : currentIndex - 1\n } else {\n nextIndex = currentIndex === focusable.length - 1 ? 0 : currentIndex + 1\n }\n\n focusable[nextIndex].focus()\n }\n })\n\n // /////////////////////////////////////\n // Click Handler for Actionable Elements\n // Closes popup when buttons/links inside are clicked (includes Enter/Space activation).\n // /////////////////////////////////////\n\n const handleActionableClick = useEffectEvent((e: MouseEvent) => {\n const target = e.target as HTMLElement\n\n // Allow opting out with data-popup-prevent-close attribute on element or ancestor\n if (target.closest('[data-popup-prevent-close]')) {\n return\n }\n\n // Check if the clicked element or any ancestor is an actionable element\n const actionable = target.closest('button, a[href], [role=\"button\"], [role=\"menuitem\"]')\n if (actionable && popupRef.current?.contains(actionable)) {\n if (actionable.closest(`.${baseClass}__content`) !== popupRef.current) {\n return\n }\n // Don't close if clicking a nested popup's trigger — it will manage its own open state\n if (actionable.closest(`.${baseClass}__trigger-wrap`)) {\n return\n }\n closePopup()\n }\n })\n\n // /////////////////////////////////////\n // Effect: Setup/Teardown position and focus management\n // /////////////////////////////////////\n\n useEffect(() => {\n if (!active) {\n const popup = popupRef.current\n if (popup) {\n // Clear inline position styles so the CSS `top: -9999px` rule on\n // `.popup__hidden-content` takes effect. Without this, the inline\n // styles set during positioning would win over the CSS rule, keeping\n // portaled children (e.g. a ReactSelect menu) visually on-screen.\n popup.style.position = ''\n popup.style.top = ''\n popup.style.left = ''\n }\n return\n }\n\n const popup = popupRef.current\n if (!popup) {\n return\n }\n\n if (!popup.matches(':popover-open')) {\n popup.showPopover()\n }\n\n const menuItems = getMenuItems(popup)\n menuItems.forEach((item, index) => item.setAttribute('tabindex', index === 0 ? '0' : '-1'))\n\n // /////////////////////////////////////\n // Initial Position\n // Calculate and apply popup position.\n // getBoundingClientRect() forces synchronous layout.\n //\n // We call updatePosition() twice: once synchronously (so the popup\n // snaps to roughly the right place immediately rather than flashing\n // from -9999px) and once in a requestAnimationFrame, which fires\n // after the browser has finished laying out the newly-visible popup\n // content. The rAF call is the authoritative one — it catches cases\n // where the popup height wasn't stable yet during the first call\n // (e.g. ColumnSelection popup content rendering after hidden → visible\n // class switch), which was causing incorrect flip-to-top decisions.\n // /////////////////////////////////////\n\n updatePosition()\n const rafId = requestAnimationFrame(() => {\n updatePosition()\n })\n\n // /////////////////////////////////////\n // Focus Management\n // When opened via keyboard, autofocus the first focusable button.\n // When opened via mouse, skip autofocus to avoid unwanted highlights.\n // /////////////////////////////////////\n\n if (openedViaKeyboardRef.current) {\n // Use requestAnimationFrame to ensure DOM is ready.\n requestAnimationFrame(() => {\n const firstFocusable = menuItems[0] ?? popup.querySelector<HTMLElement>(TABBABLE_SELECTOR)\n firstFocusable?.focus()\n })\n }\n\n // /////////////////////////////////////\n // Event Listeners\n // - resize/scroll: recalculate position (only applies styles if changed)\n // - mousedown: detect clicks outside to close\n // - keydown: handle keyboard navigation\n // /////////////////////////////////////\n\n window.addEventListener('resize', updatePosition)\n window.addEventListener('scroll', updatePosition, { capture: true, passive: true })\n document.addEventListener('mousedown', handleClickOutside)\n popup.addEventListener('keydown', handleKeyDown)\n popup.addEventListener('click', handleActionableClick)\n\n return () => {\n cancelAnimationFrame(rafId)\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('scroll', updatePosition, { capture: true })\n document.removeEventListener('mousedown', handleClickOutside)\n popup.removeEventListener('keydown', handleKeyDown)\n popup.removeEventListener('click', handleActionableClick)\n if (popup.matches(':popover-open')) {\n popup.hidePopover()\n }\n }\n }, [active])\n\n useEffect(() => {\n if (forceOpen !== undefined) {\n setActive(forceOpen)\n }\n }, [forceOpen, setActive])\n\n const Trigger = (\n <PopupTrigger\n active={active}\n button={button}\n buttonAriaLabel={buttonAriaLabel}\n buttonType={buttonType}\n className={buttonClassName}\n contentId={contentId}\n disabled={disabled}\n isMenuItem={parentPopup?.popupRole === 'menu'}\n noBackground={noBackground}\n popupType={popupType}\n renderButton={renderButton}\n setActive={setActive}\n size={buttonSize}\n />\n )\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} id={id}>\n <div className={`${baseClass}__trigger-wrap`} ref={triggerRef}>\n {showOnHover ? (\n <div\n className={`${baseClass}__on-hover-watch`}\n onMouseEnter={() => setActive(true)}\n onMouseLeave={() => setActive(false)}\n role=\"button\"\n tabIndex={0}\n >\n {Trigger}\n </div>\n ) : (\n Trigger\n )}\n </div>\n\n <PopupContext value={{ closePopupChain, popupRef, popupRole }}>\n <div\n aria-label={popupAriaLabel}\n className={\n active\n ? [\n `${baseClass}__content`,\n `${baseClass}--size-${size}`,\n side\n ? `${baseClass}--side-${side}`\n : isOnTop\n ? `${baseClass}--v-top`\n : `${baseClass}--v-bottom`,\n portalClassName,\n ]\n .filter(Boolean)\n .join(' ')\n : // Do not share any class names between active and disabled popups, to make sure\n // tests do not accidentally target inactive popups.\n `${baseClass}__hidden-content`\n }\n data-popup-id={id || undefined}\n data-theme={theme === 'auto' ? undefined : theme}\n id={contentId}\n popover=\"manual\"\n ref={popupRef}\n role={popupRole}\n >\n <div\n className={`${baseClass}__scroll-container${showScrollbar ? ` ${baseClass}__scroll-container--show-scrollbar` : ''}`}\n >\n {theme === 'auto' ? (\n <>\n {render?.({ close })}\n {children}\n </>\n ) : (\n <ThemeProvider theme={theme}>\n {render?.({ close })}\n {children}\n </ThemeProvider>\n )}\n </div>\n {caret && !side && <div className={`${baseClass}__caret`} />}\n </div>\n </PopupContext>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,3 @@
1
- import type { PreviewButtonClientProps } from 'payload';
2
1
  import React from 'react';
3
- export declare function PreviewButton(props: PreviewButtonClientProps): React.JSX.Element;
2
+ export declare function PreviewButton(): React.JSX.Element;
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAEvD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,wBAAgB,aAAa,CAAC,KAAK,EAAE,wBAAwB,qBA0C5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/PreviewButton/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAQpD,wBAAgB,aAAa,sBAoD5B"}
@@ -8,7 +8,7 @@ import { usePreviewURL } from '../../providers/LivePreview/context.js';
8
8
  import { useTranslation } from '../../providers/Translation/index.js';
9
9
  import { Button } from '../Button/index.js';
10
10
  import { Tooltip } from '../Tooltip/index.js';
11
- export function PreviewButton(props) {
11
+ export function PreviewButton() {
12
12
  const $ = _c(9);
13
13
  const {
14
14
  previewURL
@@ -20,11 +20,16 @@ export function PreviewButton(props) {
20
20
  const [hovered, setHovered] = useState(false);
21
21
  let t0;
22
22
  if ($[0] !== previewURL) {
23
- t0 = async () => {
24
- if (previewURL) {
25
- await navigator.clipboard.writeText(previewURL);
26
- setCopied(true);
23
+ t0 = async event => {
24
+ if (!previewURL) {
25
+ return;
27
26
  }
27
+ if (event.metaKey || event.ctrlKey) {
28
+ window.open(previewURL, "_blank", "noopener,noreferrer");
29
+ return;
30
+ }
31
+ await navigator.clipboard.writeText(previewURL);
32
+ setCopied(true);
28
33
  };
29
34
  $[0] = previewURL;
30
35
  $[1] = t0;
@@ -70,6 +75,7 @@ export function PreviewButton(props) {
70
75
  onClick: handleClick
71
76
  }), _jsx(Tooltip, {
72
77
  delay: 0,
78
+ id: "preview-button-tooltip",
73
79
  show: hovered || copied,
74
80
  children: label
75
81
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useState","LinkIcon","usePreviewURL","useTranslation","Button","Tooltip","PreviewButton","props","$","previewURL","t","copied","setCopied","hovered","setHovered","t0","navigator","clipboard","writeText","handleClick","t1","label","t2","t3","Symbol","for","_jsxs","onPointerEnter","onPointerLeave","style","position","children","_jsx","buttonStyle","icon","size","onClick","delay","show"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport type { PreviewButtonClientProps } from 'payload'\n\nimport React, { useCallback, useState } from 'react'\n\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { usePreviewURL } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\n\nexport function PreviewButton(props: PreviewButtonClientProps) {\n const { previewURL } = usePreviewURL()\n const { t } = useTranslation()\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const handleClick = useCallback(async () => {\n if (previewURL) {\n await navigator.clipboard.writeText(previewURL)\n setCopied(true)\n }\n }, [previewURL])\n\n if (!previewURL) {\n return null\n }\n\n const label = copied ? t('general:copied') : t('general:copy')\n\n return (\n <span\n onPointerEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onPointerLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n style={{ position: 'relative' }}\n >\n <Button\n buttonStyle=\"ghost\"\n icon={<LinkIcon size={24} />}\n id=\"preview-button\"\n onClick={handleClick}\n />\n <Tooltip delay={0} show={hovered || copied}>\n {label}\n </Tooltip>\n </span>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAE7C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,QAAQ;AAExB,OAAO,SAAAC,cAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EACL;IAAAY;EAAA,IAAuBP,aAAA;EACvB;IAAAQ;EAAA,IAAcP,cAAA;EACd,OAAAQ,MAAA,EAAAC,SAAA,IAA4BZ,QAAA,MAAS;EACrC,OAAAa,OAAA,EAAAC,UAAA,IAA8Bd,QAAA,MAAS;EAAA,IAAAe,EAAA;EAAA,IAAAP,CAAA,QAAAC,UAAA;IAEPM,EAAA,SAAAA,CAAA;MAAA,IAC1BN,UAAA;QAAA,MACIO,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8BT,UAAA;QACpCG,SAAA,KAAU;MAAA;IAAA;IAEdJ,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EALA,MAAAW,WAAA,GAAoBJ,EAKL;EAAA,KAEVN,UAAA;IAAA;EAAA;EAAA,IAAAW,EAAA;EAAA,IAAAZ,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAW,WAAA,IAAAX,CAAA,QAAAK,OAAA,IAAAL,CAAA,QAAAE,CAAA;IAIL,MAAAW,KAAA,GAAcV,MAAA,GAASD,CAAA,CAAE,oBAAoBA,CAAA,CAAE;IAAA,IAAAY,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAAf,CAAA,QAAAgB,MAAA,CAAAC,GAAA;MAI3BH,EAAA,GAAAA,CAAA;QACdR,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEIW,EAAA,GAAAA,CAAA;QACdT,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZJ,CAAA,MAAAc,EAAA;MAAAd,CAAA,MAAAe,EAAA;IAAA;MAAAD,EAAA,GAAAd,CAAA;MAAAe,EAAA,GAAAf,CAAA;IAAA;IARFY,EAAA,GAAAM,KAAA,CAAC;MAAAC,cAAA,EACiBL,EAGhB;MAAAM,cAAA,EACgBL,EAGhB;MAAAM,KAAA;QAAAC,QAAA,EACmB;MAAA;MAAAC,QAAA,GAEnBC,IAAA,CAAA5B,MAAA;QAAA6B,WAAA,EACc;QAAAC,IAAA,EACNF,IAAA,CAAA/B,QAAA;UAAAkC,IAAA;QAAA,C;YACH;QAAAC,OAAA,EACMjB;MAAA,C,GAEXa,IAAA,CAAA3B,OAAA;QAAAgC,KAAA;QAAAC,IAAA,EAAyBzB,OAAA,IAAWF,MAAA;QAAAoB,QAAA,EACjCV;MAAA,C;;;;;;;;;;SAlBLD,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useState","LinkIcon","usePreviewURL","useTranslation","Button","Tooltip","PreviewButton","$","previewURL","t","copied","setCopied","hovered","setHovered","t0","event","metaKey","ctrlKey","window","open","navigator","clipboard","writeText","handleClick","t1","label","t2","t3","Symbol","for","_jsxs","onPointerEnter","onPointerLeave","style","position","children","_jsx","buttonStyle","icon","size","onClick","delay","id","show"],"sources":["../../../src/elements/PreviewButton/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useState } from 'react'\n\nimport { LinkIcon } from '../../icons/Link/index.js'\nimport { usePreviewURL } from '../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\n\nexport function PreviewButton() {\n const { previewURL } = usePreviewURL()\n const { t } = useTranslation()\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const handleClick = useCallback(\n async (event: React.MouseEvent<HTMLButtonElement>) => {\n if (!previewURL) {\n return\n }\n\n if (event.metaKey || event.ctrlKey) {\n window.open(previewURL, '_blank', 'noopener,noreferrer')\n return\n }\n\n await navigator.clipboard.writeText(previewURL)\n setCopied(true)\n },\n [previewURL],\n )\n\n if (!previewURL) {\n return null\n }\n\n const label = copied ? t('general:copied') : t('general:copy')\n\n return (\n <span\n onPointerEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onPointerLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n style={{ position: 'relative' }}\n >\n <Button\n buttonStyle=\"ghost\"\n icon={<LinkIcon size={24} />}\n id=\"preview-button\"\n onClick={handleClick}\n />\n <Tooltip delay={0} id=\"preview-button-tooltip\" show={hovered || copied}>\n {label}\n </Tooltip>\n </span>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAE7C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,OAAO,QAAQ;AAExB,OAAO,SAAAC,cAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EACL;IAAAW;EAAA,IAAuBN,aAAA;EACvB;IAAAO;EAAA,IAAcN,cAAA;EACd,OAAAO,MAAA,EAAAC,SAAA,IAA4BX,QAAA,MAAS;EACrC,OAAAY,OAAA,EAAAC,UAAA,IAA8Bb,QAAA,MAAS;EAAA,IAAAc,EAAA;EAAA,IAAAP,CAAA,QAAAC,UAAA;IAGrCM,EAAA,SAAAC,KAAA;MAAA,KACOP,UAAA;QAAA;MAAA;MAAA,IAIDO,KAAA,CAAAC,OAAA,IAAiBD,KAAA,CAAAE,OAAa;QAChCC,MAAA,CAAAC,IAAA,CAAYX,UAAA,EAAY,UAAU;QAAA;MAAA;MAAA,MAI9BY,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8Bd,UAAA;MACpCG,SAAA,KAAU;IAAA;IACZJ,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAbF,MAAAgB,WAAA,GAAoBT,EAcN;EAAA,KAGTN,UAAA;IAAA;EAAA;EAAA,IAAAgB,EAAA;EAAA,IAAAjB,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAgB,WAAA,IAAAhB,CAAA,QAAAK,OAAA,IAAAL,CAAA,QAAAE,CAAA;IAIL,MAAAgB,KAAA,GAAcf,MAAA,GAASD,CAAA,CAAE,oBAAoBA,CAAA,CAAE;IAAA,IAAAiB,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAApB,CAAA,QAAAqB,MAAA,CAAAC,GAAA;MAI3BH,EAAA,GAAAA,CAAA;QACdb,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEIgB,EAAA,GAAAA,CAAA;QACdd,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZJ,CAAA,MAAAmB,EAAA;MAAAnB,CAAA,MAAAoB,EAAA;IAAA;MAAAD,EAAA,GAAAnB,CAAA;MAAAoB,EAAA,GAAApB,CAAA;IAAA;IARFiB,EAAA,GAAAM,KAAA,CAAC;MAAAC,cAAA,EACiBL,EAGhB;MAAAM,cAAA,EACgBL,EAGhB;MAAAM,KAAA;QAAAC,QAAA,EACmB;MAAA;MAAAC,QAAA,GAEnBC,IAAA,CAAAhC,MAAA;QAAAiC,WAAA,EACc;QAAAC,IAAA,EACNF,IAAA,CAAAnC,QAAA;UAAAsC,IAAA;QAAA,C;YACH;QAAAC,OAAA,EACMjB;MAAA,C,GAEXa,IAAA,CAAA/B,OAAA;QAAAoC,KAAA;QAAAC,EAAA,EAAsB;QAAAC,IAAA,EAA+B/B,OAAA,IAAWF,MAAA;QAAAyB,QAAA,EAC7DV;MAAA,C;;;;;;;;;;SAlBLD,E","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  @layer payload-default {
2
2
  .preview-sizes {
3
3
  margin: var(--spacer-6) calc(var(--gutter-h) * -1) 0 calc(var(--gutter-h) * -1);
4
- border-top: var(--stroke-width-small) solid var(--theme-elevation-150);
4
+ border-top: var(--stroke-width-small) solid var(--color-border);
5
5
  max-height: calc(100vh - var(--spacer-6) * 3);
6
6
  height: 100%;
7
7
  display: flex;
@@ -10,7 +10,7 @@
10
10
 
11
11
  .preview-sizes__imageWrap {
12
12
  min-width: 60%;
13
- border-right: var(--stroke-width-small) solid var(--theme-elevation-150);
13
+ border-right: var(--stroke-width-small) solid var(--color-border);
14
14
  }
15
15
 
16
16
  .preview-sizes__preview {
@@ -20,7 +20,7 @@
20
20
  }
21
21
 
22
22
  .preview-sizes__meta {
23
- border-bottom: var(--stroke-width-small) solid var(--theme-elevation-150);
23
+ border-bottom: var(--stroke-width-small) solid var(--color-border);
24
24
  padding: var(--spacer-3) var(--gutter-h);
25
25
  display: flex;
26
26
  flex-wrap: wrap;
@@ -41,7 +41,7 @@
41
41
 
42
42
  .preview-sizes__sizeName,
43
43
  .preview-sizes .file-meta__size-type {
44
- color: var(--theme-elevation-600);
44
+ color: var(--color-text-secondary);
45
45
  }
46
46
 
47
47
  .preview-sizes__listWrap {
@@ -61,7 +61,7 @@
61
61
  left: 0;
62
62
  height: calc(var(--spacer-6) * 2);
63
63
  width: 100%;
64
- background: linear-gradient(180deg, transparent 0, var(--theme-bg) 100%);
64
+ background: linear-gradient(180deg, transparent 0, var(--color-bg) 100%);
65
65
  pointer-events: none;
66
66
  }
67
67
 
@@ -79,15 +79,14 @@
79
79
  display: flex;
80
80
  gap: var(--spacer-3);
81
81
  cursor: pointer;
82
- transition: background-color 0.2s ease-in-out;
83
82
  }
84
83
 
85
84
  .preview-sizes__sizeOption:hover {
86
- background-color: var(--theme-elevation-100);
85
+ background-color: var(--color-bg-hover);
87
86
  }
88
87
 
89
88
  .preview-sizes--selected {
90
- background-color: var(--theme-elevation-100);
89
+ background-color: var(--color-bg-secondary);
91
90
  }
92
91
 
93
92
  .preview-sizes__image {
@@ -108,6 +107,7 @@
108
107
  text-overflow: ellipsis;
109
108
  }
110
109
 
110
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
111
111
  @media (max-width: 1024px) {
112
112
  .preview-sizes {
113
113
  margin-top: var(--spacer-3);
@@ -115,6 +115,7 @@
115
115
  }
116
116
  }
117
117
 
118
+ /* stylelint-disable-next-line plugin/no-max-width-media-query -- TODO: pre-existing; migrate to a mobile-first min-width query */
118
119
  @media (max-width: 768px) {
119
120
  .preview-sizes {
120
121
  margin-top: 0;
@@ -142,7 +143,7 @@
142
143
  }
143
144
 
144
145
  .preview-sizes__listWrap {
145
- border-top: var(--stroke-width-small) solid var(--theme-elevation-150);
146
+ border-top: var(--stroke-width-small) solid var(--color-border);
146
147
  height: 40%;
147
148
  }
148
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,eAAe,EAAS,MAAM,SAAS,CAAA;AAQ7D,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAA;AAe5D,OAAO,aAAa,CAAA;AAUpB,KAAK,KAAK,GAAG;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,qBAAqB,CAAC,EAAE,eAAe,CAAA;IACvC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAOD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiT1C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAU,eAAe,EAAE,MAAM,SAAS,CAAA;AAMtD,OAAO,KAA+B,MAAM,OAAO,CAAA;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAA;AAc5D,OAAO,aAAa,CAAA;AASpB,KAAK,KAAK,GAAG;IACX,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAA;IACjD,qBAAqB,CAAC,EAAE,eAAe,CAAA;IACvC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAOD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkS1C,CAAA"}
@@ -5,8 +5,6 @@ import { TZDateMini as TZDate } from '@date-fns/tz/date/mini';
5
5
  import { getTranslation } from '@payloadcms/translations';
6
6
  import { endOfToday, isToday, startOfDay } from 'date-fns';
7
7
  import { transpose } from 'date-fns/transpose';
8
- import { formatAdminURL } from 'payload/shared';
9
- import * as qs from 'qs-esm';
10
8
  import React, { useCallback, useMemo } from 'react';
11
9
  import { toast } from 'sonner';
12
10
  import { FieldLabel } from '../../../fields/FieldLabel/index.js';
@@ -16,7 +14,6 @@ import { useDocumentInfo } from '../../../providers/DocumentInfo/index.js';
16
14
  import { useDocumentTitle } from '../../../providers/DocumentTitle/index.js';
17
15
  import { useServerFunctions } from '../../../providers/ServerFunctions/index.js';
18
16
  import { useTranslation } from '../../../providers/Translation/index.js';
19
- import { requests } from '../../../utilities/api.js';
20
17
  import { Banner } from '../../Banner/index.js';
21
18
  import { Button } from '../../Button/index.js';
22
19
  import { DatePickerField } from '../../DatePicker/index.js';
@@ -28,7 +25,6 @@ import { ShimmerEffect } from '../../ShimmerEffect/index.js';
28
25
  import { Table } from '../../Table/index.js';
29
26
  import { TimezonePicker } from '../../TimezonePicker/index.js';
30
27
  import { buildUpcomingColumns } from './buildUpcomingColumns.js';
31
- import { buildUpcomingScheduleWhere } from './buildUpcomingScheduleWhere.js';
32
28
  const baseClass = 'schedule-publish';
33
29
  const defaultLocaleOption = {
34
30
  label: 'All',
@@ -49,10 +45,7 @@ export const ScheduleDrawer = ({
49
45
  supportedTimezones
50
46
  }
51
47
  },
52
- localization,
53
- routes: {
54
- api
55
- }
48
+ localization
56
49
  }
57
50
  } = useConfig();
58
51
  const {
@@ -68,6 +61,7 @@ export const ScheduleDrawer = ({
68
61
  t
69
62
  } = useTranslation();
70
63
  const {
64
+ getUpcomingScheduledPublish,
71
65
  schedulePublish
72
66
  } = useServerFunctions();
73
67
  const [type, setType] = React.useState(defaultType || 'publish');
@@ -98,27 +92,11 @@ export const ScheduleDrawer = ({
98
92
  return [];
99
93
  }, [localization, i18n]);
100
94
  const fetchUpcoming = React.useCallback(async () => {
101
- const query = {
102
- sort: 'waitUntil',
103
- where: buildUpcomingScheduleWhere({
104
- id,
105
- collectionSlug,
106
- globalSlug
107
- })
108
- };
109
- const {
110
- docs
111
- } = await requests.post(formatAdminURL({
112
- apiRoute: api,
113
- path: `/payload-jobs`
114
- }), {
115
- body: qs.stringify(query),
116
- headers: {
117
- 'Accept-Language': i18n.language,
118
- 'Content-Type': 'application/x-www-form-urlencoded',
119
- 'X-Payload-HTTP-Method-Override': 'GET'
120
- }
121
- }).then(res => res.json());
95
+ const docs = await getUpcomingScheduledPublish({
96
+ id,
97
+ collectionSlug,
98
+ globalSlug
99
+ });
122
100
  setUpcomingColumns(buildUpcomingColumns({
123
101
  dateFormat,
124
102
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
@@ -131,7 +109,7 @@ export const ScheduleDrawer = ({
131
109
  }));
132
110
  setUpcoming(docs);
133
111
  onUpcomingChange?.(docs.length > 0);
134
- }, [collectionSlug, globalSlug, api, i18n, dateFormat, localization, supportedTimezones, t, id, onUpcomingChange]);
112
+ }, [collectionSlug, globalSlug, getUpcomingScheduledPublish, i18n, dateFormat, localization, supportedTimezones, t, id, onUpcomingChange]);
135
113
  const deleteHandler = React.useCallback(async id_0 => {
136
114
  try {
137
115
  await schedulePublish({
@@ -214,7 +192,7 @@ export const ScheduleDrawer = ({
214
192
  }
215
193
  }, [upcoming, fetchUpcoming]);
216
194
  const minTime = useMemo(() => {
217
- if (date && isToday(date)) {
195
+ if (!date || isToday(date)) {
218
196
  return new Date();
219
197
  }
220
198
  return startOfDay(new Date());
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","endOfToday","isToday","startOfDay","transpose","formatAdminURL","qs","React","useCallback","useMemo","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useDocumentTitle","useServerFunctions","useTranslation","requests","Banner","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","TimezonePicker","buildUpcomingColumns","buildUpcomingScheduleWhere","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","defaultType","onUpcomingChange","schedulePublishConfig","config","admin","dateFormat","timezones","defaultTimezone","supportedTimezones","localization","routes","api","id","collectionSlug","globalSlug","title","i18n","t","schedulePublish","type","setType","useState","date","setDate","timezone","setTimezone","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localeOptions","options","locales","map","code","unshift","fetchUpcoming","query","sort","where","docs","post","apiRoute","path","body","stringify","headers","language","then","res","json","deleteHandler","current","length","deleteID","success","err","console","error","message","useEffect","handleSave","localeToPublish","doc","relationTo","String","undefined","global","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","onChangeDate","incomingDate","tzDateWithUTC","dateToUserTz","fetchInitialUpcoming","minTime","Date","_jsxs","className","_jsx","required","isSelected","onChange","option","readOnly","maxTime","minDate","e","pickerAppearance","timeFormat","timeIntervals","selectedTimezone","buttonStyle","disabled","onClick","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Column, SchedulePublish, Where } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { endOfToday, isToday, startOfDay } from 'date-fns'\nimport { transpose } from 'date-fns/transpose'\nimport { formatAdminURL } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishType, UpcomingEvent } from './types.js'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { Radio } from '../../../fields/RadioGroup/Radio/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { requests } from '../../../utilities/api.js'\nimport { Banner } from '../../Banner/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DatePickerField } from '../../DatePicker/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { Gutter } from '../../Gutter/index.js'\nimport './index.css'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Table } from '../../Table/index.js'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\nimport { buildUpcomingScheduleWhere } from './buildUpcomingScheduleWhere.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n defaultType?: PublishType\n onUpcomingChange?: (hasUpcoming: boolean) => void\n schedulePublishConfig?: SchedulePublish\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({\n slug,\n defaultType,\n onUpcomingChange,\n schedulePublishConfig,\n}) => {\n const {\n config: {\n admin: {\n dateFormat,\n timezones: { defaultTimezone, supportedTimezones },\n },\n localization,\n routes: { api },\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { title } = useDocumentTitle()\n const { i18n, t } = useTranslation()\n const { schedulePublish } = useServerFunctions()\n const [type, setType] = React.useState<PublishType>(defaultType || 'publish')\n const [date, setDate] = React.useState<Date>()\n const [timezone, setTimezone] = React.useState<string>(defaultTimezone)\n const [locale, setLocale] = React.useState<{ label: string; value: string }>(defaultLocaleOption)\n const [processing, setProcessing] = React.useState(false)\n const modalTitle = t('general:schedulePublishFor', { title })\n const [upcoming, setUpcoming] = React.useState<UpcomingEvent[]>()\n const [upcomingColumns, setUpcomingColumns] = React.useState<Column[]>()\n const deleteHandlerRef = React.useRef<((id: number | string) => Promise<void>) | null>(() => null)\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const localeOptions = React.useMemo(() => {\n if (localization) {\n const options = localization.locales.map(({ code, label }) => ({\n label: getTranslation(label, i18n),\n value: code,\n }))\n\n options.unshift(defaultLocaleOption)\n\n return options\n }\n\n return []\n }, [localization, i18n])\n\n const fetchUpcoming = React.useCallback(async () => {\n const query: { sort: string; where: Where } = {\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n }\n\n const { docs } = await requests\n .post(formatAdminURL({ apiRoute: api, path: `/payload-jobs` }), {\n body: qs.stringify(query),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-Payload-HTTP-Method-Override': 'GET',\n },\n })\n .then((res) => res.json())\n\n setUpcomingColumns(\n buildUpcomingColumns({\n dateFormat,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n deleteHandler: deleteHandlerRef.current,\n docs,\n i18n,\n localization,\n supportedTimezones,\n t,\n }),\n )\n setUpcoming(docs)\n onUpcomingChange?.(docs.length > 0)\n }, [\n collectionSlug,\n globalSlug,\n api,\n i18n,\n dateFormat,\n localization,\n supportedTimezones,\n t,\n id,\n onUpcomingChange,\n ])\n\n const deleteHandler = React.useCallback(\n async (id: number | string) => {\n try {\n await schedulePublish({\n deleteID: id,\n })\n await fetchUpcoming()\n toast.success(t('general:deletedSuccessfully'))\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n },\n [fetchUpcoming, schedulePublish, t],\n )\n\n React.useEffect(() => {\n deleteHandlerRef.current = deleteHandler\n }, [deleteHandler])\n\n const handleSave = React.useCallback(async () => {\n if (!date) {\n return toast.error(t('general:noDateSelected'))\n }\n\n setProcessing(true)\n\n let localeToPublish: string\n\n if (typeof locale === 'object' && locale.value !== 'all' && type === 'publish') {\n localeToPublish = locale.value\n }\n\n try {\n await schedulePublish({\n type,\n date,\n doc: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: String(id),\n }\n : undefined,\n global: globalSlug || undefined,\n localeToPublish,\n timezone,\n })\n\n setDate(undefined)\n toast.success(t('version:scheduledSuccessfully'))\n void fetchUpcoming()\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n\n setProcessing(false)\n }, [\n date,\n locale,\n type,\n t,\n schedulePublish,\n collectionSlug,\n id,\n globalSlug,\n timezone,\n fetchUpcoming,\n ])\n\n const displayedValue = useMemo(() => {\n if (timezone && userTimezone && date) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(timezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(date).withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return date\n }, [timezone, date, userTimezone])\n\n const onChangeDate = useCallback(\n (incomingDate: Date) => {\n if (timezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(timezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setDate(dateWithTimezone || null)\n } else {\n setDate(incomingDate || null)\n }\n },\n [setDate, timezone],\n )\n\n React.useEffect(() => {\n if (!upcoming) {\n const fetchInitialUpcoming = async () => {\n await fetchUpcoming()\n }\n\n void fetchInitialUpcoming()\n }\n }, [upcoming, fetchUpcoming])\n\n const minTime = useMemo(() => {\n if (date && isToday(date)) {\n return new Date()\n }\n\n return startOfDay(new Date())\n }, [date])\n\n return (\n <Drawer className={baseClass} slug={slug} title={modalTitle}>\n <Gutter className={`${baseClass}__scheduler`}>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('version:type')} required />\n <ul className={`${baseClass}__type`}>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'publish'}\n onChange={() => setType('publish')}\n option={{ label: t('version:publish'), value: 'publish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'unpublish'}\n onChange={() => setType('unpublish')}\n option={{ label: t('version:unpublish'), value: 'unpublish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n </ul>\n </div>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('general:time')} path={'time'} required />\n <DatePickerField\n id=\"time\"\n maxTime={endOfToday()}\n minDate={new Date()}\n minTime={minTime}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeFormat={schedulePublishConfig?.timeFormat}\n timeIntervals={schedulePublishConfig?.timeIntervals ?? 5}\n value={displayedValue}\n />\n {supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`timezone-picker`}\n onChange={setTimezone}\n options={supportedTimezones}\n selectedTimezone={timezone}\n />\n )}\n </div>\n {localeOptions.length > 0 && type === 'publish' && (\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('localization:localeToPublish')} />\n <ReactSelect\n onChange={(e) => setLocale(e as { label: string; value: string })}\n options={localeOptions}\n value={locale}\n />\n </div>\n )}\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"primary\"\n disabled={processing}\n id=\"scheduled-publish-save\"\n onClick={handleSave}\n type=\"button\"\n >\n {t('general:save')}\n </Button>\n {processing ? <span>{t('general:saving')}</span> : null}\n </div>\n </Gutter>\n <Gutter className={`${baseClass}__upcoming`}>\n <h4>{t('general:upcomingEvents')}</h4>\n {!upcoming && <ShimmerEffect />}\n {upcoming?.length === 0 && <Banner>{t('general:noUpcomingEventsScheduled')}</Banner>}\n {upcoming?.length > 0 && (\n <Table appearance=\"condensed\" columns={upcomingColumns} data={upcoming} />\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","endOfToday","isToday","startOfDay","transpose","React","useCallback","useMemo","toast","FieldLabel","Radio","useConfig","useDocumentInfo","useDocumentTitle","useServerFunctions","useTranslation","Banner","Button","DatePickerField","Drawer","Gutter","ReactSelect","ShimmerEffect","Table","TimezonePicker","buildUpcomingColumns","baseClass","defaultLocaleOption","label","value","ScheduleDrawer","slug","defaultType","onUpcomingChange","schedulePublishConfig","config","admin","dateFormat","timezones","defaultTimezone","supportedTimezones","localization","id","collectionSlug","globalSlug","title","i18n","t","getUpcomingScheduledPublish","schedulePublish","type","setType","useState","date","setDate","timezone","setTimezone","locale","setLocale","processing","setProcessing","modalTitle","upcoming","setUpcoming","upcomingColumns","setUpcomingColumns","deleteHandlerRef","useRef","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localeOptions","options","locales","map","code","unshift","fetchUpcoming","docs","deleteHandler","current","length","deleteID","success","err","console","error","message","useEffect","handleSave","localeToPublish","doc","relationTo","String","undefined","global","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","onChangeDate","incomingDate","tzDateWithUTC","dateToUserTz","fetchInitialUpcoming","minTime","Date","_jsxs","className","_jsx","required","isSelected","onChange","option","path","readOnly","maxTime","minDate","e","pickerAppearance","timeFormat","timeIntervals","selectedTimezone","buttonStyle","disabled","onClick","appearance","columns","data"],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/index.tsx"],"sourcesContent":["/* eslint-disable no-console */\n'use client'\n\nimport type { Column, SchedulePublish } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { endOfToday, isToday, startOfDay } from 'date-fns'\nimport { transpose } from 'date-fns/transpose'\nimport React, { useCallback, useMemo } from 'react'\nimport { toast } from 'sonner'\n\nimport type { PublishType, UpcomingEvent } from './types.js'\n\nimport { FieldLabel } from '../../../fields/FieldLabel/index.js'\nimport { Radio } from '../../../fields/RadioGroup/Radio/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Banner } from '../../Banner/index.js'\nimport { Button } from '../../Button/index.js'\nimport { DatePickerField } from '../../DatePicker/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { Gutter } from '../../Gutter/index.js'\nimport './index.css'\nimport { ReactSelect } from '../../ReactSelect/index.js'\nimport { ShimmerEffect } from '../../ShimmerEffect/index.js'\nimport { Table } from '../../Table/index.js'\nimport { TimezonePicker } from '../../TimezonePicker/index.js'\nimport { buildUpcomingColumns } from './buildUpcomingColumns.js'\n\nconst baseClass = 'schedule-publish'\n\ntype Props = {\n defaultType?: PublishType\n onUpcomingChange?: (hasUpcoming: boolean) => void\n schedulePublishConfig?: SchedulePublish\n slug: string\n}\n\nconst defaultLocaleOption = {\n label: 'All',\n value: 'all',\n}\n\nexport const ScheduleDrawer: React.FC<Props> = ({\n slug,\n defaultType,\n onUpcomingChange,\n schedulePublishConfig,\n}) => {\n const {\n config: {\n admin: {\n dateFormat,\n timezones: { defaultTimezone, supportedTimezones },\n },\n localization,\n },\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { title } = useDocumentTitle()\n const { i18n, t } = useTranslation()\n const { getUpcomingScheduledPublish, schedulePublish } = useServerFunctions()\n const [type, setType] = React.useState<PublishType>(defaultType || 'publish')\n const [date, setDate] = React.useState<Date>()\n const [timezone, setTimezone] = React.useState<string>(defaultTimezone)\n const [locale, setLocale] = React.useState<{ label: string; value: string }>(defaultLocaleOption)\n const [processing, setProcessing] = React.useState(false)\n const modalTitle = t('general:schedulePublishFor', { title })\n const [upcoming, setUpcoming] = React.useState<UpcomingEvent[]>()\n const [upcomingColumns, setUpcomingColumns] = React.useState<Column[]>()\n const deleteHandlerRef = React.useRef<((id: number | string) => Promise<void>) | null>(() => null)\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const localeOptions = React.useMemo(() => {\n if (localization) {\n const options = localization.locales.map(({ code, label }) => ({\n label: getTranslation(label, i18n),\n value: code,\n }))\n\n options.unshift(defaultLocaleOption)\n\n return options\n }\n\n return []\n }, [localization, i18n])\n\n const fetchUpcoming = React.useCallback(async () => {\n const docs = await getUpcomingScheduledPublish({ id, collectionSlug, globalSlug })\n\n setUpcomingColumns(\n buildUpcomingColumns({\n dateFormat,\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n deleteHandler: deleteHandlerRef.current,\n docs,\n i18n,\n localization,\n supportedTimezones,\n t,\n }),\n )\n setUpcoming(docs)\n onUpcomingChange?.(docs.length > 0)\n }, [\n collectionSlug,\n globalSlug,\n getUpcomingScheduledPublish,\n i18n,\n dateFormat,\n localization,\n supportedTimezones,\n t,\n id,\n onUpcomingChange,\n ])\n\n const deleteHandler = React.useCallback(\n async (id: number | string) => {\n try {\n await schedulePublish({\n deleteID: id,\n })\n await fetchUpcoming()\n toast.success(t('general:deletedSuccessfully'))\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n },\n [fetchUpcoming, schedulePublish, t],\n )\n\n React.useEffect(() => {\n deleteHandlerRef.current = deleteHandler\n }, [deleteHandler])\n\n const handleSave = React.useCallback(async () => {\n if (!date) {\n return toast.error(t('general:noDateSelected'))\n }\n\n setProcessing(true)\n\n let localeToPublish: string\n\n if (typeof locale === 'object' && locale.value !== 'all' && type === 'publish') {\n localeToPublish = locale.value\n }\n\n try {\n await schedulePublish({\n type,\n date,\n doc: collectionSlug\n ? {\n relationTo: collectionSlug,\n value: String(id),\n }\n : undefined,\n global: globalSlug || undefined,\n localeToPublish,\n timezone,\n })\n\n setDate(undefined)\n toast.success(t('version:scheduledSuccessfully'))\n void fetchUpcoming()\n } catch (err) {\n console.error(err)\n toast.error(err.message)\n }\n\n setProcessing(false)\n }, [\n date,\n locale,\n type,\n t,\n schedulePublish,\n collectionSlug,\n id,\n globalSlug,\n timezone,\n fetchUpcoming,\n ])\n\n const displayedValue = useMemo(() => {\n if (timezone && userTimezone && date) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(timezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(date).withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return date\n }, [timezone, date, userTimezone])\n\n const onChangeDate = useCallback(\n (incomingDate: Date) => {\n if (timezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const tzDateWithUTC = TZDate.tz(timezone)\n\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, tzDateWithUTC)\n\n setDate(dateWithTimezone || null)\n } else {\n setDate(incomingDate || null)\n }\n },\n [setDate, timezone],\n )\n\n React.useEffect(() => {\n if (!upcoming) {\n const fetchInitialUpcoming = async () => {\n await fetchUpcoming()\n }\n\n void fetchInitialUpcoming()\n }\n }, [upcoming, fetchUpcoming])\n\n const minTime = useMemo(() => {\n if (!date || isToday(date)) {\n return new Date()\n }\n\n return startOfDay(new Date())\n }, [date])\n\n return (\n <Drawer className={baseClass} slug={slug} title={modalTitle}>\n <Gutter className={`${baseClass}__scheduler`}>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('version:type')} required />\n <ul className={`${baseClass}__type`}>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'publish'}\n onChange={() => setType('publish')}\n option={{ label: t('version:publish'), value: 'publish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n <li>\n <Radio\n id={`${slug}-type`}\n isSelected={type === 'unpublish'}\n onChange={() => setType('unpublish')}\n option={{ label: t('version:unpublish'), value: 'unpublish' }}\n path={`${slug}-type`}\n readOnly={processing}\n />\n </li>\n </ul>\n </div>\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('general:time')} path={'time'} required />\n <DatePickerField\n id=\"time\"\n maxTime={endOfToday()}\n minDate={new Date()}\n minTime={minTime}\n onChange={(e) => onChangeDate(e)}\n pickerAppearance=\"dayAndTime\"\n readOnly={processing}\n timeFormat={schedulePublishConfig?.timeFormat}\n timeIntervals={schedulePublishConfig?.timeIntervals ?? 5}\n value={displayedValue}\n />\n {supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`timezone-picker`}\n onChange={setTimezone}\n options={supportedTimezones}\n selectedTimezone={timezone}\n />\n )}\n </div>\n {localeOptions.length > 0 && type === 'publish' && (\n <div className={`${baseClass}__section`}>\n <FieldLabel label={t('localization:localeToPublish')} />\n <ReactSelect\n onChange={(e) => setLocale(e as { label: string; value: string })}\n options={localeOptions}\n value={locale}\n />\n </div>\n )}\n <div className={`${baseClass}__actions`}>\n <Button\n buttonStyle=\"primary\"\n disabled={processing}\n id=\"scheduled-publish-save\"\n onClick={handleSave}\n type=\"button\"\n >\n {t('general:save')}\n </Button>\n {processing ? <span>{t('general:saving')}</span> : null}\n </div>\n </Gutter>\n <Gutter className={`${baseClass}__upcoming`}>\n <h4>{t('general:upcomingEvents')}</h4>\n {!upcoming && <ShimmerEffect />}\n {upcoming?.length === 0 && <Banner>{t('general:noUpcomingEventsScheduled')}</Banner>}\n {upcoming?.length > 0 && (\n <Table appearance=\"condensed\" columns={upcomingColumns} data={upcoming} />\n )}\n </Gutter>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,6 @@ export type UpcomingEvent = {
6
6
  timezone?: string;
7
7
  type: PublishType;
8
8
  };
9
- waitUntil: Date;
9
+ waitUntil: Date | string;
10
10
  };
11
11
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,WAAW,CAAA;KAClB,CAAA;IACD,SAAS,EAAE,IAAI,CAAA;CAChB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAA;AAEjD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,KAAK,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,WAAW,CAAA;KAClB,CAAA;IACD,SAAS,EAAE,IAAI,GAAG,MAAM,CAAA;CACzB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"sourcesContent":["export type PublishType = 'publish' | 'unpublish'\n\nexport type UpcomingEvent = {\n id: number | string\n input: {\n locale?: string\n timezone?: string\n type: PublishType\n }\n waitUntil: Date\n}\n"],"mappings":"AAEA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/elements/PublishButton/ScheduleDrawer/types.ts"],"sourcesContent":["export type PublishType = 'publish' | 'unpublish'\n\nexport type UpcomingEvent = {\n id: number | string\n input: {\n locale?: string\n timezone?: string\n type: PublishType\n }\n waitUntil: Date | string\n}\n"],"mappings":"AAEA","ignoreList":[]}