@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,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect } from "react";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { Box, Divider } from "@mui/material";
|
|
6
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
7
|
+
import { Tiptap } from "@rnaga/wp-next-rte/tiptap/Tiptap"; // Importing the Tiptap component
|
|
8
|
+
import { useFormData } from "@rnaga/wp-next-ui/hooks/use-form-data";
|
|
9
|
+
import { PostPanel, PostPanelWrapper } from "../../../../components/utils/post";
|
|
10
|
+
import { useAdminNavigation } from "../../../../hooks/";
|
|
11
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
12
|
+
import { Settings } from "./Settings";
|
|
13
|
+
import { Toolbar } from "./Toolbar";
|
|
14
|
+
export const Edit = () => {
|
|
15
|
+
const { overlay, wp: { error }, } = useWPAdmin();
|
|
16
|
+
const { actions, parse } = useServerActions();
|
|
17
|
+
const { formData, setFormData, setFormReady, formReady } = useFormData("post");
|
|
18
|
+
const { searchParams } = useAdminNavigation();
|
|
19
|
+
const parsed = z
|
|
20
|
+
.string()
|
|
21
|
+
.transform((v) => parseInt(v))
|
|
22
|
+
.safeParse(searchParams.get("id"));
|
|
23
|
+
const postId = parsed.success ? parsed.data : undefined;
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (!postId) {
|
|
26
|
+
setFormReady(true);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
overlay.circular.promise(actions.post.get(postId)).then((response) => {
|
|
30
|
+
const [post] = parse(response);
|
|
31
|
+
if (post?.post_status === "trash") {
|
|
32
|
+
error.throw("You cannot edit this item because it is in the Trash. Please restore it and try again.");
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
setFormData(post, { ready: true });
|
|
36
|
+
});
|
|
37
|
+
}, []);
|
|
38
|
+
if (!formReady)
|
|
39
|
+
return null;
|
|
40
|
+
return (_jsx(Box, { sx: { display: "flex", flexDirection: "column", height: "100%", gap: 2 }, children: _jsxs(PostPanelWrapper, { children: [_jsx(Toolbar, {}), _jsx(Divider, {}), _jsxs(PostPanel, { children: [_jsx(Tiptap, { defaultContent: formData?.post_content, onUpdate: (editor, transaction) => {
|
|
41
|
+
setFormData({ post_content: editor.getHTML() });
|
|
42
|
+
} }), _jsx(Settings, {})] })] }) }));
|
|
43
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionLink.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/posts/List/ActionLink.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAE9D,eAAO,MAAM,UAAU,GAAI,OAAO;IAChC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACzC,mDAiBA,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PostActionLink } from "../../../utils/post/link/PostActionLink";
|
|
3
|
+
import { useUser } from "@rnaga/wp-next-core/client/hooks/use-user";
|
|
4
|
+
export const ActionLink = (props) => {
|
|
5
|
+
const { post } = props;
|
|
6
|
+
const { user, userCan } = useUser();
|
|
7
|
+
// Check if user has permission to edit other posts
|
|
8
|
+
if (!userCan("edit_post", post)) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
return (_jsx(PostActionLink, { actionLinks: post.post_status === "trash" ? ["restore", "delete"] : ["edit", "trash"], post: post }));
|
|
12
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Statuses.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/posts/List/Statuses.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ,+CA6DpB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Fragment, useEffect, useState } from "react";
|
|
3
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
4
|
+
import { countByStatuses } from "@rnaga/wp-next-core/server/actions/post";
|
|
5
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
6
|
+
import { Link } from "@rnaga/wp-next-ui/Link";
|
|
7
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
8
|
+
export const Statuses = () => {
|
|
9
|
+
const { actions } = useServerActions();
|
|
10
|
+
const { pushRouter, searchParams, refreshValue } = useAdminNavigation();
|
|
11
|
+
const [countStatuses, setCountStatuses] = useState();
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
countByStatuses().then((response) => {
|
|
14
|
+
setCountStatuses(response.info?.countGroupBy ?? []);
|
|
15
|
+
});
|
|
16
|
+
}, [refreshValue().content]);
|
|
17
|
+
if (!countStatuses) {
|
|
18
|
+
return _jsx(Typography, { children: "Loading..." });
|
|
19
|
+
}
|
|
20
|
+
const totalCount = countStatuses.reduce((total, item) => total + (item.count || 0), 0);
|
|
21
|
+
const createLink = (status, count) => {
|
|
22
|
+
return searchParams.get("status") === status ? (_jsxs(_Fragment, { children: [status, " (", count, ")"] })) : (_jsxs(Link, { onClick: () => pushRouter({ status: [status], page: 1 }), children: [status, " (", count, ")"] }));
|
|
23
|
+
};
|
|
24
|
+
return (_jsxs(Typography, { size: "medium", sx: {
|
|
25
|
+
mx: 1,
|
|
26
|
+
display: "flex",
|
|
27
|
+
flexWrap: "wrap",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
verticalAlign: "middle",
|
|
30
|
+
gap: 1,
|
|
31
|
+
}, children: [searchParams.size > 0 ? (_jsxs(Link, { component: "button", onClick: () => pushRouter({}), children: ["All (", totalCount, ")"] })) : (_jsxs(_Fragment, { children: ["All (", totalCount, ")"] })), " ", countStatuses.map((status, index) => (_jsxs(Fragment, { children: [" | ", createLink(status.post_status ?? "Unknown", status.count ?? 0)] }, index)))] }));
|
|
32
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
|
|
3
|
+
export declare const Toolbar: (props: {
|
|
4
|
+
posts?: wpCoreTypes.actions.Posts;
|
|
5
|
+
info?: wpCoreTypes.actions.PostsInfo;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=Toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/posts/List/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAM9D,eAAO,MAAM,OAAO,GAAI,OAAO;IAC7B,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,IAAI,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,4CAqBA,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Pagination } from "@rnaga/wp-next-ui/list/Pagination";
|
|
3
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
4
|
+
import { Box } from "@mui/material";
|
|
5
|
+
import { InputSearch } from "@rnaga/wp-next-ui/InputSearch";
|
|
6
|
+
export const Toolbar = (props) => {
|
|
7
|
+
const { info, children } = props;
|
|
8
|
+
const { wp: { viewport }, } = useWPAdmin();
|
|
9
|
+
return (_jsxs(_Fragment, { children: [children, _jsxs(Box, { sx: {
|
|
10
|
+
display: "grid",
|
|
11
|
+
gap: 1,
|
|
12
|
+
gridTemplateColumns: viewport.isMobile ? "1fr" : "repeat(2, 1fr)",
|
|
13
|
+
}, children: [_jsx(InputSearch, { size: "medium", sx: { flexGrow: 1 } }), _jsx(Pagination, { pagination: info?.pagination })] })] }));
|
|
14
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/posts/List/index.tsx"],"names":[],"mappings":"AAoCA,eAAO,MAAM,IAAI,+CAiIhB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/* eslint-disable jsx-a11y/anchor-is-valid */
|
|
4
|
+
import { useCallback, useEffect, useState, useTransition } from "react";
|
|
5
|
+
import CommentIcon from "@mui/icons-material/Comment";
|
|
6
|
+
import { AccordionDetails, Box, Stack } from "@mui/material";
|
|
7
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
8
|
+
import { useUser } from "@rnaga/wp-next-core/client/hooks/use-user";
|
|
9
|
+
import * as actionsPost from "@rnaga/wp-next-core/server/actions/post";
|
|
10
|
+
import { Accordion, AccordionSummary } from "@rnaga/wp-next-ui/Accordion";
|
|
11
|
+
import { Chip } from "@rnaga/wp-next-ui/Chip";
|
|
12
|
+
import { ActionTd, ListGrid, ListGridItem, SortableTh, Table, Td, Th, THead, Tr, } from "@rnaga/wp-next-ui/list";
|
|
13
|
+
import { Loading } from "@rnaga/wp-next-ui/Loading";
|
|
14
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
15
|
+
import { formatting } from "@rnaga/wp-node/common/formatting";
|
|
16
|
+
import { AdminLink } from "../../../../components/utils/link";
|
|
17
|
+
import { PostRowLinks } from "../../../../components/utils/post";
|
|
18
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
19
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
20
|
+
import { ActionLink } from "./ActionLink";
|
|
21
|
+
import { Statuses } from "./Statuses";
|
|
22
|
+
import { Toolbar } from "./Toolbar";
|
|
23
|
+
export const List = () => {
|
|
24
|
+
const { wp: { viewport }, } = useWPAdmin();
|
|
25
|
+
const { user, userCan } = useUser();
|
|
26
|
+
const { actions, parse } = useServerActions();
|
|
27
|
+
const [loading, startTransition] = useTransition();
|
|
28
|
+
const { navigationStatus, queryObject, refreshValue } = useAdminNavigation();
|
|
29
|
+
const [{ posts, info }, setPosts] = useState({
|
|
30
|
+
posts: undefined,
|
|
31
|
+
info: undefined,
|
|
32
|
+
});
|
|
33
|
+
const fetchPosts = useCallback(async () => {
|
|
34
|
+
const [posts, info] = await actionsPost
|
|
35
|
+
.list(queryObject, { postTypes: ["post"] })
|
|
36
|
+
.then(parse);
|
|
37
|
+
setPosts({ posts, info });
|
|
38
|
+
}, [navigationStatus, refreshValue().content]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
startTransition(fetchPosts);
|
|
41
|
+
}, [navigationStatus]);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
fetchPosts();
|
|
44
|
+
}, [refreshValue().content]);
|
|
45
|
+
return (_jsxs(Stack, { spacing: 2, children: [_jsx(Toolbar, { posts: posts, info: info, children: _jsx(Statuses, {}) }), _jsx(Loading, { loading: loading, children: _jsxs(Table, { children: [_jsxs(THead, { children: [_jsx(SortableTh, { name: "Title", orderby: "post_name" }), _jsx(Th, { viewport: "desktop", children: "Author" }), _jsx(Th, { viewport: "desktop", children: "Categories" }), _jsx(Th, { viewport: "desktop", children: "Tags" }), _jsx(Th, { viewport: "desktop", style: { width: "40px" }, children: _jsx(Box, { sx: { display: "flex", alignItems: "center" }, children: _jsx(CommentIcon, { fontSize: "small" }) }) }), _jsx(SortableTh, { show: viewport.isDesktop, name: "Date", orderby: "post_date" })] }), _jsx("tbody", { children: posts?.map((post) => (_jsxs(Tr, { children: [_jsxs(ActionTd, { viewport: "desktop", children: [_jsxs(Box, { children: [_jsx(AdminLink, { subPage: "/edit", queryParams: { id: post.ID }, disabled: !userCan("edit_post", post), size: "medium", bold: true, children: post.post_title }), post.post_status == "future" && (_jsx(Chip, { size: "small", label: "Scheduled" })), post.post_status == "draft" && (_jsx(Chip, { size: "small", label: "Draft" })), info?.protected.includes(post.ID) && (_jsx(Chip, { size: "small", label: "Password Protected" }))] }), _jsx(ActionLink, { post: post })] }), _jsx(Td, { viewport: "mobile", children: _jsxs(Accordion, { children: [_jsx(AccordionSummary, { children: _jsx(Typography, { children: post.post_title }) }), _jsxs(AccordionDetails, { children: [_jsx(ActionLink, { post: post }), _jsxs(ListGrid, { children: [_jsx(ListGridItem, { title: "Author", children: _jsx(PostRowLinks, { row: post, field: "actor" }) }), _jsx(ListGridItem, { title: "Categories", children: _jsx(PostRowLinks, { row: post, field: "categories" }) }), _jsx(ListGridItem, { title: "Tags", children: _jsx(PostRowLinks, { row: post, field: "tags" }) }), _jsx(ListGridItem, { title: "Date", children: _jsx(Typography, { children: formatting.date(post.post_date) }) })] })] })] }) }), _jsx(Td, { viewport: "desktop", children: _jsx(PostRowLinks, { row: post, field: "actor" }) }), _jsx(Td, { viewport: "desktop", children: _jsx(PostRowLinks, { row: post, field: "categories" }) }), _jsx(Td, { viewport: "desktop", children: _jsx(PostRowLinks, { row: post, field: "tags" }) }), _jsx(Td, { viewport: "desktop", children: _jsx(Chip, { size: "medium", color: "grey", label: post.comment_count }) }), _jsx(Td, { viewport: "desktop", children: formatting.date(post.post_date) })] }, `${post.ID}`))) })] }) })] }));
|
|
46
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/posts/index.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK;;;CAGjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/profile/index.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,+CAInB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Users } from "../../../components/contents/users";
|
|
3
|
+
import { useUser } from "@rnaga/wp-next-core/client/hooks/use-user";
|
|
4
|
+
export const Profile = () => {
|
|
5
|
+
const { user } = useUser();
|
|
6
|
+
return _jsx(Users.Edit, { userId: user?.ID });
|
|
7
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
|
|
2
|
+
import type { SelectedRevision } from ".";
|
|
3
|
+
export declare const History: (props: {
|
|
4
|
+
revisions?: wpCoreTypes.actions.Revisions;
|
|
5
|
+
onClick: (revision: SelectedRevision) => void;
|
|
6
|
+
}) => import("react").ReactNode[] | null | undefined;
|
|
7
|
+
//# sourceMappingURL=History.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"History.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/revisions/List/History.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAC;AAO1C,eAAO,MAAM,OAAO,GAAI,OAAO;IAC7B,SAAS,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;IAC1C,OAAO,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC/C,mDA+DA,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
5
|
+
import { List, ListItem, ListItemButton, Stack, Step } from "@mui/material";
|
|
6
|
+
export const History = (props) => {
|
|
7
|
+
const { revisions, onClick } = props;
|
|
8
|
+
const mapByDate = new Map();
|
|
9
|
+
const [selectedId, setSelectedId] = useState();
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
setSelectedId(revisions?.[0]?.ID);
|
|
12
|
+
}, []);
|
|
13
|
+
const handleClick = (revision) => {
|
|
14
|
+
console.log("revision.target?.ID", revision.target?.ID, selectedId);
|
|
15
|
+
setSelectedId(revision.target?.ID);
|
|
16
|
+
onClick(revision);
|
|
17
|
+
};
|
|
18
|
+
const formatDate = (revision) => revision?.target?.post_modified?.split(" ")[1];
|
|
19
|
+
if (!revisions) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
for (let i = 0; i < revisions.length; i++) {
|
|
23
|
+
const revision = revisions[i];
|
|
24
|
+
const date = revision.post_modified.split(" ")[0];
|
|
25
|
+
if (!date)
|
|
26
|
+
return;
|
|
27
|
+
const revisionList = mapByDate.get(date) ?? [];
|
|
28
|
+
mapByDate.set(date, [...revisionList, { index: i, target: revision }]);
|
|
29
|
+
}
|
|
30
|
+
const list = [];
|
|
31
|
+
for (const [date, revisions] of mapByDate.entries()) {
|
|
32
|
+
list.push(_jsxs(Step, { children: [_jsx(Typography, { size: "medium", bold: true, children: date }), _jsx(Stack, { sx: { mr: 2 }, children: _jsx(List, { sx: {
|
|
33
|
+
p: 0,
|
|
34
|
+
}, children: revisions.map((revision) => (_jsx(ListItem, { sx: { p: 0 }, children: _jsx(ListItemButton, { selected: selectedId == revision.target?.ID, color: "primary", onClick: () => handleClick(revision), children: _jsx(Typography, { children: formatDate(revision) }) }) }, `${revision.index}`))) }) })] }, date));
|
|
35
|
+
}
|
|
36
|
+
return list;
|
|
37
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "diff2html/bundles/css/diff2html.min.css";
|
|
2
|
+
import "./diff2html.css";
|
|
3
|
+
import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
|
|
4
|
+
export type SelectedRevision = {
|
|
5
|
+
index: number;
|
|
6
|
+
target?: wpCoreTypes.actions.Revisions[number];
|
|
7
|
+
};
|
|
8
|
+
export declare const List: () => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/revisions/List/index.tsx"],"names":[],"mappings":"AACA,OAAO,yCAAyC,CAAC;AACjD,OAAO,iBAAiB,CAAC;AAoBzB,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,IAAI,+CAgPhB,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import "diff2html/bundles/css/diff2html.min.css";
|
|
4
|
+
import "./diff2html.css";
|
|
5
|
+
import * as Diff from "diff";
|
|
6
|
+
import * as Diff2html from "diff2html";
|
|
7
|
+
import { ColorSchemeType } from "diff2html/lib/types";
|
|
8
|
+
import parseHtml from "html-react-parser";
|
|
9
|
+
import { useEffect, useState, useTransition } from "react";
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
import ArrowBackIcon from "@mui/icons-material/ArrowBack";
|
|
12
|
+
import { Box, Link, Stepper, Switch, useColorScheme } from "@mui/material";
|
|
13
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
14
|
+
import { Button } from "@rnaga/wp-next-ui/Button";
|
|
15
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
16
|
+
import { Loading } from "@rnaga/wp-next-ui/Loading";
|
|
17
|
+
import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
|
|
18
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
19
|
+
import { History } from "./History";
|
|
20
|
+
export const List = () => {
|
|
21
|
+
const { overlay, wp: { error, viewport }, } = useWPAdmin();
|
|
22
|
+
const { actions, parse, safeParse } = useServerActions();
|
|
23
|
+
const { searchParams, navigationStatus, queryObject, goto, resolvePath } = useAdminNavigation();
|
|
24
|
+
const { mode } = useColorScheme();
|
|
25
|
+
const [loading, startTransition] = useTransition();
|
|
26
|
+
const [state, setState] = useState({
|
|
27
|
+
canRestore: false,
|
|
28
|
+
sideBySide: false,
|
|
29
|
+
compareWithParent: false,
|
|
30
|
+
});
|
|
31
|
+
const { parent, sideBySide, selectedRevision, diffHtml, canRestore, compareWithParent, revisions, editUrl, } = state;
|
|
32
|
+
const parentId = z
|
|
33
|
+
.string()
|
|
34
|
+
.transform((v) => parseInt(v))
|
|
35
|
+
.parse(searchParams.get("id"));
|
|
36
|
+
if (0 >= parentId) {
|
|
37
|
+
error.throw("Invalid Parent Id");
|
|
38
|
+
}
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (!selectedRevision) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const { index, target } = selectedRevision;
|
|
44
|
+
if (!target) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const parentOrPrevious = compareWithParent
|
|
48
|
+
? parent
|
|
49
|
+
: revisions && revisions?.length > index + 1
|
|
50
|
+
? revisions[index + 1]
|
|
51
|
+
: undefined;
|
|
52
|
+
const diff = Diff.createTwoFilesPatch(parentOrPrevious?.post_title ?? " ", target.post_title, parentOrPrevious?.post_content ?? " ", target.post_content);
|
|
53
|
+
const diffJson = Diff2html.parse(diff);
|
|
54
|
+
const diffHtml = Diff2html.html(diffJson, {
|
|
55
|
+
//drawFileList: true,
|
|
56
|
+
outputFormat: sideBySide ? "side-by-side" : "line-by-line",
|
|
57
|
+
rawTemplates: { "file-summary-wrapper": "" },
|
|
58
|
+
colorScheme: mode == "dark" ? ColorSchemeType.DARK : ColorSchemeType.AUTO,
|
|
59
|
+
});
|
|
60
|
+
setState({ ...state, diffHtml });
|
|
61
|
+
}, [selectedRevision, sideBySide, compareWithParent, mode]);
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
startTransition(async () => {
|
|
64
|
+
//const fetchData = async () => {
|
|
65
|
+
const [revisions] = await actions.revision
|
|
66
|
+
.list(parentId, { ...queryObject, per_page: 30 })
|
|
67
|
+
.then(parse);
|
|
68
|
+
if (parent) {
|
|
69
|
+
setState({ ...state, revisions });
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const [post] = await actions.post.get(parentId).then(parse);
|
|
73
|
+
setState({
|
|
74
|
+
...state,
|
|
75
|
+
...{
|
|
76
|
+
editUrl: resolvePath("blog", {
|
|
77
|
+
append: "/posts/edit",
|
|
78
|
+
queryParams: {
|
|
79
|
+
id: post.ID,
|
|
80
|
+
},
|
|
81
|
+
}),
|
|
82
|
+
revisions,
|
|
83
|
+
parent: post,
|
|
84
|
+
selectedRevision: {
|
|
85
|
+
index: 0,
|
|
86
|
+
target: revisions[0],
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
}, [navigationStatus]);
|
|
92
|
+
const handleSelectRevision = (revision) => {
|
|
93
|
+
setState({
|
|
94
|
+
...state,
|
|
95
|
+
...{
|
|
96
|
+
canRestore: revision && revision?.index > 0 ? true : false,
|
|
97
|
+
selectedRevision: revision,
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
const handleRestore = async () => {
|
|
102
|
+
if (!selectedRevision?.target) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const restoreId = selectedRevision.target.ID;
|
|
106
|
+
const result = await overlay.circular
|
|
107
|
+
.promise(actions.revision.restore(parentId, restoreId))
|
|
108
|
+
.then(safeParse);
|
|
109
|
+
if (result.success && editUrl) {
|
|
110
|
+
goto(editUrl);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
return (_jsxs(_Fragment, { children: [!loading && (_jsxs(Link, { sx: {
|
|
114
|
+
mt: 1,
|
|
115
|
+
display: "flex",
|
|
116
|
+
alignItems: "center",
|
|
117
|
+
cursor: "pointer",
|
|
118
|
+
textDecoration: "none",
|
|
119
|
+
}, onClick: () => {
|
|
120
|
+
editUrl && goto(editUrl);
|
|
121
|
+
}, children: [_jsx(ArrowBackIcon, { fontSize: "small" }), _jsx(Typography, { size: "medium", children: "Go to editor" })] })), _jsx(Loading, { loading: loading, children: _jsxs(Box, { sx: {
|
|
122
|
+
display: "grid",
|
|
123
|
+
gridTemplateColumns: {
|
|
124
|
+
xs: "minmax(80vw, auto)",
|
|
125
|
+
md: "15vw minmax(60vw, auto)",
|
|
126
|
+
},
|
|
127
|
+
maxWidth: "100vw",
|
|
128
|
+
verticalAlign: "top",
|
|
129
|
+
}, children: [_jsx(Box, { sx: { maxHeight: "75dvh", overflow: "auto" }, children: _jsx(Stepper, { orientation: viewport.isDesktop ? "vertical" : "horizontal", sx: { maxWidth: "80vw" }, children: _jsx(History, { revisions: revisions, onClick: handleSelectRevision }) }) }), _jsxs(Box, { children: [_jsxs(Box, { sx: {
|
|
130
|
+
display: "flex",
|
|
131
|
+
width: "100%",
|
|
132
|
+
justifyContent: "flex-start",
|
|
133
|
+
my: 1,
|
|
134
|
+
gap: 1,
|
|
135
|
+
}, children: [_jsx(Box, { sx: { flexGrow: 1 }, children: _jsx(Button, { size: "medium", disabled: !canRestore, onClick: handleRestore, children: "Restore This Revision" }) }), _jsxs(Typography, { component: "span", sx: {
|
|
136
|
+
display: "flex",
|
|
137
|
+
alignItems: "center",
|
|
138
|
+
}, children: ["Compare with Parent", _jsx(Switch, { onChange: (e) => setState({
|
|
139
|
+
...state,
|
|
140
|
+
compareWithParent: e.target.checked,
|
|
141
|
+
}), sx: { ml: 1 } })] }), _jsxs(Typography, { component: "span", sx: {
|
|
142
|
+
display: "flex",
|
|
143
|
+
alignItems: "center",
|
|
144
|
+
}, children: ["Side by Side", _jsx(Switch, { onChange: (e) => setState({ ...state, sideBySide: e.target.checked }), sx: { ml: 1 } })] })] }), diffHtml && parseHtml(diffHtml)] })] }) })] }));
|
|
145
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/revisions/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { List as Revisions } from "./List";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EditState } from "./";
|
|
2
|
+
export declare const EditModal: (props: {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClose: (...args: any) => any;
|
|
5
|
+
editState: EditState;
|
|
6
|
+
blogId: number | undefined;
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
//# sourceMappingURL=EditModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditModal.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/roles/List/EditModal.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,eAAO,MAAM,SAAS,GAAI,OAAO;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,mDAoRA,CAAC"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { Box, FormControl, FormLabel, Stack } from "@mui/material";
|
|
4
|
+
import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
|
|
5
|
+
import { Button } from "@rnaga/wp-next-ui/Button";
|
|
6
|
+
import { Checkbox } from "@rnaga/wp-next-ui/Checkbox";
|
|
7
|
+
import { useFormData } from "@rnaga/wp-next-ui/hooks/use-form-data";
|
|
8
|
+
import { Input } from "@rnaga/wp-next-ui/Input";
|
|
9
|
+
import { Modal, ModalContent } from "@rnaga/wp-next-ui/Modal";
|
|
10
|
+
import { Typography } from "@rnaga/wp-next-ui/Typography";
|
|
11
|
+
import * as wpDefaults from "@rnaga/wp-node/defaults";
|
|
12
|
+
import { useSites } from "../../../../hooks/";
|
|
13
|
+
import { useWPAdmin } from "../../../../wp-admin";
|
|
14
|
+
export const EditModal = (props) => {
|
|
15
|
+
const { open, onClose, editState, blogId } = props;
|
|
16
|
+
const { role = undefined, roleName = undefined } = editState ?? {};
|
|
17
|
+
const isUpdate = !!role;
|
|
18
|
+
const defaultRoleNames = Object.keys(wpDefaults.roles);
|
|
19
|
+
const { wp: { viewport }, overlay, } = useWPAdmin();
|
|
20
|
+
const { actions, execute, safeParse, loading } = useServerActions();
|
|
21
|
+
const { formData, submit } = useFormData("roles");
|
|
22
|
+
const { updateSites } = useSites();
|
|
23
|
+
const [state, setState] = useState({
|
|
24
|
+
newCapability: undefined,
|
|
25
|
+
errorNewCapability: false,
|
|
26
|
+
checkboxes: [],
|
|
27
|
+
selectedCapabilities: [],
|
|
28
|
+
});
|
|
29
|
+
const isDefaultRole = !!role?.name && defaultRoleNames.includes(role.name);
|
|
30
|
+
const getDefaultCapabilitySet = () => {
|
|
31
|
+
const capabilitySet = new Set();
|
|
32
|
+
Object.values(wpDefaults.roles)
|
|
33
|
+
.filter((role) => role.name.toLowerCase() !== "superadmin")
|
|
34
|
+
.map((role) => role.capabilities.map((capability) => capabilitySet.add(capability)));
|
|
35
|
+
return capabilitySet;
|
|
36
|
+
};
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
const capabilitySet = getDefaultCapabilitySet();
|
|
39
|
+
role?.capabilities &&
|
|
40
|
+
role.capabilities.map((capability) => capabilitySet.add(capability));
|
|
41
|
+
setState({
|
|
42
|
+
...state,
|
|
43
|
+
checkboxes: Array.from(capabilitySet).map((capability) => ({
|
|
44
|
+
label: capability,
|
|
45
|
+
checked: !!(role?.capabilities && role?.capabilities.includes(capability)),
|
|
46
|
+
})),
|
|
47
|
+
selectedCapabilities: role?.capabilities ?? [],
|
|
48
|
+
});
|
|
49
|
+
}, [role]);
|
|
50
|
+
const handleAddNewCapabilityValueChange = (value) => {
|
|
51
|
+
if (value.length > 0 && !value.match(/^[a-z0-9_]+$/)) {
|
|
52
|
+
setState({
|
|
53
|
+
...state,
|
|
54
|
+
errorNewCapability: true,
|
|
55
|
+
});
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
setState({
|
|
59
|
+
...state,
|
|
60
|
+
errorNewCapability: false,
|
|
61
|
+
newCapability: value,
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const handleAddNewCapability = () => {
|
|
65
|
+
if (!state.newCapability) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const capabilitySet = getDefaultCapabilitySet();
|
|
69
|
+
const selectedCapabilitySet = new Set();
|
|
70
|
+
state.selectedCapabilities.forEach((capability) => {
|
|
71
|
+
selectedCapabilitySet.add(capability);
|
|
72
|
+
capabilitySet.add(capability);
|
|
73
|
+
});
|
|
74
|
+
selectedCapabilitySet.add(state.newCapability);
|
|
75
|
+
capabilitySet.add(state.newCapability);
|
|
76
|
+
setState({
|
|
77
|
+
...state,
|
|
78
|
+
checkboxes: Array.from(capabilitySet).map((capability) => ({
|
|
79
|
+
label: capability,
|
|
80
|
+
checked: selectedCapabilitySet.has(capability),
|
|
81
|
+
})),
|
|
82
|
+
selectedCapabilities: Array.from(selectedCapabilitySet),
|
|
83
|
+
newCapability: undefined,
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
const handleCheckbox = (value, checked) => {
|
|
87
|
+
const selectedCapabilitySet = new Set();
|
|
88
|
+
state.selectedCapabilities.forEach((capability) => {
|
|
89
|
+
selectedCapabilitySet.add(capability);
|
|
90
|
+
});
|
|
91
|
+
selectedCapabilitySet[checked ? "add" : "delete"](value);
|
|
92
|
+
setState({
|
|
93
|
+
...state,
|
|
94
|
+
selectedCapabilities: Array.from(selectedCapabilitySet),
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
const handleSubmit = async (data) => {
|
|
98
|
+
let { name, role } = data;
|
|
99
|
+
let args = {
|
|
100
|
+
capabilities: state.selectedCapabilities,
|
|
101
|
+
};
|
|
102
|
+
if (name.length > 0) {
|
|
103
|
+
args = { ...args, name };
|
|
104
|
+
}
|
|
105
|
+
if (isUpdate && editState?.roleName && role !== editState?.roleName) {
|
|
106
|
+
// Change role name
|
|
107
|
+
args = { ...args, new_role: role };
|
|
108
|
+
role = editState.roleName;
|
|
109
|
+
}
|
|
110
|
+
const serverAction = isUpdate
|
|
111
|
+
? actions.roles.update(role, args, {
|
|
112
|
+
blogId,
|
|
113
|
+
})
|
|
114
|
+
: actions.roles.create({ ...args, role }, {
|
|
115
|
+
blogId,
|
|
116
|
+
});
|
|
117
|
+
const result = await execute(serverAction).then(safeParse);
|
|
118
|
+
if (!result.success) {
|
|
119
|
+
overlay.snackbar.open("error", result.error);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
onClose();
|
|
123
|
+
updateSites();
|
|
124
|
+
};
|
|
125
|
+
if (!blogId) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
return (_jsx(Modal, { open: !!open, onClose: onClose, sx: { zIndex: 2 }, children: _jsx(ModalContent, { sx: {
|
|
129
|
+
// overflowX: "auto",
|
|
130
|
+
//maxHeight: viewport.isMobile ? "100%" : "100%",
|
|
131
|
+
}, children: _jsxs("form", { onSubmit: submit(handleSubmit), children: [_jsx(Typography, { size: "xlarge", bold: true, sx: {
|
|
132
|
+
mb: 2,
|
|
133
|
+
}, children: "Role" }), _jsxs(Stack, { spacing: 2, children: [_jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Name" }), _jsx(Input, { size: "large", name: "name", required: true, disabled: isDefaultRole, value: role?.name })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Role" }), _jsx(Input, { size: "large", name: "role", value: roleName, required: true, disabled: isDefaultRole })] }), _jsxs(Box, { sx: { mt: 1 }, children: [_jsx(Typography, { children: "Capabilities" }), _jsx(Box, { sx: {
|
|
134
|
+
display: "grid",
|
|
135
|
+
gridTemplateColumns: "1fr 1fr 1fr 1fr",
|
|
136
|
+
gap: 1,
|
|
137
|
+
overflowY: "auto",
|
|
138
|
+
my: 1,
|
|
139
|
+
maxHeight: "50dvh",
|
|
140
|
+
}, children: state.checkboxes?.map((v) => (_jsx(Checkbox, { label: v.label, defaultChecked: v.checked, onChange: (e) => {
|
|
141
|
+
handleCheckbox(v.label, e.target.checked);
|
|
142
|
+
} }, v.label))) })] }), _jsxs(Box, { sx: {
|
|
143
|
+
mt: 1,
|
|
144
|
+
display: "grid",
|
|
145
|
+
gridTemplateColumns: "1fr 1fr",
|
|
146
|
+
}, children: [_jsxs(Box, { children: [_jsx(Input, { size: "medium", placeholder: "Add New Capability", error: state.errorNewCapability, value: state.newCapability, onChange: (value) => handleAddNewCapabilityValueChange(value), onKeyDown: (e) => {
|
|
147
|
+
e.code === "Enter" && handleAddNewCapability();
|
|
148
|
+
}, endAdornment: _jsxs(Button, { color: "info", onClick: () => handleAddNewCapability(), sx: {
|
|
149
|
+
height: 28,
|
|
150
|
+
}, children: ["Add", " "] }) }, state.selectedCapabilities.length), state.errorNewCapability && (_jsx(Typography, { color: "error", children: "Please use only lowercase letters, numbers, and underscores." }))] }), _jsx(Box, { sx: { display: "flex", justifyContent: "flex-end" }, children: _jsx(Button, { size: "medium", type: "submit", disabled: loading, loading: loading, sx: {
|
|
151
|
+
px: 4,
|
|
152
|
+
}, children: "Submit" }) })] })] })] }) }) }));
|
|
153
|
+
};
|