@rnaga/wp-next-admin 1.0.1
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/README.md +292 -0
- package/client/components/RootLayout.d.ts +13 -0
- package/client/components/RootLayout.d.ts.map +1 -0
- package/client/components/RootLayout.js +13 -0
- package/client/components/WrapperRootLayout.d.ts +9 -0
- package/client/components/WrapperRootLayout.d.ts.map +1 -0
- package/client/components/WrapperRootLayout.js +5 -0
- package/client/components/contents/blogs/Create.d.ts +2 -0
- package/client/components/contents/blogs/Create.d.ts.map +1 -0
- package/client/components/contents/blogs/Create.js +67 -0
- package/client/components/contents/blogs/Edit.d.ts +2 -0
- package/client/components/contents/blogs/Edit.d.ts.map +1 -0
- package/client/components/contents/blogs/Edit.js +144 -0
- package/client/components/contents/blogs/List.d.ts +2 -0
- package/client/components/contents/blogs/List.d.ts.map +1 -0
- package/client/components/contents/blogs/List.js +56 -0
- package/client/components/contents/blogs/index.d.ts +6 -0
- package/client/components/contents/blogs/index.d.ts.map +1 -0
- package/client/components/contents/blogs/index.js +8 -0
- package/client/components/contents/comments/ActionLink.d.ts +5 -0
- package/client/components/contents/comments/ActionLink.d.ts.map +1 -0
- package/client/components/contents/comments/ActionLink.js +67 -0
- package/client/components/contents/comments/List/Reply.d.ts +5 -0
- package/client/components/contents/comments/List/Reply.d.ts.map +1 -0
- package/client/components/contents/comments/List/Reply.js +33 -0
- package/client/components/contents/comments/List/Row.d.ts +5 -0
- package/client/components/contents/comments/List/Row.d.ts.map +1 -0
- package/client/components/contents/comments/List/Row.js +30 -0
- package/client/components/contents/comments/List/Toolbar.d.ts +8 -0
- package/client/components/contents/comments/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/comments/List/Toolbar.js +14 -0
- package/client/components/contents/comments/List/index.d.ts +5 -0
- package/client/components/contents/comments/List/index.d.ts.map +1 -0
- package/client/components/contents/comments/List/index.js +38 -0
- package/client/components/contents/comments/index.d.ts +7 -0
- package/client/components/contents/comments/index.d.ts.map +1 -0
- package/client/components/contents/comments/index.js +6 -0
- package/client/components/contents/dashboard/index.d.ts +2 -0
- package/client/components/contents/dashboard/index.d.ts.map +1 -0
- package/client/components/contents/dashboard/index.js +123 -0
- package/client/components/contents/index.d.ts +46 -0
- package/client/components/contents/index.d.ts.map +1 -0
- package/client/components/contents/index.js +28 -0
- package/client/components/contents/media/Edit.d.ts +2 -0
- package/client/components/contents/media/Edit.d.ts.map +1 -0
- package/client/components/contents/media/Edit.js +86 -0
- package/client/components/contents/media/List/ActionLink.d.ts +5 -0
- package/client/components/contents/media/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/media/List/ActionLink.js +24 -0
- package/client/components/contents/media/List/Table.d.ts +5 -0
- package/client/components/contents/media/List/Table.d.ts.map +1 -0
- package/client/components/contents/media/List/Table.js +38 -0
- package/client/components/contents/media/List/Thumbnail.d.ts +5 -0
- package/client/components/contents/media/List/Thumbnail.d.ts.map +1 -0
- package/client/components/contents/media/List/Thumbnail.js +28 -0
- package/client/components/contents/media/List/index.d.ts +2 -0
- package/client/components/contents/media/List/index.d.ts.map +1 -0
- package/client/components/contents/media/List/index.js +66 -0
- package/client/components/contents/media/index.d.ts +5 -0
- package/client/components/contents/media/index.d.ts.map +1 -0
- package/client/components/contents/media/index.js +6 -0
- package/client/components/contents/pages/Edit/Settings.d.ts +2 -0
- package/client/components/contents/pages/Edit/Settings.d.ts.map +1 -0
- package/client/components/contents/pages/Edit/Settings.js +17 -0
- package/client/components/contents/pages/Edit/Toolbar.d.ts +2 -0
- package/client/components/contents/pages/Edit/Toolbar.d.ts.map +1 -0
- package/client/components/contents/pages/Edit/Toolbar.js +72 -0
- package/client/components/contents/pages/Edit/index.d.ts +2 -0
- package/client/components/contents/pages/Edit/index.d.ts.map +1 -0
- package/client/components/contents/pages/Edit/index.js +43 -0
- package/client/components/contents/pages/List/ActionLink.d.ts +5 -0
- package/client/components/contents/pages/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/pages/List/ActionLink.js +12 -0
- package/client/components/contents/pages/List/Statuses.d.ts +2 -0
- package/client/components/contents/pages/List/Statuses.d.ts.map +1 -0
- package/client/components/contents/pages/List/Statuses.js +24 -0
- package/client/components/contents/pages/List/Toolbar.d.ts +8 -0
- package/client/components/contents/pages/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/pages/List/Toolbar.js +14 -0
- package/client/components/contents/pages/List/index.d.ts +2 -0
- package/client/components/contents/pages/List/index.d.ts.map +1 -0
- package/client/components/contents/pages/List/index.js +45 -0
- package/client/components/contents/pages/index.d.ts +5 -0
- package/client/components/contents/pages/index.d.ts.map +1 -0
- package/client/components/contents/pages/index.js +6 -0
- package/client/components/contents/posts/Edit/Settings.d.ts +2 -0
- package/client/components/contents/posts/Edit/Settings.d.ts.map +1 -0
- package/client/components/contents/posts/Edit/Settings.js +19 -0
- package/client/components/contents/posts/Edit/Toolbar.d.ts +2 -0
- package/client/components/contents/posts/Edit/Toolbar.d.ts.map +1 -0
- package/client/components/contents/posts/Edit/Toolbar.js +72 -0
- package/client/components/contents/posts/Edit/index.d.ts +2 -0
- package/client/components/contents/posts/Edit/index.d.ts.map +1 -0
- package/client/components/contents/posts/Edit/index.js +43 -0
- package/client/components/contents/posts/List/ActionLink.d.ts +5 -0
- package/client/components/contents/posts/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/posts/List/ActionLink.js +12 -0
- package/client/components/contents/posts/List/Statuses.d.ts +2 -0
- package/client/components/contents/posts/List/Statuses.d.ts.map +1 -0
- package/client/components/contents/posts/List/Statuses.js +32 -0
- package/client/components/contents/posts/List/Toolbar.d.ts +8 -0
- package/client/components/contents/posts/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/posts/List/Toolbar.js +14 -0
- package/client/components/contents/posts/List/index.d.ts +2 -0
- package/client/components/contents/posts/List/index.d.ts.map +1 -0
- package/client/components/contents/posts/List/index.js +46 -0
- package/client/components/contents/posts/index.d.ts +5 -0
- package/client/components/contents/posts/index.d.ts.map +1 -0
- package/client/components/contents/posts/index.js +6 -0
- package/client/components/contents/profile/index.d.ts +2 -0
- package/client/components/contents/profile/index.d.ts.map +1 -0
- package/client/components/contents/profile/index.js +7 -0
- package/client/components/contents/revisions/List/History.d.ts +7 -0
- package/client/components/contents/revisions/List/History.d.ts.map +1 -0
- package/client/components/contents/revisions/List/History.js +37 -0
- package/client/components/contents/revisions/List/diff2html.css +11 -0
- package/client/components/contents/revisions/List/index.d.ts +9 -0
- package/client/components/contents/revisions/List/index.d.ts.map +1 -0
- package/client/components/contents/revisions/List/index.js +145 -0
- package/client/components/contents/revisions/index.d.ts +2 -0
- package/client/components/contents/revisions/index.d.ts.map +1 -0
- package/client/components/contents/revisions/index.js +1 -0
- package/client/components/contents/roles/List/EditModal.d.ts +8 -0
- package/client/components/contents/roles/List/EditModal.d.ts.map +1 -0
- package/client/components/contents/roles/List/EditModal.js +153 -0
- package/client/components/contents/roles/List/index.d.ts +7 -0
- package/client/components/contents/roles/List/index.d.ts.map +1 -0
- package/client/components/contents/roles/List/index.js +111 -0
- package/client/components/contents/roles/index.d.ts +2 -0
- package/client/components/contents/roles/index.d.ts.map +1 -0
- package/client/components/contents/roles/index.js +1 -0
- package/client/components/contents/settings/index.d.ts +2 -0
- package/client/components/contents/settings/index.d.ts.map +1 -0
- package/client/components/contents/settings/index.js +67 -0
- package/client/components/contents/sites/Create.d.ts +2 -0
- package/client/components/contents/sites/Create.d.ts.map +1 -0
- package/client/components/contents/sites/Create.js +53 -0
- package/client/components/contents/sites/Delete.d.ts +2 -0
- package/client/components/contents/sites/Delete.d.ts.map +1 -0
- package/client/components/contents/sites/Delete.js +125 -0
- package/client/components/contents/sites/Edit.d.ts +2 -0
- package/client/components/contents/sites/Edit.d.ts.map +1 -0
- package/client/components/contents/sites/Edit.js +120 -0
- package/client/components/contents/sites/List.d.ts +2 -0
- package/client/components/contents/sites/List.d.ts.map +1 -0
- package/client/components/contents/sites/List.js +33 -0
- package/client/components/contents/sites/index.d.ts +7 -0
- package/client/components/contents/sites/index.d.ts.map +1 -0
- package/client/components/contents/sites/index.js +10 -0
- package/client/components/contents/terms/List/ActionLink.d.ts +5 -0
- package/client/components/contents/terms/List/ActionLink.d.ts.map +1 -0
- package/client/components/contents/terms/List/ActionLink.js +44 -0
- package/client/components/contents/terms/List/Toolbar.d.ts +8 -0
- package/client/components/contents/terms/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/terms/List/Toolbar.js +20 -0
- package/client/components/contents/terms/List/index.d.ts +18 -0
- package/client/components/contents/terms/List/index.d.ts.map +1 -0
- package/client/components/contents/terms/List/index.js +94 -0
- package/client/components/contents/terms/index.d.ts +2 -0
- package/client/components/contents/terms/index.d.ts.map +1 -0
- package/client/components/contents/terms/index.js +1 -0
- package/client/components/contents/users/Create.d.ts +2 -0
- package/client/components/contents/users/Create.d.ts.map +1 -0
- package/client/components/contents/users/Create.js +47 -0
- package/client/components/contents/users/Delete.d.ts +2 -0
- package/client/components/contents/users/Delete.d.ts.map +1 -0
- package/client/components/contents/users/Delete.js +113 -0
- package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.d.ts +6 -0
- package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.js +40 -0
- package/client/components/contents/users/Edit/Profile/ResetPasswordModal.d.ts +6 -0
- package/client/components/contents/users/Edit/Profile/ResetPasswordModal.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Profile/ResetPasswordModal.js +41 -0
- package/client/components/contents/users/Edit/Profile/index.d.ts +4 -0
- package/client/components/contents/users/Edit/Profile/index.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Profile/index.js +111 -0
- package/client/components/contents/users/Edit/Roles/ActionLink.d.ts +6 -0
- package/client/components/contents/users/Edit/Roles/ActionLink.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/ActionLink.js +63 -0
- package/client/components/contents/users/Edit/Roles/Add.d.ts +5 -0
- package/client/components/contents/users/Edit/Roles/Add.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/Add.js +60 -0
- package/client/components/contents/users/Edit/Roles/Edit.d.ts +8 -0
- package/client/components/contents/users/Edit/Roles/Edit.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/Edit.js +53 -0
- package/client/components/contents/users/Edit/Roles/Roles.d.ts +4 -0
- package/client/components/contents/users/Edit/Roles/Roles.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/Roles.js +41 -0
- package/client/components/contents/users/Edit/Roles/context.d.ts +9 -0
- package/client/components/contents/users/Edit/Roles/context.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/context.js +2 -0
- package/client/components/contents/users/Edit/Roles/index.d.ts +3 -0
- package/client/components/contents/users/Edit/Roles/index.d.ts.map +1 -0
- package/client/components/contents/users/Edit/Roles/index.js +2 -0
- package/client/components/contents/users/Edit/index.d.ts +4 -0
- package/client/components/contents/users/Edit/index.d.ts.map +1 -0
- package/client/components/contents/users/Edit/index.js +66 -0
- package/client/components/contents/users/List/CountRoles.d.ts +2 -0
- package/client/components/contents/users/List/CountRoles.d.ts.map +1 -0
- package/client/components/contents/users/List/CountRoles.js +68 -0
- package/client/components/contents/users/List/Toolbar.d.ts +10 -0
- package/client/components/contents/users/List/Toolbar.d.ts.map +1 -0
- package/client/components/contents/users/List/Toolbar.js +32 -0
- package/client/components/contents/users/List/index.d.ts +2 -0
- package/client/components/contents/users/List/index.d.ts.map +1 -0
- package/client/components/contents/users/List/index.js +30 -0
- package/client/components/contents/users/index.d.ts +9 -0
- package/client/components/contents/users/index.d.ts.map +1 -0
- package/client/components/contents/users/index.js +10 -0
- package/client/components/layout/Layout.d.ts +3 -0
- package/client/components/layout/Layout.d.ts.map +1 -0
- package/client/components/layout/Layout.js +69 -0
- package/client/components/layout/Main.d.ts +2 -0
- package/client/components/layout/Main.d.ts.map +1 -0
- package/client/components/layout/Main.js +12 -0
- package/client/components/layout/Overlay.d.ts +2 -0
- package/client/components/layout/Overlay.d.ts.map +1 -0
- package/client/components/layout/Overlay.js +49 -0
- package/client/components/layout/Title.d.ts +2 -0
- package/client/components/layout/Title.d.ts.map +1 -0
- package/client/components/layout/Title.js +19 -0
- package/client/components/layout/WrapperLayout.d.ts +2 -0
- package/client/components/layout/WrapperLayout.d.ts.map +1 -0
- package/client/components/layout/WrapperLayout.js +5 -0
- package/client/components/layout/header/Profile.d.ts +2 -0
- package/client/components/layout/header/Profile.d.ts.map +1 -0
- package/client/components/layout/header/Profile.js +66 -0
- package/client/components/layout/header/index.d.ts +2 -0
- package/client/components/layout/header/index.d.ts.map +1 -0
- package/client/components/layout/header/index.js +176 -0
- package/client/components/layout/sidebar/Collapse.d.ts +4 -0
- package/client/components/layout/sidebar/Collapse.d.ts.map +1 -0
- package/client/components/layout/sidebar/Collapse.js +53 -0
- package/client/components/layout/sidebar/Menus.d.ts +5 -0
- package/client/components/layout/sidebar/Menus.d.ts.map +1 -0
- package/client/components/layout/sidebar/Menus.js +76 -0
- package/client/components/layout/sidebar/index.d.ts +2 -0
- package/client/components/layout/sidebar/index.d.ts.map +1 -0
- package/client/components/layout/sidebar/index.js +86 -0
- package/client/components/utils/ErrorFallback.d.ts +6 -0
- package/client/components/utils/ErrorFallback.d.ts.map +1 -0
- package/client/components/utils/ErrorFallback.js +36 -0
- package/client/components/utils/dropdown/SelectWPAvailableSite.d.ts +7 -0
- package/client/components/utils/dropdown/SelectWPAvailableSite.d.ts.map +1 -0
- package/client/components/utils/dropdown/SelectWPAvailableSite.js +58 -0
- package/client/components/utils/dropdown/SelectWPSite.d.ts +5 -0
- package/client/components/utils/dropdown/SelectWPSite.d.ts.map +1 -0
- package/client/components/utils/dropdown/SelectWPSite.js +27 -0
- package/client/components/utils/dropdown/index.d.ts +2 -0
- package/client/components/utils/dropdown/index.d.ts.map +1 -0
- package/client/components/utils/dropdown/index.js +1 -0
- package/client/components/utils/index.d.ts +2 -0
- package/client/components/utils/index.d.ts.map +1 -0
- package/client/components/utils/index.js +1 -0
- package/client/components/utils/link/AdminLink.d.ts +46 -0
- package/client/components/utils/link/AdminLink.d.ts.map +1 -0
- package/client/components/utils/link/AdminLink.js +61 -0
- package/client/components/utils/link/index.d.ts +2 -0
- package/client/components/utils/link/index.d.ts.map +1 -0
- package/client/components/utils/link/index.js +2 -0
- package/client/components/utils/modal/CommentModal.d.ts +2 -0
- package/client/components/utils/modal/CommentModal.d.ts.map +1 -0
- package/client/components/utils/modal/CommentModal.js +53 -0
- package/client/components/utils/modal/TermModal.d.ts +10 -0
- package/client/components/utils/modal/TermModal.d.ts.map +1 -0
- package/client/components/utils/modal/TermModal.js +70 -0
- package/client/components/utils/modal/index.d.ts +3 -0
- package/client/components/utils/modal/index.d.ts.map +1 -0
- package/client/components/utils/modal/index.js +2 -0
- package/client/components/utils/post/PostPanel.d.ts +15 -0
- package/client/components/utils/post/PostPanel.d.ts.map +1 -0
- package/client/components/utils/post/PostPanel.js +70 -0
- package/client/components/utils/post/index.d.ts +4 -0
- package/client/components/utils/post/index.d.ts.map +1 -0
- package/client/components/utils/post/index.js +3 -0
- package/client/components/utils/post/link/PostActionLink.d.ts +9 -0
- package/client/components/utils/post/link/PostActionLink.d.ts.map +1 -0
- package/client/components/utils/post/link/PostActionLink.js +90 -0
- package/client/components/utils/post/link/PostRowLinks.d.ts +8 -0
- package/client/components/utils/post/link/PostRowLinks.d.ts.map +1 -0
- package/client/components/utils/post/link/PostRowLinks.js +30 -0
- package/client/components/utils/post/link/index.d.ts +3 -0
- package/client/components/utils/post/link/index.d.ts.map +1 -0
- package/client/components/utils/post/link/index.js +2 -0
- package/client/components/utils/post/settings/Categories.d.ts +2 -0
- package/client/components/utils/post/settings/Categories.d.ts.map +1 -0
- package/client/components/utils/post/settings/Categories.js +23 -0
- package/client/components/utils/post/settings/Discussion.d.ts +2 -0
- package/client/components/utils/post/settings/Discussion.d.ts.map +1 -0
- package/client/components/utils/post/settings/Discussion.js +25 -0
- package/client/components/utils/post/settings/Excerpt.d.ts +2 -0
- package/client/components/utils/post/settings/Excerpt.d.ts.map +1 -0
- package/client/components/utils/post/settings/Excerpt.js +9 -0
- package/client/components/utils/post/settings/FeaturedImage.d.ts +2 -0
- package/client/components/utils/post/settings/FeaturedImage.d.ts.map +1 -0
- package/client/components/utils/post/settings/FeaturedImage.js +63 -0
- package/client/components/utils/post/settings/PageAttributes.d.ts +2 -0
- package/client/components/utils/post/settings/PageAttributes.d.ts.map +1 -0
- package/client/components/utils/post/settings/PageAttributes.js +23 -0
- package/client/components/utils/post/settings/Revisions.d.ts +2 -0
- package/client/components/utils/post/settings/Revisions.d.ts.map +1 -0
- package/client/components/utils/post/settings/Revisions.js +44 -0
- package/client/components/utils/post/settings/Summary.d.ts +2 -0
- package/client/components/utils/post/settings/Summary.d.ts.map +1 -0
- package/client/components/utils/post/settings/Summary.js +58 -0
- package/client/components/utils/post/settings/Tags.d.ts +2 -0
- package/client/components/utils/post/settings/Tags.d.ts.map +1 -0
- package/client/components/utils/post/settings/Tags.js +11 -0
- package/client/components/utils/post/settings/index.d.ts +9 -0
- package/client/components/utils/post/settings/index.d.ts.map +1 -0
- package/client/components/utils/post/settings/index.js +8 -0
- package/client/hooks/index.d.ts +6 -0
- package/client/hooks/index.d.ts.map +1 -0
- package/client/hooks/index.js +5 -0
- package/client/hooks/use-admin-navigation.d.ts +39 -0
- package/client/hooks/use-admin-navigation.d.ts.map +1 -0
- package/client/hooks/use-admin-navigation.js +61 -0
- package/client/hooks/use-admin-server-actions.d.ts +49 -0
- package/client/hooks/use-admin-server-actions.d.ts.map +1 -0
- package/client/hooks/use-admin-server-actions.js +13 -0
- package/client/hooks/use-admin-user.d.ts +130 -0
- package/client/hooks/use-admin-user.d.ts.map +1 -0
- package/client/hooks/use-admin-user.js +19 -0
- package/client/hooks/use-current-menu.d.ts +3 -0
- package/client/hooks/use-current-menu.d.ts.map +1 -0
- package/client/hooks/use-current-menu.js +37 -0
- package/client/hooks/use-sidebar.d.ts +27 -0
- package/client/hooks/use-sidebar.d.ts.map +1 -0
- package/client/hooks/use-sidebar.js +51 -0
- package/client/hooks/use-sites.d.ts +136 -0
- package/client/hooks/use-sites.d.ts.map +1 -0
- package/client/hooks/use-sites.js +43 -0
- package/client/utils/get-default-admin-hooks.d.ts +3 -0
- package/client/utils/get-default-admin-hooks.d.ts.map +1 -0
- package/client/utils/get-default-admin-hooks.js +3 -0
- package/client/utils/index.d.ts +2 -0
- package/client/utils/index.d.ts.map +1 -0
- package/client/utils/index.js +1 -0
- package/client/wp-admin/initial-global-state.d.ts +5 -0
- package/client/wp-admin/initial-global-state.d.ts.map +1 -0
- package/client/wp-admin/initial-global-state.js +46 -0
- package/client/wp-admin/use-comment.d.ts +55 -0
- package/client/wp-admin/use-comment.d.ts.map +1 -0
- package/client/wp-admin/use-comment.js +32 -0
- package/client/wp-admin/use-overlay.d.ts +28 -0
- package/client/wp-admin/use-overlay.d.ts.map +1 -0
- package/client/wp-admin/use-overlay.js +89 -0
- package/client/wp-admin.d.ts +27 -0
- package/client/wp-admin.d.ts.map +1 -0
- package/client/wp-admin.js +49 -0
- package/client/wp-hooks/index.d.ts +5 -0
- package/client/wp-hooks/index.d.ts.map +1 -0
- package/client/wp-hooks/index.js +5 -0
- package/client/wp-hooks/menu-blog.hook.d.ts +11 -0
- package/client/wp-hooks/menu-blog.hook.d.ts.map +1 -0
- package/client/wp-hooks/menu-blog.hook.js +236 -0
- package/client/wp-hooks/menu-site.hook.d.ts +11 -0
- package/client/wp-hooks/menu-site.hook.d.ts.map +1 -0
- package/client/wp-hooks/menu-site.hook.js +171 -0
- package/client/wp-hooks/preload-modal.hook.d.ts +10 -0
- package/client/wp-hooks/preload-modal.hook.d.ts.map +1 -0
- package/client/wp-hooks/preload-modal.hook.js +45 -0
- package/client/wp-hooks/themes.hook.d.ts +9 -0
- package/client/wp-hooks/themes.hook.d.ts.map +1 -0
- package/client/wp-hooks/themes.hook.js +32 -0
- package/package.json +64 -0
- package/server/actions/dashboard.d.ts +141 -0
- package/server/actions/dashboard.d.ts.map +1 -0
- package/server/actions/dashboard.js +52 -0
- package/server/components/Page.d.ts +2 -0
- package/server/components/Page.d.ts.map +1 -0
- package/server/components/Page.js +3 -0
- package/server/components/RootLayout.d.ts +5 -0
- package/server/components/RootLayout.d.ts.map +1 -0
- package/server/components/RootLayout.js +57 -0
- package/server/components/RootPage.d.ts +2 -0
- package/server/components/RootPage.d.ts.map +1 -0
- package/server/components/RootPage.js +19 -0
- package/server/utils/get-default-admin-hooks.d.ts +3 -0
- package/server/utils/get-default-admin-hooks.d.ts.map +1 -0
- package/server/utils/get-default-admin-hooks.js +4 -0
- package/server/utils/index.d.ts +2 -0
- package/server/utils/index.d.ts.map +1 -0
- package/server/utils/index.js +1 -0
- package/server/wp-admin.d.ts +40 -0
- package/server/wp-admin.d.ts.map +1 -0
- package/server/wp-admin.js +58 -0
- package/server/wp-hooks/index.d.ts +3 -0
- package/server/wp-hooks/index.d.ts.map +1 -0
- package/server/wp-hooks/index.js +3 -0
- package/server/wp-hooks/next-admin-init.hook.d.ts +15 -0
- package/server/wp-hooks/next-admin-init.hook.d.ts.map +1 -0
- package/server/wp-hooks/next-admin-init.hook.js +65 -0
- package/types/client/form-data.d.ts +27 -0
- package/types/client/global-ref.d.ts +7 -0
- package/types/client/global-state.d.ts +78 -0
- package/types/client/index.d.ts +5 -0
- package/types/client/menus.d.ts +39 -0
- package/types/client.d.ts +40 -0
- package/types/hooks/actions.d.ts +4 -0
- package/types/hooks/filters.d.ts +39 -0
- package/types/hooks/index.d.ts +2 -0
- package/types/index.d.ts +4 -0
- package/types/server-actions.d.ts +21 -0
- package/types/theme.d.ts +33 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { ErrorBoundary } from "react-error-boundary";
|
|
5
|
+
import { Box } from "@mui/material";
|
|
6
|
+
import { useAdminNavigation } from "../../hooks/use-admin-navigation";
|
|
7
|
+
import { useSidebar } from "../../hooks/use-sidebar";
|
|
8
|
+
import { useWPAdmin } from "../../wp-admin";
|
|
9
|
+
import { ErrorFallback } from "../utils/ErrorFallback";
|
|
10
|
+
import { Header } from "./header";
|
|
11
|
+
import { Main } from "./Main";
|
|
12
|
+
import { Overlay } from "./Overlay";
|
|
13
|
+
import { Sidebar } from "./sidebar";
|
|
14
|
+
import { Title } from "./Title";
|
|
15
|
+
import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
|
|
16
|
+
export const Layout = () => {
|
|
17
|
+
const wpAdmin = useWPAdmin();
|
|
18
|
+
const adminNavigation = useAdminNavigation();
|
|
19
|
+
const { wpTheme } = useWPTheme();
|
|
20
|
+
const { wp: { globalState, wpHooks, viewport }, sidebar, site, } = wpAdmin;
|
|
21
|
+
const { pathname, blogBasePath, currentPath } = adminNavigation;
|
|
22
|
+
const layoutKeys = globalState.get("layout-keys");
|
|
23
|
+
const { setMenus } = useSidebar({ globalState, viewport });
|
|
24
|
+
// Monitor pathname
|
|
25
|
+
const currentSegment = globalState.get("page-segment");
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const segment = pathname.replace(blogBasePath, "").split("/")[1];
|
|
28
|
+
if (segment !== currentSegment) {
|
|
29
|
+
// Segment has changed. Update state to refresh sidebar and main content
|
|
30
|
+
globalState.set("page-segment", segment ?? "default");
|
|
31
|
+
}
|
|
32
|
+
}, [pathname]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const menus = wpHooks.filter.apply("next_admin_menu", [], currentSegment, {
|
|
35
|
+
wpAdmin,
|
|
36
|
+
navigation: adminNavigation,
|
|
37
|
+
});
|
|
38
|
+
// menu items are empty. Close the sidebar
|
|
39
|
+
if (menus.length == 0) {
|
|
40
|
+
// Throw error as pagesetment is not found
|
|
41
|
+
throw new Error(`Page segment is invalid. No menu items found. - ${currentSegment}`);
|
|
42
|
+
}
|
|
43
|
+
setMenus(menus);
|
|
44
|
+
}, [currentSegment]);
|
|
45
|
+
const currentPage = globalState.get("page");
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
const page = currentPath.split("/")[2];
|
|
48
|
+
if (page !== currentPage) {
|
|
49
|
+
globalState.set("page", page);
|
|
50
|
+
}
|
|
51
|
+
}, [pathname]);
|
|
52
|
+
return (_jsxs(_Fragment, { children: [_jsx(Overlay, {}), _jsx(Box, { component: "header", sx: {
|
|
53
|
+
position: "fixed",
|
|
54
|
+
zIndex: 2,
|
|
55
|
+
display: "block",
|
|
56
|
+
width: "100%",
|
|
57
|
+
height: 50,
|
|
58
|
+
}, children: _jsx(Header, {}) }, layoutKeys.header), _jsx(Box, { children: _jsx(Sidebar, {}) }, layoutKeys.sidebar), _jsx(Box, { className: "MainContainer", sx: {
|
|
59
|
+
display: "flex",
|
|
60
|
+
ml: `${sidebar.state.marginLeft}px`,
|
|
61
|
+
pt: 5,
|
|
62
|
+
height: "100vh",
|
|
63
|
+
}, children: _jsx(Box, { sx: {
|
|
64
|
+
p: 3,
|
|
65
|
+
zIndex: 0,
|
|
66
|
+
width: "100%",
|
|
67
|
+
}, children: _jsxs(ErrorBoundary, { FallbackComponent: ErrorFallback, children: [_jsx(Title, {}), _jsx(Main, {})] }) }) }, layoutKeys.main)] }));
|
|
68
|
+
};
|
|
69
|
+
export default Layout;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Main.d.ts","sourceRoot":"","sources":["../../../../src/client/components/layout/Main.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,iCAchB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useCurrentMenu } from "../../hooks/use-current-menu";
|
|
2
|
+
import { useWPAdmin } from "../../wp-admin";
|
|
3
|
+
export const Main = () => {
|
|
4
|
+
const { wp: { error }, } = useWPAdmin();
|
|
5
|
+
const menu = useCurrentMenu();
|
|
6
|
+
if (error.message) {
|
|
7
|
+
const errorMessage = error.message;
|
|
8
|
+
throw new Error(errorMessage);
|
|
9
|
+
}
|
|
10
|
+
const component = menu && menu[0] ? menu[0].component : null;
|
|
11
|
+
return component;
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../src/client/components/layout/Overlay.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,+CA2FnB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import CloseIcon from "@mui/icons-material/Close";
|
|
4
|
+
import { Alert, Backdrop, IconButton, Snackbar } from "@mui/material";
|
|
5
|
+
import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
|
|
6
|
+
import { useAdminNavigation } from "../../hooks/use-admin-navigation";
|
|
7
|
+
import { useWPAdmin } from "../../wp-admin";
|
|
8
|
+
import { ModalConfirm } from "@rnaga/wp-next-ui/ModalConfirm";
|
|
9
|
+
export const Overlay = () => {
|
|
10
|
+
const wpAdmin = useWPAdmin();
|
|
11
|
+
const { wpTheme } = useWPTheme();
|
|
12
|
+
const adminNavigation = useAdminNavigation();
|
|
13
|
+
const { overlay, wp: { globalState, wpHooks }, } = wpAdmin;
|
|
14
|
+
const backdropState = globalState.get("overlay-backdrop");
|
|
15
|
+
const snackbarState = globalState.get("overlay-snakbar");
|
|
16
|
+
const confirmState = globalState.get("overlay-confirm");
|
|
17
|
+
const [hooksModals, setHooksModals] = useState([]);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
const modals = wpHooks.filter.apply("next_admin_preload_modal", [], {
|
|
20
|
+
wpAdmin,
|
|
21
|
+
navigation: adminNavigation,
|
|
22
|
+
});
|
|
23
|
+
setHooksModals(modals);
|
|
24
|
+
}, []);
|
|
25
|
+
return (_jsxs(_Fragment, { children: [hooksModals, _jsx(Backdrop, { sx: { color: "#fff", zIndex: backdropState.zIndex }, open: backdropState.open, onClick: () => {
|
|
26
|
+
backdropState.onClick && backdropState.onClick();
|
|
27
|
+
}, children: backdropState.component ?? _jsx(_Fragment, {}) }), _jsx(Snackbar, { autoHideDuration: snackbarState.type == "error" ? undefined : 3000, open: snackbarState.open, anchorOrigin: { vertical: "bottom", horizontal: "right" }, onClose: (event, reason) => {
|
|
28
|
+
if (reason === "clickaway") {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
overlay.snackbar.close();
|
|
32
|
+
}, children: _jsxs(Alert, { severity: snackbarState.type, sx: {
|
|
33
|
+
display: "flex",
|
|
34
|
+
alignItems: "center",
|
|
35
|
+
gap: 1,
|
|
36
|
+
justifyContent: "space-between",
|
|
37
|
+
px: 2,
|
|
38
|
+
}, children: [snackbarState.message, _jsx(IconButton, { onClick: () => {
|
|
39
|
+
overlay.snackbar.close();
|
|
40
|
+
}, children: _jsx(CloseIcon, { fontSize: "small", sx: {
|
|
41
|
+
height: 16,
|
|
42
|
+
width: 16,
|
|
43
|
+
mb: 0.2,
|
|
44
|
+
} }) })] }) }), _jsx(ModalConfirm, { title: confirmState.title, message: confirmState.message, open: confirmState.isOpen, callback: confirmState.callback, onClose: () => {
|
|
45
|
+
globalState.set("overlay-confirm", {
|
|
46
|
+
isOpen: false,
|
|
47
|
+
});
|
|
48
|
+
} })] }));
|
|
49
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Title.d.ts","sourceRoot":"","sources":["../../../../src/client/components/layout/Title.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,KAAK,+CAsBjB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo } from "react";
|
|
4
|
+
import { Box } from "@mui/material";
|
|
5
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
6
|
+
import { useCurrentMenu } from "../../hooks/use-current-menu";
|
|
7
|
+
export const Title = () => {
|
|
8
|
+
const menu = useCurrentMenu();
|
|
9
|
+
const title = useMemo(() => menu && menu[0]?.label, [menu]);
|
|
10
|
+
return (_jsx(_Fragment, { children: _jsx(Box, { sx: {
|
|
11
|
+
display: "flex",
|
|
12
|
+
mb: 1,
|
|
13
|
+
gap: 1,
|
|
14
|
+
flexDirection: { xs: "column", sm: "row" },
|
|
15
|
+
alignItems: { xs: "start", sm: "center" },
|
|
16
|
+
flexWrap: "wrap",
|
|
17
|
+
justifyContent: "space-between",
|
|
18
|
+
}, children: _jsx(Typography, { size: "xlarge", bold: true, children: title }) }) }));
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WrapperLayout.d.ts","sourceRoot":"","sources":["../../../../src/client/components/layout/WrapperLayout.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,mCAExB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/layout/header/Profile.tsx"],"names":[],"mappings":"AA6CA,eAAO,MAAM,OAAO,+CAwGnB,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef, useState } from "react";
|
|
4
|
+
import DarkModeIcon from "@mui/icons-material/DarkMode";
|
|
5
|
+
import LightModeIcon from "@mui/icons-material/LightMode";
|
|
6
|
+
import LogoutIcon from "@mui/icons-material/Logout";
|
|
7
|
+
import PersonIcon from "@mui/icons-material/Person";
|
|
8
|
+
import { Avatar, Box, ClickAwayListener, Divider, IconButton, } from "@mui/material";
|
|
9
|
+
import { useComputed, useSignal } from "@preact/signals-react";
|
|
10
|
+
import { useUser } from "@rnaga/wp-next-core/client/hooks/use-user";
|
|
11
|
+
import { useAdminNavigation } from "../../../hooks/use-admin-navigation";
|
|
12
|
+
import { useSchemeToggle } from "@rnaga/wp-next-ui/hooks/use-scheme-toggle";
|
|
13
|
+
import { useWPAdmin } from "../../../wp-admin";
|
|
14
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
15
|
+
import { PopperMenu } from "@rnaga/wp-next-ui/PopperMenu";
|
|
16
|
+
import { MenuItem as MuiMenuItem } from "@mui/material";
|
|
17
|
+
import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
|
|
18
|
+
function MenuItem(props) {
|
|
19
|
+
const { title, icon, onClick } = props;
|
|
20
|
+
return (_jsxs(MuiMenuItem, { sx: { display: "grid", gridTemplateColumns: "40% 1fr" }, onClick: onClick, children: [icon, _jsx(Typography, { children: title })] }));
|
|
21
|
+
}
|
|
22
|
+
export const Profile = () => {
|
|
23
|
+
const { site } = useWPAdmin();
|
|
24
|
+
const { user: currentUser } = useUser();
|
|
25
|
+
const buttonRef = useRef(null);
|
|
26
|
+
const { gotoPath, goto } = useAdminNavigation();
|
|
27
|
+
const { wpRawTheme } = useWPTheme();
|
|
28
|
+
const [open, setOpen] = useState(false);
|
|
29
|
+
const { mode, updateMode } = useSchemeToggle();
|
|
30
|
+
const dateTime = useSignal("");
|
|
31
|
+
const currentDateTime = useComputed(() => dateTime.value);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
const i = setInterval(() => {
|
|
34
|
+
dateTime.value = new Intl.DateTimeFormat("en-US", {
|
|
35
|
+
dateStyle: "short",
|
|
36
|
+
timeStyle: "long",
|
|
37
|
+
timeZone: site.settings.timezone,
|
|
38
|
+
}).format(new Date());
|
|
39
|
+
}, 1000);
|
|
40
|
+
return () => clearInterval(i);
|
|
41
|
+
}, []);
|
|
42
|
+
return (_jsx(ClickAwayListener, { onClickAway: () => {
|
|
43
|
+
open && setOpen(false);
|
|
44
|
+
}, children: _jsxs(Box, { children: [_jsx(IconButton, { ref: buttonRef, sx: {
|
|
45
|
+
border: 0,
|
|
46
|
+
p: 0,
|
|
47
|
+
"&:hover": {
|
|
48
|
+
backgroundColor: "transparent",
|
|
49
|
+
color: "inherit",
|
|
50
|
+
},
|
|
51
|
+
}, component: "a", onClick: () => setOpen(!open), children: _jsx(Avatar, { sx: {
|
|
52
|
+
color: wpRawTheme.global.colorScale[100],
|
|
53
|
+
backgroundColor: wpRawTheme.global.colorScale[600],
|
|
54
|
+
"&:hover": {
|
|
55
|
+
backgroundColor: wpRawTheme.global.colorScale[500],
|
|
56
|
+
},
|
|
57
|
+
}, children: currentUser?.display_name[0].toUpperCase() }) }), _jsxs(PopperMenu, { anchorEl: buttonRef.current, sx: { px: 1, minWidth: 200, maxWidth: 300 }, open: open, onClose: () => setOpen(false), children: [_jsxs(Box, { sx: {
|
|
58
|
+
display: "flex",
|
|
59
|
+
flexDirection: "column",
|
|
60
|
+
mx: 2,
|
|
61
|
+
my: 1,
|
|
62
|
+
minWidth: 150,
|
|
63
|
+
}, children: [" ", _jsx(Typography, { size: "medium", fontWeight: 600, children: currentUser?.display_name }), _jsx(Typography, { children: currentUser?.user_email })] }), _jsx(Divider, {}), _jsx(Typography, { sx: { mx: 2, my: 1 }, children: currentDateTime }), _jsx(Divider, {}), _jsx(MenuItem, { title: "Profile", icon: _jsx(PersonIcon, {}), onClick: () => gotoPath("/profile", { segment: "blog" }) }), _jsx(MenuItem, { title: mode == "light" ? "Dark Mode" : "Light Mode", icon: mode == "light" ? _jsx(DarkModeIcon, {}) : _jsx(LightModeIcon, {}), onClick: () => {
|
|
64
|
+
updateMode(mode == "light" ? "dark" : "light");
|
|
65
|
+
} }), _jsx(Divider, {}), _jsx(MenuItem, { title: "Logout", icon: _jsx(LogoutIcon, {}), onClick: () => goto("/api/auth/signout") })] })] }) }));
|
|
66
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/layout/header/index.tsx"],"names":[],"mappings":"AA0LA,eAAO,MAAM,MAAM,+CAqLlB,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo, useRef, useState } from "react";
|
|
4
|
+
import BookIcon from "@mui/icons-material/Book";
|
|
5
|
+
import HomeIcon from "@mui/icons-material/Home";
|
|
6
|
+
import HomeWorkIcon from "@mui/icons-material/HomeWork";
|
|
7
|
+
import MiscellaneousServicesIcon from "@mui/icons-material/MiscellaneousServices";
|
|
8
|
+
import PersonIcon from "@mui/icons-material/Person";
|
|
9
|
+
import ViewSidebarIcon from "@mui/icons-material/ViewSidebar";
|
|
10
|
+
import WebIcon from "@mui/icons-material/Web";
|
|
11
|
+
import { Box, IconButton, MenuItem, MenuList } from "@mui/material";
|
|
12
|
+
import { PopperMenu } from "@rnaga/wp-next-ui/PopperMenu";
|
|
13
|
+
import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
|
|
14
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
15
|
+
import { Viewport } from "@rnaga/wp-next-ui/Viewport";
|
|
16
|
+
import { useAdminNavigation } from "../../../hooks/use-admin-navigation";
|
|
17
|
+
import { useAdminUser } from "../../../hooks/use-admin-user";
|
|
18
|
+
import { useWPAdmin } from "../../../wp-admin";
|
|
19
|
+
import { Profile } from "./Profile";
|
|
20
|
+
const HomeMenuItems = () => {
|
|
21
|
+
const menuItems = [];
|
|
22
|
+
const { site: currentSite, sidebar } = useWPAdmin();
|
|
23
|
+
const { adminUser } = useAdminUser();
|
|
24
|
+
const { wpTheme } = useWPTheme();
|
|
25
|
+
for (const site of adminUser?.availableSites.sites ?? []) {
|
|
26
|
+
menuItems.push(_jsx(MenuItem, { sx: {
|
|
27
|
+
"&:hover": {
|
|
28
|
+
backgroundColor: "transparent",
|
|
29
|
+
},
|
|
30
|
+
cursor: "default",
|
|
31
|
+
}, children: _jsxs(Typography, { size: "medium", sx: {
|
|
32
|
+
maxWidth: sidebar.px.open,
|
|
33
|
+
textOverflow: "ellipsis",
|
|
34
|
+
overflow: "hidden",
|
|
35
|
+
display: "flex",
|
|
36
|
+
alignItems: "center",
|
|
37
|
+
gap: 1,
|
|
38
|
+
}, bold: true, children: [_jsx(HomeIcon, { fontSize: "small" }), site.sitename] }) }, `${site.site_id}-0`));
|
|
39
|
+
menuItems.push(_jsx(MenuItem, { sx: {
|
|
40
|
+
display: "flex",
|
|
41
|
+
alignItems: "center",
|
|
42
|
+
gap: 2,
|
|
43
|
+
ml: 1,
|
|
44
|
+
"&:hover": {
|
|
45
|
+
backgroundColor: "transparent",
|
|
46
|
+
},
|
|
47
|
+
}, children: site.blogs?.map((blog) => (_jsx(Box, { sx: {
|
|
48
|
+
textDecoration: "none",
|
|
49
|
+
color: wpTheme.colorScale[800],
|
|
50
|
+
"&:hover": {
|
|
51
|
+
backgroundColor: wpTheme.colorScale[300],
|
|
52
|
+
},
|
|
53
|
+
p: 0.5,
|
|
54
|
+
}, component: "a", href: `${currentSite.basePath}/${blog.blog_id}`, children: _jsx(Typography, { sx: {
|
|
55
|
+
maxWidth: sidebar.px.open,
|
|
56
|
+
textOverflow: "ellipsis",
|
|
57
|
+
overflow: "hidden",
|
|
58
|
+
}, children: blog.blogname }) }, `${blog.blog_id}`))) }, `${site.site_id}-1`));
|
|
59
|
+
}
|
|
60
|
+
return menuItems;
|
|
61
|
+
};
|
|
62
|
+
const ManageSiteMenuItems = () => {
|
|
63
|
+
const { user } = useAdminUser();
|
|
64
|
+
const { site: currentSite, sidebar } = useWPAdmin();
|
|
65
|
+
const { gotoPath } = useAdminNavigation();
|
|
66
|
+
const menuItems = [];
|
|
67
|
+
// For users
|
|
68
|
+
if (user?.role.capabilities.has("list_users")) {
|
|
69
|
+
menuItems.push(_jsx(MenuItem, { children: _jsxs(Typography, { size: "medium", bold: true, onClick: () => gotoPath("/users", {
|
|
70
|
+
segment: currentSite.isMultiSite ? "site" : "blog",
|
|
71
|
+
}), component: "div", sx: {
|
|
72
|
+
display: "flex",
|
|
73
|
+
alignItems: "center",
|
|
74
|
+
gap: 1.5,
|
|
75
|
+
}, children: [_jsx(PersonIcon, {}), "Users"] }) }, "manage-users"));
|
|
76
|
+
}
|
|
77
|
+
// For blog and sites
|
|
78
|
+
if (user?.role.capabilities.has("manage_network")) {
|
|
79
|
+
menuItems.push(_jsx(MenuItem, { children: _jsxs(Typography, { size: "medium", bold: true, onClick: () => gotoPath("/sites", {
|
|
80
|
+
segment: currentSite.isMultiSite ? "site" : "blog",
|
|
81
|
+
}), component: "div", sx: {
|
|
82
|
+
display: "flex",
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
gap: 1.5,
|
|
85
|
+
}, children: [_jsx(WebIcon, {}), "Sites"] }) }, "manage-sites"));
|
|
86
|
+
menuItems.push(_jsx(MenuItem, { children: _jsxs(Typography, { size: "medium", bold: true, onClick: () => gotoPath("/blogs", {
|
|
87
|
+
segment: currentSite.isMultiSite ? "site" : "blog",
|
|
88
|
+
}), component: "div", sx: {
|
|
89
|
+
display: "flex",
|
|
90
|
+
alignItems: "center",
|
|
91
|
+
gap: 1.5,
|
|
92
|
+
}, children: [_jsx(BookIcon, {}), "Blogs"] }) }, "manage-blogs"));
|
|
93
|
+
}
|
|
94
|
+
return menuItems;
|
|
95
|
+
};
|
|
96
|
+
export const Header = () => {
|
|
97
|
+
const { wp: { viewport }, site: currentSite, sidebar, } = useWPAdmin();
|
|
98
|
+
const { user } = useAdminUser();
|
|
99
|
+
const { wpRawTheme } = useWPTheme();
|
|
100
|
+
const homeButtonRef = useRef(null);
|
|
101
|
+
const [openHomeMenu, setOpenHomeMenu] = useState(false);
|
|
102
|
+
const manageSiteButtonRef = useRef(null);
|
|
103
|
+
const [openManageSiteMenu, setOpenManageSiteMenu] = useState(false);
|
|
104
|
+
const profileKey = useMemo(() => {
|
|
105
|
+
return `profile-${currentSite.settings.timezone}-${user?.ID}`;
|
|
106
|
+
}, [currentSite.settings.timezone, user]);
|
|
107
|
+
return (_jsxs(Box
|
|
108
|
+
//variant="solid"
|
|
109
|
+
, {
|
|
110
|
+
//variant="solid"
|
|
111
|
+
sx: {
|
|
112
|
+
py: 0.5,
|
|
113
|
+
px: 2,
|
|
114
|
+
display: "flex",
|
|
115
|
+
alignItems: "center",
|
|
116
|
+
bgcolor: wpRawTheme.global.colorScale[800],
|
|
117
|
+
}, children: [_jsx(Viewport, { device: "desktop", children: _jsx(Box, { sx: { display: "flex", minWidth: sidebar.px.open }, children: _jsx(Typography, { size: "xlarge", sx: {
|
|
118
|
+
maxWidth: sidebar.px.open,
|
|
119
|
+
textOverflow: "ellipsis",
|
|
120
|
+
whiteSpace: "nowrap",
|
|
121
|
+
overflow: "hidden",
|
|
122
|
+
color: wpRawTheme.global.colorScale[100],
|
|
123
|
+
}, bold: true, children: currentSite.name }) }) }), _jsx(Viewport, { device: "mobile", children: _jsx(IconButton, { onClick: () => {
|
|
124
|
+
sidebar.toggle(sidebar.state.collapsed);
|
|
125
|
+
}, sx: {
|
|
126
|
+
color: wpRawTheme.global.colorScale[100],
|
|
127
|
+
borderRadius: 1,
|
|
128
|
+
"&:hover": {
|
|
129
|
+
color: wpRawTheme.global.colorScale[800],
|
|
130
|
+
backgroundColor: wpRawTheme.global.colorScale[300],
|
|
131
|
+
borderRadius: 1,
|
|
132
|
+
},
|
|
133
|
+
}, children: _jsx(ViewSidebarIcon, {}) }) }), _jsxs(Box, { sx: {
|
|
134
|
+
display: "flex",
|
|
135
|
+
gap: viewport.isDesktop ? 1 : 0,
|
|
136
|
+
flexGrow: 1,
|
|
137
|
+
alignItems: "center",
|
|
138
|
+
}, children: [currentSite.isMultiSite && (_jsxs(Box, { children: [_jsxs(IconButton, { ref: homeButtonRef, component: "a", sx: {
|
|
139
|
+
border: 0,
|
|
140
|
+
gap: 1,
|
|
141
|
+
color: wpRawTheme.global.colorScale[100],
|
|
142
|
+
borderRadius: 1,
|
|
143
|
+
"&:hover": {
|
|
144
|
+
color: wpRawTheme.global.colorScale[800],
|
|
145
|
+
backgroundColor: wpRawTheme.global.colorScale[300],
|
|
146
|
+
borderRadius: 1,
|
|
147
|
+
},
|
|
148
|
+
}, onClick: () => setOpenHomeMenu(!openHomeMenu), children: [_jsx(HomeWorkIcon, {}), _jsx(Viewport, { device: "desktop", children: _jsx(Typography, { bold: true, sx: {
|
|
149
|
+
color: wpRawTheme.global.colorScale[100],
|
|
150
|
+
}, children: "My Sites" }) })] }), _jsx(PopperMenu, { anchorEl: homeButtonRef.current, open: openHomeMenu, onClose: () => setOpenHomeMenu(false), sx: {
|
|
151
|
+
maxHeight: "50dvh",
|
|
152
|
+
overflowY: "auto",
|
|
153
|
+
minWidth: 150,
|
|
154
|
+
minHeight: 400,
|
|
155
|
+
}, children: _jsx(MenuList, { children: _jsx(HomeMenuItems, {}) }) })] })), ((currentSite.isMultiSite &&
|
|
156
|
+
user?.role.capabilities.has("list_users")) ||
|
|
157
|
+
user?.role.capabilities.has("manage_network")) && (_jsxs(Box, { children: [_jsxs(IconButton, { ref: manageSiteButtonRef, component: "a", sx: {
|
|
158
|
+
border: 0,
|
|
159
|
+
gap: 1,
|
|
160
|
+
color: wpRawTheme.global.colorScale[100],
|
|
161
|
+
borderRadius: 1,
|
|
162
|
+
"&:hover": {
|
|
163
|
+
color: wpRawTheme.global.colorScale[800],
|
|
164
|
+
backgroundColor: wpRawTheme.global.colorScale[300],
|
|
165
|
+
borderRadius: 1,
|
|
166
|
+
},
|
|
167
|
+
}, onClick: () => setOpenManageSiteMenu(!openManageSiteMenu), children: [_jsx(MiscellaneousServicesIcon, {}), _jsx(Viewport, { device: "desktop", children: _jsx(Typography, { bold: true, sx: {
|
|
168
|
+
color: wpRawTheme.global.colorScale[100],
|
|
169
|
+
}, children: "Manage Network" }) })] }), _jsx(PopperMenu, { anchorEl: manageSiteButtonRef.current, open: openManageSiteMenu, onClose: () => setOpenManageSiteMenu(false), sx: {
|
|
170
|
+
maxHeight: "50dvh",
|
|
171
|
+
overflowY: "auto",
|
|
172
|
+
}, anchorOrigin: {
|
|
173
|
+
vertical: "bottom",
|
|
174
|
+
horizontal: "center",
|
|
175
|
+
}, children: _jsx(MenuList, { children: _jsx(ManageSiteMenuItems, {}) }) })] }))] }), _jsx(Profile, {}, profileKey)] }));
|
|
176
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Collapse.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/layout/sidebar/Collapse.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ,GAAI,OAAO;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,mDAyEhD,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Box, Button, Tooltip } from "@mui/material";
|
|
4
|
+
import { useWPAdmin } from "../../../wp-admin";
|
|
5
|
+
import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
|
|
6
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
7
|
+
export const Collapse = (props) => {
|
|
8
|
+
const { open } = props;
|
|
9
|
+
const { wpRawTheme } = useWPTheme();
|
|
10
|
+
const { sidebar, wp: { viewport }, } = useWPAdmin();
|
|
11
|
+
if (viewport.isMobile) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const handleClick = () => {
|
|
15
|
+
if (sidebar.state.collapsed || !sidebar.state.sticked) {
|
|
16
|
+
sidebar.setState({
|
|
17
|
+
collapsed: false,
|
|
18
|
+
width: sidebar.px.open,
|
|
19
|
+
marginLeft: sidebar.px.open,
|
|
20
|
+
sticked: true,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
sidebar.setState({
|
|
25
|
+
collapsed: true,
|
|
26
|
+
width: sidebar.px.collapsed,
|
|
27
|
+
marginLeft: sidebar.px.collapsed,
|
|
28
|
+
sticked: false,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
return (_jsx(Box, { component: "div", sx: {
|
|
33
|
+
position: "absolute",
|
|
34
|
+
zIndex: 1,
|
|
35
|
+
left: sidebar.state.width,
|
|
36
|
+
transition: "0.2s ease",
|
|
37
|
+
opacity: open ? "100%" : "0%",
|
|
38
|
+
width: 0,
|
|
39
|
+
height: "100dvh",
|
|
40
|
+
}, children: _jsx(Tooltip, { title: sidebar.state.sticked ? "collapse ]" : "lock", placement: "top", children: _jsx(Button, { size: "small", sx: {
|
|
41
|
+
position: "relative",
|
|
42
|
+
top: "90dvh",
|
|
43
|
+
left: -20,
|
|
44
|
+
backgroundColor: wpRawTheme.global.colorScale[600],
|
|
45
|
+
":hover": {
|
|
46
|
+
backgroundColor: wpRawTheme.global.colorScale[500],
|
|
47
|
+
},
|
|
48
|
+
minWidth: 30,
|
|
49
|
+
display: open ? "auto" : "none",
|
|
50
|
+
}, onClick: handleClick, children: _jsx(Typography, { size: "medium", sx: {
|
|
51
|
+
color: wpRawTheme.global.colorScale[100],
|
|
52
|
+
}, children: sidebar.state.sticked ? "←" : "↦" }) }) }) }));
|
|
53
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menus.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/layout/sidebar/Menus.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,KAAK,KAAK,MAAM,mBAAmB,CAAC;AAgIhD,eAAO,MAAM,KAAK,GAAI,OAAO;IAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAA;CAAE,8CAkB/D,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import React, { useEffect, useState } from "react";
|
|
4
|
+
import KeyboardArrowRightIcon from "@mui/icons-material/KeyboardArrowRight";
|
|
5
|
+
import { Collapse, ListItemButton, ListItemIcon, ListItemText, } from "@mui/material";
|
|
6
|
+
import { useUser } from "@rnaga/wp-next-core/client/hooks/use-user";
|
|
7
|
+
import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
|
|
8
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
9
|
+
import { useAdminNavigation } from "../../../hooks/use-admin-navigation";
|
|
10
|
+
import { useWPAdmin } from "../../../wp-admin";
|
|
11
|
+
const hasCapability = (capabilities, user) => {
|
|
12
|
+
if (!user)
|
|
13
|
+
return false;
|
|
14
|
+
return (capabilities.filter((cap) => user.role.capabilities.has(cap)).length > 0);
|
|
15
|
+
};
|
|
16
|
+
const ListMenus = (props) => {
|
|
17
|
+
const { menu, index } = props;
|
|
18
|
+
const { currentPath, goto, blogBasePath } = useAdminNavigation();
|
|
19
|
+
const { sidebar } = useWPAdmin();
|
|
20
|
+
const { wpRawTheme } = useWPTheme();
|
|
21
|
+
const getPath = (path) => Array.isArray(path) ? path[0] : path ?? "/";
|
|
22
|
+
const matchPath = (currentPath, path) => path && Array.isArray(path)
|
|
23
|
+
? path.includes(currentPath)
|
|
24
|
+
: path === currentPath;
|
|
25
|
+
return (_jsxs(ListItemButton, { selected: matchPath(currentPath, menu.path), role: "menuitem", component: "a", href: menu.onClick ? undefined : `${blogBasePath}${getPath(menu.path)}`, onClick: (e) => {
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
menu.onClick
|
|
28
|
+
? menu.onClick()
|
|
29
|
+
: goto(`${blogBasePath}${getPath(menu.path)}`);
|
|
30
|
+
}, sx: {
|
|
31
|
+
color: wpRawTheme.global.colorScale[100],
|
|
32
|
+
}, children: [_jsx(ListItemIcon, { sx: {
|
|
33
|
+
color: wpRawTheme.global.colorScale[100],
|
|
34
|
+
...(sidebar.state.collapsed && {
|
|
35
|
+
display: "flex",
|
|
36
|
+
alignItems: "center",
|
|
37
|
+
justifyContent: "center",
|
|
38
|
+
}),
|
|
39
|
+
}, children: menu.icon }), !sidebar.state.collapsed && (_jsx(ListItemText, { children: _jsx(Typography, { size: "medium", bold: true, children: menu.label }) }))] }, index));
|
|
40
|
+
};
|
|
41
|
+
const NestedListMenus = (props) => {
|
|
42
|
+
const { menu, index } = props;
|
|
43
|
+
const { wpRawTheme } = useWPTheme();
|
|
44
|
+
const matchPath = (currentPath, path) => path && Array.isArray(path)
|
|
45
|
+
? path.includes(currentPath)
|
|
46
|
+
: currentPath.startsWith(path ?? "");
|
|
47
|
+
const navigation = useAdminNavigation();
|
|
48
|
+
const [open, setOpen] = useState(matchPath(navigation.currentPath, menu.path));
|
|
49
|
+
const { user } = useUser();
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
setOpen(matchPath(navigation.currentPath, menu.path));
|
|
52
|
+
}, [navigation.blogBasePath]);
|
|
53
|
+
return (_jsxs(React.Fragment, { children: [_jsxs(ListItemButton, { onClick: () => setOpen(!open), sx: {
|
|
54
|
+
color: wpRawTheme.global.colorScale[100],
|
|
55
|
+
}, children: [_jsx(ListItemIcon, { sx: {
|
|
56
|
+
color: wpRawTheme.global.colorScale[100],
|
|
57
|
+
}, children: menu.icon }), _jsx(ListItemText, { children: _jsx(Typography, { size: "medium", bold: true, children: menu.label }) }), _jsx(KeyboardArrowRightIcon, { sx: { transform: open ? "rotate(90deg)" : "none" } })] }), _jsx(Collapse, { in: open, timeout: "auto", unmountOnExit: true, children: menu.nestedMenus
|
|
58
|
+
?.filter((nestedNenu) => nestedNenu.displayOnSidebar)
|
|
59
|
+
.filter((nestedMenu) => nestedMenu.capabilitiesInherit
|
|
60
|
+
? hasCapability(menu.capabilities ?? [], user)
|
|
61
|
+
: hasCapability(nestedMenu.capabilities ?? [], user))
|
|
62
|
+
.map((menu, index) => (_jsx(ListMenus, { menu: menu, index: index }, index))) })] }, index));
|
|
63
|
+
};
|
|
64
|
+
export const Menus = (props) => {
|
|
65
|
+
const { menus } = props;
|
|
66
|
+
const { sidebar } = useWPAdmin();
|
|
67
|
+
const { user } = useUser();
|
|
68
|
+
return menus
|
|
69
|
+
.filter((menu) => menu.displayOnSidebar)
|
|
70
|
+
.filter((menu) => {
|
|
71
|
+
return hasCapability(menu.capabilities ?? [], user);
|
|
72
|
+
})
|
|
73
|
+
.map((menu, index) => {
|
|
74
|
+
return menu.nestedMenus && !sidebar.state.collapsed ? (_jsx(NestedListMenus, { menu: menu, index: index }, index)) : (_jsx(ListMenus, { menu: menu, index: index }, index));
|
|
75
|
+
});
|
|
76
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/layout/sidebar/index.tsx"],"names":[],"mappings":"AAaA,eAAO,MAAM,OAAO,sDAkHnB,CAAC"}
|