@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":"Radio.d.ts","sourceRoot":"","sources":["../../../src/client/ui/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,KAAK,qFA6EV,CAAC;AAGF,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuEzC,CAAC;AAEF,eAAe,KAAK,CAAC;AACrB,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { cn } from '../lib/utils';
4
+ const Radio = forwardRef(({ className, label, labelPosition = 'right', helperText, error, errorMessage, variant, size = 'md', disabled, ...props }, ref) => {
5
+ const radioClassName = cn('radio', {
6
+ 'radio-primary': variant === 'primary',
7
+ 'radio-secondary': variant === 'secondary',
8
+ 'radio-accent': variant === 'accent',
9
+ 'radio-success': variant === 'success',
10
+ 'radio-warning': variant === 'warning',
11
+ 'radio-info': variant === 'info',
12
+ 'radio-error': variant === 'error' || error,
13
+ 'radio-xs': size === 'xs',
14
+ 'radio-sm': size === 'sm',
15
+ 'radio-md': size === 'md',
16
+ 'radio-lg': size === 'lg',
17
+ }, className);
18
+ const wrapperClassName = cn('form-control', {
19
+ 'opacity-50 cursor-not-allowed': disabled,
20
+ });
21
+ const radioElement = (_jsx("input", { ref: ref, type: "radio", className: radioClassName, disabled: disabled, ...props }));
22
+ const labelElement = label && (_jsx("span", { className: "label-text cursor-pointer", children: label }));
23
+ return (_jsxs("div", { className: wrapperClassName, children: [_jsxs("label", { className: "label cursor-pointer justify-start gap-3", children: [labelPosition === 'left' && labelElement, radioElement, labelPosition === 'right' && labelElement] }), (helperText || errorMessage) && (_jsx("div", { className: "label", children: _jsx("span", { className: cn('label-text-alt', {
24
+ 'text-error': error || errorMessage,
25
+ 'text-base-content/70': !error && !errorMessage,
26
+ }), children: errorMessage || helperText }) }))] }));
27
+ });
28
+ // RadioGroup component for multiple radio options
29
+ const RadioGroup = ({ name, options, value, onChange, label, helperText, error, errorMessage, variant, size = 'md', direction = 'vertical', disabled, }) => {
30
+ const wrapperClassName = cn('form-control w-full', {
31
+ 'opacity-50 cursor-not-allowed': disabled,
32
+ });
33
+ const optionsContainerClassName = cn('flex gap-4', {
34
+ 'flex-col': direction === 'vertical',
35
+ 'flex-row flex-wrap': direction === 'horizontal',
36
+ });
37
+ return (_jsxs("div", { className: wrapperClassName, children: [label && (_jsx("div", { className: "label", children: _jsx("span", { className: "label-text", children: label }) })), _jsx("div", { className: optionsContainerClassName, children: options.map((option, index) => (_jsx(Radio, { name: name, value: option.value, checked: value === option.value, onChange: (e) => onChange?.(e.target.value), label: option.label, variant: variant, size: size, disabled: disabled || option.disabled }, index))) }), (helperText || errorMessage) && (_jsx("div", { className: "label", children: _jsx("span", { className: cn('label-text-alt', {
38
+ 'text-error': error || errorMessage,
39
+ 'text-base-content/70': !error && !errorMessage,
40
+ }), children: errorMessage || helperText }) }))] }));
41
+ };
42
+ export default Radio;
43
+ export { RadioGroup };
44
+ //# sourceMappingURL=Radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../src/client/ui/Radio.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ export interface RangeProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
3
+ label?: string;
4
+ labelAlt?: string;
5
+ helperText?: string;
6
+ error?: boolean;
7
+ errorMessage?: string;
8
+ variant?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error';
9
+ size?: 'xs' | 'sm' | 'md' | 'lg';
10
+ showValue?: boolean;
11
+ valuePosition?: 'top' | 'bottom' | 'right';
12
+ steps?: number[];
13
+ stepLabels?: string[];
14
+ }
15
+ declare const Range: React.ForwardRefExoticComponent<RangeProps & React.RefAttributes<HTMLInputElement>>;
16
+ export default Range;
17
+ //# sourceMappingURL=Range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Range.d.ts","sourceRoot":"","sources":["../../../src/client/ui/Range.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,QAAA,MAAM,KAAK,qFA6HV,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { cn } from '../lib/utils';
4
+ const Range = forwardRef(({ className, label, labelAlt, helperText, error, errorMessage, variant, size = 'md', showValue = false, valuePosition = 'right', steps, stepLabels, disabled, value, min = 0, max = 100, ...props }, ref) => {
5
+ const rangeClassName = cn('range', {
6
+ 'range-primary': variant === 'primary',
7
+ 'range-secondary': variant === 'secondary',
8
+ 'range-accent': variant === 'accent',
9
+ 'range-success': variant === 'success',
10
+ 'range-warning': variant === 'warning',
11
+ 'range-info': variant === 'info',
12
+ 'range-error': variant === 'error' || error,
13
+ 'range-xs': size === 'xs',
14
+ 'range-sm': size === 'sm',
15
+ 'range-md': size === 'md',
16
+ 'range-lg': size === 'lg',
17
+ }, className);
18
+ const wrapperClassName = cn('form-control w-full', {
19
+ 'opacity-50 cursor-not-allowed': disabled,
20
+ });
21
+ const rangeElement = (_jsx("input", { ref: ref, type: "range", className: rangeClassName, disabled: disabled, min: min, max: max, value: value, ...props }));
22
+ return (_jsxs("div", { className: wrapperClassName, children: [(label || labelAlt) && (_jsxs("div", { className: "label", children: [label && _jsx("span", { className: "label-text", children: label }), labelAlt && _jsx("span", { className: "label-text-alt", children: labelAlt })] })), _jsxs("div", { className: "flex items-center gap-3", children: [showValue && valuePosition === 'top' && (_jsx("div", { className: "text-sm font-medium", children: value })), _jsxs("div", { className: "flex-1", children: [showValue && valuePosition === 'top' && (_jsx("div", { className: "text-center mb-2", children: _jsx("span", { className: "text-sm font-medium", children: value }) })), rangeElement, steps && (_jsx("div", { className: "w-full flex justify-between text-xs px-2 mt-1", children: steps.map((step, index) => (_jsx("span", { className: "text-base-content/70", children: stepLabels?.[index] || step }, index))) })), showValue && valuePosition === 'bottom' && (_jsx("div", { className: "text-center mt-2", children: _jsx("span", { className: "text-sm font-medium", children: value }) }))] }), showValue && valuePosition === 'right' && (_jsx("div", { className: "text-sm font-medium min-w-[3rem] text-center", children: value }))] }), (helperText || errorMessage) && (_jsx("div", { className: "label", children: _jsx("span", { className: cn('label-text-alt', {
23
+ 'text-error': error || errorMessage,
24
+ 'text-base-content/70': !error && !errorMessage,
25
+ }), children: errorMessage || helperText }) }))] }));
26
+ });
27
+ export default Range;
28
+ //# sourceMappingURL=Range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Range.js","sourceRoot":"","sources":["../../../src/client/ui/Range.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface RatingProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
3
+ label?: string;
4
+ labelAlt?: string;
5
+ helperText?: string;
6
+ error?: boolean;
7
+ errorMessage?: string;
8
+ variant?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error';
9
+ size?: 'xs' | 'sm' | 'md' | 'lg';
10
+ max?: number;
11
+ half?: boolean;
12
+ readonly?: boolean;
13
+ showValue?: boolean;
14
+ onRatingChange?: (rating: number) => void;
15
+ }
16
+ declare const Rating: React.ForwardRefExoticComponent<RatingProps & React.RefAttributes<HTMLInputElement>>;
17
+ export default Rating;
18
+ //# sourceMappingURL=Rating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.d.ts","sourceRoot":"","sources":["../../../src/client/ui/Rating.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,QAAA,MAAM,MAAM,sFA+IX,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React, { forwardRef, useState } from 'react';
4
+ import { cn } from '../lib/utils';
5
+ const Rating = forwardRef(({ className, label, labelAlt, helperText, error, errorMessage, variant, size = 'md', max = 5, half = false, readonly = false, showValue = false, value = 0, onRatingChange, disabled, ...props }, ref) => {
6
+ const [hoverRating, setHoverRating] = useState(0);
7
+ const [currentRating, setCurrentRating] = useState(Number(value) || 0);
8
+ const ratingClassName = cn('rating', {
9
+ 'rating-half': half,
10
+ 'rating-xs': size === 'xs',
11
+ 'rating-sm': size === 'sm',
12
+ 'rating-md': size === 'md',
13
+ 'rating-lg': size === 'lg',
14
+ }, className);
15
+ const wrapperClassName = cn('form-control w-full', {
16
+ 'opacity-50 cursor-not-allowed': disabled,
17
+ });
18
+ const handleRatingClick = (rating) => {
19
+ if (readonly || disabled)
20
+ return;
21
+ setCurrentRating(rating);
22
+ onRatingChange?.(rating);
23
+ };
24
+ const handleMouseEnter = (rating) => {
25
+ if (readonly || disabled)
26
+ return;
27
+ setHoverRating(rating);
28
+ };
29
+ const handleMouseLeave = () => {
30
+ if (readonly || disabled)
31
+ return;
32
+ setHoverRating(0);
33
+ };
34
+ const renderStars = () => {
35
+ const stars = [];
36
+ const increment = half ? 0.5 : 1;
37
+ for (let i = increment; i <= max; i += increment) {
38
+ const isActive = (hoverRating || currentRating) >= i;
39
+ const isHalf = half && i % 1 !== 0;
40
+ stars.push(_jsx("input", { type: "radio", name: `rating-${Math.random()}`, className: cn('mask mask-star-2', {
41
+ 'mask-half-1': isHalf && half,
42
+ 'mask-half-2': !isHalf && half,
43
+ 'bg-orange-400': isActive && !variant,
44
+ 'bg-primary': isActive && variant === 'primary',
45
+ 'bg-secondary': isActive && variant === 'secondary',
46
+ 'bg-accent': isActive && variant === 'accent',
47
+ 'bg-success': isActive && variant === 'success',
48
+ 'bg-warning': isActive && variant === 'warning',
49
+ 'bg-info': isActive && variant === 'info',
50
+ 'bg-error': isActive && (variant === 'error' || error),
51
+ }), checked: currentRating === i, onClick: () => handleRatingClick(i), onMouseEnter: () => handleMouseEnter(i), onMouseLeave: handleMouseLeave, disabled: readonly || disabled, readOnly: readonly, ...props }, i));
52
+ }
53
+ return stars;
54
+ };
55
+ React.useEffect(() => {
56
+ setCurrentRating(Number(value) || 0);
57
+ }, [value]);
58
+ return (_jsxs("div", { className: wrapperClassName, children: [(label || labelAlt) && (_jsxs("div", { className: "label", children: [label && _jsx("span", { className: "label-text", children: label }), labelAlt && _jsx("span", { className: "label-text-alt", children: labelAlt })] })), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: ratingClassName, children: renderStars() }), showValue && (_jsxs("span", { className: "text-sm font-medium", children: [currentRating, "/", max] }))] }), (helperText || errorMessage) && (_jsx("div", { className: "label", children: _jsx("span", { className: cn('label-text-alt', {
59
+ 'text-error': error || errorMessage,
60
+ 'text-base-content/70': !error && !errorMessage,
61
+ }), children: errorMessage || helperText }) }))] }));
62
+ });
63
+ export default Rating;
64
+ //# sourceMappingURL=Rating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rating.js","sourceRoot":"","sources":["../../../src/client/ui/Rating.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ export interface SelectOption {
3
+ value: string | number;
4
+ label: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface SelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'> {
8
+ label?: string;
9
+ labelAlt?: string;
10
+ helperText?: string;
11
+ error?: boolean;
12
+ errorMessage?: string;
13
+ variant?: 'bordered' | 'ghost' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
14
+ size?: 'xs' | 'sm' | 'md' | 'lg';
15
+ options?: SelectOption[];
16
+ placeholder?: string;
17
+ }
18
+ declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
19
+ export default Select;
20
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/client/ui/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAC/G,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,QAAA,MAAM,MAAM,uFAmGX,CAAC;AAGF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { cn } from '../lib/utils';
4
+ const Select = forwardRef(({ className, label, labelAlt, helperText, error, errorMessage, variant = 'bordered', size = 'md', options = [], placeholder, disabled, children, ...props }, ref) => {
5
+ const selectClassName = cn('select w-full', {
6
+ 'select-bordered': variant === 'bordered',
7
+ 'select-ghost': variant === 'ghost',
8
+ 'select-primary': variant === 'primary',
9
+ 'select-secondary': variant === 'secondary',
10
+ 'select-accent': variant === 'accent',
11
+ 'select-info': variant === 'info',
12
+ 'select-success': variant === 'success',
13
+ 'select-warning': variant === 'warning',
14
+ 'select-error': variant === 'error' || error,
15
+ 'select-xs': size === 'xs',
16
+ 'select-sm': size === 'sm',
17
+ 'select-md': size === 'md',
18
+ 'select-lg': size === 'lg',
19
+ 'select-disabled': disabled,
20
+ }, className);
21
+ const wrapperClassName = cn('form-control w-full', {
22
+ 'opacity-50 cursor-not-allowed': disabled,
23
+ });
24
+ return (_jsxs("div", { className: wrapperClassName, children: [(label || labelAlt) && (_jsxs("div", { className: "label", children: [label && _jsx("span", { className: "label-text", children: label }), labelAlt && _jsx("span", { className: "label-text-alt", children: labelAlt })] })), _jsxs("select", { ref: ref, className: selectClassName, disabled: disabled, ...props, children: [placeholder && (_jsx("option", { value: "", disabled: true, children: placeholder })), options.length > 0 ? (options.map((option, index) => (_jsx("option", { value: option.value, disabled: option.disabled, children: option.label }, index)))) : (children)] }), (helperText || errorMessage) && (_jsx("div", { className: "label", children: _jsx("span", { className: cn('label-text-alt', {
25
+ 'text-error': error || errorMessage,
26
+ 'text-base-content/70': !error && !errorMessage,
27
+ }), children: errorMessage || helperText }) }))] }));
28
+ });
29
+ export default Select;
30
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/client/ui/Select.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAoBlC,MAAM,MAAM,GAAG,UAAU,CACvB,CAAC,EACC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,UAAU,EACV,KAAK,EACL,YAAY,EACZ,OAAO,GAAG,UAAU,EACpB,IAAI,GAAG,IAAI,EACX,OAAO,GAAG,EAAE,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,eAAe,GAAG,EAAE,CACxB,eAAe,EACf;QACE,iBAAiB,EAAE,OAAO,KAAK,UAAU;QACzC,cAAc,EAAE,OAAO,KAAK,OAAO;QACnC,gBAAgB,EAAE,OAAO,KAAK,SAAS;QACvC,kBAAkB,EAAE,OAAO,KAAK,WAAW;QAC3C,eAAe,EAAE,OAAO,KAAK,QAAQ;QACrC,aAAa,EAAE,OAAO,KAAK,MAAM;QACjC,gBAAgB,EAAE,OAAO,KAAK,SAAS;QACvC,gBAAgB,EAAE,OAAO,KAAK,SAAS;QACvC,cAAc,EAAE,OAAO,KAAK,OAAO,IAAI,KAAK;QAC5C,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,iBAAiB,EAAE,QAAQ;KAC5B,EACD,SAAS,CACV,CAAC;IAEF,MAAM,gBAAgB,GAAG,EAAE,CACzB,qBAAqB,EACrB;QACE,+BAA+B,EAAE,QAAQ;KAC1C,CACF,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,gBAAgB,aAE7B,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CACtB,eAAK,SAAS,EAAC,OAAO,aACnB,KAAK,IAAI,eAAM,SAAS,EAAC,YAAY,YAAE,KAAK,GAAQ,EACpD,QAAQ,IAAI,eAAM,SAAS,EAAC,gBAAgB,YAAE,QAAQ,GAAQ,IAC3D,CACP,EAGD,kBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,QAAQ,KACd,KAAK,aAER,WAAW,IAAI,CACd,iBAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,kBACtB,WAAW,GACL,CACV,EAEA,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACpB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC7B,iBAEE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,YAExB,MAAM,CAAC,KAAK,IAJR,KAAK,CAKH,CACV,CAAC,CACH,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,IACM,EAGR,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAC/B,cAAK,SAAS,EAAC,OAAO,YACpB,eAAM,SAAS,EAAE,EAAE,CACjB,gBAAgB,EAChB;wBACE,YAAY,EAAE,KAAK,IAAI,YAAY;wBACnC,sBAAsB,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY;qBAChD,CACF,YACE,YAAY,IAAI,UAAU,GACtB,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAGF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { TextareaHTMLAttributes } from 'react';
2
+ export type TextareaVariant = 'bordered' | 'ghost' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
3
+ export type TextareaResize = 'none' | 'both' | 'horizontal' | 'vertical';
4
+ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
5
+ label?: string;
6
+ error?: string;
7
+ helpText?: string;
8
+ helperText?: string;
9
+ variant?: TextareaVariant;
10
+ resize?: TextareaResize;
11
+ }
12
+ declare const Textarea: import("react").ForwardRefExoticComponent<TextareaProps & import("react").RefAttributes<HTMLTextAreaElement>>;
13
+ export default Textarea;
14
+ //# sourceMappingURL=Textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/client/ui/Textarea.tsx"],"names":[],"mappings":"AACA,OAAO,EAAiB,sBAAsB,EAAc,MAAM,OAAO,CAAA;AAEzE,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;AAClI,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,CAAA;AAExE,MAAM,WAAW,aAAc,SAAQ,sBAAsB,CAAC,mBAAmB,CAAC;IAChF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,QAAA,MAAM,QAAQ,+GAgDb,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../lib/utils';
3
+ import { forwardRef } from 'react';
4
+ const Textarea = forwardRef(({ className, label, error, helpText, helperText, variant, resize, style, ...props }, ref) => {
5
+ const helperContent = helperText || helpText;
6
+ const resizeStyle = resize ? { resize } : {};
7
+ return (_jsxs("div", { className: "form-control w-full", children: [label && (_jsx("label", { className: "label", children: _jsxs("span", { className: "label-text", children: [label, props.required && _jsx("span", { className: "text-error ml-1", children: "*" })] }) })), _jsx("textarea", { className: cn('textarea w-full', {
8
+ 'textarea-bordered': !variant || variant === 'bordered',
9
+ 'textarea-ghost': variant === 'ghost',
10
+ 'textarea-primary': variant === 'primary',
11
+ 'textarea-secondary': variant === 'secondary',
12
+ 'textarea-accent': variant === 'accent',
13
+ 'textarea-info': variant === 'info',
14
+ 'textarea-success': variant === 'success',
15
+ 'textarea-warning': variant === 'warning',
16
+ 'textarea-error': variant === 'error' || !!error,
17
+ }, className), style: { ...resizeStyle, ...style }, ref: ref, ...props }), error && (_jsx("label", { className: "label", children: _jsx("span", { className: "label-text-alt text-error", children: error }) })), helperContent && !error && (_jsx("label", { className: "label", children: _jsx("span", { className: "label-text-alt", children: helperContent }) }))] }));
18
+ });
19
+ export default Textarea;
20
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../../src/client/ui/Textarea.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAA;AACjC,OAAO,EAAyC,UAAU,EAAE,MAAM,OAAO,CAAA;AAczE,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3F,MAAM,aAAa,GAAG,UAAU,IAAI,QAAQ,CAAA;IAC5C,MAAM,WAAW,GAAkB,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAE3D,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aACjC,KAAK,IAAI,CACR,gBAAO,SAAS,EAAC,OAAO,YACtB,gBAAM,SAAS,EAAC,YAAY,aACzB,KAAK,EACL,KAAK,CAAC,QAAQ,IAAI,eAAM,SAAS,EAAC,iBAAiB,kBAAS,IACxD,GACD,CACT,EACD,mBACE,SAAS,EAAE,EAAE,CACX,iBAAiB,EACjB;oBACE,mBAAmB,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,UAAU;oBACvD,gBAAgB,EAAE,OAAO,KAAK,OAAO;oBACrC,kBAAkB,EAAE,OAAO,KAAK,SAAS;oBACzC,oBAAoB,EAAE,OAAO,KAAK,WAAW;oBAC7C,iBAAiB,EAAE,OAAO,KAAK,QAAQ;oBACvC,eAAe,EAAE,OAAO,KAAK,MAAM;oBACnC,kBAAkB,EAAE,OAAO,KAAK,SAAS;oBACzC,kBAAkB,EAAE,OAAO,KAAK,SAAS;oBACzC,gBAAgB,EAAE,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK;iBACjD,EACD,SAAS,CACV,EACD,KAAK,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,EAAE,EACnC,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,EACD,KAAK,IAAI,CACR,gBAAO,SAAS,EAAC,OAAO,YACtB,eAAM,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAQ,GACpD,CACT,EACA,aAAa,IAAI,CAAC,KAAK,IAAI,CAC1B,gBAAO,SAAS,EAAC,OAAO,YACtB,eAAM,SAAS,EAAC,gBAAgB,YAAE,aAAa,GAAQ,GACjD,CACT,IACG,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ export interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
3
+ label?: string;
4
+ labelPosition?: 'left' | 'right';
5
+ helperText?: string;
6
+ error?: boolean;
7
+ errorMessage?: string;
8
+ variant?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'info' | 'error';
9
+ size?: 'xs' | 'sm' | 'md' | 'lg';
10
+ }
11
+ declare const Toggle: React.ForwardRefExoticComponent<ToggleProps & React.RefAttributes<HTMLInputElement>>;
12
+ export default Toggle;
13
+ //# sourceMappingURL=Toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toggle.d.ts","sourceRoot":"","sources":["../../../src/client/ui/Toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAI1C,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACxF,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAClC;AAED,QAAA,MAAM,MAAM,sFA6EX,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from 'react';
3
+ import { cn } from '../lib/utils';
4
+ const Toggle = forwardRef(({ className, label, labelPosition = 'right', helperText, error, errorMessage, variant, size = 'md', disabled, ...props }, ref) => {
5
+ const toggleClassName = cn('toggle', {
6
+ 'toggle-primary': variant === 'primary',
7
+ 'toggle-secondary': variant === 'secondary',
8
+ 'toggle-accent': variant === 'accent',
9
+ 'toggle-success': variant === 'success',
10
+ 'toggle-warning': variant === 'warning',
11
+ 'toggle-info': variant === 'info',
12
+ 'toggle-error': variant === 'error' || error,
13
+ 'toggle-xs': size === 'xs',
14
+ 'toggle-sm': size === 'sm',
15
+ 'toggle-md': size === 'md',
16
+ 'toggle-lg': size === 'lg',
17
+ }, className);
18
+ const wrapperClassName = cn('form-control', {
19
+ 'opacity-50 cursor-not-allowed': disabled,
20
+ });
21
+ const toggleElement = (_jsx("input", { ref: ref, type: "checkbox", className: toggleClassName, disabled: disabled, ...props }));
22
+ const labelElement = label && (_jsx("span", { className: "label-text cursor-pointer", children: label }));
23
+ return (_jsxs("div", { className: wrapperClassName, children: [_jsxs("label", { className: "label cursor-pointer justify-start gap-3", children: [labelPosition === 'left' && labelElement, toggleElement, labelPosition === 'right' && labelElement] }), (helperText || errorMessage) && (_jsx("div", { className: "label", children: _jsx("span", { className: cn('label-text-alt', {
24
+ 'text-error': error || errorMessage,
25
+ 'text-base-content/70': !error && !errorMessage,
26
+ }), children: errorMessage || helperText }) }))] }));
27
+ });
28
+ export default Toggle;
29
+ //# sourceMappingURL=Toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toggle.js","sourceRoot":"","sources":["../../../src/client/ui/Toggle.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAYlC,MAAM,MAAM,GAAG,UAAU,CACvB,CAAC,EACC,SAAS,EACT,KAAK,EACL,aAAa,GAAG,OAAO,EACvB,UAAU,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,IAAI,GAAG,IAAI,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,GAAG,EAAE,EAAE;IACR,MAAM,eAAe,GAAG,EAAE,CACxB,QAAQ,EACR;QACE,gBAAgB,EAAE,OAAO,KAAK,SAAS;QACvC,kBAAkB,EAAE,OAAO,KAAK,WAAW;QAC3C,eAAe,EAAE,OAAO,KAAK,QAAQ;QACrC,gBAAgB,EAAE,OAAO,KAAK,SAAS;QACvC,gBAAgB,EAAE,OAAO,KAAK,SAAS;QACvC,aAAa,EAAE,OAAO,KAAK,MAAM;QACjC,cAAc,EAAE,OAAO,KAAK,OAAO,IAAI,KAAK;QAC5C,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,WAAW,EAAE,IAAI,KAAK,IAAI;QAC1B,WAAW,EAAE,IAAI,KAAK,IAAI;KAC3B,EACD,SAAS,CACV,CAAC;IAEF,MAAM,gBAAgB,GAAG,EAAE,CACzB,cAAc,EACd;QACE,+BAA+B,EAAE,QAAQ;KAC1C,CACF,CAAC;IAEF,MAAM,aAAa,GAAG,CACpB,gBACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,UAAU,EACf,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE,QAAQ,KACd,KAAK,GACT,CACH,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,IAAI,CAC5B,eAAM,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAQ,CAC3D,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAE,gBAAgB,aAC9B,iBAAO,SAAS,EAAC,0CAA0C,aACxD,aAAa,KAAK,MAAM,IAAI,YAAY,EACxC,aAAa,EACb,aAAa,KAAK,OAAO,IAAI,YAAY,IACpC,EAGP,CAAC,UAAU,IAAI,YAAY,CAAC,IAAI,CAC/B,cAAK,SAAS,EAAC,OAAO,YACpB,eAAM,SAAS,EAAE,EAAE,CACjB,gBAAgB,EAChB;wBACE,YAAY,EAAE,KAAK,IAAI,YAAY;wBACnC,sBAAsB,EAAE,CAAC,KAAK,IAAI,CAAC,YAAY;qBAChD,CACF,YACE,YAAY,IAAI,UAAU,GACtB,GACH,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,31 @@
1
+ export { default as Button } from './Button';
2
+ export type { ButtonProps, ButtonVariant, ButtonStyle, ButtonSize } from './Button';
3
+ export { default as Input } from './Input';
4
+ export type { InputProps } from './Input';
5
+ export { default as Textarea } from './Textarea';
6
+ export type { TextareaProps, TextareaVariant, TextareaResize } from './Textarea';
7
+ export { default as Select } from './Select';
8
+ export type { SelectProps, SelectOption } from './Select';
9
+ export { default as Checkbox } from './Checkbox';
10
+ export type { CheckboxProps } from './Checkbox';
11
+ export { default as Radio, RadioGroup } from './Radio';
12
+ export type { RadioProps, RadioGroupProps, RadioOption } from './Radio';
13
+ export { default as Toggle } from './Toggle';
14
+ export type { ToggleProps } from './Toggle';
15
+ export { default as FileInput } from './FileInput';
16
+ export type { FileInputProps } from './FileInput';
17
+ export { default as Range } from './Range';
18
+ export type { RangeProps } from './Range';
19
+ export { default as Rating } from './Rating';
20
+ export type { RatingProps } from './Rating';
21
+ export { default as Modal } from './Modal';
22
+ export { ConfirmModal, default as ConfirmModalDefault } from './ConfirmModal';
23
+ export { default as DataTable, TableRenderers, TableActions } from './DataTable';
24
+ export type { TableColumn, TableAction, BulkAction } from './DataTable';
25
+ export { default as Badge } from './Badge';
26
+ export type { BadgeVariant, BadgeSize, BadgeStyle } from './Badge';
27
+ export { default as Pagination } from './Pagination';
28
+ export type { PaginationDirection, PaginationVariant } from './Pagination';
29
+ export { default as LoadingSpinner } from './LoadingSpinner';
30
+ export { default as Dropdown } from './Dropdown';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGpF,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjF,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACjF,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGnE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAG3E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,35 @@
1
+ // Button
2
+ export { default as Button } from './Button';
3
+ // Input
4
+ export { default as Input } from './Input';
5
+ // Textarea
6
+ export { default as Textarea } from './Textarea';
7
+ // Select
8
+ export { default as Select } from './Select';
9
+ // Checkbox
10
+ export { default as Checkbox } from './Checkbox';
11
+ // Radio
12
+ export { default as Radio, RadioGroup } from './Radio';
13
+ // Toggle
14
+ export { default as Toggle } from './Toggle';
15
+ // FileInput
16
+ export { default as FileInput } from './FileInput';
17
+ // Range
18
+ export { default as Range } from './Range';
19
+ // Rating
20
+ export { default as Rating } from './Rating';
21
+ // Modal
22
+ export { default as Modal } from './Modal';
23
+ // ConfirmModal
24
+ export { ConfirmModal, default as ConfirmModalDefault } from './ConfirmModal';
25
+ // DataTable
26
+ export { default as DataTable, TableRenderers, TableActions } from './DataTable';
27
+ // Badge
28
+ export { default as Badge } from './Badge';
29
+ // Pagination
30
+ export { default as Pagination } from './Pagination';
31
+ // LoadingSpinner
32
+ export { default as LoadingSpinner } from './LoadingSpinner';
33
+ // Dropdown
34
+ export { default as Dropdown } from './Dropdown';
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/ui/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,WAAW;AACX,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGjD,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,WAAW;AACX,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGjD,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGvD,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAG7C,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAE3C,eAAe;AACf,OAAO,EAAE,YAAY,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE9E,YAAY;AACZ,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjF,QAAQ;AACR,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAG3C,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAGrD,iBAAiB;AACjB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,WAAW;AACX,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ declare const adminCorePreset: {
2
+ theme: {
3
+ extend: {
4
+ fontFamily: {
5
+ sans: string[];
6
+ };
7
+ };
8
+ };
9
+ };
10
+ export default adminCorePreset;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const adminCorePreset = {
4
+ theme: {
5
+ extend: {
6
+ fontFamily: {
7
+ sans: ['Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 'Segoe UI', 'Roboto', 'sans-serif'],
8
+ },
9
+ },
10
+ },
11
+ };
12
+ exports.default = adminCorePreset;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@udhuong/admin-core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Reusable admin core (client + server) — auth, RBAC, OAuth, user management. Built với NestJS + Next.js, ship trong 1 package với subpath exports.",
5
5
  "license": "MIT",
6
6
  "author": "udhuong <l19htm4n@gmail.com>",
@@ -62,12 +62,13 @@
62
62
  "main": "./dist/client/index.js",
63
63
  "types": "./dist/client/index.d.ts",
64
64
  "scripts": {
65
- "build": "npm run build:client && npm run build:server && npm run build:preset",
65
+ "build": "npm run clean && npm run build:client && npm run build:server && npm run build:preset",
66
66
  "build:client": "tsc -p tsconfig.client.json",
67
67
  "build:server": "tsc -p tsconfig.server.json",
68
68
  "build:preset": "tsc tailwind.preset.ts --outDir dist --declaration --module commonjs --esModuleInterop --target ES2020 --skipLibCheck",
69
69
  "type-check": "tsc -p tsconfig.client.json --noEmit && tsc -p tsconfig.server.json --noEmit",
70
- "clean": "rm -rf dist"
70
+ "clean": "rm -rf dist",
71
+ "prepack": "npm run build"
71
72
  },
72
73
  "dependencies": {
73
74
  "@hookform/resolvers": "^5.2.2",
@@ -110,20 +111,48 @@
110
111
  "typeorm": "^0.3.0"
111
112
  },
112
113
  "peerDependenciesMeta": {
113
- "@nestjs/common": { "optional": true },
114
- "@nestjs/config": { "optional": true },
115
- "@nestjs/core": { "optional": true },
116
- "@nestjs/event-emitter": { "optional": true },
117
- "@nestjs/jwt": { "optional": true },
118
- "@nestjs/passport": { "optional": true },
119
- "@nestjs/schedule": { "optional": true },
120
- "@nestjs/typeorm": { "optional": true },
121
- "next": { "optional": true },
122
- "react": { "optional": true },
123
- "react-dom": { "optional": true },
124
- "reflect-metadata": { "optional": true },
125
- "rxjs": { "optional": true },
126
- "typeorm": { "optional": true }
114
+ "@nestjs/common": {
115
+ "optional": true
116
+ },
117
+ "@nestjs/config": {
118
+ "optional": true
119
+ },
120
+ "@nestjs/core": {
121
+ "optional": true
122
+ },
123
+ "@nestjs/event-emitter": {
124
+ "optional": true
125
+ },
126
+ "@nestjs/jwt": {
127
+ "optional": true
128
+ },
129
+ "@nestjs/passport": {
130
+ "optional": true
131
+ },
132
+ "@nestjs/schedule": {
133
+ "optional": true
134
+ },
135
+ "@nestjs/typeorm": {
136
+ "optional": true
137
+ },
138
+ "next": {
139
+ "optional": true
140
+ },
141
+ "react": {
142
+ "optional": true
143
+ },
144
+ "react-dom": {
145
+ "optional": true
146
+ },
147
+ "reflect-metadata": {
148
+ "optional": true
149
+ },
150
+ "rxjs": {
151
+ "optional": true
152
+ },
153
+ "typeorm": {
154
+ "optional": true
155
+ }
127
156
  },
128
157
  "devDependencies": {
129
158
  "@nestjs/common": "^10.4.8",