@payloadcms/ui 4.0.0-internal.ccea85d → 4.0.0-internal.cd47d20

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 (1156) 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/index.d.ts.map +1 -1
  74. package/dist/elements/ColumnSelection/index.js +59 -55
  75. package/dist/elements/ColumnSelection/index.js.map +1 -1
  76. package/dist/elements/Combobox/index.d.ts.map +1 -1
  77. package/dist/elements/Combobox/index.js +2 -0
  78. package/dist/elements/Combobox/index.js.map +1 -1
  79. package/dist/elements/CommandPalette/index.css +0 -7
  80. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  81. package/dist/elements/CopyLocaleData/index.js +8 -9
  82. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  83. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  84. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  85. package/dist/elements/CopyToClipboard/index.js +10 -8
  86. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  87. package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
  88. package/dist/elements/CreateDocumentButton/index.js +5 -1
  89. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  90. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  91. package/dist/elements/DatePicker/DatePicker.js +113 -82
  92. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  93. package/dist/elements/DatePicker/index.css +8 -1
  94. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  95. package/dist/elements/DeleteDocument/index.js +16 -1
  96. package/dist/elements/DeleteDocument/index.js.map +1 -1
  97. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  98. package/dist/elements/DeleteMany/index.js +2 -3
  99. package/dist/elements/DeleteMany/index.js.map +1 -1
  100. package/dist/elements/Dialog/DialogModal/index.d.ts +1 -1
  101. package/dist/elements/Dialog/DialogModal/index.d.ts.map +1 -1
  102. package/dist/elements/Dialog/DialogModal/index.js +1 -1
  103. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  104. package/dist/elements/Dialog/index.css +1 -0
  105. package/dist/elements/DocumentControls/index.css +1 -0
  106. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  107. package/dist/elements/DocumentControls/index.js +1 -0
  108. package/dist/elements/DocumentControls/index.js.map +1 -1
  109. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -2
  110. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  111. package/dist/elements/DocumentFields/index.css +2 -0
  112. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -0
  113. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  114. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  115. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  116. package/dist/elements/DocumentHeader/Tabs/index.css +1 -0
  117. package/dist/elements/DocumentHeader/Tabs/index.d.ts +1 -0
  118. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  119. package/dist/elements/DocumentHeader/Tabs/index.js +5 -3
  120. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  121. package/dist/elements/DocumentHeader/index.css +1 -0
  122. package/dist/elements/DocumentHeader/index.d.ts +1 -0
  123. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  124. package/dist/elements/DocumentHeader/index.js +4 -2
  125. package/dist/elements/DocumentHeader/index.js.map +1 -1
  126. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +1 -1
  127. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  128. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  129. package/dist/elements/DraggableSortable/useDraggableSortable/index.d.ts.map +1 -1
  130. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +11 -8
  131. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  132. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts +1 -0
  133. package/dist/elements/DraggableSortable/useDraggableSortable/types.d.ts.map +1 -1
  134. package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
  135. package/dist/elements/Drawer/index.css +10 -4
  136. package/dist/elements/Drawer/index.d.ts.map +1 -1
  137. package/dist/elements/Drawer/index.js +3 -1
  138. package/dist/elements/Drawer/index.js.map +1 -1
  139. package/dist/elements/Dropzone/index.css +10 -4
  140. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  141. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  142. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  143. package/dist/elements/DuplicateDocument/index.js +2 -3
  144. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  145. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  146. package/dist/elements/EditMany/DrawerContent.js +4 -5
  147. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  148. package/dist/elements/EditUpload/index.css +2 -1
  149. package/dist/elements/EditUpload/index.js +53 -12
  150. package/dist/elements/EditUpload/index.js.map +1 -1
  151. package/dist/elements/FieldDiffContainer/index.css +1 -0
  152. package/dist/elements/FieldDiffContainer/index.js +1 -1
  153. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  154. package/dist/elements/FieldDiffLabel/index.css +1 -0
  155. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  156. package/dist/elements/FieldSelect/index.js +41 -24
  157. package/dist/elements/FieldSelect/index.js.map +1 -1
  158. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts +5 -1
  159. package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
  160. package/dist/elements/FieldSelect/reduceFieldOptions.js +26 -4
  161. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  162. package/dist/elements/FileDetails/StaticFileDetails/index.css +10 -9
  163. package/dist/elements/FileManager/FilePreview/index.css +3 -3
  164. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  165. package/dist/elements/FileManager/FileToolbar/index.js +4 -0
  166. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  167. package/dist/elements/FileManager/index.css +35 -52
  168. package/dist/elements/FileManager/index.d.ts +1 -1
  169. package/dist/elements/FileManager/index.d.ts.map +1 -1
  170. package/dist/elements/FileManager/index.js +385 -282
  171. package/dist/elements/FileManager/index.js.map +1 -1
  172. package/dist/elements/FilterTrigger/index.d.ts +5 -1
  173. package/dist/elements/FilterTrigger/index.d.ts.map +1 -1
  174. package/dist/elements/FilterTrigger/index.js +6 -0
  175. package/dist/elements/FilterTrigger/index.js.map +1 -1
  176. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  177. package/dist/elements/FullscreenModal/index.js +1 -1
  178. package/dist/elements/FullscreenModal/index.js.map +1 -1
  179. package/dist/elements/GroupBy/Popup.d.ts.map +1 -1
  180. package/dist/elements/GroupBy/Popup.js +74 -45
  181. package/dist/elements/GroupBy/Popup.js.map +1 -1
  182. package/dist/elements/GroupBy/index.d.ts.map +1 -1
  183. package/dist/elements/GroupBy/index.js +2 -0
  184. package/dist/elements/GroupBy/index.js.map +1 -1
  185. package/dist/elements/HTMLDiff/index.css +1 -0
  186. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +3 -0
  187. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
  188. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +60 -47
  189. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  190. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +0 -1
  191. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
  192. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +34 -27
  193. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  194. package/dist/elements/Hierarchy/Field/index.server.d.ts +3 -2
  195. package/dist/elements/Hierarchy/Field/index.server.d.ts.map +1 -1
  196. package/dist/elements/Hierarchy/Field/index.server.js.map +1 -1
  197. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  198. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  199. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  200. package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
  201. package/dist/elements/Hierarchy/Search/index.js +6 -7
  202. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  203. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  204. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  205. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  206. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
  207. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +109 -89
  208. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  209. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
  210. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +2 -0
  211. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
  212. package/dist/elements/Hierarchy/Tree/TreeNode/index.css +0 -1
  213. package/dist/elements/IDLabel/index.css +6 -0
  214. package/dist/elements/IDLabel/index.d.ts +1 -1
  215. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  216. package/dist/elements/IDLabel/index.js +16 -21
  217. package/dist/elements/IDLabel/index.js.map +1 -1
  218. package/dist/elements/InputStepper/index.css +0 -1
  219. package/dist/elements/ItemsDrawer/index.css +3 -0
  220. package/dist/elements/ListControls/index.css +1 -0
  221. package/dist/elements/ListControls/index.d.ts.map +1 -1
  222. package/dist/elements/ListControls/index.js +8 -1
  223. package/dist/elements/ListControls/index.js.map +1 -1
  224. package/dist/elements/ListControls/types.d.ts +3 -1
  225. package/dist/elements/ListControls/types.d.ts.map +1 -1
  226. package/dist/elements/ListControls/types.js.map +1 -1
  227. package/dist/elements/ListControlsBar/index.css +1 -0
  228. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  229. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  230. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  231. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  232. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  233. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +3 -4
  234. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  235. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  236. package/dist/elements/LivePreview/Toolbar/Controls/index.js +3 -0
  237. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  238. package/dist/elements/LivePreview/Window/index.css +1 -0
  239. package/dist/elements/LivePreview/Window/index.js +1 -1
  240. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  241. package/dist/elements/Localizer/index.d.ts +3 -6
  242. package/dist/elements/Localizer/index.d.ts.map +1 -1
  243. package/dist/elements/Localizer/index.js +20 -12
  244. package/dist/elements/Localizer/index.js.map +1 -1
  245. package/dist/elements/Locked/index.css +0 -8
  246. package/dist/elements/Locked/index.d.ts.map +1 -1
  247. package/dist/elements/Locked/index.js +70 -64
  248. package/dist/elements/Locked/index.js.map +1 -1
  249. package/dist/elements/MiniCarousel/index.css +39 -37
  250. package/dist/elements/Modal/index.d.ts +5 -1
  251. package/dist/elements/Modal/index.d.ts.map +1 -1
  252. package/dist/elements/Modal/index.js +69 -1
  253. package/dist/elements/Modal/index.js.map +1 -1
  254. package/dist/elements/Nav/SettingsMenuButton/index.d.ts.map +1 -1
  255. package/dist/elements/Nav/SettingsMenuButton/index.js +1 -0
  256. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  257. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  258. package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
  259. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  260. package/dist/elements/Nav/SidebarTabs/index.css +0 -5
  261. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
  262. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
  263. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +5 -3
  264. package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
  265. package/dist/elements/Nav/getNavPrefs.d.ts.map +1 -1
  266. package/dist/elements/Nav/getNavPrefs.js +2 -0
  267. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  268. package/dist/elements/Nav/index.css +2 -0
  269. package/dist/elements/NavGroup/index.css +0 -1
  270. package/dist/elements/PageControls/GroupByPageControls.d.ts +1 -0
  271. package/dist/elements/PageControls/GroupByPageControls.d.ts.map +1 -1
  272. package/dist/elements/PageControls/GroupByPageControls.js +9 -6
  273. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  274. package/dist/elements/PageControls/index.css +1 -0
  275. package/dist/elements/PageControls/index.d.ts +2 -0
  276. package/dist/elements/PageControls/index.d.ts.map +1 -1
  277. package/dist/elements/PageControls/index.js +21 -12
  278. package/dist/elements/PageControls/index.js.map +1 -1
  279. package/dist/elements/Pagination/ClickableArrow/index.d.ts +1 -0
  280. package/dist/elements/Pagination/ClickableArrow/index.d.ts.map +1 -1
  281. package/dist/elements/Pagination/ClickableArrow/index.js +2 -0
  282. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  283. package/dist/elements/Pagination/SimplePagination/index.d.ts +1 -0
  284. package/dist/elements/Pagination/SimplePagination/index.d.ts.map +1 -1
  285. package/dist/elements/Pagination/SimplePagination/index.js +14 -8
  286. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  287. package/dist/elements/Pagination/index.d.ts +1 -0
  288. package/dist/elements/Pagination/index.d.ts.map +1 -1
  289. package/dist/elements/Pagination/index.js +17 -12
  290. package/dist/elements/Pagination/index.js.map +1 -1
  291. package/dist/elements/PerPage/index.d.ts +1 -0
  292. package/dist/elements/PerPage/index.d.ts.map +1 -1
  293. package/dist/elements/PerPage/index.js +22 -15
  294. package/dist/elements/PerPage/index.js.map +1 -1
  295. package/dist/elements/PillSelector/index.css +1 -0
  296. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  297. package/dist/elements/Popup/PopupButtonList/index.d.ts +8 -0
  298. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  299. package/dist/elements/Popup/PopupButtonList/index.js +50 -6
  300. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  301. package/dist/elements/Popup/PopupTrigger/index.d.ts +9 -2
  302. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  303. package/dist/elements/Popup/PopupTrigger/index.js +58 -6
  304. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  305. package/dist/elements/Popup/index.css +4 -2
  306. package/dist/elements/Popup/index.d.ts +6 -27
  307. package/dist/elements/Popup/index.d.ts.map +1 -1
  308. package/dist/elements/Popup/index.js +115 -76
  309. package/dist/elements/Popup/index.js.map +1 -1
  310. package/dist/elements/PreviewButton/index.d.ts +1 -2
  311. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  312. package/dist/elements/PreviewButton/index.js +11 -5
  313. package/dist/elements/PreviewButton/index.js.map +1 -1
  314. package/dist/elements/PreviewSizes/index.css +10 -9
  315. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  316. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  317. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  318. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  319. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  320. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  321. package/dist/elements/PublishButton/index.css +1 -0
  322. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  323. package/dist/elements/PublishButton/index.js +16 -31
  324. package/dist/elements/PublishButton/index.js.map +1 -1
  325. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  326. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  327. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  328. package/dist/elements/QueryPresets/QueryPresetBar/index.d.ts.map +1 -1
  329. package/dist/elements/QueryPresets/QueryPresetBar/index.js +19 -5
  330. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  331. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts +3 -2
  332. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  333. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  334. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts +3 -2
  335. package/dist/elements/QueryPresets/fields/GroupByField/index.d.ts.map +1 -1
  336. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  337. package/dist/elements/QueryPresets/fields/Heading/index.css +1 -0
  338. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts +3 -2
  339. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  340. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  341. package/dist/elements/ReactSelect/ClearIndicator/index.css +5 -1
  342. package/dist/elements/ReactSelect/ClearIndicator/index.d.ts.map +1 -1
  343. package/dist/elements/ReactSelect/ClearIndicator/index.js +51 -20
  344. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  345. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  346. package/dist/elements/ReactSelect/DefaultMenuPortal.js +2 -1
  347. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  348. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts +2 -4
  349. package/dist/elements/ReactSelect/DropdownIndicator/index.d.ts.map +1 -1
  350. package/dist/elements/ReactSelect/DropdownIndicator/index.js +16 -21
  351. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  352. package/dist/elements/ReactSelect/MultiValue/context.d.ts +6 -0
  353. package/dist/elements/ReactSelect/MultiValue/context.d.ts.map +1 -0
  354. package/dist/elements/ReactSelect/MultiValue/context.js +5 -0
  355. package/dist/elements/ReactSelect/MultiValue/context.js.map +1 -0
  356. package/dist/elements/ReactSelect/MultiValue/index.css +5 -1
  357. package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
  358. package/dist/elements/ReactSelect/MultiValue/index.js +89 -35
  359. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  360. package/dist/elements/ReactSelect/MultiValueLabel/index.css +43 -3
  361. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts +5 -1
  362. package/dist/elements/ReactSelect/MultiValueLabel/index.d.ts.map +1 -1
  363. package/dist/elements/ReactSelect/MultiValueLabel/index.js +49 -4
  364. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  365. package/dist/elements/ReactSelect/MultiValueRemove/index.css +30 -4
  366. package/dist/elements/ReactSelect/MultiValueRemove/index.d.ts.map +1 -1
  367. package/dist/elements/ReactSelect/MultiValueRemove/index.js +92 -66
  368. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  369. package/dist/elements/ReactSelect/Option/index.d.ts +6 -0
  370. package/dist/elements/ReactSelect/Option/index.d.ts.map +1 -0
  371. package/dist/elements/ReactSelect/Option/index.js +30 -0
  372. package/dist/elements/ReactSelect/Option/index.js.map +1 -0
  373. package/dist/elements/ReactSelect/index.css +0 -3
  374. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  375. package/dist/elements/ReactSelect/index.js +4 -1
  376. package/dist/elements/ReactSelect/index.js.map +1 -1
  377. package/dist/elements/ReactSelect/types.d.ts +7 -1
  378. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  379. package/dist/elements/ReactSelect/types.js.map +1 -1
  380. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  381. package/dist/elements/RelationshipTable/AddNewButton.js +1 -0
  382. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  383. package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
  384. package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
  385. package/dist/elements/RelationshipTable/Pagination.js +27 -77
  386. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  387. package/dist/elements/RelationshipTable/index.css +0 -2
  388. package/dist/elements/RelationshipTable/index.d.ts +1 -0
  389. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  390. package/dist/elements/RelationshipTable/index.js +100 -60
  391. package/dist/elements/RelationshipTable/index.js.map +1 -1
  392. package/dist/elements/RenderTitle/index.css +5 -0
  393. package/dist/elements/RenderTitle/index.d.ts.map +1 -1
  394. package/dist/elements/RenderTitle/index.js +18 -13
  395. package/dist/elements/RenderTitle/index.js.map +1 -1
  396. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  397. package/dist/elements/RestoreMany/index.js +2 -3
  398. package/dist/elements/RestoreMany/index.js.map +1 -1
  399. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  400. package/dist/elements/SaveDraftButton/index.js +2 -3
  401. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  402. package/dist/elements/SelectRow/index.d.ts +4 -3
  403. package/dist/elements/SelectRow/index.d.ts.map +1 -1
  404. package/dist/elements/SelectRow/index.js +10 -7
  405. package/dist/elements/SelectRow/index.js.map +1 -1
  406. package/dist/elements/SidebarToggle/index.css +0 -17
  407. package/dist/elements/SortColumn/index.d.ts.map +1 -1
  408. package/dist/elements/SortColumn/index.js +59 -91
  409. package/dist/elements/SortColumn/index.js.map +1 -1
  410. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  411. package/dist/elements/SortHeader/index.js +34 -49
  412. package/dist/elements/SortHeader/index.js.map +1 -1
  413. package/dist/elements/Status/index.d.ts.map +1 -1
  414. package/dist/elements/Status/index.js +2 -3
  415. package/dist/elements/Status/index.js.map +1 -1
  416. package/dist/elements/StepNav/index.css +64 -14
  417. package/dist/elements/StepNav/index.d.ts.map +1 -1
  418. package/dist/elements/StepNav/index.js +144 -69
  419. package/dist/elements/StepNav/index.js.map +1 -1
  420. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  421. package/dist/elements/Table/DefaultCell/index.js +3 -11
  422. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  423. package/dist/elements/Table/OrderableRow.d.ts +3 -1
  424. package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
  425. package/dist/elements/Table/OrderableRow.js +17 -1
  426. package/dist/elements/Table/OrderableRow.js.map +1 -1
  427. package/dist/elements/Table/OrderableTable.d.ts +1 -0
  428. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  429. package/dist/elements/Table/OrderableTable.js +26 -6
  430. package/dist/elements/Table/OrderableTable.js.map +1 -1
  431. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  432. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  433. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  434. package/dist/elements/Table/TableIdentity.d.ts +7 -0
  435. package/dist/elements/Table/TableIdentity.d.ts.map +1 -0
  436. package/dist/elements/Table/TableIdentity.js +47 -0
  437. package/dist/elements/Table/TableIdentity.js.map +1 -0
  438. package/dist/elements/Table/index.css +2 -0
  439. package/dist/elements/Table/index.d.ts +1 -0
  440. package/dist/elements/Table/index.d.ts.map +1 -1
  441. package/dist/elements/Table/index.js +91 -42
  442. package/dist/elements/Table/index.js.map +1 -1
  443. package/dist/elements/Table/useAriaSort.d.ts +7 -0
  444. package/dist/elements/Table/useAriaSort.d.ts.map +1 -0
  445. package/dist/elements/Table/useAriaSort.js +53 -0
  446. package/dist/elements/Table/useAriaSort.js.map +1 -0
  447. package/dist/elements/TableSection/index.css +1 -1
  448. package/dist/elements/Tabs/index.css +1 -0
  449. package/dist/elements/Thumbnail/index.css +1 -0
  450. package/dist/elements/Thumbnail/index.d.ts +1 -1
  451. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  452. package/dist/elements/Thumbnail/index.js.map +1 -1
  453. package/dist/elements/ThumbnailCard/index.d.ts.map +1 -1
  454. package/dist/elements/ThumbnailCard/index.js +10 -8
  455. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  456. package/dist/elements/TimezonePicker/index.css +1 -0
  457. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  458. package/dist/elements/TimezonePicker/index.js +5 -1
  459. package/dist/elements/TimezonePicker/index.js.map +1 -1
  460. package/dist/elements/Tooltip/index.css +22 -34
  461. package/dist/elements/Tooltip/index.d.ts +11 -3
  462. package/dist/elements/Tooltip/index.d.ts.map +1 -1
  463. package/dist/elements/Tooltip/index.js +151 -85
  464. package/dist/elements/Tooltip/index.js.map +1 -1
  465. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  466. package/dist/elements/UnpublishButton/index.js +3 -4
  467. package/dist/elements/UnpublishButton/index.js.map +1 -1
  468. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  469. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  470. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  471. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  472. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  473. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  474. package/dist/elements/Upload/index.css +39 -37
  475. package/dist/elements/Upload/index.d.ts.map +1 -1
  476. package/dist/elements/Upload/index.js +37 -99
  477. package/dist/elements/Upload/index.js.map +1 -1
  478. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  479. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  480. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  481. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  482. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  483. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  484. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  485. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  486. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  487. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  488. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  489. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  490. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  491. package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
  492. package/dist/elements/UserMenu/LanguageMenu/index.js +3 -0
  493. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  494. package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
  495. package/dist/elements/UserMenu/SettingsMenu/index.js +3 -0
  496. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  497. package/dist/elements/UserMenu/SubMenuHeader/index.d.ts.map +1 -1
  498. package/dist/elements/UserMenu/SubMenuHeader/index.js +2 -0
  499. package/dist/elements/UserMenu/SubMenuHeader/index.js.map +1 -1
  500. package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
  501. package/dist/elements/UserMenu/ThemeMenu/index.js +3 -0
  502. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  503. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  504. package/dist/elements/UserMenu/index.js +21 -4
  505. package/dist/elements/UserMenu/index.js.map +1 -1
  506. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  507. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  508. package/dist/elements/WhereBuilder/Condition/index.css +1 -0
  509. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  510. package/dist/elements/WhereBuilder/Condition/index.js +7 -1
  511. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  512. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  513. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  514. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  515. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  516. package/dist/elements/WhereBuilder/index.css +2 -0
  517. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  518. package/dist/elements/WhereBuilder/index.js +15 -4
  519. package/dist/elements/WhereBuilder/index.js.map +1 -1
  520. package/dist/exports/client/index.d.ts +5 -1
  521. package/dist/exports/client/index.d.ts.map +1 -1
  522. package/dist/exports/client/index.js +1 -1
  523. package/dist/exports/client/index.js.map +3 -3
  524. package/dist/exports/shared/index.d.ts +1 -0
  525. package/dist/exports/shared/index.d.ts.map +1 -1
  526. package/dist/exports/shared/index.js +2 -2
  527. package/dist/exports/shared/index.js.map +4 -4
  528. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  529. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  530. package/dist/fields/Array/ArrayRow.js +100 -160
  531. package/dist/fields/Array/ArrayRow.js.map +1 -1
  532. package/dist/fields/Array/index.css +1 -0
  533. package/dist/fields/Array/index.d.ts +3 -7
  534. package/dist/fields/Array/index.d.ts.map +1 -1
  535. package/dist/fields/Array/index.js +40 -13
  536. package/dist/fields/Array/index.js.map +1 -1
  537. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  538. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  539. package/dist/fields/Blocks/BlockRow.js +136 -195
  540. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  541. package/dist/fields/Blocks/RowActions.d.ts +3 -0
  542. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  543. package/dist/fields/Blocks/RowActions.js +35 -20
  544. package/dist/fields/Blocks/RowActions.js.map +1 -1
  545. package/dist/fields/Blocks/index.css +1 -0
  546. package/dist/fields/Blocks/index.d.ts +2 -5
  547. package/dist/fields/Blocks/index.d.ts.map +1 -1
  548. package/dist/fields/Blocks/index.js +40 -13
  549. package/dist/fields/Blocks/index.js.map +1 -1
  550. package/dist/fields/Checkbox/Input.d.ts +2 -0
  551. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  552. package/dist/fields/Checkbox/Input.js +32 -26
  553. package/dist/fields/Checkbox/Input.js.map +1 -1
  554. package/dist/fields/Checkbox/index.css +37 -73
  555. package/dist/fields/Checkbox/index.d.ts +2 -12
  556. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  557. package/dist/fields/Checkbox/index.js.map +1 -1
  558. package/dist/fields/Code/index.d.ts +2 -8
  559. package/dist/fields/Code/index.d.ts.map +1 -1
  560. package/dist/fields/Code/index.js.map +1 -1
  561. package/dist/fields/Collapsible/index.d.ts +2 -3
  562. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  563. package/dist/fields/Collapsible/index.js.map +1 -1
  564. package/dist/fields/DateTime/index.d.ts +3 -7
  565. package/dist/fields/DateTime/index.d.ts.map +1 -1
  566. package/dist/fields/DateTime/index.js +1 -1
  567. package/dist/fields/DateTime/index.js.map +1 -1
  568. package/dist/fields/Email/index.d.ts +2 -7
  569. package/dist/fields/Email/index.d.ts.map +1 -1
  570. package/dist/fields/Email/index.js.map +1 -1
  571. package/dist/fields/FieldError/index.css +0 -9
  572. package/dist/fields/FieldError/index.d.ts.map +1 -1
  573. package/dist/fields/FieldError/index.js +19 -9
  574. package/dist/fields/FieldError/index.js.map +1 -1
  575. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  576. package/dist/fields/FieldLabel/index.js +4 -5
  577. package/dist/fields/FieldLabel/index.js.map +1 -1
  578. package/dist/fields/Group/index.css +1 -0
  579. package/dist/fields/Group/index.d.ts +3 -5
  580. package/dist/fields/Group/index.d.ts.map +1 -1
  581. package/dist/fields/Group/index.js.map +1 -1
  582. package/dist/fields/JSON/index.d.ts +2 -6
  583. package/dist/fields/JSON/index.d.ts.map +1 -1
  584. package/dist/fields/JSON/index.js.map +1 -1
  585. package/dist/fields/Join/index.css +9 -0
  586. package/dist/fields/Join/index.d.ts +2 -6
  587. package/dist/fields/Join/index.d.ts.map +1 -1
  588. package/dist/fields/Join/index.js +13 -9
  589. package/dist/fields/Join/index.js.map +1 -1
  590. package/dist/fields/Number/index.d.ts +2 -7
  591. package/dist/fields/Number/index.d.ts.map +1 -1
  592. package/dist/fields/Number/index.js.map +1 -1
  593. package/dist/fields/Point/index.d.ts +3 -8
  594. package/dist/fields/Point/index.d.ts.map +1 -1
  595. package/dist/fields/Point/index.js.map +1 -1
  596. package/dist/fields/RadioGroup/index.css +0 -7
  597. package/dist/fields/RadioGroup/index.js.map +1 -1
  598. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  599. package/dist/fields/Relationship/Input.js +34 -17
  600. package/dist/fields/Relationship/Input.js.map +1 -1
  601. package/dist/fields/Relationship/index.d.ts +2 -6
  602. package/dist/fields/Relationship/index.d.ts.map +1 -1
  603. package/dist/fields/Relationship/index.js.map +1 -1
  604. package/dist/fields/Relationship/select-components/MultiValueLabel/index.css +1 -1
  605. package/dist/fields/Relationship/select-components/MultiValueLabel/index.d.ts.map +1 -1
  606. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +24 -2
  607. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  608. package/dist/fields/Row/index.css +2 -0
  609. package/dist/fields/Row/index.d.ts +2 -3
  610. package/dist/fields/Row/index.d.ts.map +1 -1
  611. package/dist/fields/Row/index.js.map +1 -1
  612. package/dist/fields/Select/index.d.ts +2 -9
  613. package/dist/fields/Select/index.d.ts.map +1 -1
  614. package/dist/fields/Select/index.js.map +1 -1
  615. package/dist/fields/Slug/index.css +0 -1
  616. package/dist/fields/Slug/index.d.ts.map +1 -1
  617. package/dist/fields/Slug/index.js +74 -111
  618. package/dist/fields/Slug/index.js.map +1 -1
  619. package/dist/fields/Tabs/index.css +1 -0
  620. package/dist/fields/Tabs/index.d.ts +2 -4
  621. package/dist/fields/Tabs/index.d.ts.map +1 -1
  622. package/dist/fields/Tabs/index.js.map +1 -1
  623. package/dist/fields/Text/index.d.ts +2 -8
  624. package/dist/fields/Text/index.d.ts.map +1 -1
  625. package/dist/fields/Text/index.js.map +1 -1
  626. package/dist/fields/Textarea/index.d.ts +2 -9
  627. package/dist/fields/Textarea/index.d.ts.map +1 -1
  628. package/dist/fields/Textarea/index.js.map +1 -1
  629. package/dist/fields/Upload/Input.d.ts.map +1 -1
  630. package/dist/fields/Upload/Input.js +46 -19
  631. package/dist/fields/Upload/Input.js.map +1 -1
  632. package/dist/fields/Upload/index.css +19 -4
  633. package/dist/fields/shared/index.d.ts +1 -1
  634. package/dist/fields/shared/index.d.ts.map +1 -1
  635. package/dist/fields/shared/index.js.map +1 -1
  636. package/dist/forms/Form/context.d.ts +3 -1
  637. package/dist/forms/Form/context.d.ts.map +1 -1
  638. package/dist/forms/Form/context.js +3 -1
  639. package/dist/forms/Form/context.js.map +1 -1
  640. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  641. package/dist/forms/Form/fieldReducer.js +3 -1
  642. package/dist/forms/Form/fieldReducer.js.map +1 -1
  643. package/dist/forms/Form/index.d.ts.map +1 -1
  644. package/dist/forms/Form/index.js +27 -22
  645. package/dist/forms/Form/index.js.map +1 -1
  646. package/dist/forms/Form/types.d.ts +1 -1
  647. package/dist/forms/Form/types.d.ts.map +1 -1
  648. package/dist/forms/Form/types.js.map +1 -1
  649. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  650. package/dist/forms/NullifyField/index.js +2 -3
  651. package/dist/forms/NullifyField/index.js.map +1 -1
  652. package/dist/forms/RenderFields/context.d.ts +2 -2
  653. package/dist/forms/RenderFields/context.js +2 -2
  654. package/dist/forms/RenderFields/context.js.map +1 -1
  655. package/dist/forms/RenderFields/index.css +17 -2
  656. package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
  657. package/dist/forms/WatchChildErrors/index.js +2 -2
  658. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  659. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  660. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +14 -5
  661. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  662. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  663. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -5
  664. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  665. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts +12 -0
  666. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.d.ts.map +1 -0
  667. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js +42 -0
  668. package/dist/forms/fieldSchemasToFormState/serverFunctions/mergeAllowedFieldOverrides.js.map +1 -0
  669. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +8 -6
  670. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  671. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +22 -9
  672. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  673. package/dist/forms/fieldSchemasToFormState/types.d.ts +1 -0
  674. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  675. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  676. package/dist/hooks/useControllableState.js +3 -3
  677. package/dist/hooks/useControllableState.js.map +1 -1
  678. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  679. package/dist/hooks/usePayloadAPI.js +2 -3
  680. package/dist/hooks/usePayloadAPI.js.map +1 -1
  681. package/dist/icons/Edit/index.d.ts +0 -1
  682. package/dist/icons/Edit/index.d.ts.map +1 -1
  683. package/dist/icons/Edit/index.js +4 -4
  684. package/dist/icons/Edit/index.js.map +1 -1
  685. package/dist/layouts/Root/index.d.ts +4 -7
  686. package/dist/layouts/Root/index.d.ts.map +1 -1
  687. package/dist/layouts/Root/index.js +17 -12
  688. package/dist/layouts/Root/index.js.map +1 -1
  689. package/dist/providers/Actions/index.d.ts +1 -0
  690. package/dist/providers/Actions/index.d.ts.map +1 -1
  691. package/dist/providers/Actions/index.js +43 -11
  692. package/dist/providers/Actions/index.js.map +1 -1
  693. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  694. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  695. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  696. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  697. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  698. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  699. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  700. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  701. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  702. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  703. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  704. package/dist/providers/Auth/authSessionRequests.js +119 -0
  705. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  706. package/dist/providers/Auth/index.d.ts +2 -56
  707. package/dist/providers/Auth/index.d.ts.map +1 -1
  708. package/dist/providers/Auth/index.js +283 -135
  709. package/dist/providers/Auth/index.js.map +1 -1
  710. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  711. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  712. package/dist/providers/Auth/sessionActivity.js +49 -0
  713. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  714. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  715. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  716. package/dist/providers/Auth/sessionTiming.js +18 -0
  717. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  718. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  719. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  720. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  721. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  722. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  723. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  724. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  725. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  726. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  727. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  728. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  729. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  730. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  731. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  732. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  733. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  734. package/dist/providers/Auth/types.d.ts +65 -0
  735. package/dist/providers/Auth/types.d.ts.map +1 -0
  736. package/dist/providers/Auth/types.js +2 -0
  737. package/dist/providers/Auth/types.js.map +1 -0
  738. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  739. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  740. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  741. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  742. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  743. package/dist/providers/DocumentInfo/index.js +32 -24
  744. package/dist/providers/DocumentInfo/index.js.map +1 -1
  745. package/dist/providers/DocumentInfo/types.d.ts +0 -10
  746. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  747. package/dist/providers/DocumentInfo/types.js.map +1 -1
  748. package/dist/providers/DocumentTitle/index.d.ts +1 -0
  749. package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
  750. package/dist/providers/DocumentTitle/index.js +2 -0
  751. package/dist/providers/DocumentTitle/index.js.map +1 -1
  752. package/dist/providers/Embed/index.d.ts +24 -0
  753. package/dist/providers/Embed/index.d.ts.map +1 -0
  754. package/dist/providers/Embed/index.js +105 -0
  755. package/dist/providers/Embed/index.js.map +1 -0
  756. package/dist/providers/FormErrorHandler/index.d.ts +24 -0
  757. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
  758. package/dist/providers/FormErrorHandler/index.js +6 -0
  759. package/dist/providers/FormErrorHandler/index.js.map +1 -0
  760. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  761. package/dist/providers/LivePreview/index.js +13 -6
  762. package/dist/providers/LivePreview/index.js.map +1 -1
  763. package/dist/providers/Locale/index.d.ts +1 -5
  764. package/dist/providers/Locale/index.d.ts.map +1 -1
  765. package/dist/providers/Locale/index.js +64 -138
  766. package/dist/providers/Locale/index.js.map +1 -1
  767. package/dist/providers/ModalAccessibility/index.d.ts +3 -0
  768. package/dist/providers/ModalAccessibility/index.d.ts.map +1 -0
  769. package/dist/providers/ModalAccessibility/index.js +102 -0
  770. package/dist/providers/ModalAccessibility/index.js.map +1 -0
  771. package/dist/providers/Root/index.d.ts +1 -0
  772. package/dist/providers/Root/index.d.ts.map +1 -1
  773. package/dist/providers/Root/index.js +43 -36
  774. package/dist/providers/Root/index.js.map +1 -1
  775. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  776. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  777. package/dist/providers/RouteTransition/index.d.ts +2 -0
  778. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  779. package/dist/providers/RouteTransition/index.js +42 -14
  780. package/dist/providers/RouteTransition/index.js.map +1 -1
  781. package/dist/providers/Selection/index.d.ts.map +1 -1
  782. package/dist/providers/Selection/index.js +2 -3
  783. package/dist/providers/Selection/index.js.map +1 -1
  784. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  785. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  786. package/dist/providers/ServerFunctions/index.js +15 -0
  787. package/dist/providers/ServerFunctions/index.js.map +1 -1
  788. package/dist/providers/SidebarTabs/index.d.ts +3 -2
  789. package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
  790. package/dist/providers/SidebarTabs/index.js.map +1 -1
  791. package/dist/providers/TableColumns/buildColumnState/index.js +1 -2
  792. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  793. package/dist/providers/Theme/index.d.ts +3 -0
  794. package/dist/providers/Theme/index.d.ts.map +1 -1
  795. package/dist/providers/Theme/index.js +107 -95
  796. package/dist/providers/Theme/index.js.map +1 -1
  797. package/dist/providers/ToastContainer/index.d.ts.map +1 -1
  798. package/dist/providers/ToastContainer/index.js +100 -33
  799. package/dist/providers/ToastContainer/index.js.map +1 -1
  800. package/dist/providers/UploadHandlers/index.d.ts +2 -7
  801. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  802. package/dist/providers/UploadHandlers/index.js +102 -42
  803. package/dist/providers/UploadHandlers/index.js.map +1 -1
  804. package/dist/styles.css +17 -10
  805. package/dist/templates/Default/Wrapper/index.css +2 -0
  806. package/dist/templates/Default/index.css +1 -0
  807. package/dist/templates/Default/index.d.ts +1 -0
  808. package/dist/templates/Default/index.d.ts.map +1 -1
  809. package/dist/templates/Default/index.js +2 -0
  810. package/dist/templates/Default/index.js.map +1 -1
  811. package/dist/utilities/buildFormState.d.ts.map +1 -1
  812. package/dist/utilities/buildFormState.js +6 -2
  813. package/dist/utilities/buildFormState.js.map +1 -1
  814. package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
  815. package/dist/utilities/combineFieldLabel.js +5 -1
  816. package/dist/utilities/combineFieldLabel.js.map +1 -1
  817. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  818. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  819. package/dist/utilities/formatAbsoluteURL.js +18 -8
  820. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  821. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  822. package/dist/utilities/formatMetadata.js +0 -5
  823. package/dist/utilities/formatMetadata.js.map +1 -1
  824. package/dist/utilities/generateFieldID.d.ts +1 -1
  825. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  826. package/dist/utilities/generateFieldID.js +2 -2
  827. package/dist/utilities/generateFieldID.js.map +1 -1
  828. package/dist/utilities/getActiveModal.d.ts +6 -0
  829. package/dist/utilities/getActiveModal.d.ts.map +1 -0
  830. package/dist/utilities/getActiveModal.js +8 -0
  831. package/dist/utilities/getActiveModal.js.map +1 -0
  832. package/dist/utilities/getDocPreferences.d.ts.map +1 -1
  833. package/dist/utilities/getDocPreferences.js +1 -0
  834. package/dist/utilities/getDocPreferences.js.map +1 -1
  835. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  836. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  837. package/dist/utilities/getFilesFromClipboard.js +49 -0
  838. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  839. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  840. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  841. package/dist/utilities/getHasScheduledPublish.js +2 -5
  842. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  843. package/dist/utilities/getPreferences.d.ts.map +1 -1
  844. package/dist/utilities/getPreferences.js +1 -0
  845. package/dist/utilities/getPreferences.js.map +1 -1
  846. package/dist/utilities/getRequestEmbed.d.ts +14 -0
  847. package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
  848. package/dist/utilities/getRequestEmbed.js +10 -0
  849. package/dist/utilities/getRequestEmbed.js.map +1 -0
  850. package/dist/utilities/getVersions.d.ts.map +1 -1
  851. package/dist/utilities/getVersions.js +8 -0
  852. package/dist/utilities/getVersions.js.map +1 -1
  853. package/dist/utilities/handleAuthRedirect.d.ts.map +1 -1
  854. package/dist/utilities/handleAuthRedirect.js +4 -1
  855. package/dist/utilities/handleAuthRedirect.js.map +1 -1
  856. package/dist/utilities/handleServerFunctions.d.ts +32 -8
  857. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  858. package/dist/utilities/handleServerFunctions.js +22 -40
  859. package/dist/utilities/handleServerFunctions.js.map +1 -1
  860. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  861. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  862. package/dist/utilities/isAbsoluteURL.js +15 -0
  863. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  864. package/dist/utilities/isHttpURL.d.ts +3 -0
  865. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  866. package/dist/utilities/isHttpURL.js +12 -0
  867. package/dist/utilities/isHttpURL.js.map +1 -0
  868. package/dist/utilities/isPathMatchingRoute.d.ts.map +1 -1
  869. package/dist/utilities/isPathMatchingRoute.js +7 -5
  870. package/dist/utilities/isPathMatchingRoute.js.map +1 -1
  871. package/dist/utilities/isPublicAdminRoute.d.ts.map +1 -1
  872. package/dist/utilities/isPublicAdminRoute.js +9 -6
  873. package/dist/utilities/isPublicAdminRoute.js.map +1 -1
  874. package/dist/utilities/renderTable.d.ts.map +1 -1
  875. package/dist/utilities/renderTable.js +27 -6
  876. package/dist/utilities/renderTable.js.map +1 -1
  877. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  878. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  879. package/dist/utilities/schedulePublishHandler.js +74 -5
  880. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  881. package/dist/utilities/serverFunctionRegistry.d.ts +12 -7
  882. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  883. package/dist/utilities/serverFunctionRegistry.js +27 -8
  884. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  885. package/dist/utilities/slugify.d.ts.map +1 -1
  886. package/dist/utilities/slugify.js +52 -6
  887. package/dist/utilities/slugify.js.map +1 -1
  888. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  889. package/dist/utilities/upsertPreferences.js +3 -0
  890. package/dist/utilities/upsertPreferences.js.map +1 -1
  891. package/dist/views/API/index.client.d.ts.map +1 -1
  892. package/dist/views/API/index.client.js +2 -3
  893. package/dist/views/API/index.client.js.map +1 -1
  894. package/dist/views/API/index.css +1 -0
  895. package/dist/views/Account/index.d.ts +1 -1
  896. package/dist/views/Account/index.d.ts.map +1 -1
  897. package/dist/views/Account/index.js +8 -5
  898. package/dist/views/Account/index.js.map +1 -1
  899. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  900. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +4 -2
  901. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  902. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  903. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  904. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  905. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  906. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +105 -66
  907. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  908. package/dist/views/Dashboard/Default/ModularDashboard/index.css +31 -144
  909. package/dist/views/Dashboard/Default/ModularDashboard/index.d.ts.map +1 -1
  910. package/dist/views/Dashboard/Default/ModularDashboard/index.js +1 -0
  911. package/dist/views/Dashboard/Default/ModularDashboard/index.js.map +1 -1
  912. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
  913. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  914. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.d.ts.map +1 -1
  915. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js +3 -1
  916. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js.map +1 -1
  917. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.d.ts.map +1 -1
  918. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +12 -10
  919. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
  920. package/dist/views/Dashboard/index.d.ts.map +1 -1
  921. package/dist/views/Dashboard/index.js +2 -3
  922. package/dist/views/Dashboard/index.js.map +1 -1
  923. package/dist/views/Document/handleServerFunction.d.ts.map +1 -1
  924. package/dist/views/Document/handleServerFunction.js +3 -0
  925. package/dist/views/Document/handleServerFunction.js.map +1 -1
  926. package/dist/views/Document/index.d.ts +1 -1
  927. package/dist/views/Document/index.d.ts.map +1 -1
  928. package/dist/views/Document/index.js +10 -6
  929. package/dist/views/Document/index.js.map +1 -1
  930. package/dist/views/Document/renderDocumentSlots.d.ts +1 -0
  931. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -1
  932. package/dist/views/Document/renderDocumentSlots.js +7 -4
  933. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  934. package/dist/views/Edit/Auth/APIKey.d.ts +1 -1
  935. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  936. package/dist/views/Edit/Auth/APIKey.js +233 -59
  937. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  938. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts +12 -0
  939. package/dist/views/Edit/Auth/APIKeyGenerationModal.d.ts.map +1 -0
  940. package/dist/views/Edit/Auth/APIKeyGenerationModal.js +117 -0
  941. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -0
  942. package/dist/views/Edit/Auth/index.css +91 -0
  943. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  944. package/dist/views/Edit/Auth/index.js +10 -28
  945. package/dist/views/Edit/Auth/index.js.map +1 -1
  946. package/dist/views/Edit/Auth/types.d.ts +3 -1
  947. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  948. package/dist/views/Edit/Auth/types.js.map +1 -1
  949. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  950. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  951. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  952. package/dist/views/Edit/index.css +62 -53
  953. package/dist/views/Edit/index.d.ts.map +1 -1
  954. package/dist/views/Edit/index.js +3 -2
  955. package/dist/views/Edit/index.js.map +1 -1
  956. package/dist/views/ForgotPassword/ForgotPasswordForm/index.css +14 -0
  957. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  958. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +209 -161
  959. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  960. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  961. package/dist/views/ForgotPassword/index.js +2 -11
  962. package/dist/views/ForgotPassword/index.js.map +1 -1
  963. package/dist/views/HierarchyList/HierarchyTable/SlotTable.css +1 -0
  964. package/dist/views/HierarchyList/TypeFilter/index.d.ts.map +1 -1
  965. package/dist/views/HierarchyList/TypeFilter/index.js +6 -7
  966. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  967. package/dist/views/HierarchyList/index.css +2 -1
  968. package/dist/views/List/ListHeader/index.css +1 -0
  969. package/dist/views/List/ListHeader/index.d.ts +1 -11
  970. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  971. package/dist/views/List/ListHeader/index.js +3 -9
  972. package/dist/views/List/ListHeader/index.js.map +1 -1
  973. package/dist/views/List/enrichDocsWithVersionStatus.d.ts.map +1 -1
  974. package/dist/views/List/enrichDocsWithVersionStatus.js +1 -0
  975. package/dist/views/List/enrichDocsWithVersionStatus.js.map +1 -1
  976. package/dist/views/List/handleServerFunction.d.ts.map +1 -1
  977. package/dist/views/List/handleServerFunction.js +4 -1
  978. package/dist/views/List/handleServerFunction.js.map +1 -1
  979. package/dist/views/List/index.client.d.ts.map +1 -1
  980. package/dist/views/List/index.client.js +130 -138
  981. package/dist/views/List/index.client.js.map +1 -1
  982. package/dist/views/List/index.css +8 -1
  983. package/dist/views/List/index.d.ts.map +1 -1
  984. package/dist/views/List/index.js +6 -1
  985. package/dist/views/List/index.js.map +1 -1
  986. package/dist/views/Logout/index.d.ts.map +1 -1
  987. package/dist/views/Logout/index.js +11 -0
  988. package/dist/views/Logout/index.js.map +1 -1
  989. package/dist/views/NotFound/client.d.ts +2 -0
  990. package/dist/views/NotFound/client.d.ts.map +1 -0
  991. package/dist/views/NotFound/client.js +4 -0
  992. package/dist/views/NotFound/client.js.map +1 -0
  993. package/dist/views/NotFound/page.d.ts +4 -11
  994. package/dist/views/NotFound/page.d.ts.map +1 -1
  995. package/dist/views/NotFound/page.js +6 -5
  996. package/dist/views/NotFound/page.js.map +1 -1
  997. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  998. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  999. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  1000. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  1001. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  1002. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  1003. package/dist/views/Root/index.d.ts +17 -7
  1004. package/dist/views/Root/index.d.ts.map +1 -1
  1005. package/dist/views/Root/index.js +44 -27
  1006. package/dist/views/Root/index.js.map +1 -1
  1007. package/dist/views/Verify/index.d.ts +1 -1
  1008. package/dist/views/Verify/index.d.ts.map +1 -1
  1009. package/dist/views/Verify/index.js +4 -4
  1010. package/dist/views/Verify/index.js.map +1 -1
  1011. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  1012. package/dist/views/Version/Default/SetStepNav.js +10 -13
  1013. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  1014. package/dist/views/Version/Default/index.css +2 -0
  1015. package/dist/views/Version/Default/index.d.ts.map +1 -1
  1016. package/dist/views/Version/Default/index.js +12 -13
  1017. package/dist/views/Version/Default/index.js.map +1 -1
  1018. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  1019. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  1020. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  1021. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  1022. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  1023. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  1024. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  1025. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts +3 -2
  1026. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.d.ts.map +1 -1
  1027. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  1028. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts +3 -2
  1029. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.d.ts.map +1 -1
  1030. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  1031. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.css +8 -0
  1032. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts +3 -2
  1033. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.d.ts.map +1 -1
  1034. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  1035. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts +3 -2
  1036. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.d.ts.map +1 -1
  1037. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  1038. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  1039. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  1040. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  1041. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.d.ts.map +1 -1
  1042. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js +1 -0
  1043. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/generateLabelFromValue.js.map +1 -1
  1044. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.css +1 -0
  1045. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts +2 -2
  1046. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  1047. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  1048. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts +3 -2
  1049. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.d.ts.map +1 -1
  1050. package/dist/views/Version/RenderFieldsToDiff/fields/Row/index.js.map +1 -1
  1051. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -2
  1052. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  1053. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  1054. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -2
  1055. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  1056. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  1057. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts +3 -2
  1058. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.d.ts.map +1 -1
  1059. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  1060. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.css +1 -0
  1061. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts +2 -2
  1062. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.d.ts.map +1 -1
  1063. package/dist/views/Version/RenderFieldsToDiff/fields/Upload/index.js.map +1 -1
  1064. package/dist/views/Version/RenderFieldsToDiff/index.css +2 -0
  1065. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  1066. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  1067. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  1068. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  1069. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  1070. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  1071. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  1072. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  1073. package/dist/views/Version/Restore/index.js +9 -6
  1074. package/dist/views/Version/Restore/index.js.map +1 -1
  1075. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  1076. package/dist/views/Version/SelectLocales/index.js +1 -0
  1077. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  1078. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  1079. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  1080. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  1081. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  1082. package/dist/views/Versions/VersionPillLabel/index.css +1 -0
  1083. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  1084. package/dist/views/Versions/index.css +1 -0
  1085. package/dist/widgets/CollectionCards/index.css +4 -0
  1086. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -2
  1087. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  1088. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  1089. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts +3 -2
  1090. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +1 -1
  1091. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +1 -1
  1092. package/package.json +13 -12
  1093. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +0 -541
  1094. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +0 -1
  1095. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js +0 -87
  1096. package/dist/elements/ColumnSelection/matchesColumnSearch.spec.js.map +0 -1
  1097. package/dist/elements/CommandPalette/buildActions.spec.js +0 -158
  1098. package/dist/elements/CommandPalette/buildActions.spec.js.map +0 -1
  1099. package/dist/elements/CommandPalette/highlightLabel.spec.js +0 -78
  1100. package/dist/elements/CommandPalette/highlightLabel.spec.js.map +0 -1
  1101. package/dist/elements/RelationshipTable/Pagination.css +0 -39
  1102. package/dist/elements/Toasts/fieldErrors.spec.js +0 -46
  1103. package/dist/elements/Toasts/fieldErrors.spec.js.map +0 -1
  1104. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js +0 -152
  1105. package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.spec.js.map +0 -1
  1106. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts +0 -2
  1107. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.d.ts.map +0 -1
  1108. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +0 -67
  1109. package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +0 -1
  1110. package/dist/layouts/Root/index.spec.js +0 -20
  1111. package/dist/layouts/Root/index.spec.js.map +0 -1
  1112. package/dist/scss/app.scss +0 -183
  1113. package/dist/scss/colors.scss +0 -191
  1114. package/dist/scss/custom.css +0 -1
  1115. package/dist/scss/queries.scss +0 -27
  1116. package/dist/scss/styles.scss +0 -9
  1117. package/dist/scss/svg.scss +0 -10
  1118. package/dist/scss/toastify.scss +0 -61
  1119. package/dist/scss/vars.scss +0 -192
  1120. package/dist/scss/z-index.scss +0 -9
  1121. package/dist/utilities/appendCacheTag.spec.js +0 -34
  1122. package/dist/utilities/appendCacheTag.spec.js.map +0 -1
  1123. package/dist/utilities/formatMetadata.spec.js +0 -83
  1124. package/dist/utilities/formatMetadata.spec.js.map +0 -1
  1125. package/dist/utilities/fuzzyMatch.spec.js +0 -38
  1126. package/dist/utilities/fuzzyMatch.spec.js.map +0 -1
  1127. package/dist/utilities/getRequestLocale.d.ts +0 -7
  1128. package/dist/utilities/getRequestLocale.d.ts.map +0 -1
  1129. package/dist/utilities/getRequestLocale.js +0 -20
  1130. package/dist/utilities/getRequestLocale.js.map +0 -1
  1131. package/dist/utilities/initReq.d.ts +0 -16
  1132. package/dist/utilities/initReq.d.ts.map +0 -1
  1133. package/dist/utilities/initReq.js +0 -111
  1134. package/dist/utilities/initReq.js.map +0 -1
  1135. package/dist/utilities/isCustomAdminView.spec.js +0 -90
  1136. package/dist/utilities/isCustomAdminView.spec.js.map +0 -1
  1137. package/dist/utilities/isPathMatchingRoute.spec.js +0 -178
  1138. package/dist/utilities/isPathMatchingRoute.spec.js.map +0 -1
  1139. package/dist/utilities/normalizeRelationshipValue.spec.js +0 -373
  1140. package/dist/utilities/normalizeRelationshipValue.spec.js.map +0 -1
  1141. package/dist/utilities/recentlyViewed.spec.js +0 -92
  1142. package/dist/utilities/recentlyViewed.spec.js.map +0 -1
  1143. package/dist/utilities/selectiveCache.d.ts +0 -12
  1144. package/dist/utilities/selectiveCache.d.ts.map +0 -1
  1145. package/dist/utilities/selectiveCache.js +0 -37
  1146. package/dist/utilities/selectiveCache.js.map +0 -1
  1147. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js +0 -168
  1148. package/dist/views/Root/getCustomCollectionViewByRoute.spec.js.map +0 -1
  1149. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +0 -861
  1150. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +0 -1
  1151. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js +0 -47
  1152. package/dist/views/Version/RenderFieldsToDiff/utilities/fieldHasChanges.spec.js.map +0 -1
  1153. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +0 -135
  1154. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +0 -1
  1155. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js +0 -100
  1156. package/dist/widgets/CollectionQuery/getCollectionFieldPaths.spec.js.map +0 -1
