@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.
Files changed (405) hide show
  1. package/README.md +292 -0
  2. package/client/components/RootLayout.d.ts +13 -0
  3. package/client/components/RootLayout.d.ts.map +1 -0
  4. package/client/components/RootLayout.js +13 -0
  5. package/client/components/WrapperRootLayout.d.ts +9 -0
  6. package/client/components/WrapperRootLayout.d.ts.map +1 -0
  7. package/client/components/WrapperRootLayout.js +5 -0
  8. package/client/components/contents/blogs/Create.d.ts +2 -0
  9. package/client/components/contents/blogs/Create.d.ts.map +1 -0
  10. package/client/components/contents/blogs/Create.js +67 -0
  11. package/client/components/contents/blogs/Edit.d.ts +2 -0
  12. package/client/components/contents/blogs/Edit.d.ts.map +1 -0
  13. package/client/components/contents/blogs/Edit.js +144 -0
  14. package/client/components/contents/blogs/List.d.ts +2 -0
  15. package/client/components/contents/blogs/List.d.ts.map +1 -0
  16. package/client/components/contents/blogs/List.js +56 -0
  17. package/client/components/contents/blogs/index.d.ts +6 -0
  18. package/client/components/contents/blogs/index.d.ts.map +1 -0
  19. package/client/components/contents/blogs/index.js +8 -0
  20. package/client/components/contents/comments/ActionLink.d.ts +5 -0
  21. package/client/components/contents/comments/ActionLink.d.ts.map +1 -0
  22. package/client/components/contents/comments/ActionLink.js +67 -0
  23. package/client/components/contents/comments/List/Reply.d.ts +5 -0
  24. package/client/components/contents/comments/List/Reply.d.ts.map +1 -0
  25. package/client/components/contents/comments/List/Reply.js +33 -0
  26. package/client/components/contents/comments/List/Row.d.ts +5 -0
  27. package/client/components/contents/comments/List/Row.d.ts.map +1 -0
  28. package/client/components/contents/comments/List/Row.js +30 -0
  29. package/client/components/contents/comments/List/Toolbar.d.ts +8 -0
  30. package/client/components/contents/comments/List/Toolbar.d.ts.map +1 -0
  31. package/client/components/contents/comments/List/Toolbar.js +14 -0
  32. package/client/components/contents/comments/List/index.d.ts +5 -0
  33. package/client/components/contents/comments/List/index.d.ts.map +1 -0
  34. package/client/components/contents/comments/List/index.js +38 -0
  35. package/client/components/contents/comments/index.d.ts +7 -0
  36. package/client/components/contents/comments/index.d.ts.map +1 -0
  37. package/client/components/contents/comments/index.js +6 -0
  38. package/client/components/contents/dashboard/index.d.ts +2 -0
  39. package/client/components/contents/dashboard/index.d.ts.map +1 -0
  40. package/client/components/contents/dashboard/index.js +123 -0
  41. package/client/components/contents/index.d.ts +46 -0
  42. package/client/components/contents/index.d.ts.map +1 -0
  43. package/client/components/contents/index.js +28 -0
  44. package/client/components/contents/media/Edit.d.ts +2 -0
  45. package/client/components/contents/media/Edit.d.ts.map +1 -0
  46. package/client/components/contents/media/Edit.js +86 -0
  47. package/client/components/contents/media/List/ActionLink.d.ts +5 -0
  48. package/client/components/contents/media/List/ActionLink.d.ts.map +1 -0
  49. package/client/components/contents/media/List/ActionLink.js +24 -0
  50. package/client/components/contents/media/List/Table.d.ts +5 -0
  51. package/client/components/contents/media/List/Table.d.ts.map +1 -0
  52. package/client/components/contents/media/List/Table.js +38 -0
  53. package/client/components/contents/media/List/Thumbnail.d.ts +5 -0
  54. package/client/components/contents/media/List/Thumbnail.d.ts.map +1 -0
  55. package/client/components/contents/media/List/Thumbnail.js +28 -0
  56. package/client/components/contents/media/List/index.d.ts +2 -0
  57. package/client/components/contents/media/List/index.d.ts.map +1 -0
  58. package/client/components/contents/media/List/index.js +66 -0
  59. package/client/components/contents/media/index.d.ts +5 -0
  60. package/client/components/contents/media/index.d.ts.map +1 -0
  61. package/client/components/contents/media/index.js +6 -0
  62. package/client/components/contents/pages/Edit/Settings.d.ts +2 -0
  63. package/client/components/contents/pages/Edit/Settings.d.ts.map +1 -0
  64. package/client/components/contents/pages/Edit/Settings.js +17 -0
  65. package/client/components/contents/pages/Edit/Toolbar.d.ts +2 -0
  66. package/client/components/contents/pages/Edit/Toolbar.d.ts.map +1 -0
  67. package/client/components/contents/pages/Edit/Toolbar.js +72 -0
  68. package/client/components/contents/pages/Edit/index.d.ts +2 -0
  69. package/client/components/contents/pages/Edit/index.d.ts.map +1 -0
  70. package/client/components/contents/pages/Edit/index.js +43 -0
  71. package/client/components/contents/pages/List/ActionLink.d.ts +5 -0
  72. package/client/components/contents/pages/List/ActionLink.d.ts.map +1 -0
  73. package/client/components/contents/pages/List/ActionLink.js +12 -0
  74. package/client/components/contents/pages/List/Statuses.d.ts +2 -0
  75. package/client/components/contents/pages/List/Statuses.d.ts.map +1 -0
  76. package/client/components/contents/pages/List/Statuses.js +24 -0
  77. package/client/components/contents/pages/List/Toolbar.d.ts +8 -0
  78. package/client/components/contents/pages/List/Toolbar.d.ts.map +1 -0
  79. package/client/components/contents/pages/List/Toolbar.js +14 -0
  80. package/client/components/contents/pages/List/index.d.ts +2 -0
  81. package/client/components/contents/pages/List/index.d.ts.map +1 -0
  82. package/client/components/contents/pages/List/index.js +45 -0
  83. package/client/components/contents/pages/index.d.ts +5 -0
  84. package/client/components/contents/pages/index.d.ts.map +1 -0
  85. package/client/components/contents/pages/index.js +6 -0
  86. package/client/components/contents/posts/Edit/Settings.d.ts +2 -0
  87. package/client/components/contents/posts/Edit/Settings.d.ts.map +1 -0
  88. package/client/components/contents/posts/Edit/Settings.js +19 -0
  89. package/client/components/contents/posts/Edit/Toolbar.d.ts +2 -0
  90. package/client/components/contents/posts/Edit/Toolbar.d.ts.map +1 -0
  91. package/client/components/contents/posts/Edit/Toolbar.js +72 -0
  92. package/client/components/contents/posts/Edit/index.d.ts +2 -0
  93. package/client/components/contents/posts/Edit/index.d.ts.map +1 -0
  94. package/client/components/contents/posts/Edit/index.js +43 -0
  95. package/client/components/contents/posts/List/ActionLink.d.ts +5 -0
  96. package/client/components/contents/posts/List/ActionLink.d.ts.map +1 -0
  97. package/client/components/contents/posts/List/ActionLink.js +12 -0
  98. package/client/components/contents/posts/List/Statuses.d.ts +2 -0
  99. package/client/components/contents/posts/List/Statuses.d.ts.map +1 -0
  100. package/client/components/contents/posts/List/Statuses.js +32 -0
  101. package/client/components/contents/posts/List/Toolbar.d.ts +8 -0
  102. package/client/components/contents/posts/List/Toolbar.d.ts.map +1 -0
  103. package/client/components/contents/posts/List/Toolbar.js +14 -0
  104. package/client/components/contents/posts/List/index.d.ts +2 -0
  105. package/client/components/contents/posts/List/index.d.ts.map +1 -0
  106. package/client/components/contents/posts/List/index.js +46 -0
  107. package/client/components/contents/posts/index.d.ts +5 -0
  108. package/client/components/contents/posts/index.d.ts.map +1 -0
  109. package/client/components/contents/posts/index.js +6 -0
  110. package/client/components/contents/profile/index.d.ts +2 -0
  111. package/client/components/contents/profile/index.d.ts.map +1 -0
  112. package/client/components/contents/profile/index.js +7 -0
  113. package/client/components/contents/revisions/List/History.d.ts +7 -0
  114. package/client/components/contents/revisions/List/History.d.ts.map +1 -0
  115. package/client/components/contents/revisions/List/History.js +37 -0
  116. package/client/components/contents/revisions/List/diff2html.css +11 -0
  117. package/client/components/contents/revisions/List/index.d.ts +9 -0
  118. package/client/components/contents/revisions/List/index.d.ts.map +1 -0
  119. package/client/components/contents/revisions/List/index.js +145 -0
  120. package/client/components/contents/revisions/index.d.ts +2 -0
  121. package/client/components/contents/revisions/index.d.ts.map +1 -0
  122. package/client/components/contents/revisions/index.js +1 -0
  123. package/client/components/contents/roles/List/EditModal.d.ts +8 -0
  124. package/client/components/contents/roles/List/EditModal.d.ts.map +1 -0
  125. package/client/components/contents/roles/List/EditModal.js +153 -0
  126. package/client/components/contents/roles/List/index.d.ts +7 -0
  127. package/client/components/contents/roles/List/index.d.ts.map +1 -0
  128. package/client/components/contents/roles/List/index.js +111 -0
  129. package/client/components/contents/roles/index.d.ts +2 -0
  130. package/client/components/contents/roles/index.d.ts.map +1 -0
  131. package/client/components/contents/roles/index.js +1 -0
  132. package/client/components/contents/settings/index.d.ts +2 -0
  133. package/client/components/contents/settings/index.d.ts.map +1 -0
  134. package/client/components/contents/settings/index.js +67 -0
  135. package/client/components/contents/sites/Create.d.ts +2 -0
  136. package/client/components/contents/sites/Create.d.ts.map +1 -0
  137. package/client/components/contents/sites/Create.js +53 -0
  138. package/client/components/contents/sites/Delete.d.ts +2 -0
  139. package/client/components/contents/sites/Delete.d.ts.map +1 -0
  140. package/client/components/contents/sites/Delete.js +125 -0
  141. package/client/components/contents/sites/Edit.d.ts +2 -0
  142. package/client/components/contents/sites/Edit.d.ts.map +1 -0
  143. package/client/components/contents/sites/Edit.js +120 -0
  144. package/client/components/contents/sites/List.d.ts +2 -0
  145. package/client/components/contents/sites/List.d.ts.map +1 -0
  146. package/client/components/contents/sites/List.js +33 -0
  147. package/client/components/contents/sites/index.d.ts +7 -0
  148. package/client/components/contents/sites/index.d.ts.map +1 -0
  149. package/client/components/contents/sites/index.js +10 -0
  150. package/client/components/contents/terms/List/ActionLink.d.ts +5 -0
  151. package/client/components/contents/terms/List/ActionLink.d.ts.map +1 -0
  152. package/client/components/contents/terms/List/ActionLink.js +44 -0
  153. package/client/components/contents/terms/List/Toolbar.d.ts +8 -0
  154. package/client/components/contents/terms/List/Toolbar.d.ts.map +1 -0
  155. package/client/components/contents/terms/List/Toolbar.js +20 -0
  156. package/client/components/contents/terms/List/index.d.ts +18 -0
  157. package/client/components/contents/terms/List/index.d.ts.map +1 -0
  158. package/client/components/contents/terms/List/index.js +94 -0
  159. package/client/components/contents/terms/index.d.ts +2 -0
  160. package/client/components/contents/terms/index.d.ts.map +1 -0
  161. package/client/components/contents/terms/index.js +1 -0
  162. package/client/components/contents/users/Create.d.ts +2 -0
  163. package/client/components/contents/users/Create.d.ts.map +1 -0
  164. package/client/components/contents/users/Create.js +47 -0
  165. package/client/components/contents/users/Delete.d.ts +2 -0
  166. package/client/components/contents/users/Delete.d.ts.map +1 -0
  167. package/client/components/contents/users/Delete.js +113 -0
  168. package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.d.ts +6 -0
  169. package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.d.ts.map +1 -0
  170. package/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.js +40 -0
  171. package/client/components/contents/users/Edit/Profile/ResetPasswordModal.d.ts +6 -0
  172. package/client/components/contents/users/Edit/Profile/ResetPasswordModal.d.ts.map +1 -0
  173. package/client/components/contents/users/Edit/Profile/ResetPasswordModal.js +41 -0
  174. package/client/components/contents/users/Edit/Profile/index.d.ts +4 -0
  175. package/client/components/contents/users/Edit/Profile/index.d.ts.map +1 -0
  176. package/client/components/contents/users/Edit/Profile/index.js +111 -0
  177. package/client/components/contents/users/Edit/Roles/ActionLink.d.ts +6 -0
  178. package/client/components/contents/users/Edit/Roles/ActionLink.d.ts.map +1 -0
  179. package/client/components/contents/users/Edit/Roles/ActionLink.js +63 -0
  180. package/client/components/contents/users/Edit/Roles/Add.d.ts +5 -0
  181. package/client/components/contents/users/Edit/Roles/Add.d.ts.map +1 -0
  182. package/client/components/contents/users/Edit/Roles/Add.js +60 -0
  183. package/client/components/contents/users/Edit/Roles/Edit.d.ts +8 -0
  184. package/client/components/contents/users/Edit/Roles/Edit.d.ts.map +1 -0
  185. package/client/components/contents/users/Edit/Roles/Edit.js +53 -0
  186. package/client/components/contents/users/Edit/Roles/Roles.d.ts +4 -0
  187. package/client/components/contents/users/Edit/Roles/Roles.d.ts.map +1 -0
  188. package/client/components/contents/users/Edit/Roles/Roles.js +41 -0
  189. package/client/components/contents/users/Edit/Roles/context.d.ts +9 -0
  190. package/client/components/contents/users/Edit/Roles/context.d.ts.map +1 -0
  191. package/client/components/contents/users/Edit/Roles/context.js +2 -0
  192. package/client/components/contents/users/Edit/Roles/index.d.ts +3 -0
  193. package/client/components/contents/users/Edit/Roles/index.d.ts.map +1 -0
  194. package/client/components/contents/users/Edit/Roles/index.js +2 -0
  195. package/client/components/contents/users/Edit/index.d.ts +4 -0
  196. package/client/components/contents/users/Edit/index.d.ts.map +1 -0
  197. package/client/components/contents/users/Edit/index.js +66 -0
  198. package/client/components/contents/users/List/CountRoles.d.ts +2 -0
  199. package/client/components/contents/users/List/CountRoles.d.ts.map +1 -0
  200. package/client/components/contents/users/List/CountRoles.js +68 -0
  201. package/client/components/contents/users/List/Toolbar.d.ts +10 -0
  202. package/client/components/contents/users/List/Toolbar.d.ts.map +1 -0
  203. package/client/components/contents/users/List/Toolbar.js +32 -0
  204. package/client/components/contents/users/List/index.d.ts +2 -0
  205. package/client/components/contents/users/List/index.d.ts.map +1 -0
  206. package/client/components/contents/users/List/index.js +30 -0
  207. package/client/components/contents/users/index.d.ts +9 -0
  208. package/client/components/contents/users/index.d.ts.map +1 -0
  209. package/client/components/contents/users/index.js +10 -0
  210. package/client/components/layout/Layout.d.ts +3 -0
  211. package/client/components/layout/Layout.d.ts.map +1 -0
  212. package/client/components/layout/Layout.js +69 -0
  213. package/client/components/layout/Main.d.ts +2 -0
  214. package/client/components/layout/Main.d.ts.map +1 -0
  215. package/client/components/layout/Main.js +12 -0
  216. package/client/components/layout/Overlay.d.ts +2 -0
  217. package/client/components/layout/Overlay.d.ts.map +1 -0
  218. package/client/components/layout/Overlay.js +49 -0
  219. package/client/components/layout/Title.d.ts +2 -0
  220. package/client/components/layout/Title.d.ts.map +1 -0
  221. package/client/components/layout/Title.js +19 -0
  222. package/client/components/layout/WrapperLayout.d.ts +2 -0
  223. package/client/components/layout/WrapperLayout.d.ts.map +1 -0
  224. package/client/components/layout/WrapperLayout.js +5 -0
  225. package/client/components/layout/header/Profile.d.ts +2 -0
  226. package/client/components/layout/header/Profile.d.ts.map +1 -0
  227. package/client/components/layout/header/Profile.js +66 -0
  228. package/client/components/layout/header/index.d.ts +2 -0
  229. package/client/components/layout/header/index.d.ts.map +1 -0
  230. package/client/components/layout/header/index.js +176 -0
  231. package/client/components/layout/sidebar/Collapse.d.ts +4 -0
  232. package/client/components/layout/sidebar/Collapse.d.ts.map +1 -0
  233. package/client/components/layout/sidebar/Collapse.js +53 -0
  234. package/client/components/layout/sidebar/Menus.d.ts +5 -0
  235. package/client/components/layout/sidebar/Menus.d.ts.map +1 -0
  236. package/client/components/layout/sidebar/Menus.js +76 -0
  237. package/client/components/layout/sidebar/index.d.ts +2 -0
  238. package/client/components/layout/sidebar/index.d.ts.map +1 -0
  239. package/client/components/layout/sidebar/index.js +86 -0
  240. package/client/components/utils/ErrorFallback.d.ts +6 -0
  241. package/client/components/utils/ErrorFallback.d.ts.map +1 -0
  242. package/client/components/utils/ErrorFallback.js +36 -0
  243. package/client/components/utils/dropdown/SelectWPAvailableSite.d.ts +7 -0
  244. package/client/components/utils/dropdown/SelectWPAvailableSite.d.ts.map +1 -0
  245. package/client/components/utils/dropdown/SelectWPAvailableSite.js +58 -0
  246. package/client/components/utils/dropdown/SelectWPSite.d.ts +5 -0
  247. package/client/components/utils/dropdown/SelectWPSite.d.ts.map +1 -0
  248. package/client/components/utils/dropdown/SelectWPSite.js +27 -0
  249. package/client/components/utils/dropdown/index.d.ts +2 -0
  250. package/client/components/utils/dropdown/index.d.ts.map +1 -0
  251. package/client/components/utils/dropdown/index.js +1 -0
  252. package/client/components/utils/index.d.ts +2 -0
  253. package/client/components/utils/index.d.ts.map +1 -0
  254. package/client/components/utils/index.js +1 -0
  255. package/client/components/utils/link/AdminLink.d.ts +46 -0
  256. package/client/components/utils/link/AdminLink.d.ts.map +1 -0
  257. package/client/components/utils/link/AdminLink.js +61 -0
  258. package/client/components/utils/link/index.d.ts +2 -0
  259. package/client/components/utils/link/index.d.ts.map +1 -0
  260. package/client/components/utils/link/index.js +2 -0
  261. package/client/components/utils/modal/CommentModal.d.ts +2 -0
  262. package/client/components/utils/modal/CommentModal.d.ts.map +1 -0
  263. package/client/components/utils/modal/CommentModal.js +53 -0
  264. package/client/components/utils/modal/TermModal.d.ts +10 -0
  265. package/client/components/utils/modal/TermModal.d.ts.map +1 -0
  266. package/client/components/utils/modal/TermModal.js +70 -0
  267. package/client/components/utils/modal/index.d.ts +3 -0
  268. package/client/components/utils/modal/index.d.ts.map +1 -0
  269. package/client/components/utils/modal/index.js +2 -0
  270. package/client/components/utils/post/PostPanel.d.ts +15 -0
  271. package/client/components/utils/post/PostPanel.d.ts.map +1 -0
  272. package/client/components/utils/post/PostPanel.js +70 -0
  273. package/client/components/utils/post/index.d.ts +4 -0
  274. package/client/components/utils/post/index.d.ts.map +1 -0
  275. package/client/components/utils/post/index.js +3 -0
  276. package/client/components/utils/post/link/PostActionLink.d.ts +9 -0
  277. package/client/components/utils/post/link/PostActionLink.d.ts.map +1 -0
  278. package/client/components/utils/post/link/PostActionLink.js +90 -0
  279. package/client/components/utils/post/link/PostRowLinks.d.ts +8 -0
  280. package/client/components/utils/post/link/PostRowLinks.d.ts.map +1 -0
  281. package/client/components/utils/post/link/PostRowLinks.js +30 -0
  282. package/client/components/utils/post/link/index.d.ts +3 -0
  283. package/client/components/utils/post/link/index.d.ts.map +1 -0
  284. package/client/components/utils/post/link/index.js +2 -0
  285. package/client/components/utils/post/settings/Categories.d.ts +2 -0
  286. package/client/components/utils/post/settings/Categories.d.ts.map +1 -0
  287. package/client/components/utils/post/settings/Categories.js +23 -0
  288. package/client/components/utils/post/settings/Discussion.d.ts +2 -0
  289. package/client/components/utils/post/settings/Discussion.d.ts.map +1 -0
  290. package/client/components/utils/post/settings/Discussion.js +25 -0
  291. package/client/components/utils/post/settings/Excerpt.d.ts +2 -0
  292. package/client/components/utils/post/settings/Excerpt.d.ts.map +1 -0
  293. package/client/components/utils/post/settings/Excerpt.js +9 -0
  294. package/client/components/utils/post/settings/FeaturedImage.d.ts +2 -0
  295. package/client/components/utils/post/settings/FeaturedImage.d.ts.map +1 -0
  296. package/client/components/utils/post/settings/FeaturedImage.js +63 -0
  297. package/client/components/utils/post/settings/PageAttributes.d.ts +2 -0
  298. package/client/components/utils/post/settings/PageAttributes.d.ts.map +1 -0
  299. package/client/components/utils/post/settings/PageAttributes.js +23 -0
  300. package/client/components/utils/post/settings/Revisions.d.ts +2 -0
  301. package/client/components/utils/post/settings/Revisions.d.ts.map +1 -0
  302. package/client/components/utils/post/settings/Revisions.js +44 -0
  303. package/client/components/utils/post/settings/Summary.d.ts +2 -0
  304. package/client/components/utils/post/settings/Summary.d.ts.map +1 -0
  305. package/client/components/utils/post/settings/Summary.js +58 -0
  306. package/client/components/utils/post/settings/Tags.d.ts +2 -0
  307. package/client/components/utils/post/settings/Tags.d.ts.map +1 -0
  308. package/client/components/utils/post/settings/Tags.js +11 -0
  309. package/client/components/utils/post/settings/index.d.ts +9 -0
  310. package/client/components/utils/post/settings/index.d.ts.map +1 -0
  311. package/client/components/utils/post/settings/index.js +8 -0
  312. package/client/hooks/index.d.ts +6 -0
  313. package/client/hooks/index.d.ts.map +1 -0
  314. package/client/hooks/index.js +5 -0
  315. package/client/hooks/use-admin-navigation.d.ts +39 -0
  316. package/client/hooks/use-admin-navigation.d.ts.map +1 -0
  317. package/client/hooks/use-admin-navigation.js +61 -0
  318. package/client/hooks/use-admin-server-actions.d.ts +49 -0
  319. package/client/hooks/use-admin-server-actions.d.ts.map +1 -0
  320. package/client/hooks/use-admin-server-actions.js +13 -0
  321. package/client/hooks/use-admin-user.d.ts +130 -0
  322. package/client/hooks/use-admin-user.d.ts.map +1 -0
  323. package/client/hooks/use-admin-user.js +19 -0
  324. package/client/hooks/use-current-menu.d.ts +3 -0
  325. package/client/hooks/use-current-menu.d.ts.map +1 -0
  326. package/client/hooks/use-current-menu.js +37 -0
  327. package/client/hooks/use-sidebar.d.ts +27 -0
  328. package/client/hooks/use-sidebar.d.ts.map +1 -0
  329. package/client/hooks/use-sidebar.js +51 -0
  330. package/client/hooks/use-sites.d.ts +136 -0
  331. package/client/hooks/use-sites.d.ts.map +1 -0
  332. package/client/hooks/use-sites.js +43 -0
  333. package/client/utils/get-default-admin-hooks.d.ts +3 -0
  334. package/client/utils/get-default-admin-hooks.d.ts.map +1 -0
  335. package/client/utils/get-default-admin-hooks.js +3 -0
  336. package/client/utils/index.d.ts +2 -0
  337. package/client/utils/index.d.ts.map +1 -0
  338. package/client/utils/index.js +1 -0
  339. package/client/wp-admin/initial-global-state.d.ts +5 -0
  340. package/client/wp-admin/initial-global-state.d.ts.map +1 -0
  341. package/client/wp-admin/initial-global-state.js +46 -0
  342. package/client/wp-admin/use-comment.d.ts +55 -0
  343. package/client/wp-admin/use-comment.d.ts.map +1 -0
  344. package/client/wp-admin/use-comment.js +32 -0
  345. package/client/wp-admin/use-overlay.d.ts +28 -0
  346. package/client/wp-admin/use-overlay.d.ts.map +1 -0
  347. package/client/wp-admin/use-overlay.js +89 -0
  348. package/client/wp-admin.d.ts +27 -0
  349. package/client/wp-admin.d.ts.map +1 -0
  350. package/client/wp-admin.js +49 -0
  351. package/client/wp-hooks/index.d.ts +5 -0
  352. package/client/wp-hooks/index.d.ts.map +1 -0
  353. package/client/wp-hooks/index.js +5 -0
  354. package/client/wp-hooks/menu-blog.hook.d.ts +11 -0
  355. package/client/wp-hooks/menu-blog.hook.d.ts.map +1 -0
  356. package/client/wp-hooks/menu-blog.hook.js +236 -0
  357. package/client/wp-hooks/menu-site.hook.d.ts +11 -0
  358. package/client/wp-hooks/menu-site.hook.d.ts.map +1 -0
  359. package/client/wp-hooks/menu-site.hook.js +171 -0
  360. package/client/wp-hooks/preload-modal.hook.d.ts +10 -0
  361. package/client/wp-hooks/preload-modal.hook.d.ts.map +1 -0
  362. package/client/wp-hooks/preload-modal.hook.js +45 -0
  363. package/client/wp-hooks/themes.hook.d.ts +9 -0
  364. package/client/wp-hooks/themes.hook.d.ts.map +1 -0
  365. package/client/wp-hooks/themes.hook.js +32 -0
  366. package/package.json +64 -0
  367. package/server/actions/dashboard.d.ts +141 -0
  368. package/server/actions/dashboard.d.ts.map +1 -0
  369. package/server/actions/dashboard.js +52 -0
  370. package/server/components/Page.d.ts +2 -0
  371. package/server/components/Page.d.ts.map +1 -0
  372. package/server/components/Page.js +3 -0
  373. package/server/components/RootLayout.d.ts +5 -0
  374. package/server/components/RootLayout.d.ts.map +1 -0
  375. package/server/components/RootLayout.js +57 -0
  376. package/server/components/RootPage.d.ts +2 -0
  377. package/server/components/RootPage.d.ts.map +1 -0
  378. package/server/components/RootPage.js +19 -0
  379. package/server/utils/get-default-admin-hooks.d.ts +3 -0
  380. package/server/utils/get-default-admin-hooks.d.ts.map +1 -0
  381. package/server/utils/get-default-admin-hooks.js +4 -0
  382. package/server/utils/index.d.ts +2 -0
  383. package/server/utils/index.d.ts.map +1 -0
  384. package/server/utils/index.js +1 -0
  385. package/server/wp-admin.d.ts +40 -0
  386. package/server/wp-admin.d.ts.map +1 -0
  387. package/server/wp-admin.js +58 -0
  388. package/server/wp-hooks/index.d.ts +3 -0
  389. package/server/wp-hooks/index.d.ts.map +1 -0
  390. package/server/wp-hooks/index.js +3 -0
  391. package/server/wp-hooks/next-admin-init.hook.d.ts +15 -0
  392. package/server/wp-hooks/next-admin-init.hook.d.ts.map +1 -0
  393. package/server/wp-hooks/next-admin-init.hook.js +65 -0
  394. package/types/client/form-data.d.ts +27 -0
  395. package/types/client/global-ref.d.ts +7 -0
  396. package/types/client/global-state.d.ts +78 -0
  397. package/types/client/index.d.ts +5 -0
  398. package/types/client/menus.d.ts +39 -0
  399. package/types/client.d.ts +40 -0
  400. package/types/hooks/actions.d.ts +4 -0
  401. package/types/hooks/filters.d.ts +39 -0
  402. package/types/hooks/index.d.ts +2 -0
  403. package/types/index.d.ts +4 -0
  404. package/types/server-actions.d.ts +21 -0
  405. 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,2 @@
