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