@payloadcms/ui 4.0.0-internal.add4c47 → 4.0.0-internal.af6aad0
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.
- package/dist/css/app.css +121 -0
- package/dist/css/forms.css +0 -6
- package/dist/css/spacing.css +10 -3
- package/dist/css/z-index.css +1 -0
- package/dist/elements/AddNewRelation/index.css +0 -5
- package/dist/elements/AddNewRelation/index.js +2 -2
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AppHeader/index.css +5 -3
- package/dist/elements/AppHeader/index.d.ts +1 -8
- package/dist/elements/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +8 -13
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.d.ts +1 -0
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +45 -32
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
- package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +2 -2
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/Button/index.css +25 -2
- package/dist/elements/Button/index.d.ts.map +1 -1
- package/dist/elements/Button/index.js +2 -0
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.d.ts +1 -1
- package/dist/elements/Button/types.d.ts.map +1 -1
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
- package/dist/elements/CodeEditor/index.css +0 -5
- package/dist/elements/CommandPalette/index.css +0 -7
- package/dist/elements/CopyToClipboard/index.d.ts +1 -0
- package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +10 -8
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/CreateDocumentButton/index.d.ts.map +1 -1
- package/dist/elements/CreateDocumentButton/index.js +4 -1
- package/dist/elements/CreateDocumentButton/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +1 -0
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.css +1 -1
- package/dist/elements/DefaultListViewTabs/index.css +1 -0
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +84 -62
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +16 -1
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/Drawer/index.css +10 -4
- package/dist/elements/Drawer/types.d.ts +2 -2
- package/dist/elements/Drawer/types.d.ts.map +1 -1
- package/dist/elements/Drawer/types.js.map +1 -1
- package/dist/elements/Dropzone/index.css +10 -4
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +2 -2
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
- package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.css +8 -9
- package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
- package/dist/elements/FileManager/FileToolbar/index.js +3 -0
- package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
- package/dist/elements/FileManager/index.css +0 -30
- package/dist/elements/FileManager/index.d.ts.map +1 -1
- package/dist/elements/FileManager/index.js +380 -287
- package/dist/elements/FileManager/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.css +22 -4
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js +68 -49
- package/dist/elements/Hierarchy/ColumnBrowser/Column/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.css +100 -16
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js +97 -137
- package/dist/elements/Hierarchy/ColumnBrowser/ColumnItem/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/index.js +51 -23
- package/dist/elements/Hierarchy/ColumnBrowser/index.js.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts +26 -3
- package/dist/elements/Hierarchy/ColumnBrowser/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/ColumnBrowser/types.js.map +1 -1
- package/dist/elements/Hierarchy/CreateNewButton/index.css +9 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.d.ts +9 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.d.ts.map +1 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.js +111 -0
- package/dist/elements/Hierarchy/CreateNewButton/index.js.map +1 -0
- package/dist/elements/Hierarchy/DocHeaderButton/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js +6 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.js.map +1 -1
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js +1 -3
- package/dist/elements/Hierarchy/DocHeaderButton/index.server.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.d.ts +5 -0
- package/dist/elements/Hierarchy/Field/index.client.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Field/index.client.js +120 -95
- package/dist/elements/Hierarchy/Field/index.client.js.map +1 -1
- package/dist/elements/Hierarchy/Field/index.css +3 -34
- package/dist/elements/Hierarchy/Modal/Footer/index.css +45 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.d.ts +28 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.d.ts.map +1 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.js +166 -0
- package/dist/elements/Hierarchy/Modal/Footer/index.js.map +1 -0
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts +18 -4
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js +88 -24
- package/dist/elements/Hierarchy/Modal/fetchAncestorPath.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.css +4 -53
- package/dist/elements/Hierarchy/Modal/index.d.ts +5 -2
- package/dist/elements/Hierarchy/Modal/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/index.js +136 -99
- package/dist/elements/Hierarchy/Modal/index.js.map +1 -1
- package/dist/elements/Hierarchy/Modal/types.d.ts +15 -0
- package/dist/elements/Hierarchy/Modal/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Modal/types.js.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.d.ts +7 -3
- package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/MoveMany/index.js +43 -170
- package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/index.css +2 -9
- package/dist/elements/Hierarchy/Search/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/index.js +6 -73
- package/dist/elements/Hierarchy/Search/index.js.map +1 -1
- package/dist/elements/Hierarchy/Search/types.d.ts +2 -6
- package/dist/elements/Hierarchy/Search/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Search/types.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts +0 -4
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js +101 -166
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js +3 -21
- package/dist/elements/Hierarchy/Tree/HierarchySidebarTab.server.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/LoadMore/index.css +3 -3
- package/dist/elements/Hierarchy/Tree/TreeNode/index.css +59 -30
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js +54 -10
- package/dist/elements/Hierarchy/Tree/TreeNode/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.css +8 -9
- package/dist/elements/Hierarchy/Tree/index.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/index.js +29 -47
- package/dist/elements/Hierarchy/Tree/index.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/types.d.ts +9 -1
- package/dist/elements/Hierarchy/Tree/types.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/types.js.map +1 -1
- package/dist/elements/Hierarchy/Tree/useChildren.d.ts.map +1 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js +11 -1
- package/dist/elements/Hierarchy/Tree/useChildren.js.map +1 -1
- package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts +22 -0
- package/dist/elements/Hierarchy/getFolderHierarchySlug.d.ts.map +1 -0
- package/dist/elements/Hierarchy/getFolderHierarchySlug.js +17 -0
- package/dist/elements/Hierarchy/getFolderHierarchySlug.js.map +1 -0
- package/dist/elements/Hierarchy/move/moveDocuments.d.ts +34 -0
- package/dist/elements/Hierarchy/move/moveDocuments.d.ts.map +1 -0
- package/dist/elements/Hierarchy/move/moveDocuments.js +94 -0
- package/dist/elements/Hierarchy/move/moveDocuments.js.map +1 -0
- package/dist/elements/IDLabel/index.css +6 -0
- package/dist/elements/IDLabel/index.d.ts +1 -1
- package/dist/elements/IDLabel/index.d.ts.map +1 -1
- package/dist/elements/IDLabel/index.js +16 -21
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/InputStepper/index.css +0 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +3 -2
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/types.d.ts +4 -0
- package/dist/elements/ListControls/types.d.ts.map +1 -1
- package/dist/elements/ListControls/types.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/Locked/index.css +0 -8
- package/dist/elements/Locked/index.d.ts.map +1 -1
- package/dist/elements/Locked/index.js +70 -64
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js +1 -1
- package/dist/elements/Nav/NavSidebarToggle/index.js.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.d.ts +1 -0
- package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -1
- package/dist/elements/Nav/NavWrapper/index.js +12 -18
- package/dist/elements/Nav/NavWrapper/index.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.d.ts.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +12 -5
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/Nav/SidebarTabs/index.css +1 -7
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts +1 -0
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.d.ts.map +1 -1
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js +2 -1
- package/dist/elements/Nav/SidebarTabs/renderTabServerFn.js.map +1 -1
- package/dist/elements/Nav/context.d.ts +0 -1
- package/dist/elements/Nav/context.d.ts.map +1 -1
- package/dist/elements/Nav/context.js +92 -67
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/Nav/index.css +47 -42
- package/dist/elements/Nav/index.d.ts +4 -0
- package/dist/elements/Nav/index.d.ts.map +1 -1
- package/dist/elements/Nav/index.js +16 -1
- package/dist/elements/Nav/index.js.map +1 -1
- package/dist/elements/NavGroup/index.css +29 -16
- package/dist/elements/Popup/PopupButtonList/index.css +33 -17
- package/dist/elements/Popup/index.css +6 -0
- package/dist/elements/Popup/index.d.ts +10 -0
- package/dist/elements/Popup/index.d.ts.map +1 -1
- package/dist/elements/Popup/index.js +13 -6
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.d.ts +1 -2
- package/dist/elements/PreviewButton/index.d.ts.map +1 -1
- package/dist/elements/PreviewButton/index.js +11 -5
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.css +8 -9
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.css +0 -1
- package/dist/elements/ReactSelect/MultiValue/index.css +0 -1
- package/dist/elements/ReactSelect/index.css +0 -3
- package/dist/elements/ReactSelect/types.d.ts +5 -0
- package/dist/elements/ReactSelect/types.d.ts.map +1 -1
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/Pagination.d.ts +0 -1
- package/dist/elements/RelationshipTable/Pagination.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/Pagination.js +27 -77
- package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts +1 -0
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +41 -5
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.css +4 -0
- package/dist/elements/RenderTitle/index.d.ts.map +1 -1
- package/dist/elements/RenderTitle/index.js +18 -13
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/SegmentedControl/index.css +58 -0
- package/dist/elements/SegmentedControl/index.d.ts +19 -0
- package/dist/elements/SegmentedControl/index.d.ts.map +1 -0
- package/dist/elements/SegmentedControl/index.js +104 -0
- package/dist/elements/SegmentedControl/index.js.map +1 -0
- package/dist/elements/SelectAll/index.d.ts.map +1 -1
- package/dist/elements/SelectAll/index.js +1 -2
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectRow/index.d.ts +4 -3
- package/dist/elements/SelectRow/index.d.ts.map +1 -1
- package/dist/elements/SelectRow/index.js +11 -9
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/SidebarRow/index.css +1 -5
- package/dist/elements/SidebarToggle/index.css +3 -18
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +42 -38
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortHeader/index.d.ts.map +1 -1
- package/dist/elements/SortHeader/index.js +29 -26
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/StepNav/DropTarget/index.css +20 -0
- package/dist/elements/StepNav/DropTarget/index.d.ts +16 -0
- package/dist/elements/StepNav/DropTarget/index.d.ts.map +1 -0
- package/dist/elements/StepNav/DropTarget/index.js +71 -0
- package/dist/elements/StepNav/DropTarget/index.js.map +1 -0
- package/dist/elements/StepNav/index.css +64 -14
- package/dist/elements/StepNav/index.d.ts.map +1 -1
- package/dist/elements/StepNav/index.js +147 -69
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +6 -0
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.css +5 -7
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js +14 -3
- package/dist/elements/Table/DefaultCell/fields/Hierarchy/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +3 -11
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableRow.d.ts +3 -1
- package/dist/elements/Table/OrderableRow.d.ts.map +1 -1
- package/dist/elements/Table/OrderableRow.js +17 -1
- package/dist/elements/Table/OrderableRow.js.map +1 -1
- package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
- package/dist/elements/Table/OrderableTable.js +19 -2
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/TableSection/index.css +0 -1
- package/dist/elements/Tooltip/index.css +15 -34
- package/dist/elements/Tooltip/index.d.ts +11 -3
- package/dist/elements/Tooltip/index.d.ts.map +1 -1
- package/dist/elements/Tooltip/index.js +151 -85
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
- package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
- package/dist/elements/Upload/index.css +39 -37
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +37 -99
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
- package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
- package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
- package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
- package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
- package/dist/elements/Upload/useUploadFromUrl.js +201 -0
- package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.css +31 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
- package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
- package/dist/elements/UploadDropzoneContent/index.js +62 -0
- package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts +18 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.d.ts.map +1 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.js +38 -0
- package/dist/elements/UserMenu/HoverSubmenuGroup.js.map +1 -0
- package/dist/elements/UserMenu/LanguageMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/LanguageMenu/index.js +83 -39
- package/dist/elements/UserMenu/LanguageMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/SettingsMenu/index.js +57 -21
- package/dist/elements/UserMenu/SettingsMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/ThemeMenu/index.js +83 -39
- package/dist/elements/UserMenu/ThemeMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/index.css +32 -2
- package/dist/elements/UserMenu/index.d.ts +1 -0
- package/dist/elements/UserMenu/index.d.ts.map +1 -1
- package/dist/elements/UserMenu/index.js +77 -51
- package/dist/elements/UserMenu/index.js.map +1 -1
- package/dist/elements/UserMenu/useHoverSubmenu.d.ts +21 -0
- package/dist/elements/UserMenu/useHoverSubmenu.d.ts.map +1 -0
- package/dist/elements/UserMenu/useHoverSubmenu.js +260 -0
- package/dist/elements/UserMenu/useHoverSubmenu.js.map +1 -0
- package/dist/elements/ViewModeToggle/index.d.ts +8 -0
- package/dist/elements/ViewModeToggle/index.d.ts.map +1 -0
- package/dist/elements/ViewModeToggle/index.js +29 -0
- package/dist/elements/ViewModeToggle/index.js.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
- package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.js +32 -0
- package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
- package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +15 -4
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +9 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +1 -1
- package/dist/exports/client/index.js.map +3 -3
- package/dist/fields/Array/ArrayRow.d.ts +1 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +2 -0
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +38 -10
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +2 -0
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -0
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +22 -19
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +38 -10
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +4 -2
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js +136 -148
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.css +163 -186
- package/dist/fields/FieldError/index.css +0 -9
- package/dist/fields/FieldError/index.d.ts.map +1 -1
- package/dist/fields/FieldError/index.js +19 -9
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/Join/index.css +9 -0
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +13 -9
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.css +0 -7
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +53 -17
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.d.ts.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js +2 -0
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +24 -0
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/Slug/index.css +0 -1
- package/dist/fields/Slug/index.d.ts.map +1 -1
- package/dist/fields/Slug/index.js +80 -125
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +44 -16
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/Input.spec.js +241 -0
- package/dist/fields/Upload/Input.spec.js.map +1 -0
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +3 -1
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +9 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/types.d.ts +1 -1
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
- package/dist/forms/WatchChildErrors/index.js +2 -2
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +2 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +1 -3
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/icons/CollapseLayers/index.css +5 -0
- package/dist/icons/CollapseLayers/index.d.ts +7 -0
- package/dist/icons/CollapseLayers/index.d.ts.map +1 -0
- package/dist/icons/CollapseLayers/index.js +23 -0
- package/dist/icons/CollapseLayers/index.js.map +1 -0
- package/dist/icons/Edit/index.d.ts +0 -1
- package/dist/icons/Edit/index.d.ts.map +1 -1
- package/dist/icons/Edit/index.js +4 -4
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/icons/Table/index.css +5 -0
- package/dist/icons/Table/index.d.ts +7 -0
- package/dist/icons/Table/index.d.ts.map +1 -0
- package/dist/icons/Table/index.js +25 -0
- package/dist/icons/Table/index.js.map +1 -0
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +8 -2
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/providers/Actions/index.d.ts +1 -0
- package/dist/providers/Actions/index.d.ts.map +1 -1
- package/dist/providers/Actions/index.js +43 -11
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
- package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
- package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
- package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
- package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
- package/dist/providers/Auth/authSessionRequests.js +119 -0
- package/dist/providers/Auth/authSessionRequests.js.map +1 -0
- package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
- package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
- package/dist/providers/Auth/index.d.ts +2 -56
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +283 -135
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Auth/sessionActivity.d.ts +23 -0
- package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
- package/dist/providers/Auth/sessionActivity.js +49 -0
- package/dist/providers/Auth/sessionActivity.js.map +1 -0
- package/dist/providers/Auth/sessionActivity.spec.js +44 -0
- package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
- package/dist/providers/Auth/sessionTiming.d.ts +11 -0
- package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
- package/dist/providers/Auth/sessionTiming.js +18 -0
- package/dist/providers/Auth/sessionTiming.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
- package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.js +263 -0
- package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
- package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
- package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/types.js +6 -0
- package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
- package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
- package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
- package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
- package/dist/providers/Auth/types.d.ts +65 -0
- package/dist/providers/Auth/types.d.ts.map +1 -0
- package/dist/providers/Auth/types.js +2 -0
- package/dist/providers/Auth/types.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
- package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
- package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
- package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
- package/dist/providers/DocumentTitle/index.d.ts +1 -0
- package/dist/providers/DocumentTitle/index.d.ts.map +1 -1
- package/dist/providers/DocumentTitle/index.js +2 -0
- package/dist/providers/DocumentTitle/index.js.map +1 -1
- package/dist/providers/Embed/index.d.ts +24 -0
- package/dist/providers/Embed/index.d.ts.map +1 -0
- package/dist/providers/Embed/index.js +105 -0
- package/dist/providers/Embed/index.js.map +1 -0
- package/dist/providers/FormErrorHandler/index.d.ts +24 -0
- package/dist/providers/FormErrorHandler/index.d.ts.map +1 -0
- package/dist/providers/FormErrorHandler/index.js +6 -0
- package/dist/providers/FormErrorHandler/index.js.map +1 -0
- package/dist/providers/Hierarchy/index.d.ts.map +1 -1
- package/dist/providers/Hierarchy/index.js +53 -24
- package/dist/providers/Hierarchy/index.js.map +1 -1
- package/dist/providers/Hierarchy/types.d.ts +2 -0
- package/dist/providers/Hierarchy/types.d.ts.map +1 -1
- package/dist/providers/Hierarchy/types.js.map +1 -1
- package/dist/providers/HierarchyDnd/index.css +51 -0
- package/dist/providers/HierarchyDnd/index.d.ts +21 -0
- package/dist/providers/HierarchyDnd/index.d.ts.map +1 -0
- package/dist/providers/HierarchyDnd/index.js +163 -0
- package/dist/providers/HierarchyDnd/index.js.map +1 -0
- package/dist/providers/HierarchyDnd/types.d.ts +56 -0
- package/dist/providers/HierarchyDnd/types.d.ts.map +1 -0
- package/dist/providers/HierarchyDnd/types.js +21 -0
- package/dist/providers/HierarchyDnd/types.js.map +1 -0
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +41 -36
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts +1 -0
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +37 -31
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
- package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
- package/dist/providers/RouteTransition/index.d.ts +2 -0
- package/dist/providers/RouteTransition/index.d.ts.map +1 -1
- package/dist/providers/RouteTransition/index.js +42 -14
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/SidebarTabs/index.d.ts +3 -2
- package/dist/providers/SidebarTabs/index.d.ts.map +1 -1
- package/dist/providers/SidebarTabs/index.js.map +1 -1
- package/dist/providers/Theme/index.d.ts +3 -0
- package/dist/providers/Theme/index.d.ts.map +1 -1
- package/dist/providers/Theme/index.js +107 -95
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/styles.css +12 -10
- package/dist/templates/Default/Wrapper/index.css +2 -1
- package/dist/templates/Default/Wrapper/index.d.ts +2 -0
- package/dist/templates/Default/Wrapper/index.d.ts.map +1 -1
- package/dist/templates/Default/Wrapper/index.js +12 -6
- package/dist/templates/Default/Wrapper/index.js.map +1 -1
- package/dist/templates/Default/index.css +3 -1
- package/dist/templates/Default/index.d.ts +1 -0
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +19 -15
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/utilities/combineFieldLabel.d.ts.map +1 -1
- package/dist/utilities/combineFieldLabel.js +5 -1
- package/dist/utilities/combineFieldLabel.js.map +1 -1
- package/dist/utilities/formatMetadata.d.ts.map +1 -1
- package/dist/utilities/formatMetadata.js +0 -5
- package/dist/utilities/formatMetadata.js.map +1 -1
- package/dist/utilities/generateFieldID.d.ts +1 -1
- package/dist/utilities/generateFieldID.d.ts.map +1 -1
- package/dist/utilities/generateFieldID.js +2 -2
- package/dist/utilities/generateFieldID.js.map +1 -1
- package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
- package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
- package/dist/utilities/getFilesFromClipboard.js +49 -0
- package/dist/utilities/getFilesFromClipboard.js.map +1 -0
- package/dist/utilities/getRequestEmbed.d.ts +14 -0
- package/dist/utilities/getRequestEmbed.d.ts.map +1 -0
- package/dist/utilities/getRequestEmbed.js +10 -0
- package/dist/utilities/getRequestEmbed.js.map +1 -0
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +18 -2
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/slugify.js +50 -6
- package/dist/utilities/slugify.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
- package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
- package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
- package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/index.css +29 -144
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js +4 -4
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/RenderWidget.js.map +1 -1
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js +10 -10
- package/dist/views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +3 -2
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/DocumentListSelection/index.js +100 -105
- package/dist/views/HierarchyList/DocumentListSelection/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.css +216 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts +20 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js +182 -0
- package/dist/views/HierarchyList/HierarchyCards/DocumentCard/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.css +38 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts +15 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js +85 -0
- package/dist/views/HierarchyList/HierarchyCards/DragPreviewItem/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.css +98 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts +27 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js +84 -0
- package/dist/views/HierarchyList/HierarchyCards/FolderCard/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts +19 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js +100 -0
- package/dist/views/HierarchyList/HierarchyCards/HierarchyCard/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts +53 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js +145 -0
- package/dist/views/HierarchyList/HierarchyCards/PlaneItem/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts +8 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js +21 -0
- package/dist/views/HierarchyList/HierarchyCards/getThumbnailSrc.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/index.css +115 -0
- package/dist/views/HierarchyList/HierarchyCards/index.d.ts +80 -0
- package/dist/views/HierarchyList/HierarchyCards/index.d.ts.map +1 -0
- package/dist/views/HierarchyList/HierarchyCards/index.js +457 -0
- package/dist/views/HierarchyList/HierarchyCards/index.js.map +1 -0
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts +6 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyListHeader/index.js +10 -8
- package/dist/views/HierarchyList/HierarchyListHeader/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js +11 -10
- package/dist/views/HierarchyList/HierarchyTable/ChildNameCell.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js +3 -6
- package/dist/views/HierarchyList/HierarchyTable/SlotTable.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.css +51 -0
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts +13 -1
- package/dist/views/HierarchyList/HierarchyTable/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/index.js +156 -38
- package/dist/views/HierarchyList/HierarchyTable/index.js.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts +6 -0
- package/dist/views/HierarchyList/HierarchyTable/types.d.ts.map +1 -1
- package/dist/views/HierarchyList/HierarchyTable/types.js.map +1 -1
- package/dist/views/HierarchyList/index.css +1 -1
- package/dist/views/HierarchyList/index.d.ts.map +1 -1
- package/dist/views/HierarchyList/index.js +103 -20
- package/dist/views/HierarchyList/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts +1 -10
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +1 -3
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.d.ts.map +1 -1
- package/dist/views/List/ListSelection/index.js +138 -122
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/handleHierarchy.d.ts +6 -1
- package/dist/views/List/handleHierarchy.d.ts.map +1 -1
- package/dist/views/List/handleHierarchy.js +34 -3
- package/dist/views/List/handleHierarchy.js.map +1 -1
- package/dist/views/List/index.client.d.ts.map +1 -1
- package/dist/views/List/index.client.js +128 -18
- package/dist/views/List/index.client.js.map +1 -1
- package/dist/views/List/index.css +6 -1
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +29 -14
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/Logout/index.d.ts.map +1 -1
- package/dist/views/Logout/index.js +11 -0
- package/dist/views/Logout/index.js.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
- package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
- package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
- package/dist/views/Root/getCustomViewByKey.js.map +1 -1
- package/dist/views/Root/getRouteData.d.ts.map +1 -1
- package/dist/views/Root/getRouteData.js +8 -2
- package/dist/views/Root/getRouteData.js.map +1 -1
- package/dist/views/Root/index.d.ts +12 -1
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +11 -3
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
- package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
- package/package.json +6 -11
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.css +0 -36
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts +0 -13
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.d.ts.map +0 -1
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js +0 -141
- package/dist/elements/Hierarchy/Field/SelectedHierarchies.js.map +0 -1
- package/dist/elements/RelationshipTable/Pagination.css +0 -39
- package/dist/scss/app.scss +0 -183
- package/dist/scss/colors.scss +0 -191
- package/dist/scss/custom.css +0 -1
- package/dist/scss/queries.scss +0 -27
- package/dist/scss/styles.scss +0 -9
- package/dist/scss/svg.scss +0 -10
- package/dist/scss/toastify.scss +0 -61
- package/dist/scss/vars.scss +0 -192
- package/dist/scss/z-index.scss +0 -9
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { formatAdminURL } from 'payload/shared';
|
|
6
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
7
|
+
import { useConfig } from '../../../providers/Config/index.js';
|
|
8
|
+
import { useRouter } from '../../../providers/RouterAdapter/index.js';
|
|
9
|
+
import { DragPreviewItem } from './DragPreviewItem/index.js';
|
|
10
|
+
import { PlaneItem } from './PlaneItem/index.js';
|
|
11
|
+
import './index.css';
|
|
12
|
+
const baseClass = 'hierarchy-card-grid';
|
|
13
|
+
/**
|
|
14
|
+
* Rows are drawn from several collections whose ids can collide, so identity is the pair.
|
|
15
|
+
*/
|
|
16
|
+
export const getRowKey = row => `${row._collectionSlug}:${row.id}`;
|
|
17
|
+
const getRowTitle = ({
|
|
18
|
+
row,
|
|
19
|
+
useAsTitle
|
|
20
|
+
}) => {
|
|
21
|
+
const rawTitle = row[useAsTitle];
|
|
22
|
+
if (typeof rawTitle === 'string' || typeof rawTitle === 'number') {
|
|
23
|
+
return String(rawTitle);
|
|
24
|
+
}
|
|
25
|
+
return String(row.id);
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Discrete column tiers, richest-first. Each `minWidth` is the container width at which that
|
|
29
|
+
* many ~200px cards (plus the grid gap) still fit, so cards never drop meaningfully below the
|
|
30
|
+
* 200px target as the container grows.
|
|
31
|
+
*/
|
|
32
|
+
const COLUMN_TIERS = [{
|
|
33
|
+
columns: 8,
|
|
34
|
+
minWidth: 1712
|
|
35
|
+
}, {
|
|
36
|
+
columns: 5,
|
|
37
|
+
minWidth: 1064
|
|
38
|
+
}, {
|
|
39
|
+
columns: 4,
|
|
40
|
+
minWidth: 848
|
|
41
|
+
}, {
|
|
42
|
+
columns: 2,
|
|
43
|
+
minWidth: 0
|
|
44
|
+
}];
|
|
45
|
+
const getColumnCount = containerWidth => COLUMN_TIERS.find(tier => containerWidth >= tier.minWidth)?.columns ?? 2;
|
|
46
|
+
/**
|
|
47
|
+
* Measures the plane's own width via `ResizeObserver` rather than CSS container queries, so the
|
|
48
|
+
* column count is driven by explicit, easily-debuggable state instead of container-query support
|
|
49
|
+
* or self-referencing-container edge cases. Every band shares the count, so folder cards and
|
|
50
|
+
* document cards line up in the same columns.
|
|
51
|
+
*
|
|
52
|
+
* Starts `null` - not at a guessed tier - because the width can only be known on the client. Until
|
|
53
|
+
* it is measured the bands leave `grid-template-columns` to CSS, which auto-fills to the same ~200px
|
|
54
|
+
* target; seeding a guess instead would paint that many full-width-share cards on the server and
|
|
55
|
+
* then visibly snap to the measured count on hydration.
|
|
56
|
+
*/
|
|
57
|
+
const useColumnCount = () => {
|
|
58
|
+
const $ = _c(4);
|
|
59
|
+
const ref = useRef(null);
|
|
60
|
+
const [columns, setColumns] = useState(null);
|
|
61
|
+
let t0;
|
|
62
|
+
let t1;
|
|
63
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
64
|
+
t0 = () => {
|
|
65
|
+
const node = ref.current;
|
|
66
|
+
if (!node) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const observer = new ResizeObserver(t2 => {
|
|
70
|
+
const [entry] = t2;
|
|
71
|
+
if (entry) {
|
|
72
|
+
setColumns(getColumnCount(entry.contentRect.width));
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
observer.observe(node);
|
|
76
|
+
return () => observer.disconnect();
|
|
77
|
+
};
|
|
78
|
+
t1 = [];
|
|
79
|
+
$[0] = t0;
|
|
80
|
+
$[1] = t1;
|
|
81
|
+
} else {
|
|
82
|
+
t0 = $[0];
|
|
83
|
+
t1 = $[1];
|
|
84
|
+
}
|
|
85
|
+
useEffect(t0, t1);
|
|
86
|
+
let t2;
|
|
87
|
+
if ($[2] !== columns) {
|
|
88
|
+
t2 = [ref, columns];
|
|
89
|
+
$[2] = columns;
|
|
90
|
+
$[3] = t2;
|
|
91
|
+
} else {
|
|
92
|
+
t2 = $[3];
|
|
93
|
+
}
|
|
94
|
+
return t2;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* A press only becomes a marquee once the pointer travels this far, so a slightly imprecise click
|
|
98
|
+
* on empty space still reads as a click-away rather than a zero-area drag.
|
|
99
|
+
*/
|
|
100
|
+
const DRAG_THRESHOLD = 4;
|
|
101
|
+
/** Matches the overlay's own cap, so no preview card is built that the overlay would discard. */
|
|
102
|
+
const MAX_DRAG_PREVIEW_CARDS = 3;
|
|
103
|
+
const getSelectionIntent = event => {
|
|
104
|
+
if (event.shiftKey) {
|
|
105
|
+
return 'range';
|
|
106
|
+
}
|
|
107
|
+
if (event.metaKey || event.ctrlKey) {
|
|
108
|
+
return 'toggle';
|
|
109
|
+
}
|
|
110
|
+
return 'replace';
|
|
111
|
+
};
|
|
112
|
+
export function HierarchyCardGrid({
|
|
113
|
+
ancestorIds = [],
|
|
114
|
+
ariaLabel,
|
|
115
|
+
bands,
|
|
116
|
+
fillHeight = false,
|
|
117
|
+
getRowLockedUser,
|
|
118
|
+
hierarchySlug,
|
|
119
|
+
isDragDisabled = false,
|
|
120
|
+
onMoveSuccess,
|
|
121
|
+
onSelectionChange,
|
|
122
|
+
selectedKeys,
|
|
123
|
+
showCollectionType
|
|
124
|
+
}) {
|
|
125
|
+
const {
|
|
126
|
+
config: {
|
|
127
|
+
routes: {
|
|
128
|
+
admin: adminRoute
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
getEntityConfig
|
|
132
|
+
} = useConfig();
|
|
133
|
+
const router = useRouter();
|
|
134
|
+
const [planeRef, columns] = useColumnCount();
|
|
135
|
+
/**
|
|
136
|
+
* Selection, range anchoring, and the marquee all operate over one flat index space, which is
|
|
137
|
+
* what puts folders and documents on the same plane rather than in sibling scopes.
|
|
138
|
+
*/
|
|
139
|
+
const flatRows = useMemo(() => bands.flatMap(band => band.rows), [bands]);
|
|
140
|
+
/**
|
|
141
|
+
* Everything needed to render one card, flattened into the same index space as `flatRows`. Built
|
|
142
|
+
* once so the render and the drag overlay agree on titles and hrefs without recomputing them.
|
|
143
|
+
*/
|
|
144
|
+
const descriptors = useMemo(() => bands.flatMap(band_0 => band_0.rows.map(row => {
|
|
145
|
+
const collectionConfig = getEntityConfig({
|
|
146
|
+
collectionSlug: row._collectionSlug
|
|
147
|
+
});
|
|
148
|
+
const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id';
|
|
149
|
+
const hierarchyConfig = collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object' ? collectionConfig.hierarchy : undefined;
|
|
150
|
+
const parentFieldName = hierarchyConfig?.parentFieldName || 'parent';
|
|
151
|
+
// Folders drill in via `_browseHref` so the click stays in the collection being browsed;
|
|
152
|
+
// the fallback covers rows built outside the hierarchy view.
|
|
153
|
+
const href = band_0.isHierarchyGroup ? row._browseHref ?? formatAdminURL({
|
|
154
|
+
adminRoute,
|
|
155
|
+
path: `/collections/${row._collectionSlug}?${parentFieldName}=${row.id}`
|
|
156
|
+
}) : formatAdminURL({
|
|
157
|
+
adminRoute,
|
|
158
|
+
path: `/collections/${row._collectionSlug}/${row.id}`
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
href,
|
|
162
|
+
isHierarchyGroup: band_0.isHierarchyGroup,
|
|
163
|
+
key: getRowKey(row),
|
|
164
|
+
parentFieldName,
|
|
165
|
+
row,
|
|
166
|
+
title: getRowTitle({
|
|
167
|
+
row,
|
|
168
|
+
useAsTitle
|
|
169
|
+
})
|
|
170
|
+
};
|
|
171
|
+
})), [adminRoute, bands, getEntityConfig]);
|
|
172
|
+
const showTypePill = useMemo(() => {
|
|
173
|
+
if (showCollectionType !== undefined) {
|
|
174
|
+
return showCollectionType;
|
|
175
|
+
}
|
|
176
|
+
const documentSlugs = new Set(bands.filter(band_1 => !band_1.isHierarchyGroup).flatMap(band_2 => band_2.rows).map(row_0 => row_0._collectionSlug));
|
|
177
|
+
return documentSlugs.size > 1;
|
|
178
|
+
}, [bands, showCollectionType]);
|
|
179
|
+
/**
|
|
180
|
+
* Payload for dragging the current selection, shared by every selected card so it is built once
|
|
181
|
+
* per render rather than once per card. The preview is capped because the overlay only fans a few
|
|
182
|
+
* cards before collapsing the remainder into a count.
|
|
183
|
+
*/
|
|
184
|
+
const selectionDragData = useMemo(() => {
|
|
185
|
+
const selected = descriptors.filter(descriptor => selectedKeys.has(descriptor.key));
|
|
186
|
+
return {
|
|
187
|
+
type: 'hierarchy-items',
|
|
188
|
+
items: selected.map(descriptor_0 => ({
|
|
189
|
+
id: descriptor_0.row.id,
|
|
190
|
+
collectionSlug: descriptor_0.row._collectionSlug,
|
|
191
|
+
title: descriptor_0.title
|
|
192
|
+
})),
|
|
193
|
+
onMoveSuccess,
|
|
194
|
+
preview: selected.slice(0, MAX_DRAG_PREVIEW_CARDS).map(descriptor_1 => /*#__PURE__*/_jsx(DragPreviewItem, {
|
|
195
|
+
isHierarchyGroup: descriptor_1.isHierarchyGroup,
|
|
196
|
+
row: descriptor_1.row
|
|
197
|
+
}, descriptor_1.key))
|
|
198
|
+
};
|
|
199
|
+
}, [descriptors, onMoveSuccess, selectedKeys]);
|
|
200
|
+
const [marquee, setMarquee] = useState(null);
|
|
201
|
+
// Origin of the next Shift+Click range, set by every plain or Cmd/Ctrl click.
|
|
202
|
+
const anchorIndexRef = useRef(null);
|
|
203
|
+
/**
|
|
204
|
+
* Flat index → card element. The cards live across several lists now, so the marquee can no
|
|
205
|
+
* longer hit-test by walking one element's children.
|
|
206
|
+
*/
|
|
207
|
+
const itemRefs = useRef(new Map());
|
|
208
|
+
const setItemRef = useCallback((flatIndex, node) => {
|
|
209
|
+
if (node) {
|
|
210
|
+
itemRefs.current.set(flatIndex, node);
|
|
211
|
+
} else {
|
|
212
|
+
itemRefs.current.delete(flatIndex);
|
|
213
|
+
}
|
|
214
|
+
}, []);
|
|
215
|
+
/**
|
|
216
|
+
* A drag binds its handlers to `window` for its whole lifetime, so those handlers have to read
|
|
217
|
+
* the live rows and selection rather than the values captured when the press began - the
|
|
218
|
+
* selection changes on every pointer move.
|
|
219
|
+
*/
|
|
220
|
+
const latestRef = useRef({
|
|
221
|
+
flatRows,
|
|
222
|
+
getRowLockedUser,
|
|
223
|
+
onSelectionChange,
|
|
224
|
+
selectedKeys
|
|
225
|
+
});
|
|
226
|
+
useEffect(() => {
|
|
227
|
+
latestRef.current = {
|
|
228
|
+
flatRows,
|
|
229
|
+
getRowLockedUser,
|
|
230
|
+
onSelectionChange,
|
|
231
|
+
selectedKeys
|
|
232
|
+
};
|
|
233
|
+
});
|
|
234
|
+
// Unmounting mid-drag would otherwise leave the window listeners bound.
|
|
235
|
+
const dragCleanupRef = useRef(null);
|
|
236
|
+
useEffect(() => () => dragCleanupRef.current?.(), []);
|
|
237
|
+
const isRowSelectable = row_1 => !latestRef.current.getRowLockedUser?.(row_1);
|
|
238
|
+
/**
|
|
239
|
+
* Reduces a desired selection to the minimum set of per-row toggles the consumer understands.
|
|
240
|
+
*/
|
|
241
|
+
const commitSelection = nextSelectedKeys => {
|
|
242
|
+
const {
|
|
243
|
+
flatRows: latestRows,
|
|
244
|
+
onSelectionChange: onChange,
|
|
245
|
+
selectedKeys: currentKeys
|
|
246
|
+
} = latestRef.current;
|
|
247
|
+
latestRows.forEach(row_2 => {
|
|
248
|
+
const key = getRowKey(row_2);
|
|
249
|
+
if (isRowSelectable(row_2) && currentKeys.has(key) !== nextSelectedKeys.has(key)) {
|
|
250
|
+
onChange(row_2);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
};
|
|
254
|
+
const applySelectionIntent = ({
|
|
255
|
+
index,
|
|
256
|
+
intent
|
|
257
|
+
}) => {
|
|
258
|
+
const row_3 = flatRows[index];
|
|
259
|
+
if (!row_3 || !isRowSelectable(row_3)) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
const nextSelectedKeys_0 = new Set();
|
|
263
|
+
if (intent === 'range') {
|
|
264
|
+
const anchorIndex = anchorIndexRef.current ?? index;
|
|
265
|
+
const start = Math.min(anchorIndex, index);
|
|
266
|
+
const end = Math.max(anchorIndex, index);
|
|
267
|
+
flatRows.slice(start, end + 1).forEach(rangeRow => {
|
|
268
|
+
if (isRowSelectable(rangeRow)) {
|
|
269
|
+
nextSelectedKeys_0.add(getRowKey(rangeRow));
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
} else if (intent === 'toggle') {
|
|
273
|
+
selectedKeys.forEach(key_0 => nextSelectedKeys_0.add(key_0));
|
|
274
|
+
const key_1 = getRowKey(row_3);
|
|
275
|
+
if (nextSelectedKeys_0.has(key_1)) {
|
|
276
|
+
nextSelectedKeys_0.delete(key_1);
|
|
277
|
+
} else {
|
|
278
|
+
nextSelectedKeys_0.add(key_1);
|
|
279
|
+
}
|
|
280
|
+
anchorIndexRef.current = index;
|
|
281
|
+
} else {
|
|
282
|
+
nextSelectedKeys_0.add(getRowKey(row_3));
|
|
283
|
+
anchorIndexRef.current = index;
|
|
284
|
+
}
|
|
285
|
+
commitSelection(nextSelectedKeys_0);
|
|
286
|
+
};
|
|
287
|
+
/**
|
|
288
|
+
* Cards have no checkbox, so the card surface itself drives selection: click selects, Cmd/Ctrl
|
|
289
|
+
* click toggles, Shift click extends. Navigation moves to double click instead.
|
|
290
|
+
*
|
|
291
|
+
* This runs in the capture phase and stops propagation because the card's `Link` navigates from
|
|
292
|
+
* its own `onClick` - a bubbling handler here would fire after the route change had already
|
|
293
|
+
* started. Keyboard-triggered clicks (`detail === 0`, i.e. Enter on the focused link) are let
|
|
294
|
+
* through to the link, since there is no double-press equivalent.
|
|
295
|
+
*/
|
|
296
|
+
const handleCardClickCapture = (event, index_0) => {
|
|
297
|
+
if (event.detail === 0) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
event.preventDefault();
|
|
301
|
+
event.stopPropagation();
|
|
302
|
+
applySelectionIntent({
|
|
303
|
+
index: index_0,
|
|
304
|
+
intent: getSelectionIntent(event)
|
|
305
|
+
});
|
|
306
|
+
};
|
|
307
|
+
// Space is the keyboard counterpart of a selecting click, mirroring what the checkbox used to
|
|
308
|
+
// offer; Enter stays with the focused link so it still opens the document.
|
|
309
|
+
const handleCardKeyDown = (event_0, index_1) => {
|
|
310
|
+
if (event_0.key !== ' ') {
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// Space would otherwise scroll the page.
|
|
314
|
+
event_0.preventDefault();
|
|
315
|
+
applySelectionIntent({
|
|
316
|
+
index: index_1,
|
|
317
|
+
intent: getSelectionIntent(event_0)
|
|
318
|
+
});
|
|
319
|
+
};
|
|
320
|
+
// Pressing an unselected card collapses the selection onto it, so a drag that starts from it moves
|
|
321
|
+
// only that card. The pointer sensor's own distance threshold means this lands before any drag.
|
|
322
|
+
const handlePointerDownUnselected = index_2 => {
|
|
323
|
+
applySelectionIntent({
|
|
324
|
+
index: index_2,
|
|
325
|
+
intent: 'replace'
|
|
326
|
+
});
|
|
327
|
+
};
|
|
328
|
+
const handleCardDoubleClick = (event_1, href_0) => {
|
|
329
|
+
event_1.preventDefault();
|
|
330
|
+
router.push(href_0);
|
|
331
|
+
};
|
|
332
|
+
/**
|
|
333
|
+
* A press on the plane's empty space either clears the selection (click-away) or draws a marquee
|
|
334
|
+
* that selects every card it touches, matching a file browser. Holding a modifier keeps the
|
|
335
|
+
* existing selection and adds to it.
|
|
336
|
+
*
|
|
337
|
+
* All coordinates are kept relative to the plane so the marquee stays anchored to the cards if
|
|
338
|
+
* the page scrolls mid-drag.
|
|
339
|
+
*/
|
|
340
|
+
const handlePlaneMouseDown = event_2 => {
|
|
341
|
+
const planeNode = planeRef.current;
|
|
342
|
+
// Presses that land on a card belong to the click handlers above.
|
|
343
|
+
if (event_2.button !== 0 || !planeNode || event_2.target.closest(`.${baseClass}__item`)) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
// Suppresses the native text-selection drag that would otherwise fight the marquee.
|
|
347
|
+
event_2.preventDefault();
|
|
348
|
+
const isAdditive = event_2.shiftKey || event_2.metaKey || event_2.ctrlKey;
|
|
349
|
+
const baseSelectedKeys = new Set(selectedKeys);
|
|
350
|
+
const startBounds = planeNode.getBoundingClientRect();
|
|
351
|
+
const startX = event_2.clientX - startBounds.left;
|
|
352
|
+
const startY = event_2.clientY - startBounds.top;
|
|
353
|
+
let hasMoved = false;
|
|
354
|
+
const handleMouseMove = moveEvent => {
|
|
355
|
+
const planeBounds = planeNode.getBoundingClientRect();
|
|
356
|
+
const currentX = moveEvent.clientX - planeBounds.left;
|
|
357
|
+
const currentY = moveEvent.clientY - planeBounds.top;
|
|
358
|
+
if (!hasMoved && Math.abs(currentX - startX) < DRAG_THRESHOLD && Math.abs(currentY - startY) < DRAG_THRESHOLD) {
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
hasMoved = true;
|
|
362
|
+
const bottom = Math.max(startY, currentY);
|
|
363
|
+
const left = Math.min(startX, currentX);
|
|
364
|
+
const right = Math.max(startX, currentX);
|
|
365
|
+
const top = Math.min(startY, currentY);
|
|
366
|
+
setMarquee({
|
|
367
|
+
height: bottom - top,
|
|
368
|
+
left,
|
|
369
|
+
top,
|
|
370
|
+
width: right - left
|
|
371
|
+
});
|
|
372
|
+
const nextSelectedKeys_1 = isAdditive ? new Set(baseSelectedKeys) : new Set();
|
|
373
|
+
latestRef.current.flatRows.forEach((row_4, index_3) => {
|
|
374
|
+
const itemNode = itemRefs.current.get(index_3);
|
|
375
|
+
if (!itemNode || !isRowSelectable(row_4)) {
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
const itemBounds = itemNode.getBoundingClientRect();
|
|
379
|
+
const intersects = itemBounds.left - planeBounds.left < right && itemBounds.right - planeBounds.left > left && itemBounds.top - planeBounds.top < bottom && itemBounds.bottom - planeBounds.top > top;
|
|
380
|
+
if (intersects) {
|
|
381
|
+
nextSelectedKeys_1.add(getRowKey(row_4));
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
commitSelection(nextSelectedKeys_1);
|
|
385
|
+
};
|
|
386
|
+
const endDrag = () => {
|
|
387
|
+
window.removeEventListener('mousemove', handleMouseMove);
|
|
388
|
+
window.removeEventListener('mouseup', endDrag);
|
|
389
|
+
dragCleanupRef.current = null;
|
|
390
|
+
setMarquee(null);
|
|
391
|
+
// A press that never became a drag is a click-away: it clears the selection.
|
|
392
|
+
if (!hasMoved && !isAdditive) {
|
|
393
|
+
commitSelection(new Set());
|
|
394
|
+
anchorIndexRef.current = null;
|
|
395
|
+
}
|
|
396
|
+
};
|
|
397
|
+
dragCleanupRef.current = endDrag;
|
|
398
|
+
window.addEventListener('mousemove', handleMouseMove);
|
|
399
|
+
window.addEventListener('mouseup', endDrag);
|
|
400
|
+
};
|
|
401
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
402
|
+
className: [baseClass, fillHeight && `${baseClass}--fill-height`].filter(Boolean).join(' '),
|
|
403
|
+
onMouseDown: handlePlaneMouseDown,
|
|
404
|
+
ref: planeRef,
|
|
405
|
+
children: [bands.map((band_3, bandIndex) => {
|
|
406
|
+
// Bands render in order, so each band's rows start after every earlier band's rows.
|
|
407
|
+
const bandOffset = bands.slice(0, bandIndex).reduce((total, earlier) => total + earlier.rows.length, 0);
|
|
408
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
409
|
+
children: [band_3.visibleLabel && /*#__PURE__*/_jsx("h2", {
|
|
410
|
+
className: `${baseClass}__band-label`,
|
|
411
|
+
children: band_3.visibleLabel
|
|
412
|
+
}), /*#__PURE__*/_jsx("ul", {
|
|
413
|
+
"aria-label": band_3.label ?? ariaLabel,
|
|
414
|
+
className: [`${baseClass}__band`, band_3.isHierarchyGroup && `${baseClass}__band--folders`, band_3.visibleLabel && `${baseClass}__band--labeled`].filter(Boolean).join(' '),
|
|
415
|
+
style: columns ? {
|
|
416
|
+
gridTemplateColumns: `repeat(${columns}, 1fr)`
|
|
417
|
+
} : undefined,
|
|
418
|
+
children: band_3.rows.map((_row, rowIndex) => {
|
|
419
|
+
const flatIndex_0 = bandOffset + rowIndex;
|
|
420
|
+
const descriptor_2 = descriptors[flatIndex_0];
|
|
421
|
+
return /*#__PURE__*/_jsx(PlaneItem, {
|
|
422
|
+
ancestorIds: ancestorIds,
|
|
423
|
+
baseClass: baseClass,
|
|
424
|
+
flatIndex: flatIndex_0,
|
|
425
|
+
hierarchySlug: hierarchySlug ?? descriptor_2.row._collectionSlug,
|
|
426
|
+
href: descriptor_2.href,
|
|
427
|
+
isDragDisabled: isDragDisabled,
|
|
428
|
+
isHierarchyGroup: descriptor_2.isHierarchyGroup,
|
|
429
|
+
isSelected: selectedKeys.has(descriptor_2.key),
|
|
430
|
+
lockedUser: getRowLockedUser?.(descriptor_2.row),
|
|
431
|
+
onClickCapture: handleCardClickCapture,
|
|
432
|
+
onDoubleClick: handleCardDoubleClick,
|
|
433
|
+
onKeyDown: handleCardKeyDown,
|
|
434
|
+
onPointerDownUnselected: handlePointerDownUnselected,
|
|
435
|
+
parentFieldName: descriptor_2.parentFieldName,
|
|
436
|
+
registerNode: setItemRef,
|
|
437
|
+
row: descriptor_2.row,
|
|
438
|
+
selectionDragData: selectionDragData,
|
|
439
|
+
showTypePill: showTypePill,
|
|
440
|
+
title: descriptor_2.title
|
|
441
|
+
}, descriptor_2.key);
|
|
442
|
+
})
|
|
443
|
+
})]
|
|
444
|
+
}, band_3.key);
|
|
445
|
+
}), marquee && /*#__PURE__*/_jsx("div", {
|
|
446
|
+
"aria-hidden": "true",
|
|
447
|
+
className: `${baseClass}__marquee`,
|
|
448
|
+
style: {
|
|
449
|
+
height: marquee.height,
|
|
450
|
+
left: marquee.left,
|
|
451
|
+
top: marquee.top,
|
|
452
|
+
width: marquee.width
|
|
453
|
+
}
|
|
454
|
+
})]
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","formatAdminURL","React","useCallback","useEffect","useMemo","useRef","useState","useConfig","useRouter","DragPreviewItem","PlaneItem","baseClass","getRowKey","row","_collectionSlug","id","getRowTitle","useAsTitle","rawTitle","String","COLUMN_TIERS","columns","minWidth","getColumnCount","containerWidth","find","tier","useColumnCount","$","ref","setColumns","t0","t1","Symbol","for","node","current","observer","ResizeObserver","t2","entry","contentRect","width","observe","disconnect","DRAG_THRESHOLD","MAX_DRAG_PREVIEW_CARDS","getSelectionIntent","event","shiftKey","metaKey","ctrlKey","HierarchyCardGrid","ancestorIds","ariaLabel","bands","fillHeight","getRowLockedUser","hierarchySlug","isDragDisabled","onMoveSuccess","onSelectionChange","selectedKeys","showCollectionType","config","routes","admin","adminRoute","getEntityConfig","router","planeRef","flatRows","flatMap","band","rows","descriptors","map","collectionConfig","collectionSlug","hierarchyConfig","hierarchy","undefined","parentFieldName","href","isHierarchyGroup","_browseHref","path","key","title","showTypePill","documentSlugs","Set","filter","size","selectionDragData","selected","descriptor","has","type","items","preview","slice","_jsx","marquee","setMarquee","anchorIndexRef","itemRefs","Map","setItemRef","flatIndex","set","delete","latestRef","dragCleanupRef","isRowSelectable","commitSelection","nextSelectedKeys","latestRows","onChange","currentKeys","forEach","applySelectionIntent","index","intent","anchorIndex","start","Math","min","end","max","rangeRow","add","handleCardClickCapture","detail","preventDefault","stopPropagation","handleCardKeyDown","handlePointerDownUnselected","handleCardDoubleClick","push","handlePlaneMouseDown","planeNode","button","target","closest","isAdditive","baseSelectedKeys","startBounds","getBoundingClientRect","startX","clientX","left","startY","clientY","top","hasMoved","handleMouseMove","moveEvent","planeBounds","currentX","currentY","abs","bottom","right","height","itemNode","get","itemBounds","intersects","endDrag","window","removeEventListener","addEventListener","_jsxs","className","Boolean","join","onMouseDown","bandIndex","bandOffset","reduce","total","earlier","length","visibleLabel","label","style","gridTemplateColumns","_row","rowIndex","isSelected","lockedUser","onClickCapture","onDoubleClick","onKeyDown","onPointerDownUnselected","registerNode"],"sources":["../../../../src/views/HierarchyList/HierarchyCards/index.tsx"],"sourcesContent":["'use client'\n\nimport type { User } from 'payload'\n\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { HierarchyDragData } from '../../../providers/HierarchyDnd/types.js'\nimport type { TableRow } from '../HierarchyTable/types.js'\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useRouter } from '../../../providers/RouterAdapter/index.js'\nimport { DragPreviewItem } from './DragPreviewItem/index.js'\nimport { PlaneItem } from './PlaneItem/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-card-grid'\n\n/**\n * Rows are drawn from several collections whose ids can collide, so identity is the pair.\n */\nexport const getRowKey = (row: TableRow): string => `${row._collectionSlug}:${row.id}`\n\nconst getRowTitle = ({ row, useAsTitle }: { row: TableRow; useAsTitle: string }): string => {\n const rawTitle = row[useAsTitle]\n\n if (typeof rawTitle === 'string' || typeof rawTitle === 'number') {\n return String(rawTitle)\n }\n\n return String(row.id)\n}\n\n/**\n * Discrete column tiers, richest-first. Each `minWidth` is the container width at which that\n * many ~200px cards (plus the grid gap) still fit, so cards never drop meaningfully below the\n * 200px target as the container grows.\n */\nconst COLUMN_TIERS = [\n { columns: 8, minWidth: 1712 },\n { columns: 5, minWidth: 1064 },\n { columns: 4, minWidth: 848 },\n { columns: 2, minWidth: 0 },\n] as const\n\nconst getColumnCount = (containerWidth: number): number =>\n COLUMN_TIERS.find((tier) => containerWidth >= tier.minWidth)?.columns ?? 2\n\n/**\n * Measures the plane's own width via `ResizeObserver` rather than CSS container queries, so the\n * column count is driven by explicit, easily-debuggable state instead of container-query support\n * or self-referencing-container edge cases. Every band shares the count, so folder cards and\n * document cards line up in the same columns.\n *\n * Starts `null` - not at a guessed tier - because the width can only be known on the client. Until\n * it is measured the bands leave `grid-template-columns` to CSS, which auto-fills to the same ~200px\n * target; seeding a guess instead would paint that many full-width-share cards on the server and\n * then visibly snap to the measured count on hydration.\n */\nconst useColumnCount = () => {\n const ref = useRef<HTMLDivElement>(null)\n const [columns, setColumns] = useState<null | number>(null)\n\n useEffect(() => {\n const node = ref.current\n\n if (!node) {\n return\n }\n\n const observer = new ResizeObserver(([entry]) => {\n if (entry) {\n setColumns(getColumnCount(entry.contentRect.width))\n }\n })\n\n observer.observe(node)\n\n return () => observer.disconnect()\n }, [])\n\n return [ref, columns] as const\n}\n\n/**\n * `replace` collapses the selection to the clicked card, `toggle` (Cmd/Ctrl) adds or removes it,\n * and `range` (Shift) selects everything between the anchor and the clicked card.\n */\ntype ClickIntent = 'range' | 'replace' | 'toggle'\n\n/**\n * Plane-relative geometry of the drag-selection marquee.\n */\ntype MarqueeRect = {\n height: number\n left: number\n top: number\n width: number\n}\n\n/**\n * A press only becomes a marquee once the pointer travels this far, so a slightly imprecise click\n * on empty space still reads as a click-away rather than a zero-area drag.\n */\nconst DRAG_THRESHOLD = 4\n\n/** Matches the overlay's own cap, so no preview card is built that the overlay would discard. */\nconst MAX_DRAG_PREVIEW_CARDS = 3\n\nconst getSelectionIntent = (event: {\n ctrlKey: boolean\n metaKey: boolean\n shiftKey: boolean\n}): ClickIntent => {\n if (event.shiftKey) {\n return 'range'\n }\n\n if (event.metaKey || event.ctrlKey) {\n return 'toggle'\n }\n\n return 'replace'\n}\n\n/**\n * A row plus the presentation values derived from its collection config.\n */\ntype CardDescriptor = {\n href: string\n isHierarchyGroup: boolean\n key: string\n parentFieldName: string\n row: TableRow\n title: string\n}\n\n/**\n * One horizontal group of cards. Bands stack vertically and share a single selection scope, so a\n * range selection or a marquee can run from a folder straight through the documents below it.\n */\nexport type PlaneBand = {\n /**\n * Hierarchy rows render as folder cards, related documents render as document cards.\n */\n isHierarchyGroup: boolean\n key: string\n /**\n * Accessible name for this band, so each list is distinguishable when several render.\n */\n label?: string\n rows: TableRow[]\n /**\n * Heading rendered above the band, e.g. distinguishing documents with no folder from the ones\n * inside a folder. Separate from `label` because that one is read on every band as an accessible\n * name, while this is opt-in and only some bands need it.\n */\n visibleLabel?: string\n}\n\nexport type HierarchyCardGridProps = {\n /**\n * Ids of the folders between the root and the folder currently open, so a folder can't be dropped\n * into its own subtree.\n */\n ancestorIds?: (number | string)[]\n /**\n * Fallback accessible name for bands that don't carry their own label.\n */\n ariaLabel?: string\n bands: PlaneBand[]\n /**\n * Grows the plane to fill the remaining height of its container, so click-away and drag selection\n * reach the empty space below the cards rather than only the gaps between them. Requires the\n * container to be a flex column.\n */\n fillHeight?: boolean\n /**\n * Returns the user currently editing a row, mirroring the table's lock affordance. Locked rows\n * cannot be selected, so their cards render a lock indicator.\n */\n getRowLockedUser?: (row: TableRow) => undefined | User\n /**\n * Slug of the collection that owns the folder tree, used to address drop destinations.\n */\n hierarchySlug?: string\n /**\n * Renders the cards as plain selectable tiles, with no drag activation and no dragging treatment.\n * For planes with nowhere to drop, such as the flat collection grid outside the hierarchy view.\n */\n isDragDisabled?: boolean\n /**\n * Clears the selection once a drop has moved it, since those documents are no longer on this page.\n */\n onMoveSuccess?: () => void\n /**\n * Toggles a single row's selected state. Multi-card intents (replace, range) are resolved into\n * the minimum set of per-row toggles by the plane, so consumers only implement one operation.\n */\n onSelectionChange: (row: TableRow) => void\n selectedKeys: Set<string>\n /**\n * Renders each document card's collection label as a pill over its thumbnail. Defaults to showing\n * the pill only when the documents span more than one collection - a grid of a single document\n * type labels itself, so the pill would repeat the same word on every card.\n */\n showCollectionType?: boolean\n}\n\nexport function HierarchyCardGrid({\n ancestorIds = [],\n ariaLabel,\n bands,\n fillHeight = false,\n getRowLockedUser,\n hierarchySlug,\n isDragDisabled = false,\n onMoveSuccess,\n onSelectionChange,\n selectedKeys,\n showCollectionType,\n}: HierarchyCardGridProps) {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n const router = useRouter()\n const [planeRef, columns] = useColumnCount()\n\n /**\n * Selection, range anchoring, and the marquee all operate over one flat index space, which is\n * what puts folders and documents on the same plane rather than in sibling scopes.\n */\n const flatRows = useMemo(() => bands.flatMap((band) => band.rows), [bands])\n\n /**\n * Everything needed to render one card, flattened into the same index space as `flatRows`. Built\n * once so the render and the drag overlay agree on titles and hrefs without recomputing them.\n */\n const descriptors = useMemo<CardDescriptor[]>(\n () =>\n bands.flatMap((band) =>\n band.rows.map((row) => {\n const collectionConfig = getEntityConfig({ collectionSlug: row._collectionSlug })\n const useAsTitle = collectionConfig?.admin?.useAsTitle || 'id'\n\n const hierarchyConfig =\n collectionConfig?.hierarchy && typeof collectionConfig.hierarchy === 'object'\n ? collectionConfig.hierarchy\n : undefined\n const parentFieldName = hierarchyConfig?.parentFieldName || 'parent'\n\n // Folders drill in via `_browseHref` so the click stays in the collection being browsed;\n // the fallback covers rows built outside the hierarchy view.\n const href = band.isHierarchyGroup\n ? (row._browseHref ??\n formatAdminURL({\n adminRoute,\n path: `/collections/${row._collectionSlug}?${parentFieldName}=${row.id}`,\n }))\n : formatAdminURL({\n adminRoute,\n path: `/collections/${row._collectionSlug}/${row.id}`,\n })\n\n return {\n href,\n isHierarchyGroup: band.isHierarchyGroup,\n key: getRowKey(row),\n parentFieldName,\n row,\n title: getRowTitle({ row, useAsTitle }),\n }\n }),\n ),\n [adminRoute, bands, getEntityConfig],\n )\n\n const showTypePill = useMemo(() => {\n if (showCollectionType !== undefined) {\n return showCollectionType\n }\n\n const documentSlugs = new Set(\n bands\n .filter((band) => !band.isHierarchyGroup)\n .flatMap((band) => band.rows)\n .map((row) => row._collectionSlug),\n )\n\n return documentSlugs.size > 1\n }, [bands, showCollectionType])\n\n /**\n * Payload for dragging the current selection, shared by every selected card so it is built once\n * per render rather than once per card. The preview is capped because the overlay only fans a few\n * cards before collapsing the remainder into a count.\n */\n const selectionDragData = useMemo<HierarchyDragData>(() => {\n const selected = descriptors.filter((descriptor) => selectedKeys.has(descriptor.key))\n\n return {\n type: 'hierarchy-items',\n items: selected.map((descriptor) => ({\n id: descriptor.row.id,\n collectionSlug: descriptor.row._collectionSlug,\n title: descriptor.title,\n })),\n onMoveSuccess,\n preview: selected\n .slice(0, MAX_DRAG_PREVIEW_CARDS)\n .map((descriptor) => (\n <DragPreviewItem\n isHierarchyGroup={descriptor.isHierarchyGroup}\n key={descriptor.key}\n row={descriptor.row}\n />\n )),\n }\n }, [descriptors, onMoveSuccess, selectedKeys])\n\n const [marquee, setMarquee] = useState<MarqueeRect | null>(null)\n\n // Origin of the next Shift+Click range, set by every plain or Cmd/Ctrl click.\n const anchorIndexRef = useRef<null | number>(null)\n\n /**\n * Flat index → card element. The cards live across several lists now, so the marquee can no\n * longer hit-test by walking one element's children.\n */\n const itemRefs = useRef<Map<number, HTMLElement>>(new Map())\n\n const setItemRef = useCallback((flatIndex: number, node: HTMLElement | null) => {\n if (node) {\n itemRefs.current.set(flatIndex, node)\n } else {\n itemRefs.current.delete(flatIndex)\n }\n }, [])\n\n /**\n * A drag binds its handlers to `window` for its whole lifetime, so those handlers have to read\n * the live rows and selection rather than the values captured when the press began - the\n * selection changes on every pointer move.\n */\n const latestRef = useRef({ flatRows, getRowLockedUser, onSelectionChange, selectedKeys })\n\n useEffect(() => {\n latestRef.current = { flatRows, getRowLockedUser, onSelectionChange, selectedKeys }\n })\n\n // Unmounting mid-drag would otherwise leave the window listeners bound.\n const dragCleanupRef = useRef<(() => void) | null>(null)\n\n useEffect(() => () => dragCleanupRef.current?.(), [])\n\n const isRowSelectable = (row: TableRow) => !latestRef.current.getRowLockedUser?.(row)\n\n /**\n * Reduces a desired selection to the minimum set of per-row toggles the consumer understands.\n */\n const commitSelection = (nextSelectedKeys: Set<string>) => {\n const {\n flatRows: latestRows,\n onSelectionChange: onChange,\n selectedKeys: currentKeys,\n } = latestRef.current\n\n latestRows.forEach((row) => {\n const key = getRowKey(row)\n\n if (isRowSelectable(row) && currentKeys.has(key) !== nextSelectedKeys.has(key)) {\n onChange(row)\n }\n })\n }\n\n const applySelectionIntent = ({ index, intent }: { index: number; intent: ClickIntent }) => {\n const row = flatRows[index]\n\n if (!row || !isRowSelectable(row)) {\n return\n }\n\n const nextSelectedKeys = new Set<string>()\n\n if (intent === 'range') {\n const anchorIndex = anchorIndexRef.current ?? index\n const start = Math.min(anchorIndex, index)\n const end = Math.max(anchorIndex, index)\n\n flatRows.slice(start, end + 1).forEach((rangeRow) => {\n if (isRowSelectable(rangeRow)) {\n nextSelectedKeys.add(getRowKey(rangeRow))\n }\n })\n } else if (intent === 'toggle') {\n selectedKeys.forEach((key) => nextSelectedKeys.add(key))\n\n const key = getRowKey(row)\n\n if (nextSelectedKeys.has(key)) {\n nextSelectedKeys.delete(key)\n } else {\n nextSelectedKeys.add(key)\n }\n\n anchorIndexRef.current = index\n } else {\n nextSelectedKeys.add(getRowKey(row))\n anchorIndexRef.current = index\n }\n\n commitSelection(nextSelectedKeys)\n }\n\n /**\n * Cards have no checkbox, so the card surface itself drives selection: click selects, Cmd/Ctrl\n * click toggles, Shift click extends. Navigation moves to double click instead.\n *\n * This runs in the capture phase and stops propagation because the card's `Link` navigates from\n * its own `onClick` - a bubbling handler here would fire after the route change had already\n * started. Keyboard-triggered clicks (`detail === 0`, i.e. Enter on the focused link) are let\n * through to the link, since there is no double-press equivalent.\n */\n const handleCardClickCapture = (event: React.MouseEvent, index: number) => {\n if (event.detail === 0) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n applySelectionIntent({ index, intent: getSelectionIntent(event) })\n }\n\n // Space is the keyboard counterpart of a selecting click, mirroring what the checkbox used to\n // offer; Enter stays with the focused link so it still opens the document.\n const handleCardKeyDown = (event: React.KeyboardEvent, index: number) => {\n if (event.key !== ' ') {\n return\n }\n\n // Space would otherwise scroll the page.\n event.preventDefault()\n applySelectionIntent({ index, intent: getSelectionIntent(event) })\n }\n\n // Pressing an unselected card collapses the selection onto it, so a drag that starts from it moves\n // only that card. The pointer sensor's own distance threshold means this lands before any drag.\n const handlePointerDownUnselected = (index: number) => {\n applySelectionIntent({ index, intent: 'replace' })\n }\n\n const handleCardDoubleClick = (event: React.MouseEvent, href: string) => {\n event.preventDefault()\n router.push(href)\n }\n\n /**\n * A press on the plane's empty space either clears the selection (click-away) or draws a marquee\n * that selects every card it touches, matching a file browser. Holding a modifier keeps the\n * existing selection and adds to it.\n *\n * All coordinates are kept relative to the plane so the marquee stays anchored to the cards if\n * the page scrolls mid-drag.\n */\n const handlePlaneMouseDown = (event: React.MouseEvent) => {\n const planeNode = planeRef.current\n\n // Presses that land on a card belong to the click handlers above.\n if (\n event.button !== 0 ||\n !planeNode ||\n (event.target as HTMLElement).closest(`.${baseClass}__item`)\n ) {\n return\n }\n\n // Suppresses the native text-selection drag that would otherwise fight the marquee.\n event.preventDefault()\n\n const isAdditive = event.shiftKey || event.metaKey || event.ctrlKey\n const baseSelectedKeys = new Set(selectedKeys)\n const startBounds = planeNode.getBoundingClientRect()\n const startX = event.clientX - startBounds.left\n const startY = event.clientY - startBounds.top\n\n let hasMoved = false\n\n const handleMouseMove = (moveEvent: MouseEvent) => {\n const planeBounds = planeNode.getBoundingClientRect()\n const currentX = moveEvent.clientX - planeBounds.left\n const currentY = moveEvent.clientY - planeBounds.top\n\n if (\n !hasMoved &&\n Math.abs(currentX - startX) < DRAG_THRESHOLD &&\n Math.abs(currentY - startY) < DRAG_THRESHOLD\n ) {\n return\n }\n\n hasMoved = true\n\n const bottom = Math.max(startY, currentY)\n const left = Math.min(startX, currentX)\n const right = Math.max(startX, currentX)\n const top = Math.min(startY, currentY)\n\n setMarquee({ height: bottom - top, left, top, width: right - left })\n\n const nextSelectedKeys = isAdditive ? new Set(baseSelectedKeys) : new Set<string>()\n\n latestRef.current.flatRows.forEach((row, index) => {\n const itemNode = itemRefs.current.get(index)\n\n if (!itemNode || !isRowSelectable(row)) {\n return\n }\n\n const itemBounds = itemNode.getBoundingClientRect()\n const intersects =\n itemBounds.left - planeBounds.left < right &&\n itemBounds.right - planeBounds.left > left &&\n itemBounds.top - planeBounds.top < bottom &&\n itemBounds.bottom - planeBounds.top > top\n\n if (intersects) {\n nextSelectedKeys.add(getRowKey(row))\n }\n })\n\n commitSelection(nextSelectedKeys)\n }\n\n const endDrag = () => {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', endDrag)\n dragCleanupRef.current = null\n setMarquee(null)\n\n // A press that never became a drag is a click-away: it clears the selection.\n if (!hasMoved && !isAdditive) {\n commitSelection(new Set())\n anchorIndexRef.current = null\n }\n }\n\n dragCleanupRef.current = endDrag\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', endDrag)\n }\n\n return (\n <div\n className={[baseClass, fillHeight && `${baseClass}--fill-height`].filter(Boolean).join(' ')}\n onMouseDown={handlePlaneMouseDown}\n ref={planeRef}\n >\n {bands.map((band, bandIndex) => {\n // Bands render in order, so each band's rows start after every earlier band's rows.\n const bandOffset = bands\n .slice(0, bandIndex)\n .reduce((total, earlier) => total + earlier.rows.length, 0)\n\n return (\n <div key={band.key}>\n {band.visibleLabel && (\n <h2 className={`${baseClass}__band-label`}>{band.visibleLabel}</h2>\n )}\n <ul\n aria-label={band.label ?? ariaLabel}\n className={[\n `${baseClass}__band`,\n band.isHierarchyGroup && `${baseClass}__band--folders`,\n band.visibleLabel && `${baseClass}__band--labeled`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={columns ? { gridTemplateColumns: `repeat(${columns}, 1fr)` } : undefined}\n >\n {band.rows.map((_row, rowIndex) => {\n const flatIndex = bandOffset + rowIndex\n const descriptor = descriptors[flatIndex]\n\n return (\n <PlaneItem\n ancestorIds={ancestorIds}\n baseClass={baseClass}\n flatIndex={flatIndex}\n hierarchySlug={hierarchySlug ?? descriptor.row._collectionSlug}\n href={descriptor.href}\n isDragDisabled={isDragDisabled}\n isHierarchyGroup={descriptor.isHierarchyGroup}\n isSelected={selectedKeys.has(descriptor.key)}\n key={descriptor.key}\n lockedUser={getRowLockedUser?.(descriptor.row)}\n onClickCapture={handleCardClickCapture}\n onDoubleClick={handleCardDoubleClick}\n onKeyDown={handleCardKeyDown}\n onPointerDownUnselected={handlePointerDownUnselected}\n parentFieldName={descriptor.parentFieldName}\n registerNode={setItemRef}\n row={descriptor.row}\n selectionDragData={selectionDragData}\n showTypePill={showTypePill}\n title={descriptor.title}\n />\n )\n })}\n </ul>\n </div>\n )\n })}\n\n {/*\n Inert overlay, positioned against the plane rather than any one band so it can span them.\n Physical `left`/`top` are deliberate - the geometry comes from measured rects, which are\n already physical.\n */}\n {marquee && (\n <div\n aria-hidden=\"true\"\n className={`${baseClass}__marquee`}\n style={{\n height: marquee.height,\n left: marquee.left,\n top: marquee.top,\n width: marquee.width,\n }}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,8 +11,13 @@ export type HierarchyListHeaderProps = {
|
|
|
11
11
|
disableBulkEdit?: boolean;
|
|
12
12
|
/** Icon to display in the move drawer */
|
|
13
13
|
HierarchyIcon?: React.ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Slug of the collection that owns the folder tree. Differs from `collectionConfig.slug` when the
|
|
16
|
+
* view browses one related collection by folder.
|
|
17
|
+
*/
|
|
18
|
+
hierarchySlug: string;
|
|
14
19
|
i18n: I18nClient;
|
|
15
20
|
viewType?: ViewTypes;
|
|
16
21
|
};
|
|
17
|
-
export declare function HierarchyListHeader({ collectionConfig, currentItemTitle, Description, disableBulkDelete, disableBulkEdit, HierarchyIcon, i18n, viewType, }: HierarchyListHeaderProps): React.JSX.Element;
|
|
22
|
+
export declare function HierarchyListHeader({ collectionConfig, currentItemTitle, Description, disableBulkDelete, disableBulkEdit, HierarchyIcon, hierarchySlug, i18n, viewType, }: HierarchyListHeaderProps): React.JSX.Element;
|
|
18
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/HierarchyList/HierarchyListHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,yCAAyC;IACzC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,IAAI,EACJ,QAAQ,GACT,EAAE,wBAAwB,qBA2B1B"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/HierarchyList/HierarchyListHeader/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAGhE,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,aAAa,CAAA;AAIpB,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,sEAAsE;IACtE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,yCAAyC;IACzC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC/B;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,aAAa,EACb,IAAI,EACJ,QAAQ,GACT,EAAE,wBAAwB,qBA2B1B"}
|
|
@@ -11,7 +11,7 @@ import { DocumentListSelection } from '../DocumentListSelection/index.js';
|
|
|
11
11
|
import './index.css';
|
|
12
12
|
const baseClass = 'hierarchy-list-header';
|
|
13
13
|
export function HierarchyListHeader(t0) {
|
|
14
|
-
const $ = _c(
|
|
14
|
+
const $ = _c(12);
|
|
15
15
|
const {
|
|
16
16
|
collectionConfig,
|
|
17
17
|
currentItemTitle,
|
|
@@ -19,6 +19,7 @@ export function HierarchyListHeader(t0) {
|
|
|
19
19
|
disableBulkDelete,
|
|
20
20
|
disableBulkEdit,
|
|
21
21
|
HierarchyIcon,
|
|
22
|
+
hierarchySlug,
|
|
22
23
|
i18n,
|
|
23
24
|
viewType
|
|
24
25
|
} = t0;
|
|
@@ -29,14 +30,14 @@ export function HierarchyListHeader(t0) {
|
|
|
29
30
|
labels
|
|
30
31
|
} = collectionConfig;
|
|
31
32
|
let t1;
|
|
32
|
-
if ($[0] !== Description || $[1] !== HierarchyIcon || $[2] !== collectionConfig || $[3] !== config || $[4] !== currentItemTitle || $[5] !== disableBulkDelete || $[6] !== disableBulkEdit || $[7] !==
|
|
33
|
+
if ($[0] !== Description || $[1] !== HierarchyIcon || $[2] !== collectionConfig || $[3] !== config || $[4] !== currentItemTitle || $[5] !== disableBulkDelete || $[6] !== disableBulkEdit || $[7] !== hierarchySlug || $[8] !== i18n || $[9] !== labels?.plural || $[10] !== viewType) {
|
|
33
34
|
const title = currentItemTitle || getTranslation(labels?.plural, i18n);
|
|
34
35
|
t1 = _jsx(ListHeader, {
|
|
35
36
|
Actions: [_jsx(DocumentListSelection, {
|
|
36
37
|
disableBulkDelete,
|
|
37
38
|
disableBulkEdit,
|
|
38
39
|
hierarchyIcon: HierarchyIcon,
|
|
39
|
-
hierarchySlug
|
|
40
|
+
hierarchySlug
|
|
40
41
|
}, "document-list-selection"), _jsx(DefaultListViewTabs, {
|
|
41
42
|
collectionConfig,
|
|
42
43
|
config,
|
|
@@ -53,12 +54,13 @@ export function HierarchyListHeader(t0) {
|
|
|
53
54
|
$[4] = currentItemTitle;
|
|
54
55
|
$[5] = disableBulkDelete;
|
|
55
56
|
$[6] = disableBulkEdit;
|
|
56
|
-
$[7] =
|
|
57
|
-
$[8] =
|
|
58
|
-
$[9] =
|
|
59
|
-
$[10] =
|
|
57
|
+
$[7] = hierarchySlug;
|
|
58
|
+
$[8] = i18n;
|
|
59
|
+
$[9] = labels?.plural;
|
|
60
|
+
$[10] = viewType;
|
|
61
|
+
$[11] = t1;
|
|
60
62
|
} else {
|
|
61
|
-
t1 = $[
|
|
63
|
+
t1 = $[11];
|
|
62
64
|
}
|
|
63
65
|
return t1;
|
|
64
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","DefaultListViewTabs","ListHeader","useConfig","DocumentListSelection","baseClass","HierarchyListHeader","t0","$","collectionConfig","currentItemTitle","Description","disableBulkDelete","disableBulkEdit","HierarchyIcon","i18n","viewType","config","labels","t1","plural","title","_jsx","Actions","hierarchyIcon","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","DefaultListViewTabs","ListHeader","useConfig","DocumentListSelection","baseClass","HierarchyListHeader","t0","$","collectionConfig","currentItemTitle","Description","disableBulkDelete","disableBulkEdit","HierarchyIcon","hierarchySlug","i18n","viewType","config","labels","t1","plural","title","_jsx","Actions","hierarchyIcon","AfterListHeaderContent","className"],"sources":["../../../../src/views/HierarchyList/HierarchyListHeader/index.tsx"],"sourcesContent":["'use client'\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientCollectionConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { DefaultListViewTabs } from '../../../elements/DefaultListViewTabs/index.js'\nimport { ListHeader } from '../../../elements/ListHeader/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentListSelection } from '../DocumentListSelection/index.js'\nimport './index.css'\n\nconst baseClass = 'hierarchy-list-header'\n\nexport type HierarchyListHeaderProps = {\n collectionConfig: ClientCollectionConfig\n /** Title to display - defaults to collection label if not provided */\n currentItemTitle?: string\n Description?: React.ReactNode\n disableBulkDelete?: boolean\n disableBulkEdit?: boolean\n /** Icon to display in the move drawer */\n HierarchyIcon?: React.ReactNode\n /**\n * Slug of the collection that owns the folder tree. Differs from `collectionConfig.slug` when the\n * view browses one related collection by folder.\n */\n hierarchySlug: string\n i18n: I18nClient\n viewType?: ViewTypes\n}\n\nexport function HierarchyListHeader({\n collectionConfig,\n currentItemTitle,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n HierarchyIcon,\n hierarchySlug,\n i18n,\n viewType,\n}: HierarchyListHeaderProps) {\n const { config } = useConfig()\n const { labels } = collectionConfig\n const title = currentItemTitle || getTranslation(labels?.plural, i18n)\n\n return (\n <ListHeader\n Actions={[\n <DocumentListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n hierarchyIcon={HierarchyIcon}\n hierarchySlug={hierarchySlug}\n key=\"document-list-selection\"\n />,\n <DefaultListViewTabs\n collectionConfig={collectionConfig}\n config={config}\n key=\"default-list-actions\"\n viewType={viewType}\n />,\n ]}\n AfterListHeaderContent={Description}\n className={baseClass}\n title={title}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAKA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,MAAW;AAElB,SAASC,mBAAmB,QAAQ;AACpC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAoBlB,OAAO,SAAAC,oBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAA6B;IAAAW,gBAAA;IAAAC,gBAAA;IAAAC,WAAA;IAAAC,iBAAA;IAAAC,eAAA;IAAAC,aAAA;IAAAC,aAAA;IAAAC,IAAA;IAAAC;EAAA,IAAAV,EAUT;EACzB;IAAAW;EAAA,IAAmBf,SAAA;EACnB;IAAAgB;EAAA,IAAmBV,gBAAA;EAAA,IAAAW,EAAA;EAAA,IAAAZ,CAAA,QAAAG,WAAA,IAAAH,CAAA,QAAAM,aAAA,IAAAN,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAU,MAAA,IAAAV,CAAA,QAAAE,gBAAA,IAAAF,CAAA,QAAAI,iBAAA,IAAAJ,CAAA,QAAAK,eAAA,IAAAL,CAAA,QAAAO,aAAA,IAAAP,CAAA,QAAAQ,IAAA,IAAAR,CAAA,QAAAW,MAAA,EAAAE,MAAA,IAAAb,CAAA,SAAAS,QAAA;IACnB,MAAAK,KAAA,GAAcZ,gBAAA,IAAoBX,cAAA,CAAeoB,MAAA,EAAAE,MAAA,EAAgBL,IAAA;IAG/DI,EAAA,GAAAG,IAAA,CAAArB,UAAA;MAAAsB,OAAA,GAEID,IAAA,CAAAnB,qBAAA;QAAAQ,iBAAA;QAAAC,eAAA;QAAAY,aAAA,EAGiBX,aAAA;QAAAC;MAAA,GAEX,4BAENQ,IAAA,CAAAtB,mBAAA;QAAAQ,gBAAA;QAAAS,MAAA;QAAAD;MAAA,GAGM;MAAAS,sBAAA,EAIgBf,WAAA;MAAAgB,SAAA,EAAAtB,SAAA;MAAAiB;IAAA,C;;;;;;;;;;;;;;;;SAhB1BF,E","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildNameCell.d.ts","sourceRoot":"","sources":["../../../../src/views/HierarchyList/HierarchyTable/ChildNameCell.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAW1C,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"ChildNameCell.d.ts","sourceRoot":"","sources":["../../../../src/views/HierarchyList/HierarchyTable/ChildNameCell.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAW1C,eAAO,MAAM,aAAa,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CA2DtD,CAAA"}
|