1
+ export declare const Main: () => import("react").ReactNode;
2
+ //# sourceMappingURL=Main.d.ts.map
@@ -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,2 @@
1
+ export declare const Overlay: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Overlay.d.ts.map
@@ -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,2 @@
1
+ export declare const Title: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Title.d.ts.map
@@ -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,2 @@
1
+ export declare const WrapperLayout: import("react").ComponentType<{}>;
2
+ //# sourceMappingURL=WrapperLayout.d.ts.map
@@ -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,5 @@
1
+ "use client";
2
+ import dynamic from "next/dynamic";
3
+ export const WrapperLayout = dynamic(async () => await import("./Layout"), {
4
+ ssr: false,
5
+ });
@@ -0,0 +1,2 @@
1
+ export declare const Profile: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Profile.d.ts.map
@@ -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,2 @@
1
+ export declare const Header: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ export declare const Collapse: (props: {
2
+ open: boolean;
3
+ }) => import("react/jsx-runtime").JSX.Element | null;
4
+ //# sourceMappingURL=Collapse.d.ts.map
@@ -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,5 @@
1
+ import type * as types from "../../../../types";
2
+ export declare const Menus: (props: {
3
+ menus: types.client.AdminMenu[];
4
+ }) => import("react/jsx-runtime").JSX.Element[];
5
+ //# sourceMappingURL=Menus.d.ts.map
@@ -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,2 @@
1
+ export declare const Sidebar: () => import("react/jsx-runtime").JSX.Element | null;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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"}