@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,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import { Box } from "@mui/material";
4
+ import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
5
+ import { AdminLink } from "../../../../components/utils/link";
6
+ import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
7
+ import { useWPAdmin } from "../../../../wp-admin";
8
+ import { TermsContext } from "./";
9
+ export const ActionLink = (props) => {
10
+ const { term } = props;
11
+ const { overlay } = useWPAdmin();
12
+ const { refresh } = useAdminNavigation();
13
+ const { actions, safeParse } = useServerActions();
14
+ const { edit, setEdit, permissions, taxonomy } = useContext(TermsContext);
15
+ const handleEditOpen = (term) => () => {
16
+ setEdit({
17
+ ...edit,
18
+ open: true,
19
+ selectedTerm: term,
20
+ });
21
+ };
22
+ const handleDelete = (term) => () => {
23
+ if (!taxonomy) {
24
+ return;
25
+ }
26
+ const message = "This action cannot be undone. This will permanently delete your item.";
27
+ const title = "Are you absolutely sure?";
28
+ overlay.confirm.open(message, async (confirm) => {
29
+ if (!confirm) {
30
+ return;
31
+ }
32
+ const result = await overlay.circular
33
+ .promise(actions.term.del(term.term_id, taxonomy.name))
34
+ .then(safeParse);
35
+ if (!result.success) {
36
+ overlay.snackbar.open("error", result.error);
37
+ return;
38
+ }
39
+ overlay.snackbar.open("success", "Item has been deleted Permanently");
40
+ refresh(["content"]);
41
+ }, title);
42
+ };
43
+ return (_jsxs(Box, { sx: { display: "flex", gap: 0.5 }, children: [permissions?.edit_terms && (_jsx(AdminLink, { onClick: handleEditOpen(term), children: "Edit" })), permissions?.delete_terms && (_jsx(AdminLink, { color: "error", onClick: handleDelete(term), children: "Delete" }))] }));
44
+ };
@@ -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
+ terms?: wpCoreTypes.actions.Terms;
5
+ info?: wpCoreTypes.actions.TermsInfo;
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/terms/List/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAU9C,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAE9D,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,4CAiCA,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import { Box } from "@mui/material";
4
+ import { Button } from "@rnaga/wp-next-ui/Button";
5
+ import { InputSearch } from "@rnaga/wp-next-ui/InputSearch";
6
+ import { Pagination } from "@rnaga/wp-next-ui/list/Pagination";
7
+ import { useWPAdmin } from "../../../../wp-admin";
8
+ import { TermsContext } from "./";
9
+ export const Toolbar = (props) => {
10
+ const { info, children } = props;
11
+ const { wp: { viewport }, } = useWPAdmin();
12
+ const { edit: { addNew }, permissions, taxonomy, } = useContext(TermsContext);
13
+ const canCreate = (true === taxonomy?.hierarchical && permissions?.edit_terms) ||
14
+ (false === taxonomy?.hierarchical && permissions?.assign_terms);
15
+ return (_jsxs(_Fragment, { children: [_jsx(Box, { sx: { display: "flex", justifyContent: "flex-end" }, children: canCreate && _jsx(Button, { onClick: () => addNew(), children: "Create New Term" }) }), _jsxs(Box, { sx: {
16
+ display: "grid",
17
+ gap: 1,
18
+ gridTemplateColumns: viewport.isMobile ? "1fr" : "repeat(2, 1fr) 2fr",
19
+ }, children: [children, " ", _jsx(InputSearch, { size: "medium" }), _jsx(Pagination, { pagination: info?.pagination })] })] }));
20
+ };
@@ -0,0 +1,18 @@
1
+ import { Dispatch, SetStateAction } from "react";
2
+ import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
3
+ import type * as wpTypes from "@rnaga/wp-node/types";
4
+ type Permissions = Record<wpTypes.TaxonomyCapability, boolean>;
5
+ type EditState = {
6
+ open: boolean;
7
+ addNew: () => void;
8
+ selectedTerm?: wpCoreTypes.actions.Terms[number];
9
+ };
10
+ export declare const TermsContext: import("react").Context<{
11
+ edit: EditState;
12
+ setEdit: Dispatch<SetStateAction<EditState>>;
13
+ taxonomy?: wpCoreTypes.actions.Taxonomies[number];
14
+ permissions?: Permissions;
15
+ }>;
16
+ export declare const List: () => import("react/jsx-runtime").JSX.Element;
17
+ export {};
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/client/components/contents/terms/List/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,cAAc,EAKf,MAAM,OAAO,CAAC;AA2Bf,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAErD,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAE/D,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,YAAY;UACjB,SAAS;aACN,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;eACjC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;kBACnC,WAAW;EACd,CAAC;AAEd,eAAO,MAAM,IAAI,+CAwLhB,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createContext, useCallback, useEffect, useState, useTransition, } from "react";
3
+ import { AccordionDetails, Stack } from "@mui/material";
4
+ import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
5
+ import { Accordion } from "@rnaga/wp-next-ui/Accordion";
6
+ import { ActionTd, ListGrid, ListGridItem, ListGridTitle, SortableTh, Table, Td, Th, THead, Tr, } from "@rnaga/wp-next-ui/list";
7
+ import { Loading } from "@rnaga/wp-next-ui/Loading";
8
+ import { SelectWPTaxonomy } from "@rnaga/wp-next-ui/SelectWPTaxonomy";
9
+ import { Typography } from "@rnaga/wp-next-ui/Typography";
10
+ import { TermModal } from "../../../../components/utils/modal";
11
+ import { useAdminNavigation } from "../../../../hooks/use-admin-navigation";
12
+ import { useWPAdmin } from "../../../../wp-admin";
13
+ import { ActionLink } from "./ActionLink";
14
+ import { Toolbar } from "./Toolbar";
15
+ export const TermsContext = createContext({});
16
+ export const List = () => {
17
+ const { overlay } = useWPAdmin();
18
+ const { refresh, pushRouter } = useAdminNavigation();
19
+ const { actions, parse, safeParse } = useServerActions();
20
+ const { queryObject, navigationStatus, refreshValue } = useAdminNavigation();
21
+ const { taxonomy: taxonomyName = "category", ...listQueryObject } = queryObject;
22
+ const [{ terms, info }, setTerms] = useState({
23
+ terms: undefined,
24
+ info: undefined,
25
+ });
26
+ const [taxonomy, setTaxonomy] = useState();
27
+ const [permissions, setPermissions] = useState();
28
+ const [edit, setEdit] = useState({
29
+ open: false,
30
+ addNew: () => {
31
+ setEdit({ ...edit, open: true, selectedTerm: undefined });
32
+ },
33
+ selectedTerm: undefined,
34
+ });
35
+ const [loading, startTransition] = useTransition();
36
+ const fetchTerms = useCallback(async () => {
37
+ if (!taxonomy) {
38
+ return;
39
+ }
40
+ const [terms, info] = await actions.term
41
+ .list(taxonomyName, {
42
+ orderby: "term_id",
43
+ order: "desc",
44
+ ...listQueryObject,
45
+ })
46
+ .then(parse);
47
+ setTerms({ terms, info });
48
+ }, [taxonomy, navigationStatus, refreshValue().content]);
49
+ useEffect(() => {
50
+ startTransition(fetchTerms);
51
+ }, [taxonomy, navigationStatus]);
52
+ useEffect(() => {
53
+ fetchTerms();
54
+ }, [refreshValue().content]);
55
+ useEffect(() => {
56
+ if (!taxonomy) {
57
+ return;
58
+ }
59
+ const fetchPermissions = async () => {
60
+ let permissions = {
61
+ manage_terms: false,
62
+ assign_terms: false,
63
+ edit_terms: false,
64
+ delete_terms: false,
65
+ };
66
+ if (!taxonomy.capabilities) {
67
+ return permissions;
68
+ }
69
+ for (const key of Object.keys(permissions)) {
70
+ permissions[key] = (await actions.user.can(taxonomy.capabilities[key]).then(safeParse)).data;
71
+ }
72
+ return permissions;
73
+ };
74
+ fetchPermissions().then(setPermissions);
75
+ }, [taxonomy]);
76
+ const handleEditClose = () => {
77
+ setEdit({ ...edit, open: false, selectedTerm: undefined });
78
+ };
79
+ const handleOnSave = () => {
80
+ overlay.snackbar.open("success", "Term has been saved");
81
+ refresh(["content"]);
82
+ };
83
+ const handleClickTaxonomy = (taxonomy) => {
84
+ setTaxonomy(taxonomy);
85
+ pushRouter({ taxonomy: taxonomy.name });
86
+ };
87
+ const handleInitTaxonomy = (taxonomy) => {
88
+ setTaxonomy(taxonomy);
89
+ };
90
+ return (_jsxs(TermsContext.Provider, { value: { edit, setEdit, taxonomy, permissions }, children: [_jsx(TermModal, { open: edit.open, onClose: handleEditClose, onSave: handleOnSave, taxonomy: taxonomy, selected: edit.selectedTerm }), _jsxs(Stack, { spacing: 1, children: [_jsx(Toolbar, { terms: terms, info: info, children: _jsx(SelectWPTaxonomy, { size: "medium", onClick: handleClickTaxonomy, onInit: handleInitTaxonomy, defaultValue: taxonomyName }) }), _jsx(Loading, { loading: loading || !taxonomy, children: _jsxs(Table, { children: [_jsxs(THead, { children: [_jsx(SortableTh, { name: "Name", orderby: "name" }), _jsx(SortableTh, { viewport: "desktop", name: "Description", orderby: "description" }), _jsx(SortableTh, { viewport: "desktop", name: "Slug", orderby: "slug" }), _jsx(Th, { viewport: "desktop", style: { width: "80px" }, children: "Count" })] }), _jsx("tbody", { children: terms &&
91
+ terms.map((term) => {
92
+ return (_jsxs(Tr, { style: { paddingTop: "1em" }, children: [_jsxs(ActionTd, { viewport: "desktop", children: [_jsx(Typography, { size: "medium", bold: true, children: term.name }), _jsx(ActionLink, { term: term })] }), _jsx(Td, { viewport: "mobile", children: _jsxs(Accordion, { children: [_jsx(ListGridTitle, { title: term.name }), _jsxs(AccordionDetails, { children: [_jsx(ActionLink, { term: term }), _jsxs(ListGrid, { children: [_jsx(ListGridItem, { title: "Slug", children: term.slug }), _jsx(ListGridItem, { title: "Description", children: term.description })] })] })] }) }), _jsx(Td, { viewport: "desktop", children: term.description }), _jsx(Td, { viewport: "desktop", children: term.slug }), _jsx(Td, { viewport: "desktop", children: term.count })] }, `${term.term_id}`));
93
+ }) })] }) })] })] }));
94
+ };
@@ -0,0 +1,2 @@
1
+ export { List as Terms } from "./List";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/terms/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ export { List as Terms } from "./List";
@@ -0,0 +1,2 @@
1
+ export declare const Create: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=Create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Create.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/users/Create.tsx"],"names":[],"mappings":"AAeA,eAAO,MAAM,MAAM,+CA8ElB,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { 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 { useFormData } from "@rnaga/wp-next-ui/hooks/use-form-data";
7
+ import { Input } from "@rnaga/wp-next-ui/Input";
8
+ import { Modal, ModalContent } from "@rnaga/wp-next-ui/Modal";
9
+ import { Typography } from "@rnaga/wp-next-ui/Typography";
10
+ import { useAdminNavigation } from "../../../hooks";
11
+ import { useWPAdmin } from "../../../wp-admin";
12
+ import { useState } from "react";
13
+ export const Create = () => {
14
+ const { overlay, wp: { globalState }, } = useWPAdmin();
15
+ const { gotoPath } = useAdminNavigation();
16
+ const { actions, safeParse } = useServerActions();
17
+ const [loading, setLoading] = useState(false);
18
+ const { formData, submit } = useFormData("user");
19
+ const open = globalState.get("user-create-user-modal")?.open;
20
+ const onClose = () => {
21
+ globalState.set("user-create-user-modal", { open: false });
22
+ };
23
+ const handleSubmit = async (data) => {
24
+ setLoading(true);
25
+ const result = await actions.user
26
+ .create({
27
+ user_login: data.user_login,
28
+ user_email: data.user_email,
29
+ nickname: data.nickname,
30
+ })
31
+ .then(safeParse);
32
+ if (!result.success) {
33
+ overlay.snackbar.open("error", result.error);
34
+ return;
35
+ }
36
+ gotoPath("/users/edit", {
37
+ queryParams: {
38
+ id: result.data.ID,
39
+ },
40
+ });
41
+ setLoading(false);
42
+ onClose();
43
+ };
44
+ return (_jsx(Modal, { open: !!open, onClose: onClose, sx: { zIndex: 2 }, children: _jsxs(ModalContent, { sx: {
45
+ minWidth: "30%",
46
+ }, children: [_jsx(Typography, { bold: true, fontSize: 20, children: "New User" }), _jsx("form", { onSubmit: submit(handleSubmit), children: _jsxs(Stack, { spacing: 2, children: [_jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Username" }), _jsx(Input, { size: "medium", name: "user_login", required: true })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Email " }), _jsx(Input, { size: "medium", name: "user_email", required: true })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Nickname" }), _jsx(Input, { size: "medium", name: "nickname", required: true })] }), _jsx(Button, { size: "medium", type: "submit", loading: loading, children: "Submit" })] }) })] }) }));
47
+ };
@@ -0,0 +1,2 @@
1
+ export declare const Delete: () => import("react/jsx-runtime").JSX.Element | null;
2
+ //# sourceMappingURL=Delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Delete.d.ts","sourceRoot":"","sources":["../../../../../src/client/components/contents/users/Delete.tsx"],"names":[],"mappings":"AAwBA,eAAO,MAAM,MAAM,sDAgNlB,CAAC"}
@@ -0,0 +1,113 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { z } from "zod";
4
+ import { Alert, Box, FormControl, List, ListItem, Radio, RadioGroup, Stack, } from "@mui/material";
5
+ import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
6
+ import { Button } from "@rnaga/wp-next-ui/Button";
7
+ import { SelectWPUser } from "@rnaga/wp-next-ui/SelectWPUser";
8
+ import { useWPTheme } from "@rnaga/wp-next-ui/ThemeRegistry";
9
+ import { Typography } from "@rnaga/wp-next-ui/Typography";
10
+ import { useAdminNavigation } from "../../../hooks/use-admin-navigation";
11
+ import { useWPAdmin } from "../../../wp-admin";
12
+ export const Delete = () => {
13
+ const { searchParams, gotoPath } = useAdminNavigation();
14
+ const { wp: { error }, overlay, } = useWPAdmin();
15
+ const { actions, parse } = useServerActions();
16
+ const { wpTheme } = useWPTheme();
17
+ const [author, setAuthor] = useState();
18
+ const [blogs, setBlogs] = useState();
19
+ const [disabledRecord, setDisabledRecord] = useState({});
20
+ const userIdMap = useRef(new Map());
21
+ const reassignMap = useRef(new Map());
22
+ const [selectRadioValue, setSelectRadioValue] = useState({});
23
+ const userId = z
24
+ .string()
25
+ .transform((v) => parseInt(v))
26
+ .parse(searchParams.get("id"));
27
+ useEffect(() => {
28
+ actions.user.get(userId).then((response) => {
29
+ const [user] = parse(response);
30
+ setAuthor(user);
31
+ });
32
+ }, []);
33
+ useEffect(() => {
34
+ const fetchBlogs = async () => {
35
+ const [result] = await actions.user
36
+ .can("delete_user", userId)
37
+ .then(parse);
38
+ if (!result) {
39
+ error.throw("Not permitted");
40
+ }
41
+ const [blogs] = await actions.user.getBlogs(userId).then(parse);
42
+ return blogs;
43
+ };
44
+ fetchBlogs().then((blogs) => {
45
+ setBlogs(blogs);
46
+ });
47
+ }, [userId]);
48
+ const handleReassign = (reassign, blogId) => (e) => {
49
+ if (!reassign) {
50
+ reassignMap.current.delete(blogId);
51
+ setDisabledRecord({ ...disabledRecord, [blogId]: true });
52
+ }
53
+ else {
54
+ const userId = userIdMap.current.get(blogId);
55
+ if (userId) {
56
+ reassignMap.current.set(blogId, userId);
57
+ }
58
+ setDisabledRecord({ ...disabledRecord, [blogId]: false });
59
+ }
60
+ setSelectRadioValue({ ...selectRadioValue, [blogId]: e.target.value });
61
+ };
62
+ const hanldeUserIdChange = (blogId) => (user) => {
63
+ reassignMap.current.set(blogId, user.ID);
64
+ userIdMap.current.set(blogId, user.ID);
65
+ };
66
+ const handleSubmit = () => {
67
+ overlay.confirm.open("This action cannot be undone. This will permanently delete the user.", async (confirm) => {
68
+ if (!confirm) {
69
+ return;
70
+ }
71
+ const [result] = await overlay.circular.promise(actions.user
72
+ .del(userId, {
73
+ reassignList: Object.fromEntries(reassignMap.current),
74
+ })
75
+ .then(parse));
76
+ if (result) {
77
+ gotoPath("/users");
78
+ }
79
+ });
80
+ };
81
+ const isDisabled = (blogId) => {
82
+ return typeof disabledRecord?.[blogId] !== "boolean"
83
+ ? true
84
+ : disabledRecord?.[blogId];
85
+ };
86
+ if (!blogs || !author) {
87
+ return null;
88
+ }
89
+ return (_jsxs(Stack, { sx: { pb: 10 }, children: [_jsx(Alert, { variant: "outlined", severity: "error", sx: { mb: 2 }, children: _jsx(Typography, { size: "medium", color: "error", bold: true, children: "You have chosen to delete the user from all networks and sites." }) }), 0 == blogs.length ? (_jsxs(Typography, { size: "medium", children: [_jsx("b", { children: author.display_name }), " has no sites or content and will be deleted."] })) : (_jsxs(_Fragment, { children: [_jsxs(Typography, { size: "medium", children: ["What should be done with content owned by", " ", _jsx("b", { children: author.display_name }), "?"] }), _jsx(Box, { sx: {
90
+ // Set opacity to 0.5 on border
91
+ border: "1px solid",
92
+ borderColor: wpTheme.colorScale[400],
93
+ borderRadius: 1,
94
+ p: 2,
95
+ display: "flex",
96
+ flexDirection: "column",
97
+ gap: 2,
98
+ }, children: blogs.map((blog) => (_jsxs(FormControl, { children: [_jsxs(Typography, { size: "medium", children: ["Blog: ", blog.blogname] }), _jsx(RadioGroup, { defaultValue: "delete", name: blog.blogname, children: _jsxs(List, { children: [_jsx(ListItem, { children: _jsxs(Typography, { size: "medium", component: "div", children: [_jsx(Radio, { value: "delete", checked: !selectRadioValue[blog.blog_id] ||
99
+ selectRadioValue[blog.blog_id] === "delete", onChange: handleReassign(false, blog.blog_id) }), "Delete all content."] }) }), _jsx(ListItem, { children: _jsxs(Typography, { size: "medium", component: "div", children: [_jsx(Radio, { value: "inherit", checked: selectRadioValue[blog.blog_id] === "inherit", onChange: handleReassign(true, blog.blog_id) }), "Inherit all content to another user."] }) }), selectRadioValue[blog.blog_id] === "inherit" && (_jsxs(ListItem, { sx: {
100
+ pl: 7,
101
+ display: "grid",
102
+ gridTemplate: `
103
+ auto
104
+ 1fr`,
105
+ alignItems: "center",
106
+ gap: 1,
107
+ py: 0,
108
+ }, children: [_jsx(Typography, { size: "medium", children: "Attribute all content to:" }), _jsx(SelectWPUser, { size: "medium", blogId: blog.blog_id, defaultValue: 1, onChange: hanldeUserIdChange(blog.blog_id), slotSxProps: {
109
+ input: {
110
+ minWidth: 250,
111
+ },
112
+ } })] }))] }) })] }, `${blog.blog_id}`))) })] })), _jsx(Box, { sx: { mt: 2 }, children: _jsx(Button, { size: "medium", sx: { mt: 2 }, onClick: handleSubmit, children: "Confirm Deletion" }) })] }));
113
+ };
@@ -0,0 +1,6 @@
1
+ export declare const GenerateResetLinkModal: (props: {
2
+ open: boolean;
3
+ onClose: (...args: any) => any;
4
+ userLogin?: string;
5
+ }) => import("react/jsx-runtime").JSX.Element | null;
6
+ //# sourceMappingURL=GenerateResetLinkModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenerateResetLinkModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Profile/GenerateResetLinkModal.tsx"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB,GAAI,OAAO;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,mDAgEA,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from "react";
3
+ import { Box } from "@mui/material";
4
+ import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
5
+ import { Modal, ModalContent } from "@rnaga/wp-next-ui/Modal";
6
+ import { Typography } from "@rnaga/wp-next-ui/Typography";
7
+ import { LinkCopy } from "@rnaga/wp-next-ui/LinkCopy";
8
+ import { useWPAdmin } from "../../../../../wp-admin";
9
+ export const GenerateResetLinkModal = (props) => {
10
+ const { open, onClose, userLogin } = props;
11
+ const { site, overlay, wp: { viewport }, } = useWPAdmin();
12
+ const { actions, safeParse } = useServerActions();
13
+ const [resetKey, setResetKey] = useState();
14
+ useEffect(() => {
15
+ if (!open || !userLogin) {
16
+ return;
17
+ }
18
+ overlay.circular
19
+ .promise(actions.password.requestResetKey(userLogin))
20
+ .then((response) => {
21
+ const result = safeParse(response);
22
+ if (!result.success || typeof result.data !== "string") {
23
+ overlay.snackbar.open("error", result.error);
24
+ return;
25
+ }
26
+ setResetKey(result.data);
27
+ });
28
+ }, [open, userLogin]);
29
+ const resetLink = `${site.baseUrl}/auth/reset?key=${resetKey}&user_login=${userLogin}`;
30
+ if (!open || !resetKey) {
31
+ return null;
32
+ }
33
+ return (_jsx(Modal, { open: true, onClose: onClose, sx: { zIndex: 2 }, children: _jsxs(ModalContent, { sx: { minWidth: "50%" }, children: [_jsx(Typography, { component: "h2", size: "large", bold: true, children: "Reset link" }), _jsxs(Box, { children: [_jsxs(Typography, { component: "div", size: "medium", color: "primary", sx: {
34
+ display: "flex",
35
+ alignItems: "center",
36
+ gap: 1,
37
+ verticalAlign: "middle",
38
+ my: 2,
39
+ }, children: [_jsx(LinkCopy, { link: resetLink, showIcon: true }), " ", resetLink] }), _jsx(Typography, { bold: true, size: "medium", children: "The same link might have been sent out to the email." })] })] }) }));
40
+ };
@@ -0,0 +1,6 @@
1
+ export declare const ResetPasswordModal: (props: {
2
+ open: boolean;
3
+ userId: number;
4
+ onClose: (...args: any) => any;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=ResetPasswordModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResetPasswordModal.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Profile/ResetPasswordModal.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,kBAAkB,GAAI,OAAO;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChC,4CAmFA,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import VisibilityIcon from "@mui/icons-material/Visibility";
4
+ import VisibilityOffIcon from "@mui/icons-material/VisibilityOff";
5
+ import { FormControl, FormLabel, IconButton, Stack } from "@mui/material";
6
+ import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
7
+ import { Button } from "@rnaga/wp-next-ui/Button";
8
+ import { useFormData } from "@rnaga/wp-next-ui/hooks/use-form-data";
9
+ import { Input } from "@rnaga/wp-next-ui/Input";
10
+ import { Modal, ModalContent } from "@rnaga/wp-next-ui/Modal";
11
+ import { Typography } from "@rnaga/wp-next-ui/Typography";
12
+ import { useWPAdmin } from "../../../../../wp-admin";
13
+ export const ResetPasswordModal = (props) => {
14
+ const { open, userId, onClose } = props;
15
+ const { wp: { viewport }, overlay, } = useWPAdmin();
16
+ const { actions, safeParse } = useServerActions();
17
+ const { formData, submit, validation } = useFormData("reset-password");
18
+ const [visibility, setVisibility] = useState(false);
19
+ const validator = (data) => {
20
+ if (0 >= data.password.length ||
21
+ 0 >= data.confirmed.length ||
22
+ data.password !== data.confirmed) {
23
+ return [false, "Confirmed password does not match"];
24
+ }
25
+ return true;
26
+ };
27
+ const handleSubmit = async (data) => {
28
+ const newPassword = data.password.trim();
29
+ const result = await overlay.circular
30
+ .promise(actions.user.updatePassword(userId, newPassword))
31
+ .then(safeParse);
32
+ if (!result.success) {
33
+ overlay.snackbar.open("error", result.error);
34
+ return;
35
+ }
36
+ onClose();
37
+ };
38
+ return (_jsx(Modal, { open: open, onClose: onClose, sx: { zIndex: 2 }, children: _jsx("form", { onSubmit: submit(handleSubmit, validator), children: _jsxs(ModalContent, { children: [_jsx(Typography, { size: "large", bold: true, children: "Reset Password" }), _jsxs(Stack, { spacing: 1.5, children: [!validation?.valid && (_jsx(Typography, { color: "danger", children: validation?.error })), _jsxs(FormControl, { focused: false, children: [_jsx(FormLabel, { children: "New Password" }), _jsx(Input, { name: "password", size: "large", autoFocus: true, required: true, type: visibility ? "text" : "password", endAdornment: _jsx(IconButton, { onClick: () => {
39
+ setVisibility(!visibility);
40
+ }, children: visibility ? _jsx(VisibilityOffIcon, {}) : _jsx(VisibilityIcon, {}) }) })] }), _jsxs(FormControl, { focused: false, children: [_jsx(FormLabel, { children: "Confirm Password" }), _jsx(Input, { type: "password", name: "confirmed", required: true, size: "large" })] }), _jsx(Button, { type: "submit", size: "large", children: "Submit" })] })] }) }) }));
41
+ };
@@ -0,0 +1,4 @@
1
+ export declare const Profile: (props: {
2
+ userId: number;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Profile/index.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,OAAO,GAAI,OAAO;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,4CAyOhD,CAAC"}
@@ -0,0 +1,111 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { useEffect, useState, useTransition } from "react";
4
+ import { Box, FormControl, FormLabel, Stack } from "@mui/material";
5
+ import { useServerActions } from "@rnaga/wp-next-core/client/hooks/use-server-actions";
6
+ import { BasicMenuButton } from "@rnaga/wp-next-ui/BasicMenuButton";
7
+ import { Button } from "@rnaga/wp-next-ui/Button";
8
+ import { useFormData } from "@rnaga/wp-next-ui/hooks/use-form-data";
9
+ import { IconButtonDelete } from "@rnaga/wp-next-ui/IconButtonDelete";
10
+ import { Input } from "@rnaga/wp-next-ui/Input";
11
+ import { Loading } from "@rnaga/wp-next-ui/Loading";
12
+ import { useAdminNavigation } from "../../../../../hooks/use-admin-navigation";
13
+ import { useAdminUser } from "../../../../../hooks/use-admin-user";
14
+ import { useWPAdmin } from "../../../../../wp-admin";
15
+ import { GenerateResetLinkModal } from "./GenerateResetLinkModal";
16
+ import { ResetPasswordModal } from "./ResetPasswordModal";
17
+ export const Profile = (props) => {
18
+ const { userId } = props;
19
+ const { overlay, wp: { error }, } = useWPAdmin();
20
+ const { user, updateAdminUser } = useAdminUser();
21
+ const { goto } = useAdminNavigation();
22
+ const { actions, safeParse } = useServerActions();
23
+ const [loading, startTransition] = useTransition();
24
+ const [state, setState] = useState({
25
+ passwordModal: false,
26
+ showResetLink: false,
27
+ canDeleteUser: false,
28
+ });
29
+ const { formData, setFormData, submit } = useFormData("user");
30
+ useEffect(() => {
31
+ startTransition(async () => {
32
+ const response = await actions.user.get(userId).then(safeParse);
33
+ if (!response.success || !response.data) {
34
+ error.throw(response.error ?? "Failed to get user data");
35
+ }
36
+ const { user_pass, ...formData } = response.data;
37
+ const canDeleteUser = !!(await actions.user.can("delete_user", userId))
38
+ .data;
39
+ setFormData(formData);
40
+ setState({ ...state, canDeleteUser });
41
+ });
42
+ }, [userId]);
43
+ const toggleGenerateResetLink = (value) => {
44
+ setState({ ...state, showResetLink: value });
45
+ };
46
+ const toggleResetPassword = (value) => {
47
+ setState({ ...state, passwordModal: value });
48
+ };
49
+ const handleDelete = () => {
50
+ goto(`delete?id=${userId}`);
51
+ };
52
+ const handleSubmit = async (data) => {
53
+ data = {
54
+ ...data,
55
+ role: undefined, // Not to update role via profile page
56
+ meta_input: {
57
+ nickname: data.nickname,
58
+ last_name: data.last_name,
59
+ first_name: data.first_name,
60
+ description: data.description,
61
+ },
62
+ };
63
+ const result = await overlay.circular
64
+ .promise(actions.user.update(userId, data))
65
+ .then(safeParse);
66
+ if (!result.success) {
67
+ overlay.snackbar.open("error", result.error);
68
+ return;
69
+ }
70
+ if (userId == user?.ID) {
71
+ updateAdminUser();
72
+ }
73
+ };
74
+ return (_jsxs(_Fragment, { children: [_jsx(GenerateResetLinkModal, { open: state.showResetLink, onClose: () => toggleGenerateResetLink(false), userLogin: formData.user_login }), _jsx(ResetPasswordModal, { open: state.passwordModal, userId: userId, onClose: () => toggleResetPassword(false) }), _jsx(Loading, { loading: loading, sx: {
75
+ mt: 2,
76
+ }, children: _jsxs("form", { onSubmit: submit(handleSubmit), children: [_jsxs(Box, { sx: {
77
+ display: "flex",
78
+ justifyContent: "flex-end",
79
+ gap: 1.5,
80
+ height: 36,
81
+ mt: 1,
82
+ }, children: [_jsx(Button, { size: "medium", type: "submit", children: "Save" }), state.canDeleteUser && (_jsx(IconButtonDelete, { title: "Delete User", onClick: handleDelete })), _jsx(BasicMenuButton, { size: "medium", label: "Reset Password", showArrowIcon: false, items: [
83
+ {
84
+ label: "Generate Reset Link",
85
+ value: "generate",
86
+ },
87
+ {
88
+ label: "Set New Password",
89
+ value: "set",
90
+ },
91
+ ], onChange: (value) => {
92
+ if (value === "generate") {
93
+ toggleGenerateResetLink(true);
94
+ }
95
+ else if (value === "set") {
96
+ toggleResetPassword(true);
97
+ }
98
+ }, sx: {
99
+ minWidth: 200,
100
+ height: "100%",
101
+ backgroundColor: (theme) => theme.palette.background.paper,
102
+ } })] }), _jsxs(Stack, { spacing: 2, children: [_jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Username" }), _jsx(Input, { size: "large", name: "user_login", value: formData.user_login || "", disabled: true })] }), _jsxs(Box, { sx: {
103
+ display: "grid",
104
+ gap: 1.5,
105
+ gridTemplateColumns: "1fr 1fr",
106
+ }, children: [_jsxs(FormControl, { children: [_jsx(FormLabel, { required: true, children: "Nickname (required)" }), _jsx(Input, { size: "large", name: "nickname", value: formData.nickname })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Display Name" }), _jsx(Input, { size: "large", name: "display_name", value: formData.display_name })] })] }), _jsxs(Box, { sx: {
107
+ display: "grid",
108
+ gap: 1.5,
109
+ gridTemplateColumns: "1fr 1fr",
110
+ }, children: [_jsxs(FormControl, { children: [_jsx(FormLabel, { children: "First Name" }), _jsx(Input, { size: "large", name: "first_name", value: formData.first_name, placeholder: "First Name" })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Last Name" }), _jsx(Input, { size: "large", name: "last_name", value: formData.last_name, placeholder: "Last Name" })] })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { required: true, children: "Email (required)" }), _jsx(Input, { size: "large", name: "user_email", value: formData.user_email })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Website" }), _jsx(Input, { size: "large", name: "user_url", value: formData.user_url })] }), _jsxs(FormControl, { children: [_jsx(FormLabel, { children: "Biographical Info" }), _jsx(Input, { multiline: true, size: "large", name: "description", value: formData.description, minRows: 4, maxRows: 10 })] })] })] }) })] }));
111
+ };
@@ -0,0 +1,6 @@
1
+ import type * as wpCoreTypes from "@rnaga/wp-next-core/types";
2
+ export declare const ActionLink: (props: {
3
+ blog: wpCoreTypes.actions.RoleEditableBlogs[number];
4
+ blogIndex: number;
5
+ }) => import("react/jsx-runtime").JSX.Element | null;
6
+ //# sourceMappingURL=ActionLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionLink.d.ts","sourceRoot":"","sources":["../../../../../../../src/client/components/contents/users/Edit/Roles/ActionLink.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,KAAK,WAAW,MAAM,2BAA2B,CAAC;AAG9D,eAAO,MAAM,UAAU,GAAI,OAAO;IAChC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB,mDAkHA,CAAC"}