@payloadcms/ui 4.0.0-internal.ea6e8f8 → 4.0.0-internal.ec73d44

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 (934) hide show
  1. package/dist/css/app.css +2 -2
  2. package/dist/css/colors.css +65 -0
  3. package/dist/css/preflight.css +21 -2
  4. package/dist/elements/APIKeyInput/index.js +22 -23
  5. package/dist/elements/APIKeyInput/index.js.map +1 -1
  6. package/dist/elements/AddNewRelation/index.js +17 -19
  7. package/dist/elements/AddNewRelation/index.js.map +1 -1
  8. package/dist/elements/AppHeader/index.css +1 -1
  9. package/dist/elements/AppHeader/index.d.ts.map +1 -1
  10. package/dist/elements/AppHeader/index.js +5 -1
  11. package/dist/elements/AppHeader/index.js.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +39 -30
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/Autosave/index.js +236 -143
  15. package/dist/elements/Autosave/index.js.map +1 -1
  16. package/dist/elements/BranchSelector/index.d.ts.map +1 -1
  17. package/dist/elements/BranchSelector/index.js +285 -204
  18. package/dist/elements/BranchSelector/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/EditMany/index.js +29 -21
  25. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  27. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  28. package/dist/elements/BulkUpload/FormsManager/index.js +1 -34
  29. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  30. package/dist/elements/BulkUpload/index.js +63 -23
  31. package/dist/elements/BulkUpload/index.js.map +1 -1
  32. package/dist/elements/BulkUpload/useUploadCollectionOptions.js.map +1 -1
  33. package/dist/elements/Button/index.css +3 -3
  34. package/dist/elements/Button/index.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +2 -1
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/types.d.ts +1 -0
  38. package/dist/elements/Button/types.d.ts.map +1 -1
  39. package/dist/elements/Button/types.js.map +1 -1
  40. package/dist/elements/CardGrid/index.css +0 -1
  41. package/dist/elements/ChangeSummary/index.js.map +1 -1
  42. package/dist/elements/Chip/index.js.map +1 -1
  43. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  44. package/dist/elements/ClipboardAction/index.js +213 -88
  45. package/dist/elements/ClipboardAction/index.js.map +1 -1
  46. package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
  47. package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
  48. package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
  49. package/dist/elements/CodeEditor/CodeEditor.d.ts.map +1 -1
  50. package/dist/elements/CodeEditor/CodeEditor.js +99 -55
  51. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  52. package/dist/elements/CollapseAllToggle/index.js +47 -32
  53. package/dist/elements/CollapseAllToggle/index.js.map +1 -1
  54. package/dist/elements/Collapsible/index.css +15 -4
  55. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  56. package/dist/elements/Collapsible/index.js +46 -38
  57. package/dist/elements/Collapsible/index.js.map +1 -1
  58. package/dist/elements/Collapsible/provider.js +37 -14
  59. package/dist/elements/Collapsible/provider.js.map +1 -1
  60. package/dist/elements/ColumnSelection/Popup.css +4 -0
  61. package/dist/elements/ColumnSelection/Popup.js +10 -2
  62. package/dist/elements/ColumnSelection/Popup.js.map +1 -1
  63. package/dist/elements/ColumnSelection/index.js.map +1 -1
  64. package/dist/elements/CommandPalette/index.css +8 -0
  65. package/dist/elements/ConfirmationModal/index.d.ts +3 -0
  66. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  67. package/dist/elements/ConfirmationModal/index.js +2 -0
  68. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  69. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  70. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  71. package/dist/elements/CreateDocumentButton/index.js +45 -43
  72. package/dist/elements/CreateDocumentButton/index.js.map +1 -1
  73. package/dist/elements/DatePicker/DatePicker.js +6 -2
  74. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  75. package/dist/elements/DatePicker/index.css +40 -25
  76. package/dist/elements/DatePicker/useDatePickerKeyboard.js.map +1 -1
  77. package/dist/elements/DefaultListViewTabs/index.css +4 -0
  78. package/dist/elements/DefaultListViewTabs/index.js +47 -37
  79. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  80. package/dist/elements/DelayedSpinner/index.js.map +1 -1
  81. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  82. package/dist/elements/DeleteDocument/index.js +1 -3
  83. package/dist/elements/DeleteDocument/index.js.map +1 -1
  84. package/dist/elements/Dialog/DialogCancel/index.js.map +1 -1
  85. package/dist/elements/Dialog/DialogConfirm/index.js.map +1 -1
  86. package/dist/elements/Dialog/DialogHeader/index.js.map +1 -1
  87. package/dist/elements/Dialog/DialogModal/index.js.map +1 -1
  88. package/dist/elements/DocumentCard/index.d.ts +2 -0
  89. package/dist/elements/DocumentCard/index.d.ts.map +1 -1
  90. package/dist/elements/DocumentCard/index.js +2 -0
  91. package/dist/elements/DocumentCard/index.js.map +1 -1
  92. package/dist/elements/DocumentControls/index.css +13 -10
  93. package/dist/elements/DocumentControls/index.js +1 -1
  94. package/dist/elements/DocumentControls/index.js.map +1 -1
  95. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  96. package/dist/elements/DocumentDrawer/types.d.ts +1 -5
  97. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  98. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  99. package/dist/elements/DocumentFields/index.css +7 -7
  100. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  101. package/dist/elements/DocumentFields/index.js +125 -65
  102. package/dist/elements/DocumentFields/index.js.map +1 -1
  103. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -1
  104. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  105. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +80 -34
  106. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  107. package/dist/elements/DocumentHeader/Tabs/Tab/index.css +4 -0
  108. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  109. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  110. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  111. package/dist/elements/DocumentLocked/index.js +1 -0
  112. package/dist/elements/DocumentLocked/index.js.map +1 -1
  113. package/dist/elements/DocumentStaleData/index.js.map +1 -1
  114. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  115. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js +2 -0
  116. package/dist/elements/DraggableSortable/DragOverlayPreview/index.js.map +1 -1
  117. package/dist/elements/DraggableSortable/DraggableSortableItem/index.d.ts.map +1 -1
  118. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +10 -7
  119. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  120. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts +2 -0
  121. package/dist/elements/DraggableSortable/DraggableSortableItem/types.d.ts.map +1 -1
  122. package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
  123. package/dist/elements/DraggableSortable/index.d.ts.map +1 -1
  124. package/dist/elements/DraggableSortable/index.js +104 -170
  125. package/dist/elements/DraggableSortable/index.js.map +1 -1
  126. package/dist/elements/DraggableSortable/types.d.ts +1 -0
  127. package/dist/elements/DraggableSortable/types.d.ts.map +1 -1
  128. package/dist/elements/DraggableSortable/types.js.map +1 -1
  129. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  130. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts +14 -0
  131. package/dist/elements/DraggableSortable/useRowAccessibility.d.ts.map +1 -0
  132. package/dist/elements/DraggableSortable/useRowAccessibility.js +99 -0
  133. package/dist/elements/DraggableSortable/useRowAccessibility.js.map +1 -0
  134. package/dist/elements/Drawer/index.js +138 -81
  135. package/dist/elements/Drawer/index.js.map +1 -1
  136. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  137. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  138. package/dist/elements/DrawerHeader/index.js.map +1 -1
  139. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +177 -62
  140. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  141. package/dist/elements/EditMany/DrawerContent.js +1 -1
  142. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  143. package/dist/elements/EditMany/index.js.map +1 -1
  144. package/dist/elements/EditUpload/library.css +6 -13
  145. package/dist/elements/FieldDiffContainer/index.d.ts.map +1 -1
  146. package/dist/elements/FieldDiffContainer/index.js +7 -1
  147. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  148. package/dist/elements/FieldDiffLabel/index.d.ts +1 -0
  149. package/dist/elements/FieldDiffLabel/index.d.ts.map +1 -1
  150. package/dist/elements/FieldDiffLabel/index.js +2 -0
  151. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  152. package/dist/elements/FieldSelect/index.js +23 -14
  153. package/dist/elements/FieldSelect/index.js.map +1 -1
  154. package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
  155. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  156. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  157. package/dist/elements/FileManager/FilePreview/index.js.map +1 -1
  158. package/dist/elements/FileManager/index.js.map +1 -1
  159. package/dist/elements/FullscreenModal/index.js.map +1 -1
  160. package/dist/elements/GenerateConfirmation/index.js +21 -21
  161. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  162. package/dist/elements/GroupBy/Popup.js.map +1 -1
  163. package/dist/elements/GroupBy/index.js +120 -66
  164. package/dist/elements/GroupBy/index.js.map +1 -1
  165. package/dist/elements/HTMLDiff/colors.css +7 -0
  166. package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
  167. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +51 -42
  168. package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
  169. package/dist/elements/Hierarchy/DocHeaderButton/index.js +1 -1
  170. package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
  171. package/dist/elements/Hierarchy/EditButton/index.js.map +1 -1
  172. package/dist/elements/Hierarchy/HydrateProvider/index.js.map +1 -1
  173. package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -1
  174. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js +25 -18
  175. package/dist/elements/Hierarchy/Search/HierarchySearchResultItem.js.map +1 -1
  176. package/dist/elements/Hierarchy/Search/HierarchySearchResults.js.map +1 -1
  177. package/dist/elements/Hierarchy/Search/index.js.map +1 -1
  178. package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
  179. package/dist/elements/Hierarchy/Tree/TreeFocusContext.js.map +1 -1
  180. package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
  181. package/dist/elements/Hierarchy/Tree/index.js +10 -5
  182. package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
  183. package/dist/elements/HierarchyTypeField/index.d.ts.map +1 -1
  184. package/dist/elements/HierarchyTypeField/index.js.map +1 -1
  185. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  186. package/dist/elements/HydratePreferences/index.js.map +1 -1
  187. package/dist/elements/IDLabel/index.js.map +1 -1
  188. package/dist/elements/InputStepper/index.js.map +1 -1
  189. package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
  190. package/dist/elements/ItemsDrawer/index.js +186 -105
  191. package/dist/elements/ItemsDrawer/index.js.map +1 -1
  192. package/dist/elements/LLMInstructionsDescription/index.js.map +1 -1
  193. package/dist/elements/LLMInstructionsMenuItem/index.js.map +1 -1
  194. package/dist/elements/LayoutToggle/index.js.map +1 -1
  195. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  196. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +1 -1
  197. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  198. package/dist/elements/Link/index.js +1 -1
  199. package/dist/elements/Link/index.js.map +1 -1
  200. package/dist/elements/ListColumnSelectionButton/index.js.map +1 -1
  201. package/dist/elements/ListControls/index.js.map +1 -1
  202. package/dist/elements/ListControls/types.d.ts +0 -10
  203. package/dist/elements/ListControls/types.d.ts.map +1 -1
  204. package/dist/elements/ListControls/types.js.map +1 -1
  205. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  206. package/dist/elements/ListDrawer/DrawerContent.js +2 -3
  207. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  208. package/dist/elements/ListDrawer/Provider.d.ts +3 -8
  209. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  210. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  211. package/dist/elements/ListDrawer/index.js.map +1 -1
  212. package/dist/elements/ListGroupByButton/index.js.map +1 -1
  213. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  214. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerConfirmSelectionButton.js.map +1 -1
  215. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  216. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  217. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +11 -12
  218. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  219. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +1 -1
  220. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  221. package/dist/elements/ListSelection/index.js.map +1 -1
  222. package/dist/elements/ListWhereBuilder/index.js.map +1 -1
  223. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  224. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  225. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  226. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  227. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  228. package/dist/elements/LivePreview/Window/index.css +7 -1
  229. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  230. package/dist/elements/LivePreview/Window/index.js +6 -1
  231. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  232. package/dist/elements/LoadMoreRow/index.js.map +1 -1
  233. package/dist/elements/Loading/index.js +62 -18
  234. package/dist/elements/Loading/index.js.map +1 -1
  235. package/dist/elements/LoadingOverlay/index.js +93 -49
  236. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  237. package/dist/elements/Localizer/index.js +133 -108
  238. package/dist/elements/Localizer/index.js.map +1 -1
  239. package/dist/elements/Locked/index.js +54 -37
  240. package/dist/elements/Locked/index.js.map +1 -1
  241. package/dist/elements/Logout/index.js.map +1 -1
  242. package/dist/elements/MergeBranch/MergeBranchForm/index.d.ts.map +1 -1
  243. package/dist/elements/MergeBranch/MergeBranchForm/index.js +21 -16
  244. package/dist/elements/MergeBranch/MergeBranchForm/index.js.map +1 -1
  245. package/dist/elements/MergeBranch/MergeProgress/index.js.map +1 -1
  246. package/dist/elements/MergeBranch/context.js +58 -20
  247. package/dist/elements/MergeBranch/context.js.map +1 -1
  248. package/dist/elements/MergeBranch/index.js.map +1 -1
  249. package/dist/elements/MergeBranch/useMergeBranchAction.js +1 -1
  250. package/dist/elements/MergeBranch/useMergeBranchAction.js.map +1 -1
  251. package/dist/elements/MergeBranch/useScheduleBranchMerge.js +1 -1
  252. package/dist/elements/MergeBranch/useScheduleBranchMerge.js.map +1 -1
  253. package/dist/elements/MergeBranch/useUpcomingBranchMerges.js.map +1 -1
  254. package/dist/elements/MiniCarousel/index.js +102 -38
  255. package/dist/elements/MiniCarousel/index.js.map +1 -1
  256. package/dist/elements/Modal/index.d.ts.map +1 -1
  257. package/dist/elements/Modal/index.js +13 -1
  258. package/dist/elements/Modal/index.js.map +1 -1
  259. package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
  260. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
  261. package/dist/elements/Nav/NavWrapper/index.js +10 -6
  262. package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
  263. package/dist/elements/Nav/SettingsMenuButton/index.js.map +1 -1
  264. package/dist/elements/Nav/SidebarTabs/TabError/index.js.map +1 -1
  265. package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
  266. package/dist/elements/Nav/SidebarTabs/index.client.js +32 -21
  267. package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
  268. package/dist/elements/Nav/context.js +2 -2
  269. package/dist/elements/Nav/context.js.map +1 -1
  270. package/dist/elements/Nav/getNavPrefs.d.ts +1 -1
  271. package/dist/elements/Nav/getNavPrefs.js +1 -1
  272. package/dist/elements/Nav/getNavPrefs.js.map +1 -1
  273. package/dist/elements/Nav/index.client.js.map +1 -1
  274. package/dist/elements/Nav/index.css +5 -0
  275. package/dist/elements/NavGroup/index.css +27 -3
  276. package/dist/elements/NavGroup/index.js +32 -39
  277. package/dist/elements/NavGroup/index.js.map +1 -1
  278. package/dist/elements/NoListResults/index.css +1 -0
  279. package/dist/elements/NoListResults/index.js +1 -1
  280. package/dist/elements/NoListResults/index.js.map +1 -1
  281. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  282. package/dist/elements/PageControls/index.js.map +1 -1
  283. package/dist/elements/Pagination/ClickableArrow/index.js +10 -11
  284. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  285. package/dist/elements/Pagination/SimplePagination/index.js.map +1 -1
  286. package/dist/elements/Pagination/index.js +36 -37
  287. package/dist/elements/Pagination/index.js.map +1 -1
  288. package/dist/elements/PerPage/index.js.map +1 -1
  289. package/dist/elements/Pill/index.js.map +1 -1
  290. package/dist/elements/Popup/SubmenuScope.d.ts +3 -5
  291. package/dist/elements/Popup/SubmenuScope.d.ts.map +1 -1
  292. package/dist/elements/Popup/SubmenuScope.js +10 -54
  293. package/dist/elements/Popup/SubmenuScope.js.map +1 -1
  294. package/dist/elements/Popup/index.css +15 -0
  295. package/dist/elements/Popup/index.d.ts.map +1 -1
  296. package/dist/elements/Popup/index.js +88 -33
  297. package/dist/elements/Popup/index.js.map +1 -1
  298. package/dist/elements/Popup/useSubmenuPointerIntent.d.ts +16 -4
  299. package/dist/elements/Popup/useSubmenuPointerIntent.d.ts.map +1 -1
  300. package/dist/elements/Popup/useSubmenuPointerIntent.js +68 -27
  301. package/dist/elements/Popup/useSubmenuPointerIntent.js.map +1 -1
  302. package/dist/elements/PreviewButton/index.js.map +1 -1
  303. package/dist/elements/PreviewSizes/index.js +141 -70
  304. package/dist/elements/PreviewSizes/index.js.map +1 -1
  305. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  306. package/dist/elements/PublishButton/ScheduleDrawer/index.js +16 -8
  307. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  308. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  309. package/dist/elements/PublishButton/index.js +1 -0
  310. package/dist/elements/PublishButton/index.js.map +1 -1
  311. package/dist/elements/PublishMany/DrawerContent.js +1 -1
  312. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  313. package/dist/elements/PublishMany/index.js +32 -24
  314. package/dist/elements/PublishMany/index.js.map +1 -1
  315. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +194 -100
  316. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  317. package/dist/elements/QueryPresets/fields/GroupByField/index.js +78 -29
  318. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  319. package/dist/elements/QueryPresets/fields/Heading/index.js.map +1 -1
  320. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  321. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  322. package/dist/elements/ReactSelect/DefaultMenuPortal.d.ts.map +1 -1
  323. package/dist/elements/ReactSelect/DefaultMenuPortal.js.map +1 -1
  324. package/dist/elements/ReactSelect/MultiValue/index.js +19 -9
  325. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  326. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  327. package/dist/elements/ReactSelect/MultiValueRemove/index.js +38 -29
  328. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  329. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  330. package/dist/elements/ReactSelect/index.css +4 -0
  331. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -1
  332. package/dist/elements/RelationshipTable/AddNewButton.js +3 -0
  333. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  334. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  335. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  336. package/dist/elements/RelationshipTable/index.js +1 -1
  337. package/dist/elements/RelationshipTable/index.js.map +1 -1
  338. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  339. package/dist/elements/RenderTitle/index.js.map +1 -1
  340. package/dist/elements/RestoreMany/index.js +1 -1
  341. package/dist/elements/RestoreMany/index.js.map +1 -1
  342. package/dist/elements/SchedulePublishButton/index.js +112 -44
  343. package/dist/elements/SchedulePublishButton/index.js.map +1 -1
  344. package/dist/elements/Search/SearchInput/index.js.map +1 -1
  345. package/dist/elements/SegmentedControl/index.css +50 -7
  346. package/dist/elements/SegmentedControl/index.js.map +1 -1
  347. package/dist/elements/SelectAll/index.js.map +1 -1
  348. package/dist/elements/SelectRow/index.js +31 -21
  349. package/dist/elements/SelectRow/index.js.map +1 -1
  350. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  351. package/dist/elements/SidebarToggle/index.js.map +1 -1
  352. package/dist/elements/SkipToContent/index.js.map +1 -1
  353. package/dist/elements/SortHeader/index.js.map +1 -1
  354. package/dist/elements/SortRow/index.js.map +1 -1
  355. package/dist/elements/Spinner/index.js.map +1 -1
  356. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  357. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  358. package/dist/elements/StepNav/context.js.map +1 -1
  359. package/dist/elements/Switch/index.css +2 -2
  360. package/dist/elements/Switch/index.js.map +1 -1
  361. package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -9
  362. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  363. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +80 -27
  364. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  365. package/dist/elements/Table/DefaultCell/fields/BranchStatus/index.js.map +1 -1
  366. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +9 -10
  367. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  368. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  369. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  370. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  371. package/dist/elements/Table/DefaultCell/fields/JSON/index.d.ts.map +1 -1
  372. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +21 -32
  373. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  374. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  375. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  376. package/dist/elements/Table/DefaultCell/fields/Status/index.js.map +1 -1
  377. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  378. package/dist/elements/Table/DefaultCell/index.js +6 -1
  379. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  380. package/dist/elements/Table/GridNavigation/useGridNavigation.js.map +1 -1
  381. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  382. package/dist/elements/Table/TableIdentity.js +32 -16
  383. package/dist/elements/Table/TableIdentity.js.map +1 -1
  384. package/dist/elements/Table/index.js.map +1 -1
  385. package/dist/elements/Table/useAriaSort.js.map +1 -1
  386. package/dist/elements/Tabs/index.css +4 -3
  387. package/dist/elements/Thumbnail/index.js +133 -53
  388. package/dist/elements/Thumbnail/index.js.map +1 -1
  389. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  390. package/dist/elements/TimezonePicker/index.d.ts.map +1 -1
  391. package/dist/elements/TimezonePicker/index.js +113 -54
  392. package/dist/elements/TimezonePicker/index.js.map +1 -1
  393. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  394. package/dist/elements/Tooltip/index.js.map +1 -1
  395. package/dist/elements/Translation/index.js +1 -1
  396. package/dist/elements/Translation/index.js.map +1 -1
  397. package/dist/elements/TrashBanner/index.js.map +1 -1
  398. package/dist/elements/UnpublishMany/DrawerContent.js +1 -1
  399. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  400. package/dist/elements/UnpublishMany/index.js +32 -24
  401. package/dist/elements/UnpublishMany/index.js.map +1 -1
  402. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  403. package/dist/elements/Upload/index.js.map +1 -1
  404. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -1
  405. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -1
  406. package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
  407. package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
  408. package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
  409. package/dist/elements/UserMenu/index.d.ts.map +1 -1
  410. package/dist/elements/UserMenu/index.js +2 -1
  411. package/dist/elements/UserMenu/index.js.map +1 -1
  412. package/dist/elements/ViewDescription/index.js.map +1 -1
  413. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  414. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  415. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  416. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  417. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  418. package/dist/elements/WhereBuilder/Condition/index.js +1 -0
  419. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  420. package/dist/exports/client/{CodeEditor-UKD3EPUY.js → CodeEditor-23ZGBN6S.js} +2 -2
  421. package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-AZBZPMY6.js} +2 -2
  422. package/dist/exports/client/chunk-EXVR6BZK.js +27 -0
  423. package/dist/exports/client/chunk-EXVR6BZK.js.map +7 -0
  424. package/dist/exports/client/{chunk-AVJIZPR3.js → chunk-SMBFG6XU.js} +1 -1
  425. package/dist/exports/client/{chunk-AVJIZPR3.js.map → chunk-SMBFG6XU.js.map} +1 -1
  426. package/dist/exports/client/{chunk-2AY67NFV.js → chunk-ZP2PB6M4.js} +2 -2
  427. package/dist/exports/client/chunk-ZP2PB6M4.js.map +7 -0
  428. package/dist/exports/client/index.d.ts +2 -2
  429. package/dist/exports/client/index.d.ts.map +1 -1
  430. package/dist/exports/client/index.js +28 -28
  431. package/dist/exports/client/index.js.map +4 -4
  432. package/dist/exports/rsc/index.d.ts +1 -1
  433. package/dist/exports/rsc/index.d.ts.map +1 -1
  434. package/dist/exports/rsc/index.js +1 -1
  435. package/dist/exports/rsc/index.js.map +1 -1
  436. package/dist/exports/shared/index.js +2 -2
  437. package/dist/exports/shared/index.js.map +3 -3
  438. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  439. package/dist/fields/Array/ArrayRow.js +207 -99
  440. package/dist/fields/Array/ArrayRow.js.map +1 -1
  441. package/dist/fields/Array/index.d.ts.map +1 -1
  442. package/dist/fields/Array/index.js +521 -308
  443. package/dist/fields/Array/index.js.map +1 -1
  444. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  445. package/dist/fields/Blocks/BlockRow.js +224 -136
  446. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  447. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  448. package/dist/fields/Blocks/BlockSelector/index.js +114 -74
  449. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  450. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  451. package/dist/fields/Blocks/RowActions.js +75 -55
  452. package/dist/fields/Blocks/RowActions.js.map +1 -1
  453. package/dist/fields/Blocks/SectionTitle/index.css +4 -0
  454. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  455. package/dist/fields/Blocks/index.d.ts.map +1 -1
  456. package/dist/fields/Blocks/index.js +1 -0
  457. package/dist/fields/Blocks/index.js.map +1 -1
  458. package/dist/fields/Checkbox/index.css +3 -3
  459. package/dist/fields/Checkbox/index.js.map +1 -1
  460. package/dist/fields/Code/index.d.ts.map +1 -1
  461. package/dist/fields/Code/index.js +3 -2
  462. package/dist/fields/Code/index.js.map +1 -1
  463. package/dist/fields/Collapsible/index.js +114 -73
  464. package/dist/fields/Collapsible/index.js.map +1 -1
  465. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  466. package/dist/fields/DateTime/index.js +215 -121
  467. package/dist/fields/DateTime/index.js.map +1 -1
  468. package/dist/fields/Email/index.d.ts.map +1 -1
  469. package/dist/fields/Email/index.js.map +1 -1
  470. package/dist/fields/FieldDescription/index.js +29 -21
  471. package/dist/fields/FieldDescription/index.js.map +1 -1
  472. package/dist/fields/FieldError/index.js.map +1 -1
  473. package/dist/fields/FieldLabel/index.js.map +1 -1
  474. package/dist/fields/Group/index.css +3 -5
  475. package/dist/fields/Group/index.js +75 -46
  476. package/dist/fields/Group/index.js.map +1 -1
  477. package/dist/fields/Hidden/index.js +23 -15
  478. package/dist/fields/Hidden/index.js.map +1 -1
  479. package/dist/fields/JSON/index.d.ts.map +1 -1
  480. package/dist/fields/JSON/index.js +3 -2
  481. package/dist/fields/JSON/index.js.map +1 -1
  482. package/dist/fields/Number/Input.js.map +1 -1
  483. package/dist/fields/Number/index.d.ts.map +1 -1
  484. package/dist/fields/Number/index.js.map +1 -1
  485. package/dist/fields/Password/index.d.ts.map +1 -1
  486. package/dist/fields/Password/index.js.map +1 -1
  487. package/dist/fields/Password/input.js +46 -27
  488. package/dist/fields/Password/input.js.map +1 -1
  489. package/dist/fields/RadioGroup/Radio/index.js +35 -35
  490. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  491. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  492. package/dist/fields/RadioGroup/index.js.map +1 -1
  493. package/dist/fields/Relationship/Input.js +14 -14
  494. package/dist/fields/Relationship/Input.js.map +1 -1
  495. package/dist/fields/Relationship/index.js +216 -111
  496. package/dist/fields/Relationship/index.js.map +1 -1
  497. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  498. package/dist/fields/Relationship/select-components/SingleValue/index.js +9 -11
  499. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  500. package/dist/fields/Select/Input.js +26 -10
  501. package/dist/fields/Select/Input.js.map +1 -1
  502. package/dist/fields/Select/index.d.ts.map +1 -1
  503. package/dist/fields/Select/index.js +158 -77
  504. package/dist/fields/Select/index.js.map +1 -1
  505. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  506. package/dist/fields/Tabs/index.css +17 -21
  507. package/dist/fields/Tabs/index.js +120 -112
  508. package/dist/fields/Tabs/index.js.map +1 -1
  509. package/dist/fields/Text/Input.d.ts.map +1 -1
  510. package/dist/fields/Text/Input.js +2 -2
  511. package/dist/fields/Text/Input.js.map +1 -1
  512. package/dist/fields/Text/index.js +172 -95
  513. package/dist/fields/Text/index.js.map +1 -1
  514. package/dist/fields/Text/types.d.ts +2 -1
  515. package/dist/fields/Text/types.d.ts.map +1 -1
  516. package/dist/fields/Text/types.js.map +1 -1
  517. package/dist/fields/Textarea/Input.js +58 -28
  518. package/dist/fields/Textarea/Input.js.map +1 -1
  519. package/dist/fields/Textarea/index.js +97 -55
  520. package/dist/fields/Textarea/index.js.map +1 -1
  521. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  522. package/dist/fields/Upload/Input.d.ts.map +1 -1
  523. package/dist/fields/Upload/Input.js +19 -8
  524. package/dist/fields/Upload/Input.js.map +1 -1
  525. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  526. package/dist/fields/Upload/index.css +9 -0
  527. package/dist/fields/Upload/index.js +101 -63
  528. package/dist/fields/Upload/index.js.map +1 -1
  529. package/dist/fields/shared/useRowFocus.js.map +1 -1
  530. package/dist/forms/Form/context.js.map +1 -1
  531. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  532. package/dist/forms/Form/fieldReducer.js.map +1 -1
  533. package/dist/forms/Form/index.d.ts.map +1 -1
  534. package/dist/forms/Form/index.js +27 -8
  535. package/dist/forms/Form/index.js.map +1 -1
  536. package/dist/forms/Form/reduceToSerializableFields.d.ts +9 -4
  537. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  538. package/dist/forms/Form/reduceToSerializableFields.js +34 -7
  539. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  540. package/dist/forms/Form/types.d.ts +1 -1
  541. package/dist/forms/Form/types.d.ts.map +1 -1
  542. package/dist/forms/Form/types.js.map +1 -1
  543. package/dist/forms/NullifyField/index.js.map +1 -1
  544. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  545. package/dist/forms/RenderFields/context.js +3 -2
  546. package/dist/forms/RenderFields/context.js.map +1 -1
  547. package/dist/forms/RenderFields/index.css +2 -2
  548. package/dist/forms/RenderFields/index.js.map +1 -1
  549. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  550. package/dist/forms/RowLabel/Context/index.js +58 -18
  551. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  552. package/dist/forms/Submit/index.js +12 -13
  553. package/dist/forms/Submit/index.js.map +1 -1
  554. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  555. package/dist/forms/useField/index.js +1 -1
  556. package/dist/forms/useField/index.js.map +1 -1
  557. package/dist/forms/useField/types.d.ts +0 -4
  558. package/dist/forms/useField/types.d.ts.map +1 -1
  559. package/dist/forms/useField/types.js.map +1 -1
  560. package/dist/forms/withCondition/WatchCondition.js.map +1 -1
  561. package/dist/graphics/Account/Gravatar/index.js +32 -17
  562. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  563. package/dist/graphics/Account/index.js +27 -18
  564. package/dist/graphics/Account/index.js.map +1 -1
  565. package/dist/hooks/useControllableState.js.map +1 -1
  566. package/dist/hooks/useDebounce.js.map +1 -1
  567. package/dist/hooks/useDebouncedCallback.js.map +1 -1
  568. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  569. package/dist/hooks/useDelay.js.map +1 -1
  570. package/dist/hooks/useDelayedRender.js.map +1 -1
  571. package/dist/hooks/useElementHeightVariable.js.map +1 -1
  572. package/dist/hooks/useHotkey.js.map +1 -1
  573. package/dist/hooks/useIntersect.js.map +1 -1
  574. package/dist/hooks/usePayloadAPI.js.map +1 -1
  575. package/dist/hooks/usePointerSafeArea.d.ts +29 -0
  576. package/dist/hooks/usePointerSafeArea.d.ts.map +1 -0
  577. package/dist/hooks/usePointerSafeArea.js +232 -0
  578. package/dist/hooks/usePointerSafeArea.js.map +1 -0
  579. package/dist/hooks/usePopupWindow.js.map +1 -1
  580. package/dist/hooks/useRelatedCollections.js.map +1 -1
  581. package/dist/hooks/useResize.js.map +1 -1
  582. package/dist/hooks/useThrottledEffect.d.ts.map +1 -1
  583. package/dist/hooks/useThrottledEffect.js +21 -24
  584. package/dist/hooks/useThrottledEffect.js.map +1 -1
  585. package/dist/hooks/useUseAsTitle.js.map +1 -1
  586. package/dist/icons/Sidebar/index.d.ts.map +1 -1
  587. package/dist/icons/Sidebar/index.js +2 -0
  588. package/dist/icons/Sidebar/index.js.map +1 -1
  589. package/dist/icons/Table/index.css +5 -1
  590. package/dist/layouts/Root/RootProviders.d.ts.map +1 -1
  591. package/dist/layouts/Root/RootProviders.js +31 -28
  592. package/dist/layouts/Root/RootProviders.js.map +1 -1
  593. package/dist/layouts/Root/index.d.ts +1 -1
  594. package/dist/layouts/Root/index.d.ts.map +1 -1
  595. package/dist/layouts/Root/index.js +4 -15
  596. package/dist/layouts/Root/index.js.map +1 -1
  597. package/dist/providers/Actions/index.js.map +1 -1
  598. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -1
  599. package/dist/providers/Auth/index.js +2 -2
  600. package/dist/providers/Auth/index.js.map +1 -1
  601. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -1
  602. package/dist/providers/Branch/index.d.ts +1 -1
  603. package/dist/providers/Branch/index.js +4 -4
  604. package/dist/providers/Branch/index.js.map +1 -1
  605. package/dist/providers/Branch/index.server.d.ts.map +1 -1
  606. package/dist/providers/Branch/index.server.js +3 -1
  607. package/dist/providers/Branch/index.server.js.map +1 -1
  608. package/dist/providers/ClientFunction/index.js.map +1 -1
  609. package/dist/providers/Config/index.js +65 -32
  610. package/dist/providers/Config/index.js.map +1 -1
  611. package/dist/providers/DocumentEvents/index.js.map +1 -1
  612. package/dist/providers/EditDepth/index.js.map +1 -1
  613. package/dist/providers/Embed/index.js.map +1 -1
  614. package/dist/providers/EntityVisibility/index.js.map +1 -1
  615. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  616. package/dist/providers/ListQuery/index.js +5 -5
  617. package/dist/providers/ListQuery/index.js.map +1 -1
  618. package/dist/providers/ListQuery/mergeQuery.d.ts.map +1 -1
  619. package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
  620. package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
  621. package/dist/providers/ListQuery/types.d.ts +6 -5
  622. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  623. package/dist/providers/ListQuery/types.js.map +1 -1
  624. package/dist/providers/ModalAccessibility/index.js.map +1 -1
  625. package/dist/providers/ModalFocus/index.d.ts +15 -0
  626. package/dist/providers/ModalFocus/index.d.ts.map +1 -0
  627. package/dist/providers/ModalFocus/index.js +70 -0
  628. package/dist/providers/ModalFocus/index.js.map +1 -0
  629. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  630. package/dist/providers/RouteCache/index.js +37 -25
  631. package/dist/providers/RouteCache/index.js.map +1 -1
  632. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  633. package/dist/providers/RouteTransition/index.d.ts +3 -2
  634. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  635. package/dist/providers/RouteTransition/index.js +78 -105
  636. package/dist/providers/RouteTransition/index.js.map +1 -1
  637. package/dist/providers/RouterAdapter/index.js.map +1 -1
  638. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  639. package/dist/providers/ServerFunctions/index.js +34 -23
  640. package/dist/providers/ServerFunctions/index.js.map +1 -1
  641. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  642. package/dist/providers/TableColumns/RenderDefaultCell/index.js +1 -2
  643. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  644. package/dist/providers/TableColumns/index.d.ts.map +1 -1
  645. package/dist/providers/TableColumns/index.js +18 -35
  646. package/dist/providers/TableColumns/index.js.map +1 -1
  647. package/dist/providers/Theme/index.js.map +1 -1
  648. package/dist/providers/ToastContainer/index.js.map +1 -1
  649. package/dist/providers/Translation/index.js.map +1 -1
  650. package/dist/providers/UploadControls/index.js.map +1 -1
  651. package/dist/providers/UploadEdits/index.js.map +1 -1
  652. package/dist/providers/UploadHandlers/index.js.map +1 -1
  653. package/dist/styles.css +87 -3
  654. package/dist/templates/Default/Wrapper/index.js.map +1 -1
  655. package/dist/templates/Default/index.css +0 -1
  656. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  657. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
  658. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  659. package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
  660. package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
  661. package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
  662. package/dist/utilities/getDisplayedFieldValue.js +11 -1
  663. package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
  664. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  665. package/dist/utilities/groupNavItems.js.map +1 -1
  666. package/dist/utilities/handleLivePreview.js.map +1 -1
  667. package/dist/utilities/handleServerFunctions.d.ts +2 -10
  668. package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
  669. package/dist/utilities/handleServerFunctions.js +3 -7
  670. package/dist/utilities/handleServerFunctions.js.map +1 -1
  671. package/dist/utilities/hasSavePermission.js.map +1 -1
  672. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  673. package/dist/utilities/serverFunctionRegistry.d.ts +2 -7
  674. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  675. package/dist/utilities/serverFunctionRegistry.js +4 -9
  676. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  677. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  678. package/dist/views/API/index.client.d.ts.map +1 -1
  679. package/dist/views/API/index.client.js +1 -0
  680. package/dist/views/API/index.client.js.map +1 -1
  681. package/dist/views/Account/ResetPreferences/index.js +17 -17
  682. package/dist/views/Account/ResetPreferences/index.js.map +1 -1
  683. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  684. package/dist/views/Account/ToggleHighContrast/index.js.map +1 -1
  685. package/dist/views/Account/ToggleTheme/index.js +106 -27
  686. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  687. package/dist/views/Account/index.client.js.map +1 -1
  688. package/dist/views/Branch/BranchChanges/index.d.ts.map +1 -1
  689. package/dist/views/Branch/BranchChanges/index.js +185 -86
  690. package/dist/views/Branch/BranchChanges/index.js.map +1 -1
  691. package/dist/views/Branch/DiscardChangesButton/index.js +1 -1
  692. package/dist/views/Branch/DiscardChangesButton/index.js.map +1 -1
  693. package/dist/views/Branch/Manage/index.js.map +1 -1
  694. package/dist/views/Branch/MergeChangesButton/index.js.map +1 -1
  695. package/dist/views/Branch/ScheduledMerges/index.js +1 -1
  696. package/dist/views/Branch/ScheduledMerges/index.js.map +1 -1
  697. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  698. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +30 -21
  699. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  700. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  701. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  702. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +373 -151
  703. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  704. package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
  705. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts +1 -1
  706. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.d.ts.map +1 -1
  707. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js +18 -5
  708. package/dist/views/Dashboard/Default/ModularDashboard/useDashboardLayout.js.map +1 -1
  709. package/dist/views/Dashboard/Default/ModularDashboard/utils/localeUtils.js.map +1 -1
  710. package/dist/views/Document/generateEditViewMetadata.js.map +1 -1
  711. package/dist/views/Document/index.js +1 -1
  712. package/dist/views/Document/index.js.map +1 -1
  713. package/dist/views/Document/renderDocumentSlots.js.map +1 -1
  714. package/dist/views/Edit/Auth/APIKeyGenerationModal.js.map +1 -1
  715. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  716. package/dist/views/Edit/Auth/index.js +13 -11
  717. package/dist/views/Edit/Auth/index.js.map +1 -1
  718. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  719. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  720. package/dist/views/Edit/index.css +26 -0
  721. package/dist/views/Edit/index.d.ts.map +1 -1
  722. package/dist/views/Edit/index.js +28 -17
  723. package/dist/views/Edit/index.js.map +1 -1
  724. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  725. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +45 -41
  726. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  727. package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
  728. package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
  729. package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
  730. package/dist/views/HierarchyList/HierarchyTable/DateCell.js +8 -9
  731. package/dist/views/HierarchyList/HierarchyTable/DateCell.js.map +1 -1
  732. package/dist/views/HierarchyList/HierarchyTable/RelatedNameCell.js.map +1 -1
  733. package/dist/views/HierarchyList/TypeFilter/index.js.map +1 -1
  734. package/dist/views/HierarchyList/index.js +2 -2
  735. package/dist/views/HierarchyList/index.js.map +1 -1
  736. package/dist/views/List/DocumentGrid/index.js.map +1 -1
  737. package/dist/views/List/GroupedDocumentGrid/index.js.map +1 -1
  738. package/dist/views/List/ListSelection/index.js.map +1 -1
  739. package/dist/views/Login/LoginField/index.js.map +1 -1
  740. package/dist/views/Login/LoginForm/index.js.map +1 -1
  741. package/dist/views/Logout/LogoutClient.js.map +1 -1
  742. package/dist/views/Logout/index.js.map +1 -1
  743. package/dist/views/NotFound/index.client.js.map +1 -1
  744. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  745. package/dist/views/Verify/index.client.js.map +1 -1
  746. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  747. package/dist/views/Version/Default/index.css +12 -12
  748. package/dist/views/Version/Default/index.js +333 -191
  749. package/dist/views/Version/Default/index.js.map +1 -1
  750. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  751. package/dist/views/Version/RenderFieldsToDiff/RenderVersionFieldsToDiff.js.map +1 -1
  752. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +0 -4
  753. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  754. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js +9 -11
  755. package/dist/views/Version/RenderFieldsToDiff/fields/Checkbox/index.js.map +1 -1
  756. package/dist/views/Version/RenderFieldsToDiff/fields/Collapsible/index.js.map +1 -1
  757. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js +41 -29
  758. package/dist/views/Version/RenderFieldsToDiff/fields/Date/index.js.map +1 -1
  759. package/dist/views/Version/RenderFieldsToDiff/fields/Group/index.js.map +1 -1
  760. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  761. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  762. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js +19 -19
  763. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  764. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  765. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.js.map +1 -1
  766. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  767. package/dist/views/Version/Restore/index.js +183 -82
  768. package/dist/views/Version/Restore/index.js.map +1 -1
  769. package/dist/views/Version/SelectComparison/VersionDrawer/CreatedAtCell.js.map +1 -1
  770. package/dist/views/Version/SelectComparison/VersionDrawer/index.js.map +1 -1
  771. package/dist/views/Version/SelectComparison/index.js +113 -33
  772. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  773. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  774. package/dist/views/Version/index.js.map +1 -1
  775. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  776. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  777. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  778. package/dist/views/Versions/cells/VersionDrawerCreatedAtCell/index.js.map +1 -1
  779. package/dist/views/Versions/index.client.js +9 -11
  780. package/dist/views/Versions/index.client.js.map +1 -1
  781. package/dist/views/Versions/index.js +2 -2
  782. package/dist/views/Versions/index.js.map +1 -1
  783. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.css +28 -0
  784. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts +16 -0
  785. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.d.ts.map +1 -0
  786. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js +98 -0
  787. package/dist/widgets/Activity/Tabs/PinnedDocuments/PinDocumentPicker/index.js.map +1 -0
  788. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.css +70 -0
  789. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts +13 -0
  790. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.d.ts.map +1 -0
  791. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js +81 -0
  792. package/dist/widgets/Activity/Tabs/PinnedDocuments/index.js.map +1 -0
  793. package/dist/widgets/{RecentlyViewed/pinnedPreferences.d.ts → Activity/Tabs/PinnedDocuments/preferences.d.ts} +6 -9
  794. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.d.ts.map +1 -0
  795. package/dist/widgets/{RecentlyViewed/pinnedPreferences.js → Activity/Tabs/PinnedDocuments/preferences.js} +3 -22
  796. package/dist/widgets/Activity/Tabs/PinnedDocuments/preferences.js.map +1 -0
  797. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts +39 -0
  798. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.d.ts.map +1 -0
  799. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js +83 -0
  800. package/dist/widgets/Activity/Tabs/PinnedDocuments/usePinnedDocuments.js.map +1 -0
  801. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts +9 -0
  802. package/dist/widgets/Activity/Tabs/RecentDocuments/index.d.ts.map +1 -0
  803. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js +23 -0
  804. package/dist/widgets/Activity/Tabs/RecentDocuments/index.js.map +1 -0
  805. package/dist/widgets/Activity/components/DocumentList/index.css +61 -0
  806. package/dist/widgets/Activity/components/DocumentList/index.d.ts +15 -0
  807. package/dist/widgets/Activity/components/DocumentList/index.d.ts.map +1 -0
  808. package/dist/widgets/Activity/components/DocumentList/index.js +56 -0
  809. package/dist/widgets/Activity/components/DocumentList/index.js.map +1 -0
  810. package/dist/widgets/Activity/components/EmptyState/index.css +47 -0
  811. package/dist/widgets/Activity/components/EmptyState/index.d.ts +12 -0
  812. package/dist/widgets/Activity/components/EmptyState/index.d.ts.map +1 -0
  813. package/dist/widgets/Activity/components/EmptyState/index.js +37 -0
  814. package/dist/widgets/Activity/components/EmptyState/index.js.map +1 -0
  815. package/dist/widgets/Activity/components/Pagination/index.css +42 -0
  816. package/dist/widgets/Activity/components/Pagination/index.d.ts +20 -0
  817. package/dist/widgets/Activity/components/Pagination/index.d.ts.map +1 -0
  818. package/dist/widgets/Activity/components/Pagination/index.js +125 -0
  819. package/dist/widgets/Activity/components/Pagination/index.js.map +1 -0
  820. package/dist/widgets/Activity/components/StatusPill/index.css +24 -0
  821. package/dist/widgets/Activity/components/StatusPill/index.d.ts +8 -0
  822. package/dist/widgets/Activity/components/StatusPill/index.d.ts.map +1 -0
  823. package/dist/widgets/Activity/components/StatusPill/index.js +18 -0
  824. package/dist/widgets/Activity/components/StatusPill/index.js.map +1 -0
  825. package/dist/widgets/Activity/index.client.d.ts +15 -0
  826. package/dist/widgets/Activity/index.client.d.ts.map +1 -0
  827. package/dist/widgets/Activity/index.client.js +186 -0
  828. package/dist/widgets/Activity/index.client.js.map +1 -0
  829. package/dist/widgets/Activity/index.css +320 -0
  830. package/dist/widgets/Activity/index.d.ts +13 -0
  831. package/dist/widgets/Activity/index.d.ts.map +1 -0
  832. package/dist/widgets/Activity/index.js +100 -0
  833. package/dist/widgets/Activity/index.js.map +1 -0
  834. package/dist/widgets/{RecentlyViewed/index.client.d.ts → Activity/types.d.ts} +6 -13
  835. package/dist/widgets/Activity/types.d.ts.map +1 -0
  836. package/dist/widgets/Activity/types.js +2 -0
  837. package/dist/widgets/Activity/types.js.map +1 -0
  838. package/dist/widgets/Activity/utils/cache.d.ts +33 -0
  839. package/dist/widgets/Activity/utils/cache.d.ts.map +1 -0
  840. package/dist/widgets/Activity/utils/cache.js +72 -0
  841. package/dist/widgets/Activity/utils/cache.js.map +1 -0
  842. package/dist/widgets/Activity/utils/constants.d.ts +5 -0
  843. package/dist/widgets/Activity/utils/constants.d.ts.map +1 -0
  844. package/dist/widgets/Activity/utils/constants.js +4 -0
  845. package/dist/widgets/Activity/utils/constants.js.map +1 -0
  846. package/dist/widgets/Activity/utils/documents.d.ts +11 -0
  847. package/dist/widgets/Activity/utils/documents.d.ts.map +1 -0
  848. package/dist/widgets/Activity/utils/documents.js +38 -0
  849. package/dist/widgets/Activity/utils/documents.js.map +1 -0
  850. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts +20 -0
  851. package/dist/widgets/Activity/utils/getActivityWidgetDocs.d.ts.map +1 -0
  852. package/dist/widgets/{RecentlyViewed/getDocuments.js → Activity/utils/getActivityWidgetDocs.js} +24 -21
  853. package/dist/widgets/Activity/utils/getActivityWidgetDocs.js.map +1 -0
  854. package/dist/widgets/Activity/utils/state.d.ts +44 -0
  855. package/dist/widgets/Activity/utils/state.d.ts.map +1 -0
  856. package/dist/widgets/Activity/utils/state.js +80 -0
  857. package/dist/widgets/Activity/utils/state.js.map +1 -0
  858. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts +35 -0
  859. package/dist/widgets/Activity/utils/useActivityDocuments.d.ts.map +1 -0
  860. package/dist/widgets/Activity/utils/useActivityDocuments.js +141 -0
  861. package/dist/widgets/Activity/utils/useActivityDocuments.js.map +1 -0
  862. package/dist/widgets/Activity/utils/usePageSize.d.ts +11 -0
  863. package/dist/widgets/Activity/utils/usePageSize.d.ts.map +1 -0
  864. package/dist/widgets/Activity/utils/usePageSize.js +35 -0
  865. package/dist/widgets/Activity/utils/usePageSize.js.map +1 -0
  866. package/dist/widgets/CollectionCards/index.client.d.ts +3 -0
  867. package/dist/widgets/CollectionCards/index.client.d.ts.map +1 -1
  868. package/dist/widgets/CollectionCards/index.client.js +3 -0
  869. package/dist/widgets/CollectionCards/index.client.js.map +1 -1
  870. package/dist/widgets/CollectionCards/index.d.ts +3 -0
  871. package/dist/widgets/CollectionCards/index.d.ts.map +1 -1
  872. package/dist/widgets/CollectionCards/index.js +3 -0
  873. package/dist/widgets/CollectionCards/index.js.map +1 -1
  874. package/dist/widgets/CollectionQuery/SortField/index.d.ts +3 -0
  875. package/dist/widgets/CollectionQuery/SortField/index.d.ts.map +1 -1
  876. package/dist/widgets/CollectionQuery/SortField/index.js +181 -73
  877. package/dist/widgets/CollectionQuery/SortField/index.js.map +1 -1
  878. package/dist/widgets/CollectionQuery/index.d.ts +3 -0
  879. package/dist/widgets/CollectionQuery/index.d.ts.map +1 -1
  880. package/dist/widgets/CollectionQuery/index.js +3 -0
  881. package/dist/widgets/CollectionQuery/index.js.map +1 -1
  882. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts +3 -0
  883. package/dist/widgets/UploadDropzone/CollectionsField/index.d.ts.map +1 -1
  884. package/dist/widgets/UploadDropzone/CollectionsField/index.js +65 -14
  885. package/dist/widgets/UploadDropzone/CollectionsField/index.js.map +1 -1
  886. package/dist/widgets/UploadDropzone/index.client.d.ts +3 -0
  887. package/dist/widgets/UploadDropzone/index.client.d.ts.map +1 -1
  888. package/dist/widgets/UploadDropzone/index.client.js +3 -0
  889. package/dist/widgets/UploadDropzone/index.client.js.map +1 -1
  890. package/dist/widgets/UploadDropzone/index.d.ts +3 -0
  891. package/dist/widgets/UploadDropzone/index.d.ts.map +1 -1
  892. package/dist/widgets/UploadDropzone/index.js +3 -0
  893. package/dist/widgets/UploadDropzone/index.js.map +1 -1
  894. package/dist/widgets/Welcome/index.d.ts +3 -0
  895. package/dist/widgets/Welcome/index.d.ts.map +1 -1
  896. package/dist/widgets/Welcome/index.js +3 -0
  897. package/dist/widgets/Welcome/index.js.map +1 -1
  898. package/dist/widgets/WidgetCard/index.css +0 -20
  899. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.css +2 -2
  900. package/dist/widgets/{RecentlyViewed/CollectionsField → shared/CollectionFilter}/index.d.ts +3 -1
  901. package/dist/widgets/shared/CollectionFilter/index.d.ts.map +1 -0
  902. package/dist/widgets/shared/CollectionFilter/index.js +170 -0
  903. package/dist/widgets/shared/CollectionFilter/index.js.map +1 -0
  904. package/package.json +21 -23
  905. package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
  906. package/dist/exports/client/chunk-6XCSN54Q.js +0 -27
  907. package/dist/exports/client/chunk-6XCSN54Q.js.map +0 -7
  908. package/dist/widgets/RecentlyViewed/CollectionsField/index.d.ts.map +0 -1
  909. package/dist/widgets/RecentlyViewed/CollectionsField/index.js +0 -102
  910. package/dist/widgets/RecentlyViewed/CollectionsField/index.js.map +0 -1
  911. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.css +0 -73
  912. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts +0 -19
  913. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.d.ts.map +0 -1
  914. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js +0 -122
  915. package/dist/widgets/RecentlyViewed/PinDocumentPicker/index.js.map +0 -1
  916. package/dist/widgets/RecentlyViewed/getDocuments.d.ts +0 -20
  917. package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +0 -1
  918. package/dist/widgets/RecentlyViewed/getDocuments.js.map +0 -1
  919. package/dist/widgets/RecentlyViewed/index.client.d.ts.map +0 -1
  920. package/dist/widgets/RecentlyViewed/index.client.js +0 -401
  921. package/dist/widgets/RecentlyViewed/index.client.js.map +0 -1
  922. package/dist/widgets/RecentlyViewed/index.css +0 -318
  923. package/dist/widgets/RecentlyViewed/index.d.ts +0 -10
  924. package/dist/widgets/RecentlyViewed/index.d.ts.map +0 -1
  925. package/dist/widgets/RecentlyViewed/index.js +0 -45
  926. package/dist/widgets/RecentlyViewed/index.js.map +0 -1
  927. package/dist/widgets/RecentlyViewed/pinnedPreferences.d.ts.map +0 -1
  928. package/dist/widgets/RecentlyViewed/pinnedPreferences.js.map +0 -1
  929. package/dist/widgets/RecentlyViewed/recents.d.ts +0 -8
  930. package/dist/widgets/RecentlyViewed/recents.d.ts.map +0 -1
  931. package/dist/widgets/RecentlyViewed/recents.js +0 -19
  932. package/dist/widgets/RecentlyViewed/recents.js.map +0 -1
  933. /package/dist/exports/client/{CodeEditor-UKD3EPUY.js.map → CodeEditor-23ZGBN6S.js.map} +0 -0
  934. /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-AZBZPMY6.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useControllableState.js","names":["c","_c","useEffect","useRef","useState","useControllableState","propValue","fallbackValue","$","localValue","setLocalValue","previousPropValue","t0","t1","Object","is","current","t2","t3"],"sources":["../../src/hooks/useControllableState.ts"],"sourcesContent":["'use client'\nimport { useEffect, useRef, useState } from 'react'\n\n/**\n * A hook for managing state that can be controlled by props but also overridden locally.\n * Props always take precedence if they change, but local state can override them temporarily.\n *\n * @param propValue - The controlled value from props\n * @param fallbackValue - Value to use when propValue is null or undefined\n *\n * @internal - may change or be removed without a major version bump\n */\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void]\n\nexport function useControllableState<T>(propValue: T): [T, (value: ((prev: T) => T) | T) => void]\n\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue?: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void] {\n const [localValue, setLocalValue] = useState<T>(propValue)\n const previousPropValue = useRef(propValue)\n\n useEffect(() => {\n if (Object.is(previousPropValue.current, propValue)) {\n return\n }\n\n previousPropValue.current = propValue\n setLocalValue(propValue)\n }, [propValue])\n\n return [localValue ?? fallbackValue, setLocalValue] as [\n T extends NonNullable<T> ? T : D | NonNullable<T>,\n (value: ((prev: T) => T) | T) => void,\n ]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAkB5C,OAAO,SAAAC,qBAAAC,SAAA,EAAAC,aAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAIL,OAAAQ,UAAA,EAAAC,aAAA,IAAoCN,QAAA,CAAYE,SAAA;EAChD,MAAAK,iBAAA,GAA0BR,MAAA,CAAOG,SAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAF,SAAA;IAEvBM,EAAA,GAAAA,CAAA;MAAA,IACJE,MAAA,CAAAC,EAAA,CAAUJ,iBAAA,CAAAK,OAAA,EAA2BV,SAAA;QAAA;MAAA;MAIzCK,iBAAA,CAAAK,OAAA,GAA4BV,SAAA;MAC5BI,aAAA,CAAcJ,SAAA;IAAA;IACbO,EAAA,IAACP,SAAA;IAAUE,CAAA,MAAAF,SAAA;IAAAE,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAD,EAAA,GAAAJ,CAAA;IAAAK,EAAA,GAAAL,CAAA;EAAA;EAPdN,SAAA,CAAUU,EAOV,EAAGC,EAAW;EAEN,MAAAI,EAAA,GAAAR,UAAA,IAAcF,aAAA;EAAA,IAAAW,EAAA;EAAA,IAAAV,CAAA,QAAAS,EAAA;IAAfC,EAAA,IAACD,EAAc,EAAeP,aAAA;IAAcF,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,OAA5CU,EAA4C;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"useControllableState.js","names":["c","_c","useEffect","useRef","useState","useControllableState","propValue","fallbackValue","$","localValue","setLocalValue","previousPropValue","t0","t1","Object","is","current","t2","t3"],"sources":["../../src/hooks/useControllableState.ts"],"sourcesContent":["'use client'\nimport { useEffect, useRef, useState } from 'react'\n\n/**\n * A hook for managing state that can be controlled by props but also overridden locally.\n * Props always take precedence if they change, but local state can override them temporarily.\n *\n * @param propValue - The controlled value from props\n * @param fallbackValue - Value to use when propValue is null or undefined\n *\n * @internal - may change or be removed without a major version bump\n */\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void]\n\nexport function useControllableState<T>(propValue: T): [T, (value: ((prev: T) => T) | T) => void]\n\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue?: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void] {\n const [localValue, setLocalValue] = useState<T>(propValue)\n const previousPropValue = useRef(propValue)\n\n useEffect(() => {\n if (Object.is(previousPropValue.current, propValue)) {\n return\n }\n\n previousPropValue.current = propValue\n setLocalValue(propValue)\n }, [propValue])\n\n return [localValue ?? fallbackValue, setLocalValue] as [\n T extends NonNullable<T> ? T : D | NonNullable<T>,\n (value: ((prev: T) => T) | T) => void,\n ]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAkB5C,OAAO,SAAAC,qBAAAC,SAAA,EAAAC,aAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAIL,OAAAQ,UAAA,EAAAC,aAAA,IAAoCN,QAAA,CAAYE,SAAA;EAChD,MAAAK,iBAAA,GAA0BR,MAAA,CAAOG,SAAA;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAF,SAAA;IAEvBM,EAAA,GAAAA,CAAA;MACR,IAAIE,MAAA,CAAAC,EAAS,CAACJ,iBAAA,CAAAK,OAAyB,EAAEV,SAAA;QAAA;MAAA;MAIzCK,iBAAA,CAAAK,OAAA,GAA4BV,SAAH;MACzBI,aAAA,CAAcJ,SAAA;IAAA,CAChB;IAAGO,EAAA,IAACP,SAAA,CAAU;IAAAE,CAAA,MAAAF,SAAA;IAAAE,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAD,EAAA,GAAAJ,CAAA;IAAAK,EAAA,GAAAL,CAAA;EAAA;EAPdN,SAAA,CAAUU,EAOV,EAAGC,EAAW;EAEN,MAAAI,EAAA,GAAAR,UAAc,IAAdF,aAAc;EAAA,IAAAW,EAAA;EAAA,IAAAV,CAAA,QAAAS,EAAA;IAAfC,EAAA,IAACD,EAAc,EAAeP,aAAA,CAAc;IAAAF,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,OAA5CU,EAA4C;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounce.js","names":["c","_c","useEffect","useState","useDebounce","value","delay","$","debouncedValue","setDebouncedValue","t0","t1","handler","setTimeout","clearTimeout"],"sources":["../../src/hooks/useDebounce.ts"],"sourcesContent":["'use client'\nimport { useEffect, useState } from 'react'\n\nexport function useDebounce<T = unknown>(value: T, delay: number): T {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,YAAAC,KAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAEL,OAAAO,cAAA,EAAAC,iBAAA,IAA4CN,QAAA,CAASE,KAAA;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAF,KAAA;IAE3CK,EAAA,GAAAA,CAAA;MACR,MAAAE,OAAA,GAAgBC,UAAA;QACdJ,iBAAA,CAAkBJ,KAAA;MAAA,GACjBC,KAAA;MAAA;QAGDQ,YAAA,CAAaF,OAAA;MAAA;IAAA;IAEdD,EAAA,IAACN,KAAA,EAAOC,KAAA;IAAMC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EARjBL,SAAA,CAAUQ,EAQV,EAAGC,EAAc;EAAA,OAEVH,cAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"useDebounce.js","names":["c","_c","useEffect","useState","useDebounce","value","delay","$","debouncedValue","setDebouncedValue","t0","t1","handler","setTimeout","clearTimeout"],"sources":["../../src/hooks/useDebounce.ts"],"sourcesContent":["'use client'\nimport { useEffect, useState } from 'react'\n\nexport function useDebounce<T = unknown>(value: T, delay: number): T {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,YAAAC,KAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAEL,OAAAO,cAAA,EAAAC,iBAAA,IAA4CN,QAAA,CAASE,KAAA;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAF,KAAA;IAE3CK,EAAA,GAAAA,CAAA;MACR,MAAAE,OAAA,GAAgBC,UAAA,CAAW;QACzBJ,iBAAA,CAAkBJ,KAAA;MAAA,CACpB,EAAGC,KAAA;MAAA,OAEI;QACLQ,YAAA,CAAaF,OAAA;MAAA,CACf;IAAA,CACF;IAAGD,EAAA,IAACN,KAAA,EAAOC,KAAA,CAAM;IAAAC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EARjBL,SAAA,CAAUQ,EAQV,EAAGC,EAAc;EAAA,OAEVH,cAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDebouncedCallback.js","names":["c","_c","useCallback","useRef","useDebouncedCallback","func","wait","$","timeout","undefined","t0","t1","args","later","clearTimeout","current","setTimeout"],"sources":["../../src/hooks/useDebouncedCallback.ts"],"sourcesContent":["'use client'\nimport { useCallback, useRef } from 'react'\n\n/**\n * Returns a memoized function that will only call the passed function when it hasn't been called for the wait period\n * @param func The function to be called\n * @param wait Wait period after function hasn't been called for\n * @returns A memoized function that is debounced\n */\nexport const useDebouncedCallback = <TFunctionArgs = any>(func, wait) => {\n // Use a ref to store the timeout between renders\n // and prevent changes to it from causing re-renders\n const timeout = useRef<ReturnType<typeof setTimeout>>(undefined)\n\n return useCallback(\n (...args: TFunctionArgs[]) => {\n const later = () => {\n clearTimeout(timeout.current)\n func(...args)\n }\n\n clearTimeout(timeout.current)\n timeout.current = setTimeout(later, wait)\n },\n [func, wait],\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,WAAW,EAAEC,MAAM,QAAQ;AAEpC;;;;;;AAMA,OAAO,MAAMC,oBAAA,GAAuBA,CAAAC,IAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAGlC,MAAAO,OAAA,GAAgBL,MAAA,CAAAM,SAAsC;EAAA,IAAAC,EAAA;EAAA,IAAAH,CAAA,QAAAF,IAAA,IAAAE,CAAA,QAAAD,IAAA;IAGpDI,EAAA,GAAAA,CAAA,GAAAC,EAAA;MAAC,MAAAC,IAAA,GAAAD,EAAG;MACF,MAAAE,KAAA,GAAAA,CAAA;QACEC,YAAA,CAAaN,OAAA,CAAAO,OAAe;QAC5BV,IAAA,IAAQO,IAAA;MAAA;MAGVE,YAAA,CAAaN,OAAA,CAAAO,OAAe;MAC5BP,OAAA,CAAAO,OAAA,GAAkBC,UAAA,CAAWH,KAAA,EAAOP,IAAA;IAAA;IACtCC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAD,IAAA;IAAAC,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,OATKG,EAUO;AAAA,CAEhB","ignoreList":[]}
1
+ {"version":3,"file":"useDebouncedCallback.js","names":["c","_c","useCallback","useRef","useDebouncedCallback","func","wait","$","timeout","undefined","t0","t1","args","later","clearTimeout","current","setTimeout"],"sources":["../../src/hooks/useDebouncedCallback.ts"],"sourcesContent":["'use client'\nimport { useCallback, useRef } from 'react'\n\n/**\n * Returns a memoized function that will only call the passed function when it hasn't been called for the wait period\n * @param func The function to be called\n * @param wait Wait period after function hasn't been called for\n * @returns A memoized function that is debounced\n */\nexport const useDebouncedCallback = <TFunctionArgs = any>(func, wait) => {\n // Use a ref to store the timeout between renders\n // and prevent changes to it from causing re-renders\n const timeout = useRef<ReturnType<typeof setTimeout>>(undefined)\n\n return useCallback(\n (...args: TFunctionArgs[]) => {\n const later = () => {\n clearTimeout(timeout.current)\n func(...args)\n }\n\n clearTimeout(timeout.current)\n timeout.current = setTimeout(later, wait)\n },\n [func, wait],\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,WAAW,EAAEC,MAAM,QAAQ;AAEpC;;;;;;AAMA,OAAO,MAAMC,oBAAA,GAAuBA,CAAAC,IAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAGlC,MAAAO,OAAA,GAAgBL,MAAA,CAAsCM,SAAA;EAAA,IAAAC,EAAA;EAAA,IAAAH,CAAA,QAAAF,IAAA,IAAAE,CAAA,QAAAD,IAAA;IAGpDI,EAAA,GAAAA,CAAA,GAAAC,EAAA;MAAC,MAAAC,IAAA,GAAAD,EAAG;MACF,MAAAE,KAAA,GAAcA,CAAA;QACZC,YAAA,CAAaN,OAAA,CAAAO,OAAe;QAC5BV,IAAA,IAAQO,IAAA;MAAA,CACV;MAEAE,YAAA,CAAaN,OAAA,CAAAO,OAAe;MAC5BP,OAAA,CAAAO,OAAA,GAAkBC,UAAA,CAAWH,KAAA,EAAOP,IAAA,CAArB;IAAA,CACjB;IAAAC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAD,IAAA;IAAAC,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAAA,OATKG,EAUO;AAAA,CAEhB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDebouncedEffect.js","names":["c","_c","useEffect","useState","useDebouncedEffect","effect","deps","delay","$","t0","debouncedEffect","setDebouncedEffect","t1","handler","setTimeout","clearTimeout","t2","t3","t4"],"sources":["../../src/hooks/useDebouncedEffect.ts"],"sourcesContent":["'use client'\nimport type { DependencyList } from 'react'\n\nimport { useEffect, useState } from 'react'\n\nexport function useDebouncedEffect(effect: () => void, deps: DependencyList, delay: number): void {\n const [debouncedEffect, setDebouncedEffect] = useState<() => void>(() => effect)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedEffect(() => effect)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [...deps, delay])\n\n useEffect(() => {\n debouncedEffect()\n }, [debouncedEffect])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,mBAAAC,MAAA,EAAAC,IAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAH,MAAA;IAC8DI,EAAA,GAAAA,CAAA,KAAMJ,MAAA;IAAAG,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAzE,OAAAE,eAAA,EAAAC,kBAAA,IAA8CR,QAAA,CAAqBM,EAAM;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAH,MAAA;IAE/DO,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QACdH,kBAAA,OAAyBN,MAAA;MAAA,GACxBE,KAAA;MAAA;QAGDQ,YAAA,CAAaF,OAAA;MAAA;IAAA;IAEjBL,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAR,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAF,IAAA;IAAGU,EAAA,OAAIV,IAAA,EAAMC,KAAA;IAAMC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EARnBN,SAAA,CAAUU,EAQV,EAAGI,EAAgB;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAE,eAAA;IAETO,EAAA,GAAAA,CAAA;MACRP,eAAA;IAAA;IACCQ,EAAA,IAACR,eAAA;IAAgBF,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAS,EAAA;IAAAT,CAAA,OAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAFpBN,SAAA,CAAUe,EAEV,EAAGC,EAAiB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"useDebouncedEffect.js","names":["c","_c","useEffect","useState","useDebouncedEffect","effect","deps","delay","$","t0","debouncedEffect","setDebouncedEffect","t1","handler","setTimeout","clearTimeout","t2","t3","t4"],"sources":["../../src/hooks/useDebouncedEffect.ts"],"sourcesContent":["'use client'\nimport type { DependencyList } from 'react'\n\nimport { useEffect, useState } from 'react'\n\nexport function useDebouncedEffect(effect: () => void, deps: DependencyList, delay: number): void {\n const [debouncedEffect, setDebouncedEffect] = useState<() => void>(() => effect)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedEffect(() => effect)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [...deps, delay])\n\n useEffect(() => {\n debouncedEffect()\n }, [debouncedEffect])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,mBAAAC,MAAA,EAAAC,IAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAH,MAAA;IAC8DI,EAAA,GAAAA,CAAA,KAAMJ,MAAA;IAAAG,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAzE,OAAAE,eAAA,EAAAC,kBAAA,IAA8CR,QAAA,CAAqBM,EAAM;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAH,MAAA;IAE/DO,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA,CAAW;QACzBH,kBAAA,CAAmB,MAAMN,MAAA;MAAA,CAC3B,EAAGE,KAAA;MAAA,OAEI;QACLQ,YAAA,CAAaF,OAAA;MAAA,CACf;IAAA,CACF;IAAAL,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAR,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAF,IAAA;IAAGU,EAAA,OAAIV,IAAA,EAAMC,KAAA,CAAM;IAAAC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EARnBN,SAAA,CAAUU,EAQV,EAAGI,EAAgB;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAE,eAAA;IAETO,EAAA,GAAAA,CAAA;MACRP,eAAA;IAAA,CACF;IAAGQ,EAAA,IAACR,eAAA,CAAgB;IAAAF,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAS,EAAA;IAAAT,CAAA,OAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAFpBN,SAAA,CAAUe,EAEV,EAAGC,EAAiB;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDelay.js","names":["c","_c","React","useDelay","delay","t0","$","triggerOnMount","undefined","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","t1","clearTimeout","current","setTimeout","triggerDelay","t2","t3","useEffect","t4"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,YAAYC,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAgB,MAAAM,cAAA,GAAAF,EAAsB,KAAAG,SAAA,WAAtBH,EAAsB;EAC5D,OAAAI,UAAA,EAAAC,aAAA,IAAoCR,KAAA,CAAAS,QAAA,MAAe;EACnD,MAAAC,iBAAA,GAA0BV,KAAA,CAAAW,MAAA,CAAAL,SAA6B;EAAA,IAAAM,EAAA;EAAA,IAAAR,CAAA,QAAAF,KAAA;IAEhBU,EAAA,GAAAA,CAAA;MACrCJ,aAAA,MAAc;MACdK,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MACtCJ,iBAAA,CAAAI,OAAA,GAA4BC,UAAA;QAC1BP,aAAA,KAAc;MAAA,GACbN,KAAA;MAAA;QAGDW,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MAAA;IAAA;IAE1CV,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAVA,MAAAY,YAAA,GAAqBJ,EAUX;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAY,YAAA,IAAAZ,CAAA,QAAAC,cAAA;IAEMY,EAAA,GAAAA,CAAA;MAAA,IACVZ,cAAA;QACFW,YAAA;MAAA;IAAA;IAEDE,EAAA,IAACF,YAAA,EAAcX,cAAA;IAAeD,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJjCJ,KAAA,CAAAmB,SAAA,CAAgBF,EAIhB,EAAGC,EAA8B;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAY,YAAA;IAE1BI,EAAA,IAACb,UAAA,EAAYS,YAAA;IAAaZ,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAA1BgB,EAA0B;AAAA,CACnC","ignoreList":[]}
1
+ {"version":3,"file":"useDelay.js","names":["c","_c","React","useDelay","delay","t0","$","triggerOnMount","undefined","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","t1","clearTimeout","current","setTimeout","triggerDelay","t2","t3","useEffect","t4"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,YAAYC,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAgB,MAAAM,cAAA,GAAAF,EAAsB,KAAtBG,SAAsB,GAAtB,KAAsB,GAAtBH,EAAsB;EAC5D,OAAAI,UAAA,EAAAC,aAAA,IAAoCR,KAAA,CAAAS,QAAc,CAAC;EACnD,MAAAC,iBAAA,GAA0BV,KAAA,CAAAW,MAAY,CAAiBL,SAAA;EAAA,IAAAM,EAAA;EAAA,IAAAR,CAAA,QAAAF,KAAA;IAEhBU,EAAA,GAAAA,CAAA;MACrCJ,aAAA,CAAc;MACdK,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MACtCJ,iBAAA,CAAAI,OAAA,GAA4BC,UAAA,CAAW;QACrCP,aAAA,CAAc;MAAA,CAChB,EAAGN,KAAA,CAFsB;MAAA,OAIlB;QACLW,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MAAA,CACxC;IAAA,CACF;IAAAV,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAVA,MAAAY,YAAA,GAAqBJ,EAUX;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAY,YAAA,IAAAZ,CAAA,QAAAC,cAAA;IAEMY,EAAA,GAAAA,CAAA;MACd,IAAIZ,cAAA;QACFW,YAAA;MAAA;IACF,CACF;IAAGE,EAAA,IAACF,YAAA,EAAcX,cAAA,CAAe;IAAAD,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJjCJ,KAAA,CAAAmB,SAAe,CAACF,EAIhB,EAAGC,EAA8B;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAY,YAAA;IAE1BI,EAAA,IAACb,UAAA,EAAYS,YAAA,CAAa;IAAAZ,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAA1BgB,EAA0B;AAAA,CACnC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDelayedRender.js","names":["c","_c","React","useDelay","useDelayedRender","t0","$","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","totalMountTime","hasDelayed","triggerDelay","isMounted","setIsMounted","useState","isUnmounting","setIsUnmounting","onMountTimestampRef","useRef","unmountTimeoutRef","undefined","t1","current","setTimeout","unmount","t2","t3","shouldMount","shouldUnmount","Date","now","totalTimeMounted","remainingTime","clearTimeout","Math","max","useEffect","t4","triggerDelayedRender"],"sources":["../../src/hooks/useDelayedRender.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { useDelay } from './useDelay.js'\n\ntype DelayedRenderProps = {\n /** Time in ms to wait before \"mounting\" the component. */\n delayBeforeShow: number\n /** Time in ms for the \"enter\" phase of the transition, after delay completes. */\n inTimeout: number\n /** Min time in ms for the \"entered\" phase of the transition. */\n minShowTime: number\n /** Time in ms for the exit phase of the transition. */\n outTimeout: number\n /** `true` starts the mount process.\n * `false` starts the unmount process.\n * */\n show: boolean\n}\ntype useDelayedRenderT = (props: DelayedRenderProps) => {\n /** `true` if the component has mounted after the timeout. */\n isMounted: boolean\n /** `true` if the component is unmounting. */\n isUnmounting: boolean\n /** Call this function to trigger the timeout delay before rendering. */\n triggerDelayedRender: () => void\n}\nexport const useDelayedRender: useDelayedRenderT = ({\n delayBeforeShow,\n inTimeout,\n minShowTime,\n outTimeout,\n show,\n}) => {\n const totalMountTime = inTimeout + minShowTime + outTimeout\n const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow)\n const [isMounted, setIsMounted] = React.useState(false)\n const [isUnmounting, setIsUnmounting] = React.useState(false)\n const onMountTimestampRef = React.useRef(0)\n const unmountTimeoutRef: React.RefObject<NodeJS.Timeout | undefined> = React.useRef(undefined)\n\n const unmount = React.useCallback(() => {\n setIsUnmounting(true)\n unmountTimeoutRef.current = setTimeout(() => {\n setIsMounted(false)\n setIsUnmounting(false)\n }, outTimeout)\n }, [setIsUnmounting, outTimeout])\n\n React.useEffect(() => {\n const shouldMount = hasDelayed && !isMounted && show\n const shouldUnmount = isMounted && !show\n\n if (shouldMount) {\n onMountTimestampRef.current = Date.now()\n setIsMounted(true)\n } else if (shouldUnmount) {\n const totalTimeMounted = Date.now() - onMountTimestampRef.current\n const remainingTime = totalMountTime - totalTimeMounted\n clearTimeout(unmountTimeoutRef.current)\n unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime))\n }\n }, [isMounted, show, unmount, totalMountTime, hasDelayed])\n\n return {\n isMounted,\n isUnmounting,\n triggerDelayedRender: triggerDelay,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useDelayedRender.js","names":["c","_c","React","useDelay","useDelayedRender","t0","$","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","totalMountTime","hasDelayed","triggerDelay","isMounted","setIsMounted","useState","isUnmounting","setIsUnmounting","onMountTimestampRef","useRef","unmountTimeoutRef","undefined","t1","current","setTimeout","unmount","t2","t3","shouldMount","shouldUnmount","Date","now","totalTimeMounted","remainingTime","clearTimeout","Math","max","useEffect","t4","triggerDelayedRender"],"sources":["../../src/hooks/useDelayedRender.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { useDelay } from './useDelay.js'\n\ntype DelayedRenderProps = {\n /** Time in ms to wait before \"mounting\" the component. */\n delayBeforeShow: number\n /** Time in ms for the \"enter\" phase of the transition, after delay completes. */\n inTimeout: number\n /** Min time in ms for the \"entered\" phase of the transition. */\n minShowTime: number\n /** Time in ms for the exit phase of the transition. */\n outTimeout: number\n /** `true` starts the mount process.\n * `false` starts the unmount process.\n * */\n show: boolean\n}\ntype useDelayedRenderT = (props: DelayedRenderProps) => {\n /** `true` if the component has mounted after the timeout. */\n isMounted: boolean\n /** `true` if the component is unmounting. */\n isUnmounting: boolean\n /** Call this function to trigger the timeout delay before rendering. */\n triggerDelayedRender: () => void\n}\nexport const useDelayedRender: useDelayedRenderT = ({\n delayBeforeShow,\n inTimeout,\n minShowTime,\n outTimeout,\n show,\n}) => {\n const totalMountTime = inTimeout + minShowTime + outTimeout\n const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow)\n const [isMounted, setIsMounted] = React.useState(false)\n const [isUnmounting, setIsUnmounting] = React.useState(false)\n const onMountTimestampRef = React.useRef(0)\n const unmountTimeoutRef: React.RefObject<NodeJS.Timeout | undefined> = React.useRef(undefined)\n\n const unmount = React.useCallback(() => {\n setIsUnmounting(true)\n unmountTimeoutRef.current = setTimeout(() => {\n setIsMounted(false)\n setIsUnmounting(false)\n }, outTimeout)\n }, [setIsUnmounting, outTimeout])\n\n React.useEffect(() => {\n const shouldMount = hasDelayed && !isMounted && show\n const shouldUnmount = isMounted && !show\n\n if (shouldMount) {\n onMountTimestampRef.current = Date.now()\n setIsMounted(true)\n } else if (shouldUnmount) {\n const totalTimeMounted = Date.now() - onMountTimestampRef.current\n const remainingTime = totalMountTime - totalTimeMounted\n clearTimeout(unmountTimeoutRef.current)\n unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime))\n }\n }, [isMounted, show, unmount, totalMountTime, hasDelayed])\n\n return {\n isMounted,\n isUnmounting,\n triggerDelayedRender: triggerDelay,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useElementHeightVariable.js","names":["c","_c","useEffect","useElementHeightVariable","t0","$","cssVar","isEnabled","t1","ref","undefined","t2","t3","el","current","observer","ResizeObserver","document","documentElement","style","setProperty","offsetHeight","observe","disconnect","removeProperty"],"sources":["../../src/hooks/useElementHeightVariable.ts"],"sourcesContent":["'use client'\n\nimport type { RefObject } from 'react'\n\nimport { useEffect } from 'react'\n\n/**\n * Observes an element and publishes its rendered height to a CSS custom property on the document\n * root (e.g. `--app-header-height`), so layout that depends on that height can be expressed in CSS.\n * The property is removed on unmount.\n *\n * Used by `AppHeader`, `DocumentControls` and `DocumentHeaderRoot` to expose their heights for\n * sticky offsets and the upload view's scroll-driven sizing.\n */\nexport const useElementHeightVariable = ({\n cssVar,\n isEnabled = true,\n ref,\n}: {\n cssVar: string\n isEnabled?: boolean\n ref: RefObject<HTMLElement | null>\n}): void => {\n useEffect(() => {\n if (!isEnabled) {\n return\n }\n\n const el = ref.current\n if (!el) {\n return\n }\n\n const observer = new ResizeObserver(() => {\n document.documentElement.style.setProperty(cssVar, `${el.offsetHeight}px`)\n })\n observer.observe(el)\n\n return () => {\n observer.disconnect()\n document.documentElement.style.removeProperty(cssVar)\n }\n }, [cssVar, isEnabled, ref])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAE1B;;;;;;;;AAQA,OAAO,MAAMC,wBAAA,GAA2BC,EAAA;EAAA,MAAAC,CAAA,GAAAJ,EAAA;EAAC;IAAAK,MAAA;IAAAC,SAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAL,EAQxC;EANC,MAAAG,SAAA,GAAAC,EAAgB,KAAAE,SAAA,UAAhBF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAI,GAAA;IAONE,EAAA,GAAAA,CAAA;MAAA,KACHJ,SAAA;QAAA;MAAA;MAIL,MAAAM,EAAA,GAAWJ,GAAA,CAAAK,OAAA;MAAW,KACjBD,EAAA;QAAA;MAAA;MAIL,MAAAE,QAAA,OAAAC,cAAA;QACEC,QAAA,CAAAC,eAAA,CAAAC,KAAA,CAAAC,WAAA,CAA2Cd,MAAA,EAAQ,GAAGO,EAAA,CAAAQ,YAAA,IAAmB;MAAA;MAE3EN,QAAA,CAAAO,OAAA,CAAiBT,EAAA;MAAA;QAGfE,QAAA,CAAAQ,UAAA,CAAmB;QACnBN,QAAA,CAAAC,eAAA,CAAAC,KAAA,CAAAK,cAAA,CAA8ClB,MAAA;MAAA;IAAA;IAE/CM,EAAA,IAACN,MAAA,EAAQC,SAAA,EAAWE,GAAA;IAAIJ,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAI,GAAA;IAAAJ,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAD,EAAA,GAAAN,CAAA;IAAAO,EAAA,GAAAP,CAAA;EAAA;EAnB3BH,SAAA,CAAUS,EAmBV,EAAGC,EAAwB;AAAA,CAC7B","ignoreList":[]}
1
+ {"version":3,"file":"useElementHeightVariable.js","names":["c","_c","useEffect","useElementHeightVariable","t0","$","cssVar","isEnabled","t1","ref","undefined","t2","t3","el","current","observer","ResizeObserver","document","documentElement","style","setProperty","offsetHeight","observe","disconnect","removeProperty"],"sources":["../../src/hooks/useElementHeightVariable.ts"],"sourcesContent":["'use client'\n\nimport type { RefObject } from 'react'\n\nimport { useEffect } from 'react'\n\n/**\n * Observes an element and publishes its rendered height to a CSS custom property on the document\n * root (e.g. `--app-header-height`), so layout that depends on that height can be expressed in CSS.\n * The property is removed on unmount.\n *\n * Used by `AppHeader`, `DocumentControls` and `DocumentHeaderRoot` to expose their heights for\n * sticky offsets and the upload view's scroll-driven sizing.\n */\nexport const useElementHeightVariable = ({\n cssVar,\n isEnabled = true,\n ref,\n}: {\n cssVar: string\n isEnabled?: boolean\n ref: RefObject<HTMLElement | null>\n}): void => {\n useEffect(() => {\n if (!isEnabled) {\n return\n }\n\n const el = ref.current\n if (!el) {\n return\n }\n\n const observer = new ResizeObserver(() => {\n document.documentElement.style.setProperty(cssVar, `${el.offsetHeight}px`)\n })\n observer.observe(el)\n\n return () => {\n observer.disconnect()\n document.documentElement.style.removeProperty(cssVar)\n }\n }, [cssVar, isEnabled, ref])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,QAAQ;AAE1B;;;;;;;;AAQA,OAAO,MAAMC,wBAAA,GAA2BC,EAAA;EAAA,MAAAC,CAAA,GAAAJ,EAAA;EAAC;IAAAK,MAAA;IAAAC,SAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAL,EAQxC;EANC,MAAAG,SAAA,GAAAC,EAAgB,KAAhBE,SAAgB,GAAhB,IAAgB,GAAhBF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAI,GAAA;IAONE,EAAA,GAAAA,CAAA;MACR,IAAI,CAACJ,SAAA;QAAA;MAAA;MAIL,MAAAM,EAAA,GAAWJ,GAAA,CAAAK,OAAW;MACtB,IAAI,CAACD,EAAA;QAAA;MAAA;MAIL,MAAAE,QAAA,GAAiB,IAAIC,cAAA,CAAe;QAClCC,QAAA,CAAAC,eAAwB,CAAAC,KAAM,CAAAC,WAAY,CAACd,MAAA,EAAQ,GAAGO,EAAA,CAAAQ,YAAe,IAAI;MAAA,CAC3E;MACAN,QAAA,CAAAO,OAAgB,CAACT,EAAA;MAAA,OAEV;QACLE,QAAA,CAAAQ,UAAmB;QACnBN,QAAA,CAAAC,eAAwB,CAAAC,KAAM,CAAAK,cAAe,CAAClB,MAAA;MAAA,CAChD;IAAA,CACF;IAAGM,EAAA,IAACN,MAAA,EAAQC,SAAA,EAAWE,GAAA,CAAI;IAAAJ,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAI,GAAA;IAAAJ,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAD,EAAA,GAAAN,CAAA;IAAAO,EAAA,GAAAP,CAAA;EAAA;EAnB3BH,SAAA,CAAUS,EAmBV,EAAGC,EAAwB;AAAA,CAC7B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHotkey.js","names":["c","_c","useModal","setsAreEqual","useCallback","useEffect","pressedKeys","Map","map","altleft","altright","controlleft","controlright","ctrlleft","ctrlright","escape","metaleft","metaright","osleft","osright","shiftleft","shiftright","stripKey","key","toLowerCase","trim","replace","pushToKeys","code","forEach","time","pressedKey","delete","set","Date","now","removeFromKeys","clear","useHotkey","options","func","$","cmdCtrlKey","editDepth","keyCodes","modalState","t0","event","e","detail","undefined","_temp","hasCmd","window","navigator","userAgent","includes","pressedWithoutModifier","keys","filter","_temp2","Set","has","ctrlKey","maxEditDepth","Object","key_1","isOpen","length","keydown","keyup","_temp3","t1","t2","document","addEventListener","removeEventListener","key_0","e_0"],"sources":["../../src/hooks/useHotkey.ts"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { setsAreEqual } from 'payload/shared'\nimport { useCallback, useEffect } from 'react'\n\n// Required to be outside of hook, else debounce would be necessary\n// and then one could not prevent the default behaviour.\n\n// It maps the pressed keys with the time they were pressed, in order to implement a maximum time\n// for the user to press the next key in the sequence\n\n// This is necessary to prevent a bug where the keyup event, which unsets the key as pressed\n// is not fired when the window is not focused.\n// When the user then comes back to the window, the key is still registered as pressed, even though it's not.\nconst pressedKeys = new Map<string, number>([])\n\nconst map = {\n altleft: 'alt',\n altright: 'alt',\n controlleft: 'ctrl',\n controlright: 'ctrl',\n ctrlleft: 'ctrl',\n ctrlright: 'ctrl',\n escape: 'esc',\n metaleft: 'meta',\n metaright: 'meta',\n osleft: 'meta',\n osright: 'meta',\n shiftleft: 'shift',\n shiftright: 'shift',\n}\n\nconst stripKey = (key: string) => {\n return (map[key.toLowerCase()] || key).trim().toLowerCase().replace('key', '')\n}\n\nconst pushToKeys = (code: string) => {\n const key = stripKey(code)\n\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.forEach(\n (time, pressedKey) => pressedKey !== 'meta' && pressedKeys.delete(pressedKey),\n )\n }\n\n pressedKeys.set(key, Date.now())\n}\n\nconst removeFromKeys = (code: string) => {\n const key = stripKey(code)\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.clear()\n }\n pressedKeys.delete(key)\n}\n\n/**\n * Hook function to work with hotkeys.\n * @param param0.keyCode {string[]} The keys to listen for (`Event.code` without `'Key'` and lowercased)\n * @param param0.cmdCtrlKey {boolean} Whether Ctrl on windows or Cmd on mac must be pressed\n * @param param0.editDepth {boolean} This ensures that the hotkey is only triggered for the most top-level drawer in case there are nested drawers\n * @param func The callback function\n */\nexport const useHotkey = (\n options: {\n cmdCtrlKey: boolean\n editDepth: number\n keyCodes: string[]\n },\n func: (e: KeyboardEvent) => void,\n): void => {\n const { cmdCtrlKey, editDepth, keyCodes } = options\n\n const { modalState } = useModal()\n\n const keydown = useCallback(\n (event: CustomEvent | KeyboardEvent) => {\n const e: KeyboardEvent = event.detail?.key ? event.detail : event\n if (e.key === undefined) {\n // Autofill events, or other synthetic events, can be ignored\n return\n }\n\n // Filter out pressed keys which have been pressed > 3 seconds ago\n pressedKeys.forEach((time, key) => {\n if (Date.now() - time > 3000) {\n pressedKeys.delete(key)\n }\n })\n\n if (e.code) {\n pushToKeys(e.code)\n }\n\n // Check for Mac and iPad\n const hasCmd = window.navigator.userAgent.includes('Mac OS X')\n const pressedWithoutModifier = [...pressedKeys.keys()].filter(\n (key) => !['alt', 'ctrl', 'meta', 'shift'].includes(key),\n )\n\n // Check whether arrays contain the same values (regardless of number of occurrences)\n if (\n setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) &&\n (!cmdCtrlKey || (hasCmd && pressedKeys.has('meta')) || (!hasCmd && e.ctrlKey))\n ) {\n // get the maximum edit depth by counting the number of open drawers. modalState is and object which contains the state of all drawers.\n const maxEditDepth =\n Object.keys(modalState).filter((key) => modalState[key]?.isOpen)?.length + 1 || 1\n\n if (maxEditDepth !== editDepth) {\n // We only want to execute the hotkey from the most top-level drawer / edit depth.\n return\n }\n // execute the function associated with the maximum edit depth\n func(e)\n }\n },\n [keyCodes, cmdCtrlKey, editDepth, modalState, func],\n )\n\n const keyup = useCallback((e: KeyboardEvent) => {\n if (e.code) {\n removeFromKeys(e.code)\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('keydown', keydown, false)\n document.addEventListener('bypassKeyDown', keydown, false) // this is called if the keydown event's propagation is stopped by react-select\n document.addEventListener('keyup', keyup, false)\n\n return () => {\n document.removeEventListener('keydown', keydown)\n document.removeEventListener('bypassKeyDown', keydown)\n document.removeEventListener('keyup', keyup)\n }\n }, [keydown, keyup])\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useHotkey.js","names":["c","_c","useModal","setsAreEqual","useCallback","useEffect","pressedKeys","Map","map","altleft","altright","controlleft","controlright","ctrlleft","ctrlright","escape","metaleft","metaright","osleft","osright","shiftleft","shiftright","stripKey","key","toLowerCase","trim","replace","pushToKeys","code","forEach","time","pressedKey","delete","set","Date","now","removeFromKeys","clear","useHotkey","options","func","$","cmdCtrlKey","editDepth","keyCodes","modalState","t0","event","e","detail","undefined","_temp","hasCmd","window","navigator","userAgent","includes","pressedWithoutModifier","keys","filter","_temp2","Set","has","ctrlKey","maxEditDepth","Object","key_1","isOpen","length","keydown","keyup","_temp3","t1","t2","document","addEventListener","removeEventListener","key_0","e_0"],"sources":["../../src/hooks/useHotkey.ts"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { setsAreEqual } from 'payload/shared'\nimport { useCallback, useEffect } from 'react'\n\n// Required to be outside of hook, else debounce would be necessary\n// and then one could not prevent the default behaviour.\n\n// It maps the pressed keys with the time they were pressed, in order to implement a maximum time\n// for the user to press the next key in the sequence\n\n// This is necessary to prevent a bug where the keyup event, which unsets the key as pressed\n// is not fired when the window is not focused.\n// When the user then comes back to the window, the key is still registered as pressed, even though it's not.\nconst pressedKeys = new Map<string, number>([])\n\nconst map = {\n altleft: 'alt',\n altright: 'alt',\n controlleft: 'ctrl',\n controlright: 'ctrl',\n ctrlleft: 'ctrl',\n ctrlright: 'ctrl',\n escape: 'esc',\n metaleft: 'meta',\n metaright: 'meta',\n osleft: 'meta',\n osright: 'meta',\n shiftleft: 'shift',\n shiftright: 'shift',\n}\n\nconst stripKey = (key: string) => {\n return (map[key.toLowerCase()] || key).trim().toLowerCase().replace('key', '')\n}\n\nconst pushToKeys = (code: string) => {\n const key = stripKey(code)\n\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.forEach(\n (time, pressedKey) => pressedKey !== 'meta' && pressedKeys.delete(pressedKey),\n )\n }\n\n pressedKeys.set(key, Date.now())\n}\n\nconst removeFromKeys = (code: string) => {\n const key = stripKey(code)\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.clear()\n }\n pressedKeys.delete(key)\n}\n\n/**\n * Hook function to work with hotkeys.\n * @param param0.keyCode {string[]} The keys to listen for (`Event.code` without `'Key'` and lowercased)\n * @param param0.cmdCtrlKey {boolean} Whether Ctrl on windows or Cmd on mac must be pressed\n * @param param0.editDepth {boolean} This ensures that the hotkey is only triggered for the most top-level drawer in case there are nested drawers\n * @param func The callback function\n */\nexport const useHotkey = (\n options: {\n cmdCtrlKey: boolean\n editDepth: number\n keyCodes: string[]\n },\n func: (e: KeyboardEvent) => void,\n): void => {\n const { cmdCtrlKey, editDepth, keyCodes } = options\n\n const { modalState } = useModal()\n\n const keydown = useCallback(\n (event: CustomEvent | KeyboardEvent) => {\n const e: KeyboardEvent = event.detail?.key ? event.detail : event\n if (e.key === undefined) {\n // Autofill events, or other synthetic events, can be ignored\n return\n }\n\n // Filter out pressed keys which have been pressed > 3 seconds ago\n pressedKeys.forEach((time, key) => {\n if (Date.now() - time > 3000) {\n pressedKeys.delete(key)\n }\n })\n\n if (e.code) {\n pushToKeys(e.code)\n }\n\n // Check for Mac and iPad\n const hasCmd = window.navigator.userAgent.includes('Mac OS X')\n const pressedWithoutModifier = [...pressedKeys.keys()].filter(\n (key) => !['alt', 'ctrl', 'meta', 'shift'].includes(key),\n )\n\n // Check whether arrays contain the same values (regardless of number of occurrences)\n if (\n setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) &&\n (!cmdCtrlKey || (hasCmd && pressedKeys.has('meta')) || (!hasCmd && e.ctrlKey))\n ) {\n // get the maximum edit depth by counting the number of open drawers. modalState is and object which contains the state of all drawers.\n const maxEditDepth =\n Object.keys(modalState).filter((key) => modalState[key]?.isOpen)?.length + 1 || 1\n\n if (maxEditDepth !== editDepth) {\n // We only want to execute the hotkey from the most top-level drawer / edit depth.\n return\n }\n // execute the function associated with the maximum edit depth\n func(e)\n }\n },\n [keyCodes, cmdCtrlKey, editDepth, modalState, func],\n )\n\n const keyup = useCallback((e: KeyboardEvent) => {\n if (e.code) {\n removeFromKeys(e.code)\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('keydown', keydown, false)\n document.addEventListener('bypassKeyDown', keydown, false) // this is called if the keydown event's propagation is stopped by react-select\n document.addEventListener('keyup', keyup, false)\n\n return () => {\n document.removeEventListener('keydown', keydown)\n document.removeEventListener('bypassKeyDown', keydown)\n document.removeEventListener('keyup', keyup)\n }\n }, [keydown, keyup])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAEA,SAASC,QAAQ,QAAQ;AACzB,SAASC,YAAY,QAAQ;AAC7B,SAASC,WAAW,EAAEC,SAAS,QAAQ;AAEvC;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA,MAAMC,WAAA,GAAc,IAAIC,GAAA,CAAoB,EAAE;AAE9C,MAAMC,GAAA,GAAM;EACVC,OAAA,EAAS;EACTC,QAAA,EAAU;EACVC,WAAA,EAAa;EACbC,YAAA,EAAc;EACdC,QAAA,EAAU;EACVC,SAAA,EAAW;EACXC,MAAA,EAAQ;EACRC,QAAA,EAAU;EACVC,SAAA,EAAW;EACXC,MAAA,EAAQ;EACRC,OAAA,EAAS;EACTC,SAAA,EAAW;EACXC,UAAA,EAAY;AACd;AAEA,MAAMC,QAAA,GAAYC,GAAA;EAChB,OAAO,CAACf,GAAG,CAACe,GAAA,CAAIC,WAAW,GAAG,IAAID,GAAE,EAAGE,IAAI,GAAGD,WAAW,GAAGE,OAAO,CAAC,OAAO;AAC7E;AAEA,MAAMC,UAAA,GAAcC,IAAA;EAClB,MAAML,GAAA,GAAMD,QAAA,CAASM,IAAA;EAErB;EACA;EACA,IAAIL,GAAA,KAAQ,QAAQ;IAClBjB,WAAA,CAAYuB,OAAO,CACjB,CAACC,IAAA,EAAMC,UAAA,KAAeA,UAAA,KAAe,UAAUzB,WAAA,CAAY0B,MAAM,CAACD,UAAA;EAEtE;EAEAzB,WAAA,CAAY2B,GAAG,CAACV,GAAA,EAAKW,IAAA,CAAKC,GAAG;AAC/B;AAEA,MAAMC,cAAA,GAAkBR,IAAA;EACtB,MAAML,GAAA,GAAMD,QAAA,CAASM,IAAA;EACrB;EACA;EACA,IAAIL,GAAA,KAAQ,QAAQ;IAClBjB,WAAA,CAAY+B,KAAK;EACnB;EACA/B,WAAA,CAAY0B,MAAM,CAACT,GAAA;AACrB;AAEA;;;;;;;AAOA,OAAO,MAAMe,SAAA,GAAYA,CAAAC,OAAA,EAAAC,IAAA;EAAA,MAAAC,CAAA,GAAAxC,EAAA;EAQvB;IAAAyC,UAAA;IAAAC,SAAA;IAAAC;EAAA,IAA4CL,OAAA;EAE5C;IAAAM;EAAA,IAAuB3C,QAAA;EAAA,IAAA4C,EAAA;EAAA,IAAAL,CAAA,QAAAC,UAAA,IAAAD,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAD,IAAA,IAAAC,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAI,UAAA;IAGrBC,EAAA,GAAAC,KAAA;MACE,MAAAC,CAAA,GAAyBD,KAAA,CAAAE,MAAc,EAAA1B,GAAqB,GAAfwB,KAAA,CAAAE,MAAe,GAAnCF,KAAmC;MAC5D,IAAIC,CAAA,CAAAzB,GAAK,KAAK2B,SAAA;QAAA;MAAA;MAMd5C,WAAA,CAAAuB,OAAmB,CAACsB,KAIpB;MAEA,IAAIH,CAAA,CAAApB,IAAM;QACRD,UAAA,CAAWqB,CAAA,CAAApB,IAAM;MAAA;MAInB,MAAAwB,MAAA,GAAeC,MAAA,CAAAC,SAAgB,CAAAC,SAAU,CAAAC,QAAS,CAAC;MACnD,MAAAC,sBAAA,GAA+B,IAAInD,WAAA,CAAAoD,IAAgB,GAAG,CAAAC,MAAO,CAC3DC,MAAoD;MAItD,IACEzD,YAAA,CAAa,IAAI0D,GAAA,CAAIJ,sBAAA,GAAyB,IAAII,GAAA,CAAIjB,QAAA,CACsB,MAA3E,CAACF,UAAyC,IAA1BU,MAA0B,IAAhB9C,WAAA,CAAAwD,GAAe,CAAC,OAAiC,IAApB,CAACV,MAAmB,IAATJ,CAAA,CAAAe,OAAS;QAG5E,MAAAC,YAAA,GACEC,MAAA,CAAAP,IAAW,CAACb,UAAA,EAAAc,MAAkB,CAACO,KAAA,IAASrB,UAAU,CAACtB,KAAA,CAAM,EAAA4C,MAAS,GAAAC,MAAA,GAAS,CAAK,IAAhF,CAAgF;QAElF,IAAIJ,YAAA,KAAiBrB,SAAA;UAAA;QAAA;QAKrBH,IAAA,CAAKQ,CAAA;MAAA;IACP,CACF;IAAAP,CAAA,MAAAC,UAAA;IAAAD,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAD,IAAA;IAAAC,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAA,EAAA,GAAAL,CAAA;EAAA;EAzCF,MAAA4B,OAAA,GAAgBvB,EA0CqC;EAGrD,MAAAwB,KAAA,GAAcC,MAIT;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhC,CAAA,QAAA4B,OAAA;IAEKG,EAAA,GAAAA,CAAA;MACRE,QAAA,CAAAC,gBAAyB,CAAC,WAAWN,OAAA,EAAS;MAC9CK,QAAA,CAAAC,gBAAyB,CAAC,iBAAiBN,OAAA,EAAS;MACpDK,QAAA,CAAAC,gBAAyB,CAAC,SAASL,KAAA,EAAO;MAAA,OAEnC;QACLI,QAAA,CAAAE,mBAA4B,CAAC,WAAWP,OAAA;QACxCK,QAAA,CAAAE,mBAA4B,CAAC,iBAAiBP,OAAA;QAC9CK,QAAA,CAAAE,mBAA4B,CAAC,SAASN,KAAA;MAAA,CACxC;IAAA,CACF;IAAGG,EAAA,IAACJ,OAAA,EAASC,KAAA,CAAM;IAAA7B,CAAA,MAAA4B,OAAA;IAAA5B,CAAA,MAAA+B,EAAA;IAAA/B,CAAA,MAAAgC,EAAA;EAAA;IAAAD,EAAA,GAAA/B,CAAA;IAAAgC,EAAA,GAAAhC,CAAA;EAAA;EAVnBpC,SAAA,CAAUmE,EAUV,EAAGC,EAAgB;AAAA,CACrB;AA1EyB,SAAAtB,MAAArB,IAAA,EAAAP,GAAA;EAsBjB,IAAIW,IAAA,CAAAC,GAAQ,KAAKL,IAAA,GAAO;IACtBxB,WAAA,CAAA0B,MAAkB,CAACT,GAAA;EAAA;AACrB;AAxBiB,SAAAqC,OAAAiB,KAAA;EAAA,OAkCR,CAAC,CAAC,OAAO,QAAQ,QAAQ,QAAQ,CAAArB,QAAS,CAACjC,KAAA;AAAA;AAlCnC,SAAAgD,OAAAO,GAAA;EA0DrB,IAAI9B,GAAA,CAAApB,IAAM;IACRQ,cAAA,CAAeY,GAAA,CAAApB,IAAM;EAAA;AACvB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","root","t1","rootMargin","t2","threshold","t3","undefined","entry","updateEntry","node","setNode","observer","window","IntersectionObserver","t4","ent","t5","t6","current","currentObserver","disconnect","observe","t7"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) {\n currentObserver.observe(node)\n }\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAC1B;IAAAQ,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAR,EAAuD,KAAAS,SAAA,QAAvDT,EAAuD;EAArD,MAAAG,IAAA,GAAAC,EAAW,KAAAK,SAAA,UAAXL,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAG,SAAA,GAAL,KAAK,GAAlBH,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAC,SAAA,OAAbD,EAAa;EAGhD,OAAAE,KAAA,EAAAC,WAAA,IAA6Bb,QAAA;EAC7B,OAAAc,IAAA,EAAAC,OAAA,IAAwBf,QAAA,KAAS;EAEjC,MAAAgB,QAAA,GAAiBjB,MAAA,CACf,OAAAkB,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWd,OAAA,OAAAc,MAAA,CAAAC,oBAAA,CAAAC,EAAA;IACjC,OAAAC,GAAA,IAAAD,EAAK;IAAA,OAAKN,WAAA,CAAYO,GAAA;EAAA;IAAAf,IAAA;IAAAE,UAAA;IAAAE;EAAA,SAKvD;EAAA,IAAAY,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAU,IAAA;IAGIO,EAAA,GAAAA,CAAA;MAAA,IACJlB,OAAA;QAAA;MAAA;MAGJ;QAAAoB,OAAA,EAAAC;MAAA,IAAqCR,QAAA;MACrCQ,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QACFU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAGbU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMX,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAU,IAAA;IAAAV,CAAA,MAAAiB,EAAA;IAAAjB,CAAA,MAAAkB,EAAA;EAAA;IAAAD,EAAA,GAAAjB,CAAA;IAAAkB,EAAA,GAAAlB,CAAA;EAAA;EAZlBN,SAAA,CAAUuB,EAYV,EAAGC,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAvB,CAAA,QAAAQ,KAAA,IAAAR,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAW,OAAA;IAEXY,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKV,CAAA,MAAAQ,KAAA;IAAAR,CAAA,MAAAU,IAAA;IAAAV,CAAA,MAAAW,OAAA;IAAAX,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAA,OAAtBuB,EAAsB;AAAA,CAC/B","ignoreList":[]}
1
+ {"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","root","t1","rootMargin","t2","threshold","t3","undefined","entry","updateEntry","node","setNode","observer","window","IntersectionObserver","t4","ent","t5","t6","current","currentObserver","disconnect","observe","t7"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) {\n currentObserver.observe(node)\n }\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAC1B;IAAAQ,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAR,EAAuD,KAAvDS,SAAuD,GAAvD,CAAsD,CAAC,GAAvDT,EAAuD;EAArD,MAAAG,IAAA,GAAAC,EAAW,KAAXK,SAAW,GAAX,IAAW,GAAXL,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAlBG,SAAkB,GAAlB,KAAkB,GAAlBH,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAbC,SAAa,GAAb,CAAa,GAAbD,EAAa;EAGhD,OAAAE,KAAA,EAAAC,WAAA,IAA6Bb,QAAA;EAC7B,OAAAc,IAAA,EAAAC,OAAA,IAAwBf,QAAA,CAAS;EAEjC,MAAAgB,QAAA,GAAiBjB,MAAA,CACf,OAAOkB,MAAA,KAAW,WAAyC,IAA1B,0BAA0BA,MAAW,IAAtE,CAAsEd,OAMlE,GANJ,IACQc,MAAA,CAAAC,oBAA2B,CAACC,EAAA;IAAC,OAAAC,GAAA,IAAAD,EAAK;IAAA,OAAKN,WAAA,CAAYO,GAAA;EAAA,GAAM;IAAAf,IAAA;IAAAE,UAAA;IAAAE;EAI7D,CACA,IANJ,IAMI;EAAA,IAAAY,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAU,IAAA;IAGIO,EAAA,GAAAA,CAAA;MACR,IAAIlB,OAAA;QAAA;MAAA;MAGJ;QAAAoB,OAAA,EAAAC;MAAA,IAAqCR,QAAA;MACrCQ,eAAA,CAAAC,UAA0B;MAE1B,IAAIX,IAAA;QACFU,eAAA,CAAAE,OAAuB,CAACZ,IAAA;MAAA;MAC1B,OAEO,MAAMU,eAAA,CAAAC,UAA0B;IAAA,CACzC;IAAGH,EAAA,IAACR,IAAA,EAAMX,OAAA,CAAQ;IAAAC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAU,IAAA;IAAAV,CAAA,MAAAiB,EAAA;IAAAjB,CAAA,MAAAkB,EAAA;EAAA;IAAAD,EAAA,GAAAjB,CAAA;IAAAkB,EAAA,GAAAlB,CAAA;EAAA;EAZlBN,SAAA,CAAUuB,EAYV,EAAGC,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAvB,CAAA,QAAAQ,KAAA,IAAAR,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAW,OAAA;IAEXY,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA,CAAK;IAAAV,CAAA,MAAAQ,KAAA;IAAAR,CAAA,MAAAU,IAAA;IAAAV,CAAA,MAAAW,OAAA;IAAAX,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAA,OAAtBuB,EAAsB;AAAA,CAC/B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePayloadAPI.js","names":["c","_c","qs","useEffect","useRef","useState","useBranchParam","useLocale","useTranslation","requests","usePayloadAPI","url","t0","$","t1","undefined","options","initialData","initialParams","t2","t3","i18n","t4","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","currentLocale","locale","code","branch","hasInitialized","t5","stringify","addQueryPrefix","search","t6","language","current","abortController","AbortController","fetchData","response","get","headers","signal","status","json","t7","aborted","abort","t8","_err","t9","t10","t11","Symbol","for","t12"],"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport * as qs from 'qs-esm'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useBranchParam } from '../providers/Branch/index.js'\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nexport const usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const branch = useBranchParam()\n const hasInitialized = useRef(false)\n\n const search = qs.stringify(\n {\n branch,\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"usePayloadAPI.js","names":["c","_c","qs","useEffect","useRef","useState","useBranchParam","useLocale","useTranslation","requests","usePayloadAPI","url","t0","$","t1","undefined","options","initialData","initialParams","t2","t3","i18n","t4","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","currentLocale","locale","code","branch","hasInitialized","t5","stringify","addQueryPrefix","search","t6","language","current","abortController","AbortController","fetchData","response","get","headers","signal","status","json","t7","aborted","abort","t8","_err","t9","t10","t11","Symbol","for","t12"],"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport * as qs from 'qs-esm'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useBranchParam } from '../providers/Branch/index.js'\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nexport const usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const currentLocale = useLocale()\n const locale = currentLocale?.code\n const branch = useBranchParam()\n const hasInitialized = useRef(false)\n\n const search = qs.stringify(\n {\n branch,\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,YAAYC,EAAA,MAAQ;AACpB,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAE5C,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AAoBzB,OAAO,MAAMC,aAAA,GAA+BA,CAAAC,GAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAZ,EAAA;EAAA,IAAAa,EAAA;EAAA,IAAAD,CAAA,QAAAD,EAAA;IAAME,EAAA,GAAAF,EAAY,KAAZG,SAAY,GAAZ,CAAW,CAAC,GAAZH,EAAY;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAZ,MAAAG,OAAA,GAAAF,EAAY;EAC5D;IAAAG,WAAA;IAAAC,aAAA,EAAAC;EAAA,IAA4CH,OAAA;EAAA,IAAAI,EAAA;EAAA,IAAAP,CAAA,QAAAM,EAAA;IAAvBC,EAAA,GAAAD,EAAkB,KAAlBJ,SAAkB,GAAlB,CAAiB,CAAC,GAAlBI,EAAkB;IAAAN,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAlB,MAAAK,aAAA,GAAAE,EAAkB;EAEvC;IAAAC;EAAA,IAAiBb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAT,CAAA,QAAAI,WAAA;IACgBK,EAAA,GAAAL,WAAgB,IAAhB,CAAgB;IAAAJ,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAjD,OAAAU,IAAA,EAAAC,OAAA,IAAwBnB,QAAA,CAASiB,EAAgB;EACjD,OAAAG,MAAA,EAAAC,SAAA,IAA4BrB,QAAA,CAASa,aAAA;EACrC,OAAAS,SAAA,EAAAC,YAAA,IAAkCvB,QAAA,CAAS,CAACY,WAAA;EAC5C,OAAAY,OAAA,EAAAC,UAAA,IAA8BzB,QAAA,CAAS;EACvC,MAAA0B,aAAA,GAAsBxB,SAAA;EACtB,MAAAyB,MAAA,GAAeD,aAAA,EAAAE,IAAe;EAC9B,MAAAC,MAAA,GAAe5B,cAAA;EACf,MAAA6B,cAAA,GAAuB/B,MAAA,CAAO;EAAA,IAAAgC,EAAA;EAAA,IAAAvB,CAAA,QAAAqB,MAAA,IAAArB,CAAA,QAAAmB,MAAA,IAAAnB,CAAA,QAAAY,MAAA;IAEfW,EAAA,GAAAlC,EAAA,CAAAmC,SAAY,CACzB;MAAAH,MAAA;MAAAF,MAAA;MAAA,IAGM,OAAOP,MAAA,KAAW,QAAsB,GAAxCA,MAAwC,GAAxC,CAAuC,CAAC;IAC9C,GACA;MAAAa,cAAA,EACkB;IAClB;IAAAzB,CAAA,MAAAqB,MAAA;IAAArB,CAAA,MAAAmB,MAAA;IAAAnB,CAAA,MAAAY,MAAA;IAAAZ,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EARF,MAAA0B,MAAA,GAAeH,EAQb;EAAA,IAAAI,EAAA;EAAA,IAAA3B,CAAA,SAAAQ,IAAA,CAAAoB,QAAA,IAAA5B,CAAA,SAAAI,WAAA,IAAAJ,CAAA,SAAA0B,MAAA,IAAA1B,CAAA,SAAAF,GAAA;IAIQ6B,EAAA,GAAAA,CAAA;MACR,IAAIvB,WAAsC,IAAtC,CAAgBkB,cAAA,CAAAO,OAAsB;QACxCP,cAAA,CAAAO,OAAA,GAAyB,IAAH;QAAA;MAAA;MAIxB,MAAAC,eAAA,GAAwB,IAAIC,eAAA;MAE5B,MAAAC,SAAA,GAAkB,MAAAA,CAAA;QAChBf,UAAA,CAAW;QACXF,YAAA,CAAa;QAAA;QAEb;UACE,MAAAkB,QAAA,GAAiB,MAAMrC,QAAA,CAAAsC,GAAY,CAAC,GAAGpC,GAAA,GAAM4B,MAAA,EAAQ,EAAE;YAAAS,OAAA,EAC5C;cAAA,mBACY3B,IAAA,CAAAoB;YACrB;YAAAQ,MAAA,EACQN,eAAA,CAAAM;UACV;UAEA,IAAIH,QAAA,CAAAI,MAAe,GAAG;YACpBpB,UAAA,CAAW;UAAA;UAGb,MAAAqB,IAAA,GAAa,MAAML,QAAA,CAAAK,IAAa;UAEhC3B,OAAA,CAAQ2B,IAAA;UACRvB,YAAA,CAAa;QAAA,SAAAwB,EAAA;UAEb,IAAI,CAACT,eAAA,CAAAM,MAAsB,CAAAI,OAAQ;YACjCvB,UAAA,CAAW;YACXF,YAAA,CAAa;UAAA;QACf;MACF,CACF;MAEA,IAAIjB,GAAA;QACGkC,SAAA;MAAA;QAELf,UAAA,CAAW;QACXF,YAAA,CAAa;MAAA;MACf,OAEO;QAAA;QACL;UACEe,eAAA,CAAAW,KAAqB;QAAA,SAAAC,EAAA;UACdC,KAAA,CAAAA,IAAA,CAAAA,CAAA,CAAAA,EAAA;QAAA;MAET,CACF;IAAA,CACF;IAAA3C,CAAA,OAAAQ,IAAA,CAAAoB,QAAA;IAAA5B,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAA0B,MAAA;IAAA1B,CAAA,OAAAF,GAAA;IAAAE,CAAA,OAAA2B,EAAA;EAAA;IAAAA,EAAA,GAAA3B,CAAA;EAAA;EAAA,IAAAuC,EAAA;EAAA,IAAAvC,CAAA,SAAAQ,IAAA,CAAAoB,QAAA,IAAA5B,CAAA,SAAAI,WAAA,IAAAJ,CAAA,SAAAmB,MAAA,IAAAnB,CAAA,SAAA0B,MAAA,IAAA1B,CAAA,SAAAF,GAAA;IAAGyC,EAAA,IAACzC,GAAA,EAAKqB,MAAA,EAAQO,MAAA,EAAQlB,IAAA,CAAAoB,QAAa,EAAExB,WAAA,CAAY;IAAAJ,CAAA,OAAAQ,IAAA,CAAAoB,QAAA;IAAA5B,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAAmB,MAAA;IAAAnB,CAAA,OAAA0B,MAAA;IAAA1B,CAAA,OAAAF,GAAA;IAAAE,CAAA,OAAAuC,EAAA;EAAA;IAAAA,EAAA,GAAAvC,CAAA;EAAA;EAlDpDV,SAAA,CAAUqC,EAkDV,EAAGY,EAAiD;EAAA,IAAAG,EAAA;EAAA,IAAAE,EAAA;EAAA,IAAA5C,CAAA,SAAAI,WAAA;IAG1CsC,EAAA,GAAAA,CAAA;MACR,IAAItC,WAAqC,IAAtBkB,cAAA,CAAAO,OAAsB;QACvClB,OAAA,CAAQP,WAAA;MAAA;IACV,CACF;IAAGwC,EAAA,IAACxC,WAAA,CAAY;IAAAJ,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAA0C,EAAA;IAAA1C,CAAA,OAAA4C,EAAA;EAAA;IAAAF,EAAA,GAAA1C,CAAA;IAAA4C,EAAA,GAAA5C,CAAA;EAAA;EAJhBV,SAAA,CAAUoD,EAIV,EAAGE,EAAa;EAAA,IAAAC,GAAA;EAAA,IAAA7C,CAAA,SAAAU,IAAA,IAAAV,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAc,SAAA;IAER+B,GAAA;MAAAnC,IAAA;MAAAM,OAAA;MAAAF;IAA2B;IAAAd,CAAA,OAAAU,IAAA;IAAAV,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAAc,SAAA;IAAAd,CAAA,OAAA6C,GAAA;EAAA;IAAAA,GAAA,GAAA7C,CAAA;EAAA;EAAA,IAAA8C,GAAA;EAAA,IAAA9C,CAAA,SAAA+C,MAAA,CAAAC,GAAA;IAAGF,GAAA;MAAAjC;IAAY;IAAAb,CAAA,OAAA8C,GAAA;EAAA;IAAAA,GAAA,GAAA9C,CAAA;EAAA;EAAA,IAAAiD,GAAA;EAAA,IAAAjD,CAAA,SAAA6C,GAAA;IAA3CI,GAAA,IAACJ,GAA2B,EAAGC,GAAY,CAAE;IAAA9C,CAAA,OAAA6C,GAAA;IAAA7C,CAAA,OAAAiD,GAAA;EAAA;IAAAA,GAAA,GAAAjD,CAAA;EAAA;EAAA,OAA7CiD,GAA6C;AAAA,CACtD","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ import type { RefObject } from 'react';
2
+ export type PointerPosition = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ type UsePointerSafeAreaArgs = {
7
+ enabled: boolean;
8
+ from: RefObject<HTMLElement | null>;
9
+ idleTimeout?: number;
10
+ onChange: (args: {
11
+ polygon: null | string;
12
+ }) => void;
13
+ onRelease: (pointer: PointerPosition) => void;
14
+ to: RefObject<HTMLElement | null>;
15
+ };
16
+ /** Tracks a safe area for pointer travel between two elements in either direction. */
17
+ export declare const usePointerSafeArea: ({ enabled, from, idleTimeout, onChange, onRelease, to, }: UsePointerSafeAreaArgs) => {
18
+ clear: () => void;
19
+ isProtected: () => boolean;
20
+ isTracking: () => boolean;
21
+ protect: ({ pointer }: {
22
+ pointer: PointerPosition;
23
+ }) => boolean;
24
+ refresh: () => boolean;
25
+ trackSource: (pointer: PointerPosition) => void;
26
+ trackTarget: (pointer: PointerPosition) => void;
27
+ };
28
+ export {};
29
+ //# sourceMappingURL=usePointerSafeArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePointerSafeArea.d.ts","sourceRoot":"","sources":["../../src/hooks/usePointerSafeArea.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,MAAM,MAAM,eAAe,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,IAAI,GAAG,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACpD,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAA;IAC7C,EAAE,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CAClC,CAAA;AAED,sFAAsF;AACtF,eAAO,MAAM,kBAAkB,6DAO5B,sBAAsB;;;;2BAuIE;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE;;2BAzEzC,eAAe;2BASf,eAAe;CAqE5B,CAAA"}
@@ -0,0 +1,232 @@
1
+ import { useCallback, useEffect, useRef } from 'react';
2
+ /** Tracks a safe area for pointer travel between two elements in either direction. */
3
+ export const usePointerSafeArea = ({
4
+ enabled,
5
+ from,
6
+ idleTimeout = 300,
7
+ onChange,
8
+ onRelease,
9
+ to
10
+ }) => {
11
+ const origin = useRef(undefined);
12
+ const isReturning = useRef(false);
13
+ const isProtected = useRef(false);
14
+ const idleTimer = useRef(undefined);
15
+ const callbacks = useRef({
16
+ onChange,
17
+ onRelease
18
+ });
19
+ useEffect(() => {
20
+ callbacks.current = {
21
+ onChange,
22
+ onRelease
23
+ };
24
+ }, [onChange, onRelease]);
25
+ const clear = useCallback(() => {
26
+ clearTimeout(idleTimer.current);
27
+ idleTimer.current = undefined;
28
+ if (isProtected.current) {
29
+ isProtected.current = false;
30
+ callbacks.current.onChange({
31
+ polygon: null
32
+ });
33
+ }
34
+ origin.current = undefined;
35
+ }, []);
36
+ const release = useCallback(pointer => {
37
+ clear();
38
+ callbacks.current.onRelease(pointer);
39
+ }, [clear]);
40
+ const update = useCallback(({
41
+ pointer
42
+ } = {}) => {
43
+ const target = isReturning.current ? from.current : to.current;
44
+ const start = origin.current;
45
+ if (!enabled || !target || !start || !pointer && !isProtected.current) {
46
+ return false;
47
+ }
48
+ const rect = target.getBoundingClientRect();
49
+ if (rect.left <= start.x && rect.right >= start.x) {
50
+ return false;
51
+ }
52
+ const points = getSafeAreaPoints({
53
+ rect,
54
+ start
55
+ });
56
+ if (pointer && !isInsideSafeArea({
57
+ pointer,
58
+ points
59
+ })) {
60
+ return false;
61
+ }
62
+ isProtected.current = true;
63
+ callbacks.current.onChange({
64
+ polygon: `polygon(${points.map(({
65
+ x,
66
+ y
67
+ }) => `${x}px ${y}px`).join(', ')})`
68
+ });
69
+ if (pointer) {
70
+ clearTimeout(idleTimer.current);
71
+ idleTimer.current = setTimeout(() => release(pointer), idleTimeout);
72
+ }
73
+ return true;
74
+ }, [enabled, from, idleTimeout, release, to]);
75
+ const trackSource = useCallback(pointer => {
76
+ clear();
77
+ origin.current = pointer;
78
+ isReturning.current = false;
79
+ }, [clear]);
80
+ const trackTarget = useCallback(pointer => {
81
+ // A keyboard-opened target does not start pointer tracking on its own.
82
+ if (!origin.current) {
83
+ return;
84
+ }
85
+ clear();
86
+ origin.current = pointer;
87
+ isReturning.current = true;
88
+ }, [clear]);
89
+ useEffect(() => {
90
+ if (!enabled) {
91
+ clear();
92
+ return;
93
+ }
94
+ const handleMove = event => {
95
+ if (event.pointerType !== 'mouse' || !origin.current) {
96
+ return;
97
+ }
98
+ const pointer = {
99
+ x: event.clientX,
100
+ y: event.clientY
101
+ };
102
+ const target = event.target;
103
+ if (target && from.current?.contains(target)) {
104
+ trackSource(pointer);
105
+ } else if (target && to.current?.contains(target)) {
106
+ trackTarget(pointer);
107
+ } else if (isProtected.current && !update({
108
+ pointer
109
+ })) {
110
+ release(pointer);
111
+ }
112
+ };
113
+ const handlePress = event => {
114
+ if (event.pointerType === 'mouse') {
115
+ // Preserve tracking after clicks that keep either endpoint open, while
116
+ // letting clicks elsewhere reach their target without sending a replacement event.
117
+ const pointer = {
118
+ x: event.clientX,
119
+ y: event.clientY
120
+ };
121
+ const target = event.target;
122
+ if (target && from.current?.contains(target)) {
123
+ trackSource(pointer);
124
+ } else if (target && to.current?.contains(target)) {
125
+ trackTarget(pointer);
126
+ } else {
127
+ clear();
128
+ }
129
+ }
130
+ };
131
+ const document = from.current?.ownerDocument;
132
+ document?.addEventListener('pointermove', handleMove, {
133
+ capture: true,
134
+ passive: true
135
+ });
136
+ document?.addEventListener('pointerdown', handlePress, {
137
+ capture: true,
138
+ passive: true
139
+ });
140
+ return () => {
141
+ document?.removeEventListener('pointermove', handleMove, {
142
+ capture: true
143
+ });
144
+ document?.removeEventListener('pointerdown', handlePress, {
145
+ capture: true
146
+ });
147
+ clear();
148
+ };
149
+ }, [clear, enabled, from, release, to, trackSource, trackTarget, update]);
150
+ return {
151
+ clear,
152
+ isProtected: useCallback(() => isProtected.current, []),
153
+ isTracking: useCallback(() => origin.current !== undefined, []),
154
+ protect: ({
155
+ pointer
156
+ }) => update({
157
+ pointer
158
+ }),
159
+ refresh: () => update(),
160
+ trackSource,
161
+ trackTarget
162
+ };
163
+ };
164
+ const isInsideSafeArea = ({
165
+ pointer,
166
+ points
167
+ }) => points.every((edgeStart, index) => isPointerInsideEdge({
168
+ edgeEnd: points[(index + 1) % points.length],
169
+ edgeStart,
170
+ pointer
171
+ }));
172
+ // The convex hull covers the whole destination, allowing return paths to enter
173
+ // through its top or bottom as well as its nearest edge.
174
+ const getSafeAreaPoints = ({
175
+ rect,
176
+ start
177
+ }) => {
178
+ const points = [{
179
+ x: start.x,
180
+ y: start.y - 4
181
+ }, {
182
+ x: start.x,
183
+ y: start.y + 4
184
+ }, {
185
+ x: rect.left,
186
+ y: rect.top
187
+ }, {
188
+ x: rect.right,
189
+ y: rect.top
190
+ }, {
191
+ x: rect.right,
192
+ y: rect.bottom
193
+ }, {
194
+ x: rect.left,
195
+ y: rect.bottom
196
+ }].sort((a, b) => a.x - b.x || a.y - b.y);
197
+ const getOuterEdge = ({
198
+ orderedPoints
199
+ }) => {
200
+ const edge = [];
201
+ for (const point of orderedPoints) {
202
+ while (edge.length > 1) {
203
+ const previous = edge[edge.length - 2];
204
+ const corner = edge[edge.length - 1];
205
+ const edgeX = corner.x - previous.x;
206
+ const edgeY = corner.y - previous.y;
207
+ const pointX = point.x - previous.x;
208
+ const pointY = point.y - previous.y;
209
+ const shouldRemoveCorner = edgeX * pointY - edgeY * pointX <= 0;
210
+ // Remove corners that bend into the area or lie on a straight edge.
211
+ if (!shouldRemoveCorner) {
212
+ break;
213
+ }
214
+ edge.pop();
215
+ }
216
+ edge.push(point);
217
+ }
218
+ return edge.slice(0, -1);
219
+ };
220
+ return [...getOuterEdge({
221
+ orderedPoints: points
222
+ }), ...getOuterEdge({
223
+ orderedPoints: [...points].reverse()
224
+ })];
225
+ };
226
+ // Edges follow the safe area's point order. Points on the boundary count as inside.
227
+ const isPointerInsideEdge = ({
228
+ edgeEnd,
229
+ edgeStart,
230
+ pointer
231
+ }) => (edgeEnd.x - edgeStart.x) * (pointer.y - edgeStart.y) - (edgeEnd.y - edgeStart.y) * (pointer.x - edgeStart.x) >= 0;
232
+ //# sourceMappingURL=usePointerSafeArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePointerSafeArea.js","names":["useCallback","useEffect","useRef","usePointerSafeArea","enabled","from","idleTimeout","onChange","onRelease","to","origin","undefined","isReturning","isProtected","idleTimer","callbacks","current","clear","clearTimeout","polygon","release","pointer","update","target","start","rect","getBoundingClientRect","left","x","right","points","getSafeAreaPoints","isInsideSafeArea","map","y","join","setTimeout","trackSource","trackTarget","handleMove","event","pointerType","clientX","clientY","contains","handlePress","document","ownerDocument","addEventListener","capture","passive","removeEventListener","isTracking","protect","refresh","every","edgeStart","index","isPointerInsideEdge","edgeEnd","length","top","bottom","sort","a","b","getOuterEdge","orderedPoints","edge","point","previous","corner","edgeX","edgeY","pointX","pointY","shouldRemoveCorner","pop","push","slice","reverse"],"sources":["../../src/hooks/usePointerSafeArea.ts"],"sourcesContent":["import type { RefObject } from 'react'\n\nimport { useCallback, useEffect, useRef } from 'react'\n\nexport type PointerPosition = { x: number; y: number }\n\ntype UsePointerSafeAreaArgs = {\n enabled: boolean\n from: RefObject<HTMLElement | null>\n idleTimeout?: number\n onChange: (args: { polygon: null | string }) => void\n onRelease: (pointer: PointerPosition) => void\n to: RefObject<HTMLElement | null>\n}\n\n/** Tracks a safe area for pointer travel between two elements in either direction. */\nexport const usePointerSafeArea = ({\n enabled,\n from,\n idleTimeout = 300,\n onChange,\n onRelease,\n to,\n}: UsePointerSafeAreaArgs) => {\n const origin = useRef<PointerPosition | undefined>(undefined)\n const isReturning = useRef(false)\n const isProtected = useRef(false)\n const idleTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const callbacks = useRef({ onChange, onRelease })\n\n useEffect(() => {\n callbacks.current = { onChange, onRelease }\n }, [onChange, onRelease])\n\n const clear = useCallback(() => {\n clearTimeout(idleTimer.current)\n idleTimer.current = undefined\n if (isProtected.current) {\n isProtected.current = false\n callbacks.current.onChange({ polygon: null })\n }\n origin.current = undefined\n }, [])\n\n const release = useCallback(\n (pointer: PointerPosition) => {\n clear()\n callbacks.current.onRelease(pointer)\n },\n [clear],\n )\n\n const update = useCallback(\n ({ pointer }: { pointer?: PointerPosition } = {}) => {\n const target = isReturning.current ? from.current : to.current\n const start = origin.current\n\n if (!enabled || !target || !start || (!pointer && !isProtected.current)) {\n return false\n }\n\n const rect = target.getBoundingClientRect()\n if (rect.left <= start.x && rect.right >= start.x) {\n return false\n }\n const points = getSafeAreaPoints({ rect, start })\n\n if (pointer && !isInsideSafeArea({ pointer, points })) {\n return false\n }\n\n isProtected.current = true\n callbacks.current.onChange({\n polygon: `polygon(${points.map(({ x, y }) => `${x}px ${y}px`).join(', ')})`,\n })\n if (pointer) {\n clearTimeout(idleTimer.current)\n idleTimer.current = setTimeout(() => release(pointer), idleTimeout)\n }\n return true\n },\n [enabled, from, idleTimeout, release, to],\n )\n\n const trackSource = useCallback(\n (pointer: PointerPosition) => {\n clear()\n origin.current = pointer\n isReturning.current = false\n },\n [clear],\n )\n\n const trackTarget = useCallback(\n (pointer: PointerPosition) => {\n // A keyboard-opened target does not start pointer tracking on its own.\n if (!origin.current) {\n return\n }\n clear()\n origin.current = pointer\n isReturning.current = true\n },\n [clear],\n )\n\n useEffect(() => {\n if (!enabled) {\n clear()\n return\n }\n\n const handleMove = (event: PointerEvent) => {\n if (event.pointerType !== 'mouse' || !origin.current) {\n return\n }\n const pointer = { x: event.clientX, y: event.clientY }\n const target = event.target as Node | null\n\n if (target && from.current?.contains(target)) {\n trackSource(pointer)\n } else if (target && to.current?.contains(target)) {\n trackTarget(pointer)\n } else if (isProtected.current && !update({ pointer })) {\n release(pointer)\n }\n }\n const handlePress = (event: PointerEvent) => {\n if (event.pointerType === 'mouse') {\n // Preserve tracking after clicks that keep either endpoint open, while\n // letting clicks elsewhere reach their target without sending a replacement event.\n const pointer = { x: event.clientX, y: event.clientY }\n const target = event.target as Node | null\n\n if (target && from.current?.contains(target)) {\n trackSource(pointer)\n } else if (target && to.current?.contains(target)) {\n trackTarget(pointer)\n } else {\n clear()\n }\n }\n }\n const document = from.current?.ownerDocument\n\n document?.addEventListener('pointermove', handleMove, { capture: true, passive: true })\n document?.addEventListener('pointerdown', handlePress, { capture: true, passive: true })\n return () => {\n document?.removeEventListener('pointermove', handleMove, { capture: true })\n document?.removeEventListener('pointerdown', handlePress, { capture: true })\n clear()\n }\n }, [clear, enabled, from, release, to, trackSource, trackTarget, update])\n\n return {\n clear,\n isProtected: useCallback(() => isProtected.current, []),\n isTracking: useCallback(() => origin.current !== undefined, []),\n protect: ({ pointer }: { pointer: PointerPosition }) => update({ pointer }),\n refresh: () => update(),\n trackSource,\n trackTarget,\n }\n}\n\nconst isInsideSafeArea = ({\n pointer,\n points,\n}: {\n pointer: PointerPosition\n points: PointerPosition[]\n}) =>\n points.every((edgeStart, index) =>\n isPointerInsideEdge({\n edgeEnd: points[(index + 1) % points.length],\n edgeStart,\n pointer,\n }),\n )\n\n// The convex hull covers the whole destination, allowing return paths to enter\n// through its top or bottom as well as its nearest edge.\nconst getSafeAreaPoints = ({ rect, start }: { rect: DOMRect; start: PointerPosition }) => {\n const points = [\n { x: start.x, y: start.y - 4 },\n { x: start.x, y: start.y + 4 },\n { x: rect.left, y: rect.top },\n { x: rect.right, y: rect.top },\n { x: rect.right, y: rect.bottom },\n { x: rect.left, y: rect.bottom },\n ].sort((a, b) => a.x - b.x || a.y - b.y)\n const getOuterEdge = ({ orderedPoints }: { orderedPoints: PointerPosition[] }) => {\n const edge: PointerPosition[] = []\n\n for (const point of orderedPoints) {\n while (edge.length > 1) {\n const previous = edge[edge.length - 2]\n const corner = edge[edge.length - 1]\n const edgeX = corner.x - previous.x\n const edgeY = corner.y - previous.y\n const pointX = point.x - previous.x\n const pointY = point.y - previous.y\n const shouldRemoveCorner = edgeX * pointY - edgeY * pointX <= 0\n\n // Remove corners that bend into the area or lie on a straight edge.\n if (!shouldRemoveCorner) {\n break\n }\n edge.pop()\n }\n edge.push(point)\n }\n return edge.slice(0, -1)\n }\n\n return [\n ...getOuterEdge({ orderedPoints: points }),\n ...getOuterEdge({ orderedPoints: [...points].reverse() }),\n ]\n}\n\n// Edges follow the safe area's point order. Points on the boundary count as inside.\nconst isPointerInsideEdge = ({\n edgeEnd,\n edgeStart,\n pointer,\n}: {\n edgeEnd: PointerPosition\n edgeStart: PointerPosition\n pointer: PointerPosition\n}): boolean =>\n (edgeEnd.x - edgeStart.x) * (pointer.y - edgeStart.y) -\n (edgeEnd.y - edgeStart.y) * (pointer.x - edgeStart.x) >=\n 0\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePopupWindow.js","names":["c","_c","useCallback","useEffect","useRef","useState","useConfig","usePopupWindow","props","$","eventType","onMessage","url","isReceivingMessage","isOpen","setIsOpen","config","t0","serverURL","popupRef","t1","t2","receiveMessage","event","origin","window","location","data","type","current","searchParams","addEventListener","removeEventListener","t3","e","preventDefault","closed","focus","features","height","left","menubar","popup","toolbar","top","width","popupOptions","Object","entries","reduce","str","t4","key","value","strCopy","v","Math","round","innerHeight","v_0","innerWidth","slice","newWindow","open","openPopupWindow","t5","timer","clearInterval","t6","isPopupOpen"],"sources":["../../src/hooks/usePopupWindow.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useConfig } from '../providers/Config/index.js'\n\nexport interface PopupMessage {\n searchParams: {\n [key: string]: string | undefined\n code: string\n installation_id: string\n state: string\n }\n type: string\n}\n\nexport const usePopupWindow = (props: {\n eventType?: string\n\n onMessage?: (searchParams: PopupMessage['searchParams']) => Promise<void>\n url: string\n}): {\n isPopupOpen: boolean\n openPopupWindow: () => void\n popupRef?: React.RefObject<null | Window>\n} => {\n const { eventType, onMessage, url } = props\n const isReceivingMessage = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n\n const {\n config: { serverURL },\n } = useConfig()\n\n const popupRef = useRef<null | Window>(null)\n\n // Optionally broadcast messages back out to the parent component\n useEffect(() => {\n const receiveMessage = async (event: MessageEvent): Promise<void> => {\n if (\n event.origin !== window.location.origin ||\n event.origin !== url ||\n event.origin !== serverURL\n ) {\n // console.warn(`Message received by ${event.origin}; IGNORED.`) // eslint-disable-line no-console\n return\n }\n\n if (\n typeof onMessage === 'function' &&\n event.data?.type === eventType &&\n !isReceivingMessage.current\n ) {\n isReceivingMessage.current = true\n await onMessage(event.data?.searchParams)\n isReceivingMessage.current = false\n }\n }\n\n if (isOpen && popupRef.current) {\n window.addEventListener('message', receiveMessage, false)\n }\n\n return () => {\n window.removeEventListener('message', receiveMessage)\n }\n }, [onMessage, eventType, url, serverURL, isOpen])\n\n // Customize the size, position, and style of the popup window\n const openPopupWindow = useCallback(\n (e?: MouseEvent) => {\n if (e) {\n e.preventDefault()\n }\n\n // If a popup is already open, focus it instead of opening a new one\n if (popupRef.current && !popupRef.current.closed) {\n popupRef.current.focus()\n return\n }\n\n const features = {\n height: 700,\n left: 'auto',\n menubar: 'no',\n popup: 'yes',\n toolbar: 'no',\n top: 'auto',\n width: 800,\n }\n\n const popupOptions = Object.entries(features)\n .reduce((str, [key, value]) => {\n let strCopy = str\n if (value === 'auto') {\n if (key === 'top') {\n const v = Math.round(window.innerHeight / 2 - features.height / 2)\n strCopy += `top=${v},`\n } else if (key === 'left') {\n const v = Math.round(window.innerWidth / 2 - features.width / 2)\n strCopy += `left=${v},`\n }\n return strCopy\n }\n\n strCopy += `${key}=${value},`\n return strCopy\n }, '')\n .slice(0, -1) // remove last ',' (comma)\n\n const newWindow = window.open(url, '_blank', popupOptions)\n\n popupRef.current = newWindow\n\n setIsOpen(true)\n },\n [url],\n )\n\n // this is the most stable and widely supported way to check if a popup window is no longer open\n // we poll its ref every x ms and use the popup window's `closed` property\n useEffect(() => {\n let timer: NodeJS.Timeout\n\n if (isOpen) {\n timer = setInterval(function () {\n if (popupRef.current.closed) {\n clearInterval(timer)\n setIsOpen(false)\n }\n }, 1000)\n } else {\n clearInterval(timer)\n }\n\n return () => {\n if (timer) {\n clearInterval(timer)\n }\n }\n }, [isOpen, popupRef])\n\n return {\n isPopupOpen: isOpen,\n openPopupWindow,\n popupRef,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"usePopupWindow.js","names":["c","_c","useCallback","useEffect","useRef","useState","useConfig","usePopupWindow","props","$","eventType","onMessage","url","isReceivingMessage","isOpen","setIsOpen","config","t0","serverURL","popupRef","t1","t2","receiveMessage","event","origin","window","location","data","type","current","searchParams","addEventListener","removeEventListener","t3","e","preventDefault","closed","focus","features","height","left","menubar","popup","toolbar","top","width","popupOptions","Object","entries","reduce","str","t4","key","value","strCopy","v","Math","round","innerHeight","v_0","innerWidth","slice","newWindow","open","openPopupWindow","t5","timer","setInterval","clearInterval","t6","isPopupOpen"],"sources":["../../src/hooks/usePopupWindow.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useCallback, useEffect, useRef, useState } from 'react'\n\nimport { useConfig } from '../providers/Config/index.js'\n\nexport interface PopupMessage {\n searchParams: {\n [key: string]: string | undefined\n code: string\n installation_id: string\n state: string\n }\n type: string\n}\n\nexport const usePopupWindow = (props: {\n eventType?: string\n\n onMessage?: (searchParams: PopupMessage['searchParams']) => Promise<void>\n url: string\n}): {\n isPopupOpen: boolean\n openPopupWindow: () => void\n popupRef?: React.RefObject<null | Window>\n} => {\n const { eventType, onMessage, url } = props\n const isReceivingMessage = useRef(false)\n const [isOpen, setIsOpen] = useState(false)\n\n const {\n config: { serverURL },\n } = useConfig()\n\n const popupRef = useRef<null | Window>(null)\n\n // Optionally broadcast messages back out to the parent component\n useEffect(() => {\n const receiveMessage = async (event: MessageEvent): Promise<void> => {\n if (\n event.origin !== window.location.origin ||\n event.origin !== url ||\n event.origin !== serverURL\n ) {\n // console.warn(`Message received by ${event.origin}; IGNORED.`) // eslint-disable-line no-console\n return\n }\n\n if (\n typeof onMessage === 'function' &&\n event.data?.type === eventType &&\n !isReceivingMessage.current\n ) {\n isReceivingMessage.current = true\n await onMessage(event.data?.searchParams)\n isReceivingMessage.current = false\n }\n }\n\n if (isOpen && popupRef.current) {\n window.addEventListener('message', receiveMessage, false)\n }\n\n return () => {\n window.removeEventListener('message', receiveMessage)\n }\n }, [onMessage, eventType, url, serverURL, isOpen])\n\n // Customize the size, position, and style of the popup window\n const openPopupWindow = useCallback(\n (e?: MouseEvent) => {\n if (e) {\n e.preventDefault()\n }\n\n // If a popup is already open, focus it instead of opening a new one\n if (popupRef.current && !popupRef.current.closed) {\n popupRef.current.focus()\n return\n }\n\n const features = {\n height: 700,\n left: 'auto',\n menubar: 'no',\n popup: 'yes',\n toolbar: 'no',\n top: 'auto',\n width: 800,\n }\n\n const popupOptions = Object.entries(features)\n .reduce((str, [key, value]) => {\n let strCopy = str\n if (value === 'auto') {\n if (key === 'top') {\n const v = Math.round(window.innerHeight / 2 - features.height / 2)\n strCopy += `top=${v},`\n } else if (key === 'left') {\n const v = Math.round(window.innerWidth / 2 - features.width / 2)\n strCopy += `left=${v},`\n }\n return strCopy\n }\n\n strCopy += `${key}=${value},`\n return strCopy\n }, '')\n .slice(0, -1) // remove last ',' (comma)\n\n const newWindow = window.open(url, '_blank', popupOptions)\n\n popupRef.current = newWindow\n\n setIsOpen(true)\n },\n [url],\n )\n\n // this is the most stable and widely supported way to check if a popup window is no longer open\n // we poll its ref every x ms and use the popup window's `closed` property\n useEffect(() => {\n let timer: NodeJS.Timeout\n\n if (isOpen) {\n timer = setInterval(function () {\n if (popupRef.current.closed) {\n clearInterval(timer)\n setIsOpen(false)\n }\n }, 1000)\n } else {\n clearInterval(timer)\n }\n\n return () => {\n if (timer) {\n clearInterval(timer)\n }\n }\n }, [isOpen, popupRef])\n\n return {\n isPopupOpen: isOpen,\n openPopupWindow,\n popupRef,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useRelatedCollections.js","names":["c","_c","useState","useConfig","useRelatedCollections","relationTo","$","getEntityConfig","t0","relations","map","relation","collectionSlug","relatedCollections"],"sources":["../../src/hooks/useRelatedCollections.ts"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useState } from 'react'\n\nimport { useConfig } from '../providers/Config/index.js'\n\n/**\n * Gets the corresponding client collection config(s) for the given collection slug.\n */\nexport const useRelatedCollections = (relationTo: string | string[]): ClientCollectionConfig[] => {\n const { getEntityConfig } = useConfig()\n\n const [relatedCollections] = useState(() => {\n if (relationTo) {\n const relations = typeof relationTo === 'string' ? [relationTo] : relationTo\n return relations.map((relation) => getEntityConfig({ collectionSlug: relation }))\n }\n return []\n })\n\n return relatedCollections\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,QAAQ,QAAQ;AAEzB,SAASC,SAAS,QAAQ;AAE1B;;;AAGA,OAAO,MAAMC,qBAAA,GAAwBC,UAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACnC;IAAAM;EAAA,IAA4BJ,SAAA;EAAA,IAAAK,EAAA;EAAA,IAAAF,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAD,UAAA;IAEUG,EAAA,GAAAA,CAAA;MAAA,IAChCH,UAAA;QACF,MAAAI,SAAA,GAAkB,OAAOJ,UAAA,KAAe,YAAYA,UAAA,IAAcA,UAAA;QAAA,OAC3DI,SAAA,CAAAC,GAAA,CAAAC,QAAA,IAA4BJ,eAAA;UAAAK,cAAA,EAAkCD;QAAA,CAAS;MAAA;MAAA;IAAA;IAGlFL,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAD,UAAA;IAAAC,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EANA,OAAAO,kBAAA,IAA6BX,QAAA,CAASM,EAMtC;EAAA,OAEOK,kBAAA;AAAA,CACT","ignoreList":[]}
1
+ {"version":3,"file":"useRelatedCollections.js","names":["c","_c","useState","useConfig","useRelatedCollections","relationTo","$","getEntityConfig","t0","relations","map","relation","collectionSlug","relatedCollections"],"sources":["../../src/hooks/useRelatedCollections.ts"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useState } from 'react'\n\nimport { useConfig } from '../providers/Config/index.js'\n\n/**\n * Gets the corresponding client collection config(s) for the given collection slug.\n */\nexport const useRelatedCollections = (relationTo: string | string[]): ClientCollectionConfig[] => {\n const { getEntityConfig } = useConfig()\n\n const [relatedCollections] = useState(() => {\n if (relationTo) {\n const relations = typeof relationTo === 'string' ? [relationTo] : relationTo\n return relations.map((relation) => getEntityConfig({ collectionSlug: relation }))\n }\n return []\n })\n\n return relatedCollections\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,QAAQ,QAAQ;AAEzB,SAASC,SAAS,QAAQ;AAE1B;;;AAGA,OAAO,MAAMC,qBAAA,GAAwBC,UAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACnC;IAAAM;EAAA,IAA4BJ,SAAA;EAAA,IAAAK,EAAA;EAAA,IAAAF,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAD,UAAA;IAEUG,EAAA,GAAAA,CAAA;MACpC,IAAIH,UAAA;QACF,MAAAI,SAAA,GAAkB,OAAOJ,UAAA,KAAe,QAA0B,GAAhD,CAAkCA,UAAA,CAAc,GAAhDA,UAAgD;QAAA,OAC3DI,SAAA,CAAAC,GAAa,CAACC,QAAA,IAAcJ,eAAA,CAAgB;UAAAK,cAAA,EAAkBD;QAAS;MAAA;MAChF,OACO,EAAE;IAAA,CACX;IAAAL,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAD,UAAA;IAAAC,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EANA,OAAAO,kBAAA,IAA6BX,QAAA,CAASM,EAMtC;EAAA,OAEOK,kBAAA;AAAA,CACT","ignoreList":[]}