@udhuong/admin-core 0.1.0 → 0.1.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 (275) hide show
  1. package/dist/client/auth/AuthContext.d.ts +19 -0
  2. package/dist/client/auth/AuthContext.d.ts.map +1 -0
  3. package/dist/client/auth/AuthContext.js +115 -0
  4. package/dist/client/auth/AuthContext.js.map +1 -0
  5. package/dist/client/auth/PermissionGuard.d.ts +12 -0
  6. package/dist/client/auth/PermissionGuard.d.ts.map +1 -0
  7. package/dist/client/auth/PermissionGuard.js +23 -0
  8. package/dist/client/auth/PermissionGuard.js.map +1 -0
  9. package/dist/client/auth/ProtectedPage.d.ts +9 -0
  10. package/dist/client/auth/ProtectedPage.d.ts.map +1 -0
  11. package/dist/client/auth/ProtectedPage.js +57 -0
  12. package/dist/client/auth/ProtectedPage.js.map +1 -0
  13. package/dist/client/auth/ProtectedRoute.d.ts +4 -0
  14. package/dist/client/auth/ProtectedRoute.d.ts.map +1 -0
  15. package/dist/client/auth/ProtectedRoute.js +25 -0
  16. package/dist/client/auth/ProtectedRoute.js.map +1 -0
  17. package/dist/client/auth/api-client.d.ts +4 -0
  18. package/dist/client/auth/api-client.d.ts.map +1 -0
  19. package/dist/client/auth/api-client.js +83 -0
  20. package/dist/client/auth/api-client.js.map +1 -0
  21. package/dist/client/auth/auth.service.d.ts +7 -0
  22. package/dist/client/auth/auth.service.d.ts.map +1 -0
  23. package/dist/client/auth/auth.service.js +19 -0
  24. package/dist/client/auth/auth.service.js.map +1 -0
  25. package/dist/client/auth/index.d.ts +7 -0
  26. package/dist/client/auth/index.d.ts.map +1 -0
  27. package/dist/client/auth/index.js +7 -0
  28. package/dist/client/auth/index.js.map +1 -0
  29. package/dist/client/components/PageHeader.d.ts +19 -0
  30. package/dist/client/components/PageHeader.d.ts.map +1 -0
  31. package/dist/client/components/PageHeader.js +7 -0
  32. package/dist/client/components/PageHeader.js.map +1 -0
  33. package/dist/client/components/Providers.d.ts +9 -0
  34. package/dist/client/components/Providers.d.ts.map +1 -0
  35. package/dist/client/components/Providers.js +52 -0
  36. package/dist/client/components/Providers.js.map +1 -0
  37. package/dist/client/components/ThemeToggle.d.ts +6 -0
  38. package/dist/client/components/ThemeToggle.d.ts.map +1 -0
  39. package/dist/client/components/ThemeToggle.js +22 -0
  40. package/dist/client/components/ThemeToggle.js.map +1 -0
  41. package/dist/client/components/index.d.ts +4 -0
  42. package/dist/client/components/index.d.ts.map +1 -0
  43. package/dist/client/components/index.js +4 -0
  44. package/dist/client/components/index.js.map +1 -0
  45. package/dist/client/config/AdminConfigContext.d.ts +12 -0
  46. package/dist/client/config/AdminConfigContext.d.ts.map +1 -0
  47. package/dist/client/config/AdminConfigContext.js +29 -0
  48. package/dist/client/config/AdminConfigContext.js.map +1 -0
  49. package/dist/client/config/defaults.d.ts +4 -0
  50. package/dist/client/config/defaults.d.ts.map +1 -0
  51. package/dist/client/config/defaults.js +86 -0
  52. package/dist/client/config/defaults.js.map +1 -0
  53. package/dist/client/config/types.d.ts +61 -0
  54. package/dist/client/config/types.d.ts.map +1 -0
  55. package/dist/client/config/types.js +2 -0
  56. package/dist/client/config/types.js.map +1 -0
  57. package/dist/client/constants/api-routes.d.ts +104 -0
  58. package/dist/client/constants/api-routes.d.ts.map +1 -0
  59. package/dist/client/constants/api-routes.js +91 -0
  60. package/dist/client/constants/api-routes.js.map +1 -0
  61. package/dist/client/constants/permissions.d.ts +38 -0
  62. package/dist/client/constants/permissions.d.ts.map +1 -0
  63. package/dist/client/constants/permissions.js +37 -0
  64. package/dist/client/constants/permissions.js.map +1 -0
  65. package/dist/client/contexts/ThemeContext.d.ts +3 -0
  66. package/dist/client/contexts/ThemeContext.d.ts.map +1 -0
  67. package/dist/client/contexts/ThemeContext.js +8 -0
  68. package/dist/client/contexts/ThemeContext.js.map +1 -0
  69. package/dist/client/hooks/useToast.d.ts +14 -0
  70. package/dist/client/hooks/useToast.d.ts.map +1 -0
  71. package/dist/client/hooks/useToast.js +90 -0
  72. package/dist/client/hooks/useToast.js.map +1 -0
  73. package/dist/client/index.d.ts +25 -0
  74. package/dist/client/index.d.ts.map +1 -0
  75. package/dist/client/index.js +33 -0
  76. package/dist/client/index.js.map +1 -0
  77. package/dist/client/layouts/AdminLayout.d.ts +4 -0
  78. package/dist/client/layouts/AdminLayout.d.ts.map +1 -0
  79. package/dist/client/layouts/AdminLayout.js +72 -0
  80. package/dist/client/layouts/AdminLayout.js.map +1 -0
  81. package/dist/client/layouts/Sidebar.d.ts +6 -0
  82. package/dist/client/layouts/Sidebar.d.ts.map +1 -0
  83. package/dist/client/layouts/Sidebar.js +86 -0
  84. package/dist/client/layouts/Sidebar.js.map +1 -0
  85. package/dist/client/layouts/index.d.ts +3 -0
  86. package/dist/client/layouts/index.d.ts.map +1 -0
  87. package/dist/client/layouts/index.js +3 -0
  88. package/dist/client/layouts/index.js.map +1 -0
  89. package/dist/client/lib/utils.d.ts +5 -0
  90. package/dist/client/lib/utils.d.ts.map +1 -0
  91. package/dist/client/lib/utils.js +22 -0
  92. package/dist/client/lib/utils.js.map +1 -0
  93. package/dist/client/pages/ChangePasswordPage.d.ts +2 -0
  94. package/dist/client/pages/ChangePasswordPage.d.ts.map +1 -0
  95. package/dist/client/pages/ChangePasswordPage.js +58 -0
  96. package/dist/client/pages/ChangePasswordPage.js.map +1 -0
  97. package/dist/client/pages/ForgotPasswordPage.d.ts +2 -0
  98. package/dist/client/pages/ForgotPasswordPage.d.ts.map +1 -0
  99. package/dist/client/pages/ForgotPasswordPage.js +30 -0
  100. package/dist/client/pages/ForgotPasswordPage.js.map +1 -0
  101. package/dist/client/pages/LoginPage.d.ts +2 -0
  102. package/dist/client/pages/LoginPage.d.ts.map +1 -0
  103. package/dist/client/pages/LoginPage.js +52 -0
  104. package/dist/client/pages/LoginPage.js.map +1 -0
  105. package/dist/client/pages/PermissionsPage.d.ts +2 -0
  106. package/dist/client/pages/PermissionsPage.d.ts.map +1 -0
  107. package/dist/client/pages/PermissionsPage.js +42 -0
  108. package/dist/client/pages/PermissionsPage.js.map +1 -0
  109. package/dist/client/pages/ProfilePage.d.ts +2 -0
  110. package/dist/client/pages/ProfilePage.d.ts.map +1 -0
  111. package/dist/client/pages/ProfilePage.js +107 -0
  112. package/dist/client/pages/ProfilePage.js.map +1 -0
  113. package/dist/client/pages/ResetPasswordPage.d.ts +2 -0
  114. package/dist/client/pages/ResetPasswordPage.d.ts.map +1 -0
  115. package/dist/client/pages/ResetPasswordPage.js +68 -0
  116. package/dist/client/pages/ResetPasswordPage.js.map +1 -0
  117. package/dist/client/pages/RolesPage.d.ts +2 -0
  118. package/dist/client/pages/RolesPage.d.ts.map +1 -0
  119. package/dist/client/pages/RolesPage.js +82 -0
  120. package/dist/client/pages/RolesPage.js.map +1 -0
  121. package/dist/client/pages/UnauthorizedPage.d.ts +2 -0
  122. package/dist/client/pages/UnauthorizedPage.d.ts.map +1 -0
  123. package/dist/client/pages/UnauthorizedPage.js +9 -0
  124. package/dist/client/pages/UnauthorizedPage.js.map +1 -0
  125. package/dist/client/pages/UserDetailPage.d.ts +6 -0
  126. package/dist/client/pages/UserDetailPage.d.ts.map +1 -0
  127. package/dist/client/pages/UserDetailPage.js +220 -0
  128. package/dist/client/pages/UserDetailPage.js.map +1 -0
  129. package/dist/client/pages/UserPreferencesPage.d.ts +2 -0
  130. package/dist/client/pages/UserPreferencesPage.d.ts.map +1 -0
  131. package/dist/client/pages/UserPreferencesPage.js +152 -0
  132. package/dist/client/pages/UserPreferencesPage.js.map +1 -0
  133. package/dist/client/pages/UsersPage.d.ts +2 -0
  134. package/dist/client/pages/UsersPage.d.ts.map +1 -0
  135. package/dist/client/pages/UsersPage.js +228 -0
  136. package/dist/client/pages/UsersPage.js.map +1 -0
  137. package/dist/client/pages/VerifyEmailPage.d.ts +2 -0
  138. package/dist/client/pages/VerifyEmailPage.d.ts.map +1 -0
  139. package/dist/client/pages/VerifyEmailPage.js +43 -0
  140. package/dist/client/pages/VerifyEmailPage.js.map +1 -0
  141. package/dist/client/pages/index.d.ts +13 -0
  142. package/dist/client/pages/index.d.ts.map +1 -0
  143. package/dist/client/pages/index.js +13 -0
  144. package/dist/client/pages/index.js.map +1 -0
  145. package/dist/client/pages/roles/RoleModal.d.ts +10 -0
  146. package/dist/client/pages/roles/RoleModal.d.ts.map +1 -0
  147. package/dist/client/pages/roles/RoleModal.js +123 -0
  148. package/dist/client/pages/roles/RoleModal.js.map +1 -0
  149. package/dist/client/pages/users/DangerZone.d.ts +10 -0
  150. package/dist/client/pages/users/DangerZone.d.ts.map +1 -0
  151. package/dist/client/pages/users/DangerZone.js +8 -0
  152. package/dist/client/pages/users/DangerZone.js.map +1 -0
  153. package/dist/client/pages/users/ProfileCard.d.ts +14 -0
  154. package/dist/client/pages/users/ProfileCard.d.ts.map +1 -0
  155. package/dist/client/pages/users/ProfileCard.js +8 -0
  156. package/dist/client/pages/users/ProfileCard.js.map +1 -0
  157. package/dist/client/pages/users/SecuritySection.d.ts +14 -0
  158. package/dist/client/pages/users/SecuritySection.d.ts.map +1 -0
  159. package/dist/client/pages/users/SecuritySection.js +16 -0
  160. package/dist/client/pages/users/SecuritySection.js.map +1 -0
  161. package/dist/client/pages/users/SessionsSection.d.ts +25 -0
  162. package/dist/client/pages/users/SessionsSection.d.ts.map +1 -0
  163. package/dist/client/pages/users/SessionsSection.js +93 -0
  164. package/dist/client/pages/users/SessionsSection.js.map +1 -0
  165. package/dist/client/pages/users/SocialAccountsSection.d.ts +29 -0
  166. package/dist/client/pages/users/SocialAccountsSection.d.ts.map +1 -0
  167. package/dist/client/pages/users/SocialAccountsSection.js +72 -0
  168. package/dist/client/pages/users/SocialAccountsSection.js.map +1 -0
  169. package/dist/client/pages/users/UserDetailModal.d.ts +24 -0
  170. package/dist/client/pages/users/UserDetailModal.d.ts.map +1 -0
  171. package/dist/client/pages/users/UserDetailModal.js +42 -0
  172. package/dist/client/pages/users/UserDetailModal.js.map +1 -0
  173. package/dist/client/pages/users/UserFilters.d.ts +14 -0
  174. package/dist/client/pages/users/UserFilters.d.ts.map +1 -0
  175. package/dist/client/pages/users/UserFilters.js +22 -0
  176. package/dist/client/pages/users/UserFilters.js.map +1 -0
  177. package/dist/client/pages/users/UserStats.d.ts +9 -0
  178. package/dist/client/pages/users/UserStats.d.ts.map +1 -0
  179. package/dist/client/pages/users/UserStats.js +37 -0
  180. package/dist/client/pages/users/UserStats.js.map +1 -0
  181. package/dist/client/pages/users/UserTable.d.ts +24 -0
  182. package/dist/client/pages/users/UserTable.d.ts.map +1 -0
  183. package/dist/client/pages/users/UserTable.js +39 -0
  184. package/dist/client/pages/users/UserTable.js.map +1 -0
  185. package/dist/client/pages/users/VerificationSection.d.ts +9 -0
  186. package/dist/client/pages/users/VerificationSection.d.ts.map +1 -0
  187. package/dist/client/pages/users/VerificationSection.js +8 -0
  188. package/dist/client/pages/users/VerificationSection.js.map +1 -0
  189. package/dist/client/types/auth.d.ts +29 -0
  190. package/dist/client/types/auth.d.ts.map +1 -0
  191. package/dist/client/types/auth.js +2 -0
  192. package/dist/client/types/auth.js.map +1 -0
  193. package/dist/client/types/rbac.d.ts +39 -0
  194. package/dist/client/types/rbac.d.ts.map +1 -0
  195. package/dist/client/types/rbac.js +5 -0
  196. package/dist/client/types/rbac.js.map +1 -0
  197. package/dist/client/types/status.d.ts +12 -0
  198. package/dist/client/types/status.d.ts.map +1 -0
  199. package/dist/client/types/status.js +14 -0
  200. package/dist/client/types/status.js.map +1 -0
  201. package/dist/client/ui/Badge.d.ts +14 -0
  202. package/dist/client/ui/Badge.d.ts.map +1 -0
  203. package/dist/client/ui/Badge.js +32 -0
  204. package/dist/client/ui/Badge.js.map +1 -0
  205. package/dist/client/ui/Button.d.ts +18 -0
  206. package/dist/client/ui/Button.d.ts.map +1 -0
  207. package/dist/client/ui/Button.js +33 -0
  208. package/dist/client/ui/Button.js.map +1 -0
  209. package/dist/client/ui/Checkbox.d.ts +14 -0
  210. package/dist/client/ui/Checkbox.d.ts.map +1 -0
  211. package/dist/client/ui/Checkbox.js +35 -0
  212. package/dist/client/ui/Checkbox.js.map +1 -0
  213. package/dist/client/ui/ConfirmModal.d.ts +14 -0
  214. package/dist/client/ui/ConfirmModal.d.ts.map +1 -0
  215. package/dist/client/ui/ConfirmModal.js +43 -0
  216. package/dist/client/ui/ConfirmModal.js.map +1 -0
  217. package/dist/client/ui/DataTable.d.ts +69 -0
  218. package/dist/client/ui/DataTable.d.ts.map +1 -0
  219. package/dist/client/ui/DataTable.js +133 -0
  220. package/dist/client/ui/DataTable.js.map +1 -0
  221. package/dist/client/ui/Dropdown.d.ts +11 -0
  222. package/dist/client/ui/Dropdown.d.ts.map +1 -0
  223. package/dist/client/ui/Dropdown.js +65 -0
  224. package/dist/client/ui/Dropdown.js.map +1 -0
  225. package/dist/client/ui/FileInput.d.ts +16 -0
  226. package/dist/client/ui/FileInput.d.ts.map +1 -0
  227. package/dist/client/ui/FileInput.js +45 -0
  228. package/dist/client/ui/FileInput.js.map +1 -0
  229. package/dist/client/ui/Input.d.ts +16 -0
  230. package/dist/client/ui/Input.d.ts.map +1 -0
  231. package/dist/client/ui/Input.js +33 -0
  232. package/dist/client/ui/Input.js.map +1 -0
  233. package/dist/client/ui/LoadingSpinner.d.ts +7 -0
  234. package/dist/client/ui/LoadingSpinner.d.ts.map +1 -0
  235. package/dist/client/ui/LoadingSpinner.js +12 -0
  236. package/dist/client/ui/LoadingSpinner.js.map +1 -0
  237. package/dist/client/ui/Modal.d.ts +14 -0
  238. package/dist/client/ui/Modal.d.ts.map +1 -0
  239. package/dist/client/ui/Modal.js +46 -0
  240. package/dist/client/ui/Modal.js.map +1 -0
  241. package/dist/client/ui/Pagination.d.ts +14 -0
  242. package/dist/client/ui/Pagination.d.ts.map +1 -0
  243. package/dist/client/ui/Pagination.js +50 -0
  244. package/dist/client/ui/Pagination.js.map +1 -0
  245. package/dist/client/ui/Radio.d.ts +34 -0
  246. package/dist/client/ui/Radio.d.ts.map +1 -0
  247. package/dist/client/ui/Radio.js +44 -0
  248. package/dist/client/ui/Radio.js.map +1 -0
  249. package/dist/client/ui/Range.d.ts +17 -0
  250. package/dist/client/ui/Range.d.ts.map +1 -0
  251. package/dist/client/ui/Range.js +28 -0
  252. package/dist/client/ui/Range.js.map +1 -0
  253. package/dist/client/ui/Rating.d.ts +18 -0
  254. package/dist/client/ui/Rating.d.ts.map +1 -0
  255. package/dist/client/ui/Rating.js +64 -0
  256. package/dist/client/ui/Rating.js.map +1 -0
  257. package/dist/client/ui/Select.d.ts +20 -0
  258. package/dist/client/ui/Select.d.ts.map +1 -0
  259. package/dist/client/ui/Select.js +30 -0
  260. package/dist/client/ui/Select.js.map +1 -0
  261. package/dist/client/ui/Textarea.d.ts +14 -0
  262. package/dist/client/ui/Textarea.d.ts.map +1 -0
  263. package/dist/client/ui/Textarea.js +20 -0
  264. package/dist/client/ui/Textarea.js.map +1 -0
  265. package/dist/client/ui/Toggle.d.ts +13 -0
  266. package/dist/client/ui/Toggle.d.ts.map +1 -0
  267. package/dist/client/ui/Toggle.js +29 -0
  268. package/dist/client/ui/Toggle.js.map +1 -0
  269. package/dist/client/ui/index.d.ts +31 -0
  270. package/dist/client/ui/index.d.ts.map +1 -0
  271. package/dist/client/ui/index.js +35 -0
  272. package/dist/client/ui/index.js.map +1 -0
  273. package/dist/tailwind.preset.d.ts +10 -0
  274. package/dist/tailwind.preset.js +12 -0
  275. package/package.json +46 -17
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeToggle.js","sourceRoot":"","sources":["../../../src/client/components/ThemeToggle.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AAMjC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEhC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,SAAS,EAAoB;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,GAAI,CAC/C,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,QAAQ,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAA;IACrE,CAAC,CAAA;IAED,OAAO,CACL,iBAAO,SAAS,EAAC,2CAA2C,aAC1D,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,KAAK,KAAK,iBAAiB,EACpC,QAAQ,EAAE,WAAW,gBACV,cAAc,GACzB,EACF,KAAC,GAAG,IAAC,SAAS,EAAC,kBAAkB,GAAG,EACpC,KAAC,IAAI,IAAC,SAAS,EAAC,iBAAiB,GAAG,IAC9B,CACT,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { CoreProviders } from './Providers';
2
+ export { default as ThemeToggle } from './ThemeToggle';
3
+ export { default as PageHeader } from './PageHeader';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { CoreProviders } from './Providers';
2
+ export { default as ThemeToggle } from './ThemeToggle';
3
+ export { default as PageHeader } from './PageHeader';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ import type { AdminConfig, CoreRoutes } from './types';
3
+ interface AdminConfigContextValue extends AdminConfig {
4
+ resolvedRoutes: CoreRoutes;
5
+ }
6
+ export declare function AdminConfigProvider({ config, children, }: {
7
+ config: AdminConfig;
8
+ children: ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function useAdminConfig(): AdminConfigContextValue;
11
+ export {};
12
+ //# sourceMappingURL=AdminConfigContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminConfigContext.d.ts","sourceRoot":"","sources":["../../../src/client/config/AdminConfigContext.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA6B,SAAS,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGtD,UAAU,uBAAwB,SAAQ,WAAW;IACnD,cAAc,EAAE,UAAU,CAAA;CAC3B;AAID,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,CAAA;IACnB,QAAQ,EAAE,SAAS,CAAA;CACpB,2CAqBA;AAED,wBAAgB,cAAc,IAAI,uBAAuB,CAIxD"}
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext } from 'react';
4
+ import { DEFAULT_CORE_ROUTES } from './defaults';
5
+ const AdminConfigContext = createContext(undefined);
6
+ export function AdminConfigProvider({ config, children, }) {
7
+ const mergedConfig = {
8
+ tokenStorageKey: 'admin_token',
9
+ ...config,
10
+ resolvedRoutes: { ...DEFAULT_CORE_ROUTES, ...config.routes },
11
+ features: {
12
+ users: true,
13
+ roles: true,
14
+ permissions: true,
15
+ settings: true,
16
+ profile: true,
17
+ userSettings: true,
18
+ ...config.features,
19
+ },
20
+ };
21
+ return (_jsx(AdminConfigContext.Provider, { value: mergedConfig, children: children }));
22
+ }
23
+ export function useAdminConfig() {
24
+ const ctx = useContext(AdminConfigContext);
25
+ if (!ctx)
26
+ throw new Error('useAdminConfig must be used within AdminConfigProvider');
27
+ return ctx;
28
+ }
29
+ //# sourceMappingURL=AdminConfigContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminConfigContext.js","sourceRoot":"","sources":["../../../src/client/config/AdminConfigContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAa,MAAM,OAAO,CAAA;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAMhD,MAAM,kBAAkB,GAAG,aAAa,CAAsC,SAAS,CAAC,CAAA;AAExF,MAAM,UAAU,mBAAmB,CAAC,EAClC,MAAM,EACN,QAAQ,GAIT;IACC,MAAM,YAAY,GAA4B;QAC5C,eAAe,EAAE,aAAa;QAC9B,GAAG,MAAM;QACT,cAAc,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE;QAC5D,QAAQ,EAAE;YACR,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI;YAClB,GAAG,MAAM,CAAC,QAAQ;SACnB;KACF,CAAA;IAED,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAC7C,QAAQ,GACmB,CAC/B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAC1C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IACnF,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { CoreRoutes, MenuSection, AdminConfig } from './types';
2
+ export declare const DEFAULT_CORE_ROUTES: CoreRoutes;
3
+ export declare function getDefaultMenuSections(routes: CoreRoutes, features?: AdminConfig['features']): MenuSection[];
4
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/client/config/defaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEnE,eAAO,MAAM,mBAAmB,EAAE,UAgBjC,CAAA;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,UAAU,EAClB,QAAQ,GAAE,WAAW,CAAC,UAAU,CAAM,GACrC,WAAW,EAAE,CA6Ef"}
@@ -0,0 +1,86 @@
1
+ import { LayoutDashboard, Users, Shield, Settings } from 'lucide-react';
2
+ import { createElement } from 'react';
3
+ export const DEFAULT_CORE_ROUTES = {
4
+ LOGIN: '/login',
5
+ DASHBOARD: '/dashboard',
6
+ CHANGE_PASSWORD: '/change-password',
7
+ FORGOT_PASSWORD: '/forgot-password',
8
+ RESET_PASSWORD: '/reset-password',
9
+ VERIFY_EMAIL: '/verify-email',
10
+ PROFILE: '/profile',
11
+ USER_SETTINGS: '/user-settings',
12
+ USERS_LIST: '/users',
13
+ USERS_NEW: '/users/create',
14
+ USERS_VIEW: (id) => `/users/${id}`,
15
+ ROLES_LIST: '/roles',
16
+ PERMISSIONS_LIST: '/permissions',
17
+ SETTINGS: '/settings',
18
+ UNAUTHORIZED: '/unauthorized',
19
+ };
20
+ export function getDefaultMenuSections(routes, features = {}) {
21
+ const { users = true, roles = true, permissions = true, settings = true, } = features;
22
+ const sections = [
23
+ {
24
+ items: [
25
+ {
26
+ label: 'Dashboard',
27
+ href: routes.DASHBOARD,
28
+ icon: createElement(LayoutDashboard, { className: 'w-5 h-5' }),
29
+ },
30
+ ],
31
+ },
32
+ ];
33
+ const systemItems = [];
34
+ if (users) {
35
+ systemItems.push({
36
+ label: 'Users',
37
+ icon: createElement(Users, { className: 'w-5 h-5' }),
38
+ children: [
39
+ {
40
+ label: 'All Users',
41
+ href: routes.USERS_LIST,
42
+ icon: createElement(Users, { className: 'w-4 h-4' }),
43
+ },
44
+ {
45
+ label: 'Add New',
46
+ href: routes.USERS_NEW,
47
+ icon: createElement(Users, { className: 'w-4 h-4' }),
48
+ },
49
+ ],
50
+ });
51
+ }
52
+ if (roles || permissions) {
53
+ const children = [];
54
+ if (roles) {
55
+ children.push({
56
+ label: 'Roles',
57
+ href: routes.ROLES_LIST,
58
+ icon: createElement(Shield, { className: 'w-4 h-4' }),
59
+ });
60
+ }
61
+ if (permissions) {
62
+ children.push({
63
+ label: 'Permissions',
64
+ href: routes.PERMISSIONS_LIST,
65
+ icon: createElement(Shield, { className: 'w-4 h-4' }),
66
+ });
67
+ }
68
+ systemItems.push({
69
+ label: 'Authorization',
70
+ icon: createElement(Shield, { className: 'w-5 h-5' }),
71
+ children,
72
+ });
73
+ }
74
+ if (settings) {
75
+ systemItems.push({
76
+ label: 'Settings',
77
+ href: routes.SETTINGS,
78
+ icon: createElement(Settings, { className: 'w-5 h-5' }),
79
+ });
80
+ }
81
+ if (systemItems.length > 0) {
82
+ sections.push({ label: 'System', items: systemItems });
83
+ }
84
+ return sections;
85
+ }
86
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/client/config/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { ReactNode } from 'react';
2
+ export interface SubMenuItem {
3
+ label: string;
4
+ href: string;
5
+ icon?: ReactNode;
6
+ }
7
+ export interface MenuItem {
8
+ label: string;
9
+ href?: string;
10
+ icon: ReactNode;
11
+ children?: SubMenuItem[];
12
+ permission?: string;
13
+ }
14
+ export interface MenuSection {
15
+ label?: string;
16
+ items: MenuItem[];
17
+ }
18
+ export interface CoreRoutes {
19
+ LOGIN: string;
20
+ DASHBOARD: string;
21
+ CHANGE_PASSWORD: string;
22
+ FORGOT_PASSWORD: string;
23
+ RESET_PASSWORD: string;
24
+ VERIFY_EMAIL: string;
25
+ PROFILE: string;
26
+ USER_SETTINGS: string;
27
+ USERS_LIST: string;
28
+ USERS_NEW: string;
29
+ USERS_VIEW: (id: string | number) => string;
30
+ ROLES_LIST: string;
31
+ PERMISSIONS_LIST: string;
32
+ SETTINGS: string;
33
+ UNAUTHORIZED: string;
34
+ }
35
+ export interface AdminConfig {
36
+ appName: string;
37
+ appLogo?: ReactNode;
38
+ appLogoText?: string;
39
+ homeUrl?: string;
40
+ apiUrl: string;
41
+ tokenStorageKey?: string;
42
+ menuSections?: MenuSection[];
43
+ extraMenuSections?: MenuSection[];
44
+ prependMenuSections?: MenuSection[];
45
+ routes?: Partial<CoreRoutes>;
46
+ features?: {
47
+ users?: boolean;
48
+ roles?: boolean;
49
+ permissions?: boolean;
50
+ settings?: boolean;
51
+ profile?: boolean;
52
+ userSettings?: boolean;
53
+ };
54
+ headerExtra?: ReactNode;
55
+ sidebarFooter?: ReactNode;
56
+ renderAvatarPicker?: (props: {
57
+ currentAvatar: string | null;
58
+ onSelect: (url: string) => void;
59
+ }) => ReactNode;
60
+ }
61
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,QAAQ,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B,iBAAiB,CAAC,EAAE,WAAW,EAAE,CAAA;IACjC,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAA;IAEnC,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IAE5B,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,KAAK,CAAC,EAAE,OAAO,CAAA;QACf,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;IAED,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,aAAa,CAAC,EAAE,SAAS,CAAA;IAEzB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAChC,KAAK,SAAS,CAAA;CAChB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/config/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,104 @@
1
+ export declare const CORE_API_ROUTES: {
2
+ readonly AUTH: {
3
+ readonly LOGIN: "/auth/login";
4
+ readonly REGISTER: "/auth/register";
5
+ readonly REFRESH: "/auth/refresh";
6
+ readonly TOKEN: "/auth/token";
7
+ readonly LOGOUT: "/auth/logout";
8
+ readonly PROFILE: "/auth/profile";
9
+ readonly UPDATE_PROFILE: "/auth/profile";
10
+ readonly CHANGE_PASSWORD: "/auth/change-password";
11
+ readonly PREFERENCES: "/auth/preferences";
12
+ readonly PREFERENCES_RESET: "/auth/preferences/reset";
13
+ };
14
+ readonly PASSWORD: {
15
+ readonly FORGOT: "/password/forgot";
16
+ readonly RESET: "/password/reset";
17
+ };
18
+ readonly EMAIL: {
19
+ readonly VERIFY: "/email/verify";
20
+ readonly RESEND_VERIFICATION: "/email/resend-verification";
21
+ };
22
+ readonly TWO_FACTOR: {
23
+ readonly ENABLE: "/two-factor/enable";
24
+ readonly VERIFY_SETUP: "/two-factor/verify-setup";
25
+ readonly DISABLE: "/two-factor";
26
+ };
27
+ readonly SESSIONS: {
28
+ readonly BASE: "/sessions";
29
+ readonly BY_ID: (id: number | string) => string;
30
+ readonly REVOKE_ALL: "/sessions/revoke-all";
31
+ };
32
+ readonly SOCIAL_AUTH: {
33
+ readonly LOGIN: "/social-auth/login";
34
+ };
35
+ readonly ADMIN_USERS: {
36
+ readonly BASE: "/admin/users";
37
+ readonly STATS: "/admin/users/stats";
38
+ readonly BY_ID: (id: number | string) => string;
39
+ readonly RESET_PASSWORD: (id: number | string) => string;
40
+ readonly GENERATE_PASSWORD: (id: number | string) => string;
41
+ readonly VERIFY_EMAIL: (id: number | string) => string;
42
+ readonly RESEND_VERIFICATION: (id: number | string) => string;
43
+ readonly UPDATE_STATUS: (id: number | string) => string;
44
+ readonly DISABLE_2FA: (id: number | string) => string;
45
+ readonly RESTORE: (id: number | string) => string;
46
+ readonly SESSIONS: (id: number | string) => string;
47
+ readonly REVOKE_SESSION: (userId: number | string, sessionId: number | string) => string;
48
+ readonly REVOKE_ALL_SESSIONS: (id: number | string) => string;
49
+ readonly SOCIAL_ACCOUNTS: (id: number | string) => string;
50
+ readonly UNLINK_SOCIAL_ACCOUNT: (userId: number | string, accountId: number | string) => string;
51
+ };
52
+ readonly ROLES: {
53
+ readonly BASE: "/admin/roles";
54
+ readonly BY_ID: (id: number | string) => string;
55
+ };
56
+ readonly PERMISSIONS: {
57
+ readonly BASE: "/admin/permissions";
58
+ };
59
+ readonly SETTINGS: {
60
+ readonly BASE: "/settings";
61
+ readonly PUBLIC: "/settings/public";
62
+ readonly BY_KEY: (key: string) => string;
63
+ readonly BY_GROUP: (group: string) => string;
64
+ readonly MAP: "/settings/map";
65
+ readonly BULK_UPDATE: "/settings/bulk/update";
66
+ };
67
+ };
68
+ /**
69
+ * @deprecated Dùng CORE_API_ROUTES thay thế — đã gộp tất cả routes vào 1 object duy nhất.
70
+ */
71
+ export declare const CORE_ADMIN_API_ROUTES: {
72
+ readonly AUTH: {
73
+ readonly LOGIN: "/auth/login";
74
+ readonly REGISTER: "/auth/register";
75
+ readonly REFRESH: "/auth/refresh";
76
+ readonly TOKEN: "/auth/token";
77
+ readonly LOGOUT: "/auth/logout";
78
+ readonly PROFILE: "/auth/profile";
79
+ readonly UPDATE_PROFILE: "/auth/profile";
80
+ readonly CHANGE_PASSWORD: "/auth/change-password";
81
+ readonly PREFERENCES: "/auth/preferences";
82
+ readonly PREFERENCES_RESET: "/auth/preferences/reset";
83
+ };
84
+ readonly USERS: {
85
+ readonly BASE: "/admin/users";
86
+ readonly BY_ID: (id: number | string) => string;
87
+ };
88
+ readonly ROLES: {
89
+ readonly BASE: "/admin/roles";
90
+ readonly BY_ID: (id: number | string) => string;
91
+ };
92
+ readonly PERMISSIONS: {
93
+ readonly BASE: "/admin/permissions";
94
+ };
95
+ readonly SETTINGS: {
96
+ readonly BASE: "/settings";
97
+ readonly PUBLIC: "/settings/public";
98
+ readonly BY_KEY: (key: string) => string;
99
+ readonly BY_GROUP: (group: string) => string;
100
+ readonly MAP: "/settings/map";
101
+ readonly BULK_UPDATE: "/settings/bulk/update";
102
+ };
103
+ };
104
+ //# sourceMappingURL=api-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-routes.d.ts","sourceRoot":"","sources":["../../../src/client/constants/api-routes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAqCZ,MAAM,GAAG,MAAM;;;;;;;;;6BAaf,MAAM,GAAG,MAAM;sCACN,MAAM,GAAG,MAAM;yCACZ,MAAM,GAAG,MAAM;oCACpB,MAAM,GAAG,MAAM;2CACR,MAAM,GAAG,MAAM;qCACrB,MAAM,GAAG,MAAM;mCACjB,MAAM,GAAG,MAAM;+BACnB,MAAM,GAAG,MAAM;gCACd,MAAM,GAAG,MAAM;0CACL,MAAM,GAAG,MAAM,aAAa,MAAM,GAAG,MAAM;2CAE1C,MAAM,GAAG,MAAM;uCACnB,MAAM,GAAG,MAAM;iDACL,MAAM,GAAG,MAAM,aAAa,MAAM,GAAG,MAAM;;;;6BAO/D,MAAM,GAAG,MAAM;;;;;;;;+BAYb,MAAM;mCACF,MAAM;;;;CAIlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;6BA1ClB,MAAM,GAAG,MAAM;;;;6BAoBf,MAAM,GAAG,MAAM;;;;;;;;+BAYb,MAAM;mCACF,MAAM;;;;CAkBlB,CAAC"}
@@ -0,0 +1,91 @@
1
+ export const CORE_API_ROUTES = {
2
+ // ─── AuthController: /auth ───────────────────────────────────────────────
3
+ AUTH: {
4
+ LOGIN: '/auth/login',
5
+ REGISTER: '/auth/register',
6
+ REFRESH: '/auth/refresh',
7
+ TOKEN: '/auth/token',
8
+ LOGOUT: '/auth/logout',
9
+ PROFILE: '/auth/profile',
10
+ UPDATE_PROFILE: '/auth/profile',
11
+ CHANGE_PASSWORD: '/auth/change-password',
12
+ PREFERENCES: '/auth/preferences',
13
+ PREFERENCES_RESET: '/auth/preferences/reset',
14
+ },
15
+ // ─── PasswordController: /password ───────────────────────────────────────
16
+ PASSWORD: {
17
+ FORGOT: '/password/forgot',
18
+ RESET: '/password/reset',
19
+ },
20
+ // ─── EmailController: /email ─────────────────────────────────────────────
21
+ EMAIL: {
22
+ VERIFY: '/email/verify',
23
+ RESEND_VERIFICATION: '/email/resend-verification',
24
+ },
25
+ // ─── TwoFactorController: /two-factor ────────────────────────────────────
26
+ TWO_FACTOR: {
27
+ ENABLE: '/two-factor/enable',
28
+ VERIFY_SETUP: '/two-factor/verify-setup',
29
+ DISABLE: '/two-factor',
30
+ },
31
+ // ─── SessionController: /sessions ─���──────────────────────────────────────
32
+ SESSIONS: {
33
+ BASE: '/sessions',
34
+ BY_ID: (id) => `/sessions/${id}`,
35
+ REVOKE_ALL: '/sessions/revoke-all',
36
+ },
37
+ // ─── SocialAuthController: /social-auth ──────────────────────────────────
38
+ SOCIAL_AUTH: {
39
+ LOGIN: '/social-auth/login',
40
+ },
41
+ // ─── AdminUserController: /admin/users ───────────────────────────────────
42
+ ADMIN_USERS: {
43
+ BASE: '/admin/users',
44
+ STATS: '/admin/users/stats',
45
+ BY_ID: (id) => `/admin/users/${id}`,
46
+ RESET_PASSWORD: (id) => `/admin/users/${id}/reset-password`,
47
+ GENERATE_PASSWORD: (id) => `/admin/users/${id}/generate-password`,
48
+ VERIFY_EMAIL: (id) => `/admin/users/${id}/verify-email`,
49
+ RESEND_VERIFICATION: (id) => `/admin/users/${id}/resend-verification`,
50
+ UPDATE_STATUS: (id) => `/admin/users/${id}/status`,
51
+ DISABLE_2FA: (id) => `/admin/users/${id}/disable-2fa`,
52
+ RESTORE: (id) => `/admin/users/${id}/restore`,
53
+ SESSIONS: (id) => `/admin/users/${id}/sessions`,
54
+ REVOKE_SESSION: (userId, sessionId) => `/admin/users/${userId}/sessions/${sessionId}`,
55
+ REVOKE_ALL_SESSIONS: (id) => `/admin/users/${id}/sessions/revoke-all`,
56
+ SOCIAL_ACCOUNTS: (id) => `/admin/users/${id}/social-accounts`,
57
+ UNLINK_SOCIAL_ACCOUNT: (userId, accountId) => `/admin/users/${userId}/social-accounts/${accountId}`,
58
+ },
59
+ // ─── RoleController: /admin/roles ────────────────────────────────────────
60
+ ROLES: {
61
+ BASE: '/admin/roles',
62
+ BY_ID: (id) => `/admin/roles/${id}`,
63
+ },
64
+ // ─── PermissionController: /admin/permissions ────────────────────────────
65
+ PERMISSIONS: {
66
+ BASE: '/admin/permissions',
67
+ },
68
+ // ─── Settings (app-level, không thuộc admin-core-api) ────────────────────
69
+ SETTINGS: {
70
+ BASE: '/settings',
71
+ PUBLIC: '/settings/public',
72
+ BY_KEY: (key) => `/settings/${key}`,
73
+ BY_GROUP: (group) => `/settings/group/${group}`,
74
+ MAP: '/settings/map',
75
+ BULK_UPDATE: '/settings/bulk/update',
76
+ },
77
+ };
78
+ /**
79
+ * @deprecated Dùng CORE_API_ROUTES thay thế — đã gộp tất cả routes vào 1 object duy nhất.
80
+ */
81
+ export const CORE_ADMIN_API_ROUTES = {
82
+ AUTH: CORE_API_ROUTES.AUTH,
83
+ USERS: {
84
+ BASE: CORE_API_ROUTES.ADMIN_USERS.BASE,
85
+ BY_ID: CORE_API_ROUTES.ADMIN_USERS.BY_ID,
86
+ },
87
+ ROLES: CORE_API_ROUTES.ROLES,
88
+ PERMISSIONS: CORE_API_ROUTES.PERMISSIONS,
89
+ SETTINGS: CORE_API_ROUTES.SETTINGS,
90
+ };
91
+ //# sourceMappingURL=api-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-routes.js","sourceRoot":"","sources":["../../../src/client/constants/api-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Core permissions strings — dùng cho client-side type checking trong
3
+ * <ProtectedPage permission={PERMISSIONS.ROLE_READ}>, guards, UI labels.
4
+ *
5
+ * Giá trị phải khớp với server-side `CORE_PERMISSIONS` trong
6
+ * `src/server/shared/permissions.ts`. Nếu thêm core permission, update cả 2 chỗ.
7
+ *
8
+ * Consumer có thể tham chiếu extra permissions bằng chuỗi thô (vd. 'blog.publish').
9
+ */
10
+ export declare const PERMISSIONS: {
11
+ readonly USER_READ: "user.read";
12
+ readonly USER_CREATE: "user.create";
13
+ readonly USER_UPDATE: "user.update";
14
+ readonly USER_DELETE: "user.delete";
15
+ readonly ROLE_READ: "role.read";
16
+ readonly ROLE_CREATE: "role.create";
17
+ readonly ROLE_UPDATE: "role.update";
18
+ readonly ROLE_DELETE: "role.delete";
19
+ readonly ADMIN_DASHBOARD: "admin.dashboard";
20
+ readonly ADMIN_SETTINGS: "admin.settings";
21
+ readonly ADMIN_ANALYTICS: "admin.analytics";
22
+ };
23
+ export declare const ROLES: {
24
+ readonly SUPER_ADMIN: "super-admin";
25
+ readonly ADMIN: "admin";
26
+ readonly VIEWER: "viewer";
27
+ };
28
+ export type Permission = typeof PERMISSIONS[keyof typeof PERMISSIONS];
29
+ export type RoleKey = typeof ROLES[keyof typeof ROLES];
30
+ export declare const checkPermission: (userPermissions: string[], permission: string) => boolean;
31
+ export declare const checkAnyPermission: (userPermissions: string[], permissions: string[]) => boolean;
32
+ export declare const checkAllPermissions: (userPermissions: string[], permissions: string[]) => boolean;
33
+ export declare const ROLE_PERMISSIONS: {
34
+ readonly SUPER_ADMIN: ("user.read" | "user.create" | "user.update" | "user.delete" | "role.read" | "role.create" | "role.update" | "role.delete" | "admin.dashboard" | "admin.settings" | "admin.analytics")[];
35
+ readonly ADMIN: ("user.read" | "user.create" | "user.update" | "user.delete" | "role.read" | "role.create" | "role.update" | "role.delete" | "admin.dashboard" | "admin.settings" | "admin.analytics")[];
36
+ readonly VIEWER: readonly ["user.read", "role.read", "admin.dashboard"];
37
+ };
38
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/client/constants/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;CAYd,CAAA;AAEV,eAAO,MAAM,KAAK;;;;CAIR,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAA;AACrE,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,CAAA;AAEtD,eAAO,MAAM,eAAe,GAAI,iBAAiB,MAAM,EAAE,EAAE,YAAY,MAAM,KAAG,OAC1C,CAAA;AAEtC,eAAO,MAAM,kBAAkB,GAAI,iBAAiB,MAAM,EAAE,EAAE,aAAa,MAAM,EAAE,KAAG,OAChC,CAAA;AAEtD,eAAO,MAAM,mBAAmB,GAAI,iBAAiB,MAAM,EAAE,EAAE,aAAa,MAAM,EAAE,KAAG,OAChC,CAAA;AAGvD,eAAO,MAAM,gBAAgB;;;;CAInB,CAAA"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Core permissions strings — dùng cho client-side type checking trong
3
+ * <ProtectedPage permission={PERMISSIONS.ROLE_READ}>, guards, UI labels.
4
+ *
5
+ * Giá trị phải khớp với server-side `CORE_PERMISSIONS` trong
6
+ * `src/server/shared/permissions.ts`. Nếu thêm core permission, update cả 2 chỗ.
7
+ *
8
+ * Consumer có thể tham chiếu extra permissions bằng chuỗi thô (vd. 'blog.publish').
9
+ */
10
+ export const PERMISSIONS = {
11
+ USER_READ: 'user.read',
12
+ USER_CREATE: 'user.create',
13
+ USER_UPDATE: 'user.update',
14
+ USER_DELETE: 'user.delete',
15
+ ROLE_READ: 'role.read',
16
+ ROLE_CREATE: 'role.create',
17
+ ROLE_UPDATE: 'role.update',
18
+ ROLE_DELETE: 'role.delete',
19
+ ADMIN_DASHBOARD: 'admin.dashboard',
20
+ ADMIN_SETTINGS: 'admin.settings',
21
+ ADMIN_ANALYTICS: 'admin.analytics',
22
+ };
23
+ export const ROLES = {
24
+ SUPER_ADMIN: 'super-admin',
25
+ ADMIN: 'admin',
26
+ VIEWER: 'viewer',
27
+ };
28
+ export const checkPermission = (userPermissions, permission) => userPermissions.includes(permission);
29
+ export const checkAnyPermission = (userPermissions, permissions) => permissions.some((p) => userPermissions.includes(p));
30
+ export const checkAllPermissions = (userPermissions, permissions) => permissions.every((p) => userPermissions.includes(p));
31
+ // Giữ tương thích với code cũ — vẫn export tên ROLE_PERMISSIONS (dù logic không còn dùng)
32
+ export const ROLE_PERMISSIONS = {
33
+ SUPER_ADMIN: Object.values(PERMISSIONS),
34
+ ADMIN: Object.values(PERMISSIONS),
35
+ VIEWER: [PERMISSIONS.USER_READ, PERMISSIONS.ROLE_READ, PERMISSIONS.ADMIN_DASHBOARD],
36
+ };
37
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/client/constants/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;CAC1B,CAAA;AAEV,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAA;AAKV,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,eAAyB,EAAE,UAAkB,EAAW,EAAE,CACxF,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,eAAyB,EAAE,WAAqB,EAAW,EAAE,CAC9F,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,eAAyB,EAAE,WAAqB,EAAW,EAAE,CAC/F,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AAEvD,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,MAAM,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,eAAe,CAAC;CAC3E,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare function ThemeProvider({ children, ...props }: any): import("react/jsx-runtime").JSX.Element;
2
+ export { useTheme } from 'next-themes';
3
+ //# sourceMappingURL=ThemeContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../../src/client/contexts/ThemeContext.tsx"],"names":[],"mappings":"AAIA,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,2CAcxD;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,8 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { ThemeProvider as NextThemesProvider } from 'next-themes';
4
+ export function ThemeProvider({ children, ...props }) {
5
+ return (_jsx(NextThemesProvider, { attribute: "data-theme", defaultTheme: "light", themes: ['light', 'dark'], enableSystem: false, storageKey: "admin-theme", forcedTheme: undefined, ...props, children: children }));
6
+ }
7
+ export { useTheme } from 'next-themes';
8
+ //# sourceMappingURL=ThemeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../../src/client/contexts/ThemeContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEjE,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAO;IACvD,OAAO,CACL,KAAC,kBAAkB,IACjB,SAAS,EAAC,YAAY,EACtB,YAAY,EAAC,OAAO,EACpB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EACzB,YAAY,EAAE,KAAK,EACnB,UAAU,EAAC,aAAa,EACxB,WAAW,EAAE,SAAS,KAClB,KAAK,YAER,QAAQ,GACU,CACtB,CAAA;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,14 @@
1
+ interface ToastOptions {
2
+ duration?: number;
3
+ position?: 'top-center' | 'top-left' | 'top-right' | 'bottom-center' | 'bottom-left' | 'bottom-right';
4
+ }
5
+ export declare const useToast: () => {
6
+ success: (message: string, options?: ToastOptions) => void;
7
+ error: (message: string, options?: ToastOptions) => void;
8
+ warning: (message: string, options?: ToastOptions) => void;
9
+ info: (message: string, options?: ToastOptions) => void;
10
+ permissionError: (action?: string) => void;
11
+ showToast: (message: string, type?: "success" | "error" | "warning" | "info", options?: ToastOptions) => void;
12
+ };
13
+ export {};
14
+ //# sourceMappingURL=useToast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToast.d.ts","sourceRoot":"","sources":["../../../src/client/hooks/useToast.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,cAAc,CAAA;CACtG;AAED,eAAO,MAAM,QAAQ;uBACW,MAAM,YAAY,YAAY;qBAehC,MAAM,YAAY,YAAY;uBAe5B,MAAM,YAAY,YAAY;oBAejC,MAAM,YAAY,YAAY;+BAenB,MAAM;yBAQhB,MAAM,SAAQ,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,YAAqB,YAAY;CAyBpH,CAAA"}