@@ -2,8 +2,7 @@
2
2
 
3
3
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
4
4
  export * as PopupList from './PopupButtonList/index.js';
5
- import React, { createContext, use, useCallback, useEffect, useRef, useState } from 'react';
6
- import { createPortal } from 'react-dom';
5
+ import React, { createContext, use, useCallback, useEffect, useId, useRef, useState } from 'react';
7
6
  import { useEffectEvent } from '../../hooks/useEffectEvent.js';
8
7
  import { ThemeProvider } from '../../providers/Theme/index.js';
9
8
  import './index.css';
@@ -14,24 +13,13 @@ const PopupContext = /*#__PURE__*/createContext(null);
14
13
  * Selector for all elements the browser considers tabbable.
15
14
  */
16
15
  const TABBABLE_SELECTOR = ['a[href]', 'button:not(:disabled)', 'input:not(:disabled):not([type="hidden"])', 'select:not(:disabled)', 'textarea:not(:disabled)', '[tabindex]', '[contenteditable]:not([contenteditable="false"])', 'audio[controls]', 'video[controls]', 'summary'].map(s => `${s}:not([tabindex="-1"])`).join(', ');
17
- /**
18
- * Returns whether the element has a `position: fixed` ancestor (e.g. an open Drawer).
19
- * Such popups must be positioned with `fixed` so they don't drift when the background scrolls.
20
- */
21
- const hasFixedAncestor = element => {
22
- let node = element?.parentElement;
23
- while (node && node !== document.body) {
24
- if (window.getComputedStyle(node).position === 'fixed') {
25
- return true;
26
- }
27
- node = node.parentElement;
28
- }
29
- return false;
30
- };
16
+ const MENU_ITEM_SELECTOR = '[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]';
17
+ const POPUP_CONTENT_SELECTOR = `.${baseClass}__content, .${baseClass}__hidden-content`;
18
+ const getMenuItems = popup => Array.from(popup.querySelectorAll(MENU_ITEM_SELECTOR)).filter(item => item.closest(POPUP_CONTENT_SELECTOR) === popup);
31
19
  /**
32
20
  * Component that renders a popup, as well as a button that triggers the popup.
33
21
  *
34
- * The popup is rendered in a portal, and is automatically positioned above / below the trigger,
22
+ * The popup is rendered next to its trigger in the DOM and positioned above / below it,
35
23
  * depending on the verticalAlign prop and the space available.
36
24
  */
37
25
  export const Popup = props => {
@@ -52,6 +40,8 @@ export const Popup = props => {
52
40
  noBackground,
53
41
  onToggleClose,
54
42
  onToggleOpen,
43
+ popupAriaLabel,
44
+ popupType,
55
45
  portalClassName,
56
46
  render,
57
47
  renderButton,
@@ -64,11 +54,8 @@ export const Popup = props => {
64
54
  } = props;
65
55
  const popupRef = useRef(null);
66
56
  const triggerRef = useRef(null);
67
- /**
68
- * Whether the trigger is inside a `position: fixed` ancestor (e.g. a Drawer),
69
- * in which case the popup is positioned with `fixed` instead of `absolute`.
70
- */
71
- const isFixedRef = useRef(false);
57
+ const generatedContentId = useId();
58
+ const contentId = `${id || generatedContentId}-content`;
72
59
  /**
73
60
  * Keeps track of whether the popup was opened via keyboard.
74
61
  * This is used to determine whether to autofocus the first element in the popup.
@@ -76,13 +63,9 @@ export const Popup = props => {
76
63
  */
77
64
  const openedViaKeyboardRef = useRef(false);
78
65
  const parentPopup = use(PopupContext);
79
- const [mounted, setMounted] = useState(false);
66
+ const popupRole = popupType === true ? 'menu' : popupType || undefined;
80
67
  const [active, setActiveInternal] = useState(initActive);
81
68
  const [isOnTop, setIsOnTop] = useState(verticalAlign === 'top');
82
- // Track when component is mounted to avoid SSR/client hydration mismatch
83
- useEffect(() => {
84
- setMounted(true);
85
- }, []);
86
69
  const setActive = useCallback((isActive, viaKeyboard = false) => {
87
70
  if (isActive) {
88
71
  openedViaKeyboardRef.current = viaKeyboard;
@@ -92,6 +75,26 @@ export const Popup = props => {
92
75
  }
93
76
  setActiveInternal(isActive);
94
77
  }, [onToggleClose, onToggleOpen]);
78
+ const closePopup = useCallback(({
79
+ restoreFocus = true
80
+ } = {}) => {
81
+ const trigger = triggerRef.current?.querySelector('button, [tabindex="0"]');
82
+ setActive(false);
83
+ if (restoreFocus) {
84
+ requestAnimationFrame(() => trigger?.focus());
85
+ }
86
+ }, [setActive]);
87
+ const close = useCallback(() => closePopup(), [closePopup]);
88
+ const closePopupChain = useCallback((options = {}) => {
89
+ if (parentPopup) {
90
+ closePopup({
91
+ restoreFocus: false
92
+ });
93
+ parentPopup.closePopupChain(options);
94
+ return;
95
+ }
96
+ closePopup(options);
97
+ }, [closePopup, parentPopup]);
95
98
  // /////////////////////////////////////
96
99
  // Position Calculation
97
100
  //
@@ -100,20 +103,15 @@ export const Popup = props => {
100
103
  // styles if the calculated position differs from current position.
101
104
  // /////////////////////////////////////
102
105
  const updatePosition = useEffectEvent(() => {
103
- const trigger = triggerRef.current;
106
+ const trigger_0 = triggerRef.current;
104
107
  const popup = popupRef.current;
105
- if (!trigger || !popup) {
108
+ if (!trigger_0 || !popup) {
106
109
  return;
107
110
  }
108
- const triggerRect = trigger.getBoundingClientRect();
111
+ const triggerRect = trigger_0.getBoundingClientRect();
109
112
  const popupRect = popup.getBoundingClientRect();
110
- // Inside a fixed ancestor, use `fixed` (no scroll offset) so background scrolling
111
- // doesn't shift the popup. Otherwise use page coordinates (absolute).
112
- const useFixed = isFixedRef.current;
113
- const scrollY = useFixed ? 0 : window.scrollY;
114
- const scrollX = useFixed ? 0 : window.scrollX;
115
113
  // Gap between the popup and the trigger/viewport edges (in pixels)
116
- const offset = 10;
114
+ const offset = 8;
117
115
  // Additional gap used in side mode so the child popup has breathing room from its parent
118
116
  const sideOffset = 4;
119
117
  let top;
@@ -127,9 +125,9 @@ export const Popup = props => {
127
125
  // viewport space.
128
126
  // /////////////////////////////////////
129
127
  // Top: align with trigger top, clamped to viewport
130
- top = triggerRect.top + scrollY;
131
- const maxTop = scrollY + window.innerHeight - popupRect.height - offset;
132
- top = Math.max(scrollY + offset, Math.min(top, maxTop));
128
+ top = triggerRect.top;
129
+ const maxTop = window.innerHeight - popupRect.height - offset;
130
+ top = Math.max(offset, Math.min(top, maxTop));
133
131
  // Use the parent popup's bounding rect as the reference for left/right positioning
134
132
  // so the child appears 4px from the parent popup edge, not just the trigger button.
135
133
  const anchorRect = parentPopup?.popupRef.current ? parentPopup.popupRef.current.getBoundingClientRect() : triggerRect;
@@ -146,7 +144,7 @@ export const Popup = props => {
146
144
  left = anchorRect.left - popupRect.width - sideOffset;
147
145
  }
148
146
  }
149
- left = left + scrollX;
147
+ left = Math.max(offset, Math.min(left, Math.max(offset, window.innerWidth - popupRect.width - offset)));
150
148
  // Caret not used in side mode; set a neutral value
151
149
  caretLeft = popupRect.width / 2;
152
150
  setIsOnTop(false);
@@ -159,23 +157,25 @@ export const Popup = props => {
159
157
  // /////////////////////////////////////
160
158
  let onTop = verticalAlign === 'top';
161
159
  if (verticalAlign === 'bottom') {
162
- top = triggerRect.bottom + scrollY + offset;
160
+ top = triggerRect.bottom + offset;
163
161
  if (triggerRect.bottom + popupRect.height + offset > window.innerHeight) {
164
162
  // Try to flip above — only do so if there's actually enough room
165
- const topIfAbove = triggerRect.top + scrollY - popupRect.height - offset;
166
- if (topIfAbove >= scrollY) {
163
+ const topIfAbove = triggerRect.top - popupRect.height - offset;
164
+ if (topIfAbove >= 0) {
167
165
  top = topIfAbove;
168
166
  onTop = true;
169
167
  }
170
168
  // else: not enough room above either — keep below and let it overflow rather than going off-screen
171
169
  }
172
170
  } else {
173
- top = triggerRect.top + scrollY - popupRect.height - offset;
171
+ top = triggerRect.top - popupRect.height - offset;
174
172
  if (triggerRect.top - popupRect.height - offset < 0) {
175
- top = triggerRect.bottom + scrollY + offset;
173
+ top = triggerRect.bottom + offset;
176
174
  onTop = false;
177
175
  }
178
176
  }
177
+ const maxTop_0 = Math.max(offset, window.innerHeight - popupRect.height - offset);
178
+ top = Math.max(offset, Math.min(top, maxTop_0));
179
179
  setIsOnTop(onTop);
180
180
  // /////////////////////////////////////
181
181
  // Horizontal Positioning
@@ -204,9 +204,9 @@ export const Popup = props => {
204
204
  // Values are rounded to match browser's CSS precision and avoid false updates.
205
205
  // /////////////////////////////////////
206
206
  const newTop = `${Math.round(top)}px`;
207
- const newLeft = `${Math.round(left + scrollX)}px`;
207
+ const newLeft = `${Math.round(left)}px`;
208
208
  const newCaretLeft = `${Math.round(caretLeft)}px`;
209
- const newPosition = useFixed ? 'fixed' : '';
209
+ const newPosition = 'fixed';
210
210
  if (popup.style.position !== newPosition) {
211
211
  popup.style.position = newPosition;
212
212
  }
@@ -245,8 +245,8 @@ export const Popup = props => {
245
245
  // Keyboard Navigation
246
246
  // Handles keyboard interactions when popup is open:
247
247
  // - Escape: closes popup and returns focus to trigger
248
- // - Tab/Shift+Tab: cycles through focusable items with wrapping
249
- // - ArrowUp/ArrowDown: same as Shift+Tab/Tab for menu-style navigation
248
+ // - Tab/Shift+Tab: closes menus; dialogs retain normal document tab order
249
+ // - ArrowUp/ArrowDown: moves between menu items with wrapping
250
250
  // Focus is managed manually to support elements the browser might skip.
251
251
  // /////////////////////////////////////
252
252
  const handleKeyDown = useEffectEvent(e_0 => {
@@ -254,29 +254,55 @@ export const Popup = props => {
254
254
  if (!popup_0 || !active) {
255
255
  return;
256
256
  }
257
+ const activePopup = document.activeElement?.closest(`.${baseClass}__content`);
258
+ if (activePopup && activePopup !== popup_0) {
259
+ return;
260
+ }
257
261
  if (e_0.key === 'Escape') {
258
262
  e_0.preventDefault();
259
- setActive(false);
260
- triggerRef.current?.querySelector('button, [tabindex="0"]')?.focus();
263
+ e_0.stopPropagation();
264
+ closePopup();
261
265
  return;
262
266
  }
263
- if (e_0.key === 'Tab' || e_0.key === 'ArrowDown' || e_0.key === 'ArrowUp') {
267
+ if (e_0.key === 'Tab' && popupRole === 'menu') {
268
+ if (e_0.shiftKey) {
269
+ e_0.preventDefault();
270
+ closePopupChain({
271
+ restoreFocus: true
272
+ });
273
+ return;
274
+ }
275
+ setTimeout(closePopupChain);
276
+ return;
277
+ }
278
+ if (['ArrowDown', 'ArrowUp', 'End', 'Home'].includes(e_0.key)) {
279
+ const menuItems = getMenuItems(popup_0);
280
+ if (menuItems.length > 0) {
281
+ e_0.preventDefault();
282
+ const currentIndex = menuItems.findIndex(item => item === document.activeElement);
283
+ const nextIndex = e_0.key === 'Home' ? 0 : e_0.key === 'End' ? menuItems.length - 1 : e_0.key === 'ArrowUp' ? currentIndex <= 0 ? menuItems.length - 1 : currentIndex - 1 : currentIndex === -1 || currentIndex === menuItems.length - 1 ? 0 : currentIndex + 1;
284
+ menuItems.forEach((item_0, index) => item_0.setAttribute('tabindex', index === nextIndex ? '0' : '-1'));
285
+ menuItems[nextIndex].focus();
286
+ return;
287
+ }
288
+ }
289
+ if (e_0.key === 'ArrowDown' || e_0.key === 'ArrowUp') {
264
290
  const focusable = Array.from(popup_0.querySelectorAll(TABBABLE_SELECTOR));
265
291
  if (focusable.length === 0) {
266
292
  return;
267
293
  }
268
294
  e_0.preventDefault();
269
- const currentIndex = focusable.findIndex(el => el === document.activeElement);
270
- const goBackward = e_0.key === 'ArrowUp' || e_0.key === 'Tab' && e_0.shiftKey;
271
- let nextIndex;
272
- if (currentIndex === -1) {
273
- nextIndex = goBackward ? focusable.length - 1 : 0;
295
+ const currentIndex_0 = focusable.findIndex(el => el === document.activeElement);
296
+ const goBackward = e_0.key === 'ArrowUp';
297
+ let nextIndex_0;
298
+ if (currentIndex_0 === -1) {
299
+ nextIndex_0 = goBackward ? focusable.length - 1 : 0;
274
300
  } else if (goBackward) {
275
- nextIndex = currentIndex === 0 ? focusable.length - 1 : currentIndex - 1;
301
+ nextIndex_0 = currentIndex_0 === 0 ? focusable.length - 1 : currentIndex_0 - 1;
276
302
  } else {
277
- nextIndex = currentIndex === focusable.length - 1 ? 0 : currentIndex + 1;
303
+ nextIndex_0 = currentIndex_0 === focusable.length - 1 ? 0 : currentIndex_0 + 1;
278
304
  }
279
- focusable[nextIndex].focus();
305
+ focusable[nextIndex_0].focus();
280
306
  }
281
307
  });
282
308
  // /////////////////////////////////////
@@ -292,11 +318,14 @@ export const Popup = props => {
292
318
  // Check if the clicked element or any ancestor is an actionable element
293
319
  const actionable = target_0.closest('button, a[href], [role="button"], [role="menuitem"]');
294
320
  if (actionable && popupRef.current?.contains(actionable)) {
321
+ if (actionable.closest(`.${baseClass}__content`) !== popupRef.current) {
322
+ return;
323
+ }
295
324
  // Don't close if clicking a nested popup's trigger — it will manage its own open state
296
325
  if (actionable.closest(`.${baseClass}__trigger-wrap`)) {
297
326
  return;
298
327
  }
299
- setActive(false);
328
+ closePopup();
300
329
  }
301
330
  });
302
331
  // /////////////////////////////////////
@@ -320,6 +349,11 @@ export const Popup = props => {
320
349
  if (!popup_2) {
321
350
  return;
322
351
  }
352
+ if (!popup_2.matches(':popover-open')) {
353
+ popup_2.showPopover();
354
+ }
355
+ const menuItems_0 = getMenuItems(popup_2);
356
+ menuItems_0.forEach((item_1, index_0) => item_1.setAttribute('tabindex', index_0 === 0 ? '0' : '-1'));
323
357
  // /////////////////////////////////////
324
358
  // Initial Position
325
359
  // Calculate and apply popup position.
@@ -334,8 +368,6 @@ export const Popup = props => {
334
368
  // (e.g. ColumnSelection popup content rendering after hidden → visible
335
369
  // class switch), which was causing incorrect flip-to-top decisions.
336
370
  // /////////////////////////////////////
337
- // Decide the positioning strategy once per open.
338
- isFixedRef.current = hasFixedAncestor(triggerRef.current);
339
371
  updatePosition();
340
372
  const rafId = requestAnimationFrame(() => {
341
373
  updatePosition();
@@ -348,7 +380,7 @@ export const Popup = props => {
348
380
  if (openedViaKeyboardRef.current) {
349
381
  // Use requestAnimationFrame to ensure DOM is ready.
350
382
  requestAnimationFrame(() => {
351
- const firstFocusable = popup_2.querySelector(TABBABLE_SELECTOR);
383
+ const firstFocusable = menuItems_0[0] ?? popup_2.querySelector(TABBABLE_SELECTOR);
352
384
  firstFocusable?.focus();
353
385
  });
354
386
  }
@@ -364,7 +396,7 @@ export const Popup = props => {
364
396
  passive: true
365
397
  });
366
398
  document.addEventListener('mousedown', handleClickOutside);
367
- document.addEventListener('keydown', handleKeyDown);
399
+ popup_2.addEventListener('keydown', handleKeyDown);
368
400
  popup_2.addEventListener('click', handleActionableClick);
369
401
  return () => {
370
402
  cancelAnimationFrame(rafId);
@@ -373,8 +405,11 @@ export const Popup = props => {
373
405
  capture: true
374
406
  });
375
407
  document.removeEventListener('mousedown', handleClickOutside);
376
- document.removeEventListener('keydown', handleKeyDown);
408
+ popup_2.removeEventListener('keydown', handleKeyDown);
377
409
  popup_2.removeEventListener('click', handleActionableClick);
410
+ if (popup_2.matches(':popover-open')) {
411
+ popup_2.hidePopover();
412
+ }
378
413
  };
379
414
  }, [active]);
380
415
  useEffect(() => {
@@ -388,8 +423,11 @@ export const Popup = props => {
388
423
  buttonAriaLabel: buttonAriaLabel,
389
424
  buttonType: buttonType,
390
425
  className: buttonClassName,
426
+ contentId: contentId,
391
427
  disabled: disabled,
428
+ isMenuItem: parentPopup?.popupRole === 'menu',
392
429
  noBackground: noBackground,
430
+ popupType: popupType,
393
431
  renderButton: renderButton,
394
432
  setActive: setActive,
395
433
  size: buttonSize
@@ -408,39 +446,40 @@ export const Popup = props => {
408
446
  tabIndex: 0,
409
447
  children: Trigger
410
448
  }) : Trigger
411
- }), mounted ?
412
- // This ensures that components within the popup, like modals, do not unmount when the popup closes.
413
- // Otherwise, modals opened from the popup will close unexpectedly when clicking within the modal, since
414
- // that closes the popup due to the click outside handler.
415
- /*#__PURE__*/
416
- createPortal(/*#__PURE__*/_jsx(PopupContext, {
449
+ }), /*#__PURE__*/_jsx(PopupContext, {
417
450
  value: {
418
- popupRef
451
+ closePopupChain,
452
+ popupRef,
453
+ popupRole
419
454
  },
420
455
  children: /*#__PURE__*/_jsxs("div", {
456
+ "aria-label": popupAriaLabel,
421
457
  className: active ? [`${baseClass}__content`, `${baseClass}--size-${size}`, side ? `${baseClass}--side-${side}` : isOnTop ? `${baseClass}--v-top` : `${baseClass}--v-bottom`, portalClassName].filter(Boolean).join(' ') :
422
458
  // tests do not accidentally target inactive popups.
423
459
  `${baseClass}__hidden-content`,
424
460
  "data-popup-id": id || undefined,
425
461
  "data-theme": theme === 'auto' ? undefined : theme,
462
+ id: contentId,
463
+ popover: "manual",
426
464
  ref: popupRef,
465
+ role: popupRole,
427
466
  children: [/*#__PURE__*/_jsx("div", {
428
467
  className: `${baseClass}__scroll-container${showScrollbar ? ` ${baseClass}__scroll-container--show-scrollbar` : ''}`,
429
468
  children: theme === 'auto' ? /*#__PURE__*/_jsxs(_Fragment, {
430
469
  children: [render?.({
431
- close: () => setActive(false)
470
+ close
432
471
  }), children]
433
472
  }) : /*#__PURE__*/_jsxs(ThemeProvider, {
434
473
  theme: theme,
435
474
  children: [render?.({
436
- close: () => setActive(false)
475
+ close
437
476
  }), children]
438
477
  })
439
478
  }), caret && !side && /*#__PURE__*/_jsx("div", {
440
479
  className: `${baseClass}__caret`
441
480
  })]
442
481
  })
443
- }), document.body) : null]
482
+ })]
444
483
  });
445
484
  };
446
485
  //# sourceMappingURL=index.js.map
@@ -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"}