@goplusvn/core 0.1.1 → 0.1.3

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 (223) hide show
  1. package/package.json +31 -175
  2. package/dist/audit/index.d.mts +0 -115
  3. package/dist/audit/index.d.ts +0 -115
  4. package/dist/audit/index.js +0 -204
  5. package/dist/audit/index.js.map +0 -1
  6. package/dist/audit/index.mjs +0 -200
  7. package/dist/audit/index.mjs.map +0 -1
  8. package/dist/auth/index.d.mts +0 -86
  9. package/dist/auth/index.d.ts +0 -86
  10. package/dist/auth/index.js +0 -210
  11. package/dist/auth/index.js.map +0 -1
  12. package/dist/auth/index.mjs +0 -198
  13. package/dist/auth/index.mjs.map +0 -1
  14. package/dist/button-1dWvP9Ib.d.mts +0 -30
  15. package/dist/button-1dWvP9Ib.d.ts +0 -30
  16. package/dist/calendar-2QzdEo1z.d.mts +0 -20
  17. package/dist/calendar-2QzdEo1z.d.ts +0 -20
  18. package/dist/code-generation/index.d.mts +0 -30
  19. package/dist/code-generation/index.d.ts +0 -30
  20. package/dist/code-generation/index.js +0 -31
  21. package/dist/code-generation/index.js.map +0 -1
  22. package/dist/code-generation/index.mjs +0 -28
  23. package/dist/code-generation/index.mjs.map +0 -1
  24. package/dist/configs/index.d.mts +0 -175
  25. package/dist/configs/index.d.ts +0 -175
  26. package/dist/configs/index.js +0 -254
  27. package/dist/configs/index.js.map +0 -1
  28. package/dist/configs/index.mjs +0 -233
  29. package/dist/configs/index.mjs.map +0 -1
  30. package/dist/crud/index.d.mts +0 -646
  31. package/dist/crud/index.d.ts +0 -646
  32. package/dist/crud/index.js +0 -11772
  33. package/dist/crud/index.js.map +0 -1
  34. package/dist/crud/index.mjs +0 -11665
  35. package/dist/crud/index.mjs.map +0 -1
  36. package/dist/crud/server.d.mts +0 -20
  37. package/dist/crud/server.d.ts +0 -20
  38. package/dist/crud/server.js +0 -123
  39. package/dist/crud/server.js.map +0 -1
  40. package/dist/crud/server.mjs +0 -120
  41. package/dist/crud/server.mjs.map +0 -1
  42. package/dist/data-table-skeleton-12NA8Mjx.d.mts +0 -39
  43. package/dist/data-table-skeleton-12NA8Mjx.d.ts +0 -39
  44. package/dist/dialog-bKfjZMTd.d.mts +0 -22
  45. package/dist/dialog-bKfjZMTd.d.ts +0 -22
  46. package/dist/dynamic-icon-DrGIiu2N.d.mts +0 -10
  47. package/dist/dynamic-icon-DrGIiu2N.d.ts +0 -10
  48. package/dist/home/index.d.mts +0 -269
  49. package/dist/home/index.d.ts +0 -269
  50. package/dist/home/index.js +0 -1678
  51. package/dist/home/index.js.map +0 -1
  52. package/dist/home/index.mjs +0 -1635
  53. package/dist/home/index.mjs.map +0 -1
  54. package/dist/hooks/index.d.mts +0 -7
  55. package/dist/hooks/index.d.ts +0 -7
  56. package/dist/hooks/index.js +0 -8316
  57. package/dist/hooks/index.js.map +0 -1
  58. package/dist/hooks/index.mjs +0 -8255
  59. package/dist/hooks/index.mjs.map +0 -1
  60. package/dist/index-50hpiPrV.d.ts +0 -116
  61. package/dist/index-B9zQVEVi.d.mts +0 -116
  62. package/dist/index.d.mts +0 -5
  63. package/dist/index.d.ts +0 -5
  64. package/dist/index.js +0 -123
  65. package/dist/index.js.map +0 -1
  66. package/dist/index.mjs +0 -118
  67. package/dist/index.mjs.map +0 -1
  68. package/dist/infrastructure/index.d.mts +0 -423
  69. package/dist/infrastructure/index.d.ts +0 -423
  70. package/dist/infrastructure/index.js +0 -633
  71. package/dist/infrastructure/index.js.map +0 -1
  72. package/dist/infrastructure/index.mjs +0 -619
  73. package/dist/infrastructure/index.mjs.map +0 -1
  74. package/dist/label-DWTEkNPo.d.ts +0 -226
  75. package/dist/label-LPpdcoBx.d.mts +0 -226
  76. package/dist/layout/index.d.mts +0 -48
  77. package/dist/layout/index.d.ts +0 -48
  78. package/dist/layout/index.js +0 -117
  79. package/dist/layout/index.js.map +0 -1
  80. package/dist/layout/index.mjs +0 -90
  81. package/dist/layout/index.mjs.map +0 -1
  82. package/dist/navigation/index.d.mts +0 -16
  83. package/dist/navigation/index.d.ts +0 -16
  84. package/dist/navigation/index.js +0 -53
  85. package/dist/navigation/index.js.map +0 -1
  86. package/dist/navigation/index.mjs +0 -50
  87. package/dist/navigation/index.mjs.map +0 -1
  88. package/dist/notification/index.d.mts +0 -105
  89. package/dist/notification/index.d.ts +0 -105
  90. package/dist/notification/index.js +0 -278
  91. package/dist/notification/index.js.map +0 -1
  92. package/dist/notification/index.mjs +0 -274
  93. package/dist/notification/index.mjs.map +0 -1
  94. package/dist/organization/index.d.mts +0 -99
  95. package/dist/organization/index.d.ts +0 -99
  96. package/dist/organization/index.js +0 -360
  97. package/dist/organization/index.js.map +0 -1
  98. package/dist/organization/index.mjs +0 -352
  99. package/dist/organization/index.mjs.map +0 -1
  100. package/dist/plugin/index.d.mts +0 -83
  101. package/dist/plugin/index.d.ts +0 -83
  102. package/dist/plugin/index.js +0 -86
  103. package/dist/plugin/index.js.map +0 -1
  104. package/dist/plugin/index.mjs +0 -84
  105. package/dist/plugin/index.mjs.map +0 -1
  106. package/dist/providers/index.d.mts +0 -25
  107. package/dist/providers/index.d.ts +0 -25
  108. package/dist/providers/index.js +0 -84
  109. package/dist/providers/index.js.map +0 -1
  110. package/dist/providers/index.mjs +0 -77
  111. package/dist/providers/index.mjs.map +0 -1
  112. package/dist/rbac/index.d.mts +0 -226
  113. package/dist/rbac/index.d.ts +0 -226
  114. package/dist/rbac/index.js +0 -4784
  115. package/dist/rbac/index.js.map +0 -1
  116. package/dist/rbac/index.mjs +0 -4722
  117. package/dist/rbac/index.mjs.map +0 -1
  118. package/dist/rbac/permissions.d.mts +0 -26
  119. package/dist/rbac/permissions.d.ts +0 -26
  120. package/dist/rbac/permissions.js +0 -94
  121. package/dist/rbac/permissions.js.map +0 -1
  122. package/dist/rbac/permissions.mjs +0 -90
  123. package/dist/rbac/permissions.mjs.map +0 -1
  124. package/dist/rbac/server.d.mts +0 -1
  125. package/dist/rbac/server.d.ts +0 -1
  126. package/dist/rbac/server.js +0 -128
  127. package/dist/rbac/server.js.map +0 -1
  128. package/dist/rbac/server.mjs +0 -124
  129. package/dist/rbac/server.mjs.map +0 -1
  130. package/dist/schemas/index.d.mts +0 -1257
  131. package/dist/schemas/index.d.ts +0 -1257
  132. package/dist/schemas/index.js +0 -572
  133. package/dist/schemas/index.js.map +0 -1
  134. package/dist/schemas/index.mjs +0 -523
  135. package/dist/schemas/index.mjs.map +0 -1
  136. package/dist/server-QuYCTa89.d.mts +0 -83
  137. package/dist/server-QuYCTa89.d.ts +0 -83
  138. package/dist/sonner-C74GlRDQ.d.mts +0 -71
  139. package/dist/sonner-C74GlRDQ.d.ts +0 -71
  140. package/dist/status-BOXZgIqX.d.mts +0 -12
  141. package/dist/status-BOXZgIqX.d.ts +0 -12
  142. package/dist/system/index.d.mts +0 -77
  143. package/dist/system/index.d.ts +0 -77
  144. package/dist/system/index.js +0 -102
  145. package/dist/system/index.js.map +0 -1
  146. package/dist/system/index.mjs +0 -100
  147. package/dist/system/index.mjs.map +0 -1
  148. package/dist/tabs-C6FfBwPY.d.mts +0 -18
  149. package/dist/tabs-C6FfBwPY.d.ts +0 -18
  150. package/dist/tenant-provider-B8eC_Wpb.d.mts +0 -27
  151. package/dist/tenant-provider-B8eC_Wpb.d.ts +0 -27
  152. package/dist/types/index.d.mts +0 -469
  153. package/dist/types/index.d.ts +0 -469
  154. package/dist/types/index.js +0 -25
  155. package/dist/types/index.js.map +0 -1
  156. package/dist/types/index.mjs +0 -21
  157. package/dist/types/index.mjs.map +0 -1
  158. package/dist/ui/auth.d.mts +0 -39
  159. package/dist/ui/auth.d.ts +0 -39
  160. package/dist/ui/auth.js +0 -4941
  161. package/dist/ui/auth.js.map +0 -1
  162. package/dist/ui/auth.mjs +0 -4896
  163. package/dist/ui/auth.mjs.map +0 -1
  164. package/dist/ui/crud.d.mts +0 -2
  165. package/dist/ui/crud.d.ts +0 -2
  166. package/dist/ui/crud.js +0 -4
  167. package/dist/ui/crud.js.map +0 -1
  168. package/dist/ui/crud.mjs +0 -3
  169. package/dist/ui/crud.mjs.map +0 -1
  170. package/dist/ui/data-display.d.mts +0 -596
  171. package/dist/ui/data-display.d.ts +0 -596
  172. package/dist/ui/data-display.js +0 -5307
  173. package/dist/ui/data-display.js.map +0 -1
  174. package/dist/ui/data-display.mjs +0 -5212
  175. package/dist/ui/data-display.mjs.map +0 -1
  176. package/dist/ui/feedback.d.mts +0 -55
  177. package/dist/ui/feedback.d.ts +0 -55
  178. package/dist/ui/feedback.js +0 -2608
  179. package/dist/ui/feedback.js.map +0 -1
  180. package/dist/ui/feedback.mjs +0 -2526
  181. package/dist/ui/feedback.mjs.map +0 -1
  182. package/dist/ui/forms.d.mts +0 -309
  183. package/dist/ui/forms.d.ts +0 -309
  184. package/dist/ui/forms.js +0 -4656
  185. package/dist/ui/forms.js.map +0 -1
  186. package/dist/ui/forms.mjs +0 -4571
  187. package/dist/ui/forms.mjs.map +0 -1
  188. package/dist/ui/index.d.mts +0 -331
  189. package/dist/ui/index.d.ts +0 -331
  190. package/dist/ui/index.js +0 -16953
  191. package/dist/ui/index.js.map +0 -1
  192. package/dist/ui/index.mjs +0 -16598
  193. package/dist/ui/index.mjs.map +0 -1
  194. package/dist/ui/primitives/client.d.mts +0 -61
  195. package/dist/ui/primitives/client.d.ts +0 -61
  196. package/dist/ui/primitives/client.js +0 -3408
  197. package/dist/ui/primitives/client.js.map +0 -1
  198. package/dist/ui/primitives/client.mjs +0 -3256
  199. package/dist/ui/primitives/client.mjs.map +0 -1
  200. package/dist/ui/primitives.d.mts +0 -113
  201. package/dist/ui/primitives.d.ts +0 -113
  202. package/dist/ui/primitives.js +0 -3356
  203. package/dist/ui/primitives.js.map +0 -1
  204. package/dist/ui/primitives.mjs +0 -3227
  205. package/dist/ui/primitives.mjs.map +0 -1
  206. package/dist/user/index.d.mts +0 -228
  207. package/dist/user/index.d.ts +0 -228
  208. package/dist/user/index.js +0 -4306
  209. package/dist/user/index.js.map +0 -1
  210. package/dist/user/index.mjs +0 -4260
  211. package/dist/user/index.mjs.map +0 -1
  212. package/dist/utils/index.d.mts +0 -205
  213. package/dist/utils/index.d.ts +0 -205
  214. package/dist/utils/index.js +0 -574
  215. package/dist/utils/index.js.map +0 -1
  216. package/dist/utils/index.mjs +0 -514
  217. package/dist/utils/index.mjs.map +0 -1
  218. package/dist/workflow/index.d.mts +0 -40
  219. package/dist/workflow/index.d.ts +0 -40
  220. package/dist/workflow/index.js +0 -3710
  221. package/dist/workflow/index.js.map +0 -1
  222. package/dist/workflow/index.mjs +0 -3677
  223. package/dist/workflow/index.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/configs/status.ts","../../src/schemas/supplier.schema.ts","../../src/schemas/material.schema.ts","../../src/schemas/material-category.schema.ts","../../src/schemas/uom.schema.ts","../../src/schemas/warehouse.schema.ts","../../src/schemas/partner-company.schema.ts","../../src/schemas/system-category-group.schema.ts","../../src/schemas/system-category.schema.ts","../../src/schemas/action.schema.ts","../../src/schemas/resource.schema.ts","../../src/schemas/material-pricing.schema.ts","../../src/schemas/user.schema.ts","../../src/schemas/role.schema.ts","../../src/schemas/user-supplier.schema.ts","../../src/schemas/system-config.schema.ts","../../src/schemas/company.schema.ts","../../src/schemas/branch.schema.ts","../../src/schemas/register-schema.ts","../../src/schemas/sign-in-schema.ts","../../src/schemas/forgot-passward-schema.ts","../../src/schemas/new-passward-schema.ts","../../src/schemas/verify-email-schema.ts","../../src/schemas/coming-soon-schema.ts"],"names":["z"],"mappings":"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","file":"index.mjs","sourcesContent":["export const STATUS_ACTIVE = \"active\";\nexport const STATUS_INACTIVE = \"inactive\";\n\nexport const STATUS_VALUES = [STATUS_ACTIVE, STATUS_INACTIVE] as const;\n\nexport const STATUS_OPTIONS = [\n { label: \"crud.common.options.active\", value: STATUS_ACTIVE },\n { label: \"crud.common.options.inactive\", value: STATUS_INACTIVE },\n];\n\nexport const STATUS_COLORS: Record<\n string,\n \"success\" | \"warning\" | \"default\" | \"destructive\" | \"secondary\" | \"outline\"\n> = {\n [STATUS_ACTIVE]: \"success\",\n [STATUS_INACTIVE]: \"warning\",\n};\n\nexport function booleanToStatus(value: boolean): string {\n return value ? STATUS_ACTIVE : STATUS_INACTIVE;\n}\n\nexport function statusToBoolean(value: string): boolean {\n return value === STATUS_ACTIVE;\n}\n","import { z } from \"zod\";\n\nimport {\n STATUS_ACTIVE,\n STATUS_INACTIVE,\n STATUS_VALUES,\n booleanToStatus,\n} from \"../configs\";\n\n/**\n * Supplier Validation Schema\n *\n * Rules:\n * - code: Required, max 50 chars\n * - name: Required, max 200 chars\n * - taxCode: Required, 10-13 digits\n * - email: Optional but must be valid if provided\n * - phone: Optional, 10 digits if provided\n * - address: Optional, max 500 chars\n * - description: Optional, max 1000 chars\n * - status: Enum (active/inactive)\n */\n\nconst supplierBaseSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã nhà cung cấp là bắt buộc\")\n .max(50, \"Mã nhà cung cấp tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên nhà cung cấp là bắt buộc\")\n .max(200, \"Tên nhà cung cấp tối đa 200 ký tự\")\n .trim(),\n\n taxCode: z\n .string()\n .min(1, \"Mã số thuế là bắt buộc\")\n .regex(/^[0-9]{10,13}$/, \"Mã số thuế phải là 10-13 chữ số\"),\n\n email: z.string().email(\"Email không hợp lệ\").optional().or(z.literal(\"\")),\n\n phone: z\n .string()\n .regex(/^[0-9]{10}$/, \"Số điện thoại phải là 10 chữ số\")\n .optional()\n .or(z.literal(\"\")),\n\n address: z\n .string()\n .max(500, \"Địa chỉ tối đa 500 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Chuyển đổi boolean thành string\n if (typeof val === \"boolean\") {\n return booleanToStatus(val);\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n\n contractStartDate: z\n .string()\n .optional()\n .transform((val) => (val ? new Date(val) : null)) // Convert string to Date or null\n .or(z.date().optional())\n .nullable(),\n\n contractEndDate: z\n .string()\n .optional()\n .transform((val) => (val ? new Date(val) : null)) // Convert string to Date or null\n .or(z.date().optional())\n .nullable(),\n});\n\nexport const supplierSchema = supplierBaseSchema.refine(\n (data) => {\n if (data.contractStartDate && data.contractEndDate) {\n return data.contractEndDate >= data.contractStartDate;\n }\n return true;\n },\n {\n message: \"Ngày kết thúc hợp đồng phải sau ngày bắt đầu\",\n path: [\"contractEndDate\"],\n },\n);\n\n/**\n * Type inference from schema\n */\nexport type SupplierInput = z.infer<typeof supplierSchema>;\n\n/**\n * Partial schema for updates (all fields optional)\n */\nexport const supplierUpdateSchema = supplierBaseSchema.partial();\n\n/**\n * Schema for bulk operations\n */\nexport const supplierBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 nhà cung cấp\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * Material Validation Schema\n *\n * Rules:\n * - code: Required, max 50 chars\n * - name: Required, max 200 chars\n * - uom: Required, must be a valid UOM code\n * - category: Required, must be a valid category code\n * - description: Optional, max 1000 chars\n * - status: Enum (active/inactive)\n */\n\nexport const materialSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã nguyên vật liệu là bắt buộc\")\n .max(50, \"Mã nguyên vật liệu tối đa 50 ký tự\")\n .trim(),\n\n item_name: z\n .string()\n .min(1, \"Tên nguyên vật liệu là bắt buộc\")\n .max(200, \"Tên nguyên vật liệu tối đa 200 ký tự\")\n .trim(),\n\n stock_uom: z\n .string()\n .min(1, \"Đơn vị tính là bắt buộc\")\n .max(20, \"Đơn vị tính tối đa 20 ký tự\"),\n\n item_group: z\n .string()\n .min(1, \"Danh mục là bắt buộc\")\n .max(50, \"Danh mục tối đa 50 ký tự\"),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).optional()),\n});\n\n/**\n * Type inference from schema\n */\nexport type MaterialInput = z.infer<typeof materialSchema>;\n\n/**\n * Partial schema for updates\n */\nexport const materialUpdateSchema = materialSchema.partial();\n\n/**\n * Schema for bulk operations\n */\nexport const materialBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 nguyên vật liệu\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * Material Category Validation Schema\n */\n\nexport const materialCategorySchema = z.object({\n code: z\n .string()\n .min(1, \"Mã danh mục là bắt buộc\")\n .max(50, \"Mã danh mục tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên danh mục là bắt buộc\")\n .max(200, \"Tên danh mục tối đa 200 ký tự\")\n .trim(),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n});\n\nexport type MaterialCategoryInput = z.infer<typeof materialCategorySchema>;\nexport const materialCategoryUpdateSchema = materialCategorySchema.partial();\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * Unit of Measure (UOM) Validation Schema\n */\n\n// Base schema without refine for partial updates\nconst uomBaseSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã đơn vị tính là bắt buộc\")\n .max(50, \"Mã đơn vị tính tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên đơn vị tính là bắt buộc\")\n .max(100, \"Tên đơn vị tính tối đa 100 ký tự\")\n .trim(),\n\n description: z\n .string()\n .max(500, \"Mô tả tối đa 500 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n\n baseUomCode: z.preprocess((val) => {\n // Chuyển đổi string rỗng thành null\n if (val === \"\" || val === null || val === undefined) {\n return null;\n }\n return val;\n }, z.string().max(20, \"Mã đơn vị quy đổi tối đa 20 ký tự\").nullable().optional()),\n\n conversionRate: z.preprocess(\n (val) => {\n // Chuyển đổi string rỗng hoặc string number thành number hoặc null\n if (val === \"\" || val === null || val === undefined) {\n return null;\n }\n // Nếu là string, thử parse thành number\n if (typeof val === \"string\") {\n const parsed = parseFloat(val);\n return isNaN(parsed) ? null : parsed;\n }\n // Nếu đã là number, giữ nguyên\n return val;\n },\n z\n .union([z.number().positive(\"Tỷ lệ quy đổi phải lớn hơn 0\"), z.null()])\n .optional(),\n ),\n});\n\n// Apply refine to the full schema\n// Export the base schema directly\nexport const uomSchema = uomBaseSchema;\n\nexport type UomInput = z.infer<typeof uomSchema>;\nexport const uomUpdateSchema = uomBaseSchema.partial();\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * Warehouse Validation Schema\n */\n\nexport const warehouseSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã kho là bắt buộc\")\n .max(50, \"Mã kho tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên kho là bắt buộc\")\n .max(200, \"Tên kho tối đa 200 ký tự\")\n .trim(),\n\n address: z\n .string()\n .min(1, \"Địa chỉ là bắt buộc\")\n .max(500, \"Địa chỉ tối đa 500 ký tự\")\n .trim(),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n});\n\nexport type WarehouseInput = z.infer<typeof warehouseSchema>;\nexport const warehouseUpdateSchema = warehouseSchema.partial();\n","import { z } from \"zod\";\n\nimport {\n STATUS_ACTIVE,\n STATUS_INACTIVE,\n STATUS_VALUES,\n booleanToStatus,\n} from \"../configs\";\n\n/**\n * Partner Company Validation Schema\n *\n * Validates partner company form submissions on both client & server.\n */\n\nconst dateStringSchema = (fieldLabel: string) =>\n z\n .string()\n .min(1, `${fieldLabel} là bắt buộc`)\n .refine(\n (value) => {\n const date = new Date(value);\n return !Number.isNaN(date.getTime());\n },\n {\n message: `${fieldLabel} không hợp lệ`,\n },\n );\n\n// Base schema without refine for partial updates\nconst partnerCompanyBaseSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã công ty đối tác là bắt buộc\")\n .max(50, \"Mã công ty đối tác tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên công ty là bắt buộc\")\n .max(200, \"Tên công ty tối đa 200 ký tự\")\n .trim(),\n\n taxCode: z\n .string()\n .min(1, \"Mã số thuế là bắt buộc\")\n .regex(/^[0-9]{10,13}$/, \"Mã số thuế phải là 10-13 chữ số\"),\n\n email: z\n .string()\n .email(\"Email không hợp lệ\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n phone: z\n .string()\n .regex(/^[0-9]{10}$/, \"Số điện thoại phải là 10 chữ số\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n address: z\n .string()\n .max(500, \"Địa chỉ tối đa 500 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n warehouseIds: z.preprocess((val) => {\n // Nếu là mảng, trả về nguyên vẹn\n if (Array.isArray(val)) {\n return val;\n }\n // Nếu là string rỗng hoặc null/undefined, trả về mảng rỗng\n if (!val || val === \"\") {\n return [];\n }\n // Nếu là string, thử parse JSON hoặc split bằng dấu phẩy\n if (typeof val === \"string\") {\n try {\n const parsed = JSON.parse(val);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n // Nếu không parse được JSON, thử split bằng dấu phẩy\n return val\n .split(\",\")\n .map((v) => v.trim())\n .filter(Boolean);\n }\n }\n return [];\n }, z.array(z.string()).optional().default([])),\n\n status: z.preprocess((val) => {\n // Chuyển đổi boolean thành string\n if (typeof val === \"boolean\") {\n return booleanToStatus(val);\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n\n contractStartDate: dateStringSchema(\"Ngày bắt đầu hợp đồng\"),\n contractEndDate: dateStringSchema(\"Ngày kết thúc hợp đồng\"),\n});\n\n// Apply refine to the full schema\nexport const partnerCompanySchema = partnerCompanyBaseSchema.refine(\n ({ contractStartDate, contractEndDate }) => {\n const start = new Date(contractStartDate);\n const end = new Date(contractEndDate);\n return end.getTime() >= start.getTime();\n },\n {\n message: \"Ngày kết thúc hợp đồng phải sau hoặc bằng ngày bắt đầu\",\n path: [\"contractEndDate\"],\n },\n);\n\nexport type PartnerCompanyInput = z.infer<typeof partnerCompanySchema>;\n\n// Create update schema from base schema (partial) with refine\nexport const partnerCompanyUpdateSchema = partnerCompanyBaseSchema\n .partial()\n .refine(\n (data) => {\n if (!data.contractStartDate || !data.contractEndDate) {\n return true;\n }\n const start = new Date(data.contractStartDate);\n const end = new Date(data.contractEndDate);\n return end.getTime() >= start.getTime();\n },\n {\n message: \"Ngày kết thúc hợp đồng phải sau hoặc bằng ngày bắt đầu\",\n path: [\"contractEndDate\"],\n },\n );\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * System Category Group Validation Schema\n *\n * Rules:\n * - code: Required, max 50 chars\n * - name: Required, max 200 chars\n * - description: Optional, max 1000 chars\n * - status: Enum (active/inactive)\n */\n\nexport const systemCategoryGroupSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã nhóm danh mục là bắt buộc\")\n .max(50, \"Mã nhóm danh mục tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên nhóm danh mục là bắt buộc\")\n .max(200, \"Tên nhóm danh mục tối đa 200 ký tự\")\n .trim(),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n});\n\n/**\n * Type inference from schema\n */\nexport type SystemCategoryGroupInput = z.infer<\n typeof systemCategoryGroupSchema\n>;\n\n/**\n * Partial schema for updates (all fields optional)\n */\nexport const systemCategoryGroupUpdateSchema =\n systemCategoryGroupSchema.partial();\n\n/**\n * Schema for bulk operations\n */\nexport const systemCategoryGroupBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 nhóm danh mục\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * System Category Validation Schema\n *\n * Rules:\n * - code: Required, max 50 chars\n * - name: Required, max 200 chars\n * - groupCode: Required, max 50 chars\n * - description: Optional, max 1000 chars\n * - status: Enum (active/inactive)\n * - order: Optional, integer >= 0\n */\n\nexport const systemCategorySchema = z.object({\n code: z\n .string()\n .min(1, \"Mã danh mục là bắt buộc\")\n .max(50, \"Mã danh mục tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên danh mục là bắt buộc\")\n .max(200, \"Tên danh mục tối đa 200 ký tự\")\n .trim(),\n\n groupCode: z\n .string()\n .min(1, \"Mã nhóm danh mục là bắt buộc\")\n .max(50, \"Mã nhóm danh mục tối đa 50 ký tự\"),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n\n order: z\n .number()\n .int(\"Thứ tự phải là số nguyên\")\n .min(0, \"Thứ tự phải >= 0\")\n .optional(),\n});\n\n/**\n * Type inference from schema\n */\nexport type SystemCategoryInput = z.infer<typeof systemCategorySchema>;\n\n/**\n * Partial schema for updates (all fields optional)\n */\nexport const systemCategoryUpdateSchema = systemCategorySchema.partial();\n\n/**\n * Schema for bulk operations\n */\nexport const systemCategoryBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 danh mục\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\nimport { STATUS_ACTIVE, STATUS_INACTIVE, STATUS_VALUES } from \"../configs\";\n\n/**\n * Action Validation Schema\n *\n * Rules:\n * - code: Required, max 50 chars\n * - name: Required, max 200 chars\n * - description: Optional, max 1000 chars\n * - status: Enum (active/inactive)\n */\n\nexport const actionSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã hành động là bắt buộc\")\n .max(50, \"Mã hành động tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên hành động là bắt buộc\")\n .max(200, \"Tên hành động tối đa 200 ký tự\")\n .trim(),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"\"),\n\n isDefault: z.boolean().default(false),\n\n status: z.preprocess((val) => {\n // Hỗ trợ boolean từ switch field (true -> active, false -> inactive)\n if (typeof val === \"boolean\") {\n return val ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n});\n\n/**\n * Type inference from schema\n */\nexport type ActionInput = z.infer<typeof actionSchema>;\n\n/**\n * Partial schema for updates (all fields optional)\n */\nexport const actionUpdateSchema = actionSchema.partial();\n\n/**\n * Schema for bulk operations\n */\nexport const actionBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 hành động\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\nimport {\n STATUS_ACTIVE,\n STATUS_INACTIVE,\n STATUS_VALUES,\n booleanToStatus,\n} from \"../configs\";\n\n/**\n * Resource Validation Schema\n *\n * Rules:\n * - code: Required, max 50 chars\n * - name: Required, max 200 chars\n * - group: Optional, max 100 chars\n * - description: Optional, max 1000 chars\n * - status: Enum (active/inactive)\n * - parentCode: Optional, max 50 chars\n * - order: Optional, integer >= 0\n * - type: Optional, max 50 chars\n * - icon: Optional, max 100 chars\n * - path: Optional, max 500 chars\n * - config: Optional, JSON string\n */\n\nexport const resourceSchema = z.object({\n code: z\n .string()\n .min(1, \"Mã tài nguyên là bắt buộc\")\n .max(50, \"Mã tài nguyên tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên tài nguyên là bắt buộc\")\n .max(200, \"Tên tài nguyên tối đa 200 ký tự\")\n .trim(),\n\n group: z\n .string()\n .max(100, \"Nhóm tối đa 100 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n status: z.preprocess((val) => {\n // Chuyển đổi boolean thành string\n if (typeof val === \"boolean\") {\n return booleanToStatus(val);\n }\n // Nếu là string hợp lệ, giữ nguyên (hỗ trợ cả Active/Inactive cũ)\n if (\n val === STATUS_ACTIVE ||\n val === STATUS_INACTIVE ||\n val === \"Active\" ||\n val === \"Inactive\"\n ) {\n return val === \"Active\"\n ? STATUS_ACTIVE\n : val === \"Inactive\"\n ? STATUS_INACTIVE\n : val;\n }\n // Mặc định là 'active'\n return STATUS_ACTIVE;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n\n parentCode: z\n .string()\n .max(50, \"Mã cha tối đa 50 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n order: z\n .number()\n .int(\"Thứ tự phải là số nguyên\")\n .min(0, \"Thứ tự phải >= 0\")\n .optional(),\n\n type: z\n .string()\n .max(50, \"Loại tối đa 50 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n icon: z\n .string()\n .max(100, \"Icon tối đa 100 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n path: z\n .string()\n .max(500, \"Đường dẫn tối đa 500 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n config: z\n .string()\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n});\n\n/**\n * Type inference from schema\n */\nexport type ResourceInput = z.infer<typeof resourceSchema>;\n\n/**\n * Partial schema for updates (all fields optional)\n */\nexport const resourceUpdateSchema = resourceSchema.partial();\n\n/**\n * Schema for bulk operations\n */\nexport const resourceBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 tài nguyên\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\n/**\n * Material Pricing Validation Schema\n *\n * Rules:\n * - supplierId: Required\n * - materialId: Required\n * - price: Required, > 0\n * - effectiveDate: Required, valid date\n * - applicableWarehouseIds: Optional, array of warehouse IDs\n * - status: Optional, enum (pending/approved/rejected)\n */\n\nexport const materialPricingSchema = z.object({\n supplierId: z.string().min(1, \"Nhà cung cấp là bắt buộc\"),\n\n materialId: z.string().min(1, \"Nguyên vật liệu là bắt buộc\"),\n\n price: z\n .number()\n .positive(\"Giá phải lớn hơn 0\")\n .min(0.01, \"Giá tối thiểu là 0.01\"),\n\n effectiveDate: z\n .string()\n .min(1, \"Ngày hiệu lực là bắt buộc\")\n .refine((val) => {\n const date = new Date(val);\n return !isNaN(date.getTime());\n }, \"Ngày hiệu lực không hợp lệ\"),\n\n applicableWarehouseIds: z.array(z.string()).optional().default([]),\n\n status: z\n .enum([\"pending\", \"approved\", \"rejected\"])\n .optional()\n .default(\"pending\"),\n});\n\n/**\n * Type inference from schema\n */\nexport type MaterialPricingInput = z.infer<typeof materialPricingSchema>;\n\n/**\n * Partial schema for updates (all fields optional)\n */\nexport const materialPricingUpdateSchema = materialPricingSchema.partial();\n\n/**\n * Schema for set default supplier\n */\nexport const setDefaultSupplierSchema = z.object({\n materialId: z.string().min(1, \"Nguyên vật liệu là bắt buộc\"),\n supplierId: z.string().min(1, \"Nhà cung cấp là bắt buộc\"),\n});\n\n/**\n * Schema for approval\n */\nexport const approvalSchema = z.object({\n id: z.string().min(1, \"ID là bắt buộc\"),\n action: z.enum([\"approve\", \"reject\"]),\n notes: z.string().optional(),\n effectiveDate: z\n .string()\n .optional()\n .refine((val) => {\n if (!val) return true; // Optional\n const date = new Date(val);\n return !isNaN(date.getTime());\n }, \"Ngày hiệu lực không hợp lệ\"),\n});\n","import { z } from \"zod\";\n\nexport const userSchema = z.object({\n name: z.string().min(1, \"Tên hiển thị là bắt buộc\"),\n email: z.string().email(\"Email không hợp lệ\"),\n // Support both boolean and status string, normalize to boolean\n isActive: z.preprocess((val) => {\n if (typeof val === \"boolean\") return val;\n if (val === \"active\") return true;\n if (val === \"inactive\") return false;\n return true; // default\n }, z.boolean().default(true)),\n // Also accept status string from form\n status: z.enum([\"active\", \"inactive\"]).optional(),\n image: z.string().optional().nullable(),\n});\n\nexport type UserFormValues = z.infer<typeof userSchema>;\n","import { z } from \"zod\";\n\nexport const roleSchema = z.object({\n name: z.string().min(1, \"Name is required\"),\n code: z.string().min(1, \"Code is required\"),\n description: z.string().optional(),\n status: z.enum([\"active\", \"inactive\"]).default(\"active\"),\n permissions: z.array(z.string()).optional(),\n});\n\nexport type RoleFormData = z.infer<typeof roleSchema>;\n","import { z } from \"zod\";\n\nimport {\n STATUS_ACTIVE,\n STATUS_INACTIVE,\n STATUS_VALUES,\n booleanToStatus,\n} from \"../configs\";\n\n/**\n * UserSupplier Validation Schema\n *\n * Rules:\n * - userId: Required, must be valid UUID (hệ thống dùng UUID)\n * - supplierId: Required, must be valid UUID (hệ thống dùng UUID)\n * - status: Enum (active/inactive), default active\n * - startDate: Required, must be valid date\n * - endDate: Optional, must be valid date, must be after startDate if provided\n * - role: Optional, max 100 chars\n *\n * Note:\n * - Hệ thống dùng UUID (crypto.randomUUID()) - đây là chuẩn\n * - Tạm thời chấp nhận cả CUID để tương thích với dữ liệu seed cũ\n * - TODO: Migrate dữ liệu seed cũ từ CUID sang UUID và remove CUID support\n */\n\n/**\n * Validate CUID format (tạm thời cho dữ liệu seed cũ)\n * CUID format: starts with 'c', followed by 20-30 alphanumeric characters\n * Example: cmgf9g6ck000yju0yoa07wfzl\n * TODO: Remove sau khi migrate dữ liệu seed\n */\nconst cuidRegex = /^c[a-z0-9]{20,30}$/;\n\n/**\n * Validate UUID format (chuẩn hệ thống)\n * UUID format: 8-4-4-4-12 hexadecimal digits with hyphens\n * Example: 550e8400-e29b-41d4-a716-446655440000\n */\nconst uuidRegex =\n /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;\n\n/**\n * Custom validation for CUID or UUID\n * TODO: Chỉ validate UUID sau khi migrate dữ liệu seed cũ\n */\nconst cuidOrUuid = z\n .string()\n .refine((val) => cuidRegex.test(val) || uuidRegex.test(val), {\n message:\n \"ID không hợp lệ (phải là UUID, tạm thời chấp nhận CUID cho dữ liệu cũ)\",\n });\n\n// Base schema object (before refine) - needed for .partial()\nconst userSupplierBaseSchema = z.object({\n userId: z.preprocess(\n (val) => {\n // Convert to string and handle empty values\n if (val === null || val === undefined || val === \"\") {\n return undefined;\n }\n return String(val).trim();\n },\n z\n .string({\n required_error: \"Người dùng là bắt buộc\",\n })\n .min(1, \"Người dùng là bắt buộc\")\n .pipe(cuidOrUuid),\n ),\n\n supplierId: z.preprocess(\n (val) => {\n // Convert to string and handle empty values\n if (val === null || val === undefined || val === \"\") {\n return undefined;\n }\n return String(val).trim();\n },\n z\n .string({\n required_error: \"Nhà cung cấp là bắt buộc\",\n })\n .min(1, \"Nhà cung cấp là bắt buộc\")\n .pipe(cuidOrUuid),\n ),\n\n status: z.preprocess((val) => {\n // Chuyển đổi boolean thành string\n if (typeof val === \"boolean\") {\n return booleanToStatus(val);\n }\n // Hỗ trợ cả Active/Inactive cũ và chuyển về lowercase\n if (val === \"Active\" || val === \"Inactive\") {\n return val === \"Active\" ? STATUS_ACTIVE : STATUS_INACTIVE;\n }\n return val;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n\n startDate: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return new Date(); // Default to now if not provided\n const date = new Date(val);\n if (isNaN(date.getTime())) {\n throw new Error(\"Ngày bắt đầu không hợp lệ\");\n }\n return date;\n })\n .or(z.date().default(() => new Date())),\n\n endDate: z\n .string()\n .optional()\n .transform((val) => {\n if (!val) return undefined;\n const date = new Date(val);\n if (isNaN(date.getTime())) {\n throw new Error(\"Ngày kết thúc không hợp lệ\");\n }\n return date;\n })\n .or(z.date().optional())\n .nullable(),\n\n role: z\n .string()\n .max(100, \"Vai trò tối đa 100 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n});\n\n// Main schema with refine for validation\nexport const userSupplierSchema = userSupplierBaseSchema.refine(\n (data) => {\n // Nếu có endDate, phải sau startDate\n if (data.endDate && data.startDate) {\n return data.endDate >= data.startDate;\n }\n return true;\n },\n {\n message: \"Ngày kết thúc phải sau ngày bắt đầu\",\n path: [\"endDate\"],\n },\n);\n\n/**\n * Type inference from schema\n */\nexport type UserSupplierInput = z.infer<typeof userSupplierSchema>;\n\n/**\n * Partial schema for updates (all fields optional)\n * Create from base schema before refine to allow .partial()\n */\nexport const userSupplierUpdateSchema = userSupplierBaseSchema.partial().refine(\n (data) => {\n // Nếu có endDate và startDate, phải sau startDate\n if (data.endDate && data.startDate) {\n return data.endDate >= data.startDate;\n }\n return true;\n },\n {\n message: \"Ngày kết thúc phải sau ngày bắt đầu\",\n path: [\"endDate\"],\n },\n);\n\n/**\n * Schema for bulk operations\n */\nexport const userSupplierBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 bản ghi\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\nimport {\n STATUS_ACTIVE,\n STATUS_INACTIVE,\n STATUS_VALUES,\n booleanToStatus,\n} from \"../configs\";\n\n/**\n * SystemConfig Validation Schema\n *\n * Rules:\n * - key: Required, unique, max 100 chars\n * - value: Required, max 5000 chars\n * - type: Optional, default \"string\", max 50 chars\n * - category: Optional, default \"general\", max 100 chars\n * - description: Optional, max 1000 chars\n * - isEncrypted: Optional, default false\n * - isReadOnly: Optional, default false\n * - status: Enum (active/inactive), default \"active\"\n */\n\nexport const systemConfigSchema = z.object({\n key: z\n .string()\n .min(1, \"Key là bắt buộc\")\n .max(100, \"Key tối đa 100 ký tự\")\n .trim()\n .regex(\n /^[a-zA-Z0-9._-]+$/,\n \"Key chỉ được chứa chữ cái, số, dấu chấm, gạch dưới và gạch ngang\",\n ),\n\n value: z\n .string()\n .min(1, \"Value là bắt buộc\")\n .max(5000, \"Value tối đa 5000 ký tự\")\n .trim(),\n\n type: z\n .string()\n .max(50, \"Type tối đa 50 ký tự\")\n .default(\"string\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"string\"),\n\n category: z\n .string()\n .max(100, \"Category tối đa 100 ký tự\")\n .default(\"general\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || \"general\"),\n\n description: z\n .string()\n .max(1000, \"Mô tả tối đa 1000 ký tự\")\n .optional()\n .or(z.literal(\"\"))\n .transform((val) => val || undefined),\n\n isEncrypted: z.boolean().default(false).optional(),\n\n isReadOnly: z.boolean().default(false).optional(),\n\n status: z.preprocess((val) => {\n // Chuyển đổi boolean thành string\n if (typeof val === \"boolean\") {\n return booleanToStatus(val);\n }\n // Nếu là string hợp lệ, giữ nguyên (hỗ trợ cả Active/Inactive cũ)\n if (\n val === STATUS_ACTIVE ||\n val === STATUS_INACTIVE ||\n val === \"Active\" ||\n val === \"Inactive\"\n ) {\n return val === \"Active\"\n ? STATUS_ACTIVE\n : val === \"Inactive\"\n ? STATUS_INACTIVE\n : val;\n }\n // Mặc định là 'active'\n return STATUS_ACTIVE;\n }, z.enum(STATUS_VALUES).default(STATUS_ACTIVE)),\n});\n\n/**\n * Type inference from schema\n */\nexport type SystemConfigInput = z.infer<typeof systemConfigSchema>;\n\n/**\n * Partial schema for updates (all fields optional except key)\n */\nexport const systemConfigUpdateSchema = systemConfigSchema.partial().extend({\n key: z\n .string()\n .min(1, \"Key là bắt buộc\")\n .max(100, \"Key tối đa 100 ký tự\")\n .trim()\n .regex(\n /^[a-zA-Z0-9._-]+$/,\n \"Key chỉ được chứa chữ cái, số, dấu chấm, gạch dưới và gạch ngang\",\n )\n .optional(),\n});\n\n/**\n * Schema for bulk operations\n */\nexport const systemConfigBulkSchema = z.object({\n ids: z.array(z.string()).min(1, \"Phải chọn ít nhất 1 cấu hình\"),\n action: z.enum([\"delete\", \"activate\", \"deactivate\"]),\n});\n","import { z } from \"zod\";\n\n/**\n * Company Validation Schema\n *\n * Validates company form submissions on both client & server.\n */\n\nexport const companySchema = z.object({\n name: z\n .string()\n .min(1, \"Tên công ty là bắt buộc\")\n .max(255, \"Tên công ty tối đa 255 ký tự\")\n .trim(),\n\n taxCode: z\n .string()\n .min(1, \"Mã số thuế là bắt buộc\")\n .max(50, \"Mã số thuế tối đa 50 ký tự\")\n .trim(),\n\n address: z\n .string()\n .min(1, \"Địa chỉ là bắt buộc\")\n .max(500, \"Địa chỉ tối đa 500 ký tự\")\n .trim(),\n\n phone: z\n .string()\n .min(1, \"Số điện thoại là bắt buộc\")\n .max(20, \"Số điện thoại tối đa 20 ký tự\")\n .trim(),\n\n email: z\n .string()\n .min(1, \"Email là bắt buộc\")\n .max(255, \"Email tối đa 255 ký tự\")\n .email(\"Email không hợp lệ\")\n .trim(),\n});\n\nexport type CompanyInput = z.infer<typeof companySchema>;\n\nexport const companyUpdateSchema = companySchema.partial();\n","import { z } from \"zod\";\n\n/**\n * Branch Validation Schema\n *\n * Validates branch form submissions on both client & server.\n */\n\nexport const branchSchema = z.object({\n companyId: z.string().min(1, \"Công ty là bắt buộc\"),\n\n code: z\n .string()\n .min(1, \"Mã chi nhánh là bắt buộc\")\n .max(50, \"Mã chi nhánh tối đa 50 ký tự\")\n .trim(),\n\n name: z\n .string()\n .min(1, \"Tên chi nhánh là bắt buộc\")\n .max(255, \"Tên chi nhánh tối đa 255 ký tự\")\n .trim(),\n\n address: z\n .string()\n .max(500, \"Địa chỉ tối đa 500 ký tự\")\n .trim()\n .optional()\n .nullable(),\n\n phone: z\n .string()\n .max(20, \"Số điện thoại tối đa 20 ký tự\")\n .trim()\n .optional()\n .nullable(),\n\n email: z\n .string()\n .max(255, \"Email tối đa 255 ký tự\")\n .email(\"Email không hợp lệ\")\n .trim()\n .optional()\n .nullable()\n .or(z.literal(\"\")),\n\n status: z.enum([\"active\", \"inactive\"]).default(\"active\"),\n});\n\nexport type BranchInput = z.infer<typeof branchSchema>;\n\nexport const branchUpdateSchema = branchSchema.partial();\n","import { z } from \"zod\";\n\nexport const RegisterSchema = z.object({\n firstName: z\n .string()\n .trim()\n .min(2, { message: \"First Name must contain at least 2 characters.\" })\n .max(50, { message: \"First Name must contain at most 50 characters.\" }),\n lastName: z\n .string()\n .trim()\n .min(2, { message: \"Last Name must contain at least 2 characters.\" })\n .max(50, { message: \"Last Name must contain at most 50 characters.\" }),\n username: z\n .string()\n .toLowerCase()\n .trim()\n .min(3, { message: \"Username must contain at least 3 characters.\" })\n .max(50, { message: \"Username must contain at most 50 characters.\" }),\n email: z\n .string()\n .email({ message: \"Invalid email address\" })\n .toLowerCase()\n .trim(),\n password: z\n .string()\n .min(8, {\n message: \"Password must contain at least 8 characters\",\n })\n .regex(/(?=.*[a-zA-Z])/, {\n message: \"Password must contain at least one letter.\",\n })\n .regex(/(?=.*[0-9])/, {\n message: \"Password must contain at least one number.\",\n }),\n});\n","import { z } from \"zod\";\n\nexport const SignInSchema = z.object({\n email: z\n .string()\n .email({ message: \"Invalid email address\" })\n .toLowerCase()\n .trim(),\n password: z\n .string()\n .min(8, {\n message: \"Password must contain at least 8 characters\",\n })\n .max(250, {\n message: \"Password must contain at most 250 characters\",\n })\n .regex(/(?=.*[a-zA-Z])/, {\n message: \"Password must contain at least one letter.\",\n })\n .regex(/(?=.*[0-9])/, {\n message: \"Password must contain at least one number.\",\n }),\n rememberMe: z.boolean().optional(),\n});\n","import { z } from \"zod\";\n\nexport const ForgotPasswordSchema = z.object({\n email: z\n .string()\n .email({ message: \"Invalid email address\" })\n .toLowerCase()\n .trim(),\n});\n","import { z } from \"zod\";\n\nexport const NewPasswordSchema = z\n .object({\n password: z.string().min(8, {\n message: \"Password must contain at least 8 characters\",\n }),\n confirmPassword: z.string().min(8, {\n message: \"Confirm password must contain at least 8 characters\",\n }),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: \"Passwords must match\",\n path: [\"confirmPassword\"],\n });\n","import { z } from \"zod\";\n\nexport const VerifyEmailSchema = z.object({\n email: z\n .string()\n .email({ message: \"Invalid email address\" })\n .toLowerCase()\n .trim(),\n});\n","import { z } from \"zod\";\n\nexport const ComingSoonSchema = z.object({\n email: z\n .string()\n .email({ message: \"Invalid email address\" })\n .toLowerCase()\n .trim(),\n});\n"]}
@@ -1,83 +0,0 @@
1
- type RoleFilters = {
2
- page?: number;
3
- pageSize?: number;
4
- search?: string;
5
- status?: string;
6
- };
7
- type RoleData = {
8
- id: string;
9
- name: string;
10
- code: string;
11
- description?: string;
12
- status: string;
13
- permissions: string[];
14
- usersCount: number;
15
- users: {
16
- id: string;
17
- name: string | null;
18
- email: string | null;
19
- image: string | null;
20
- isActive: boolean;
21
- }[];
22
- createdAt: string;
23
- updatedAt: string;
24
- createdBy?: string;
25
- updatedBy?: string;
26
- };
27
- interface RolePrismaClient {
28
- role: {
29
- count: (args: {
30
- where: any;
31
- }) => Promise<number>;
32
- findMany: (args: {
33
- where: any;
34
- orderBy: any;
35
- skip: number;
36
- take: number;
37
- include: any;
38
- }) => Promise<any[]>;
39
- };
40
- }
41
- /**
42
- * Get roles data with pagination and filtering
43
- * Generic core implementation using injected DB client
44
- *
45
- * @param db - The tenant-specific Prisma Client instance
46
- * @param params - Filter and pagination parameters
47
- */
48
- declare function getRolesData(db: RolePrismaClient, params?: RoleFilters): Promise<{
49
- total: number;
50
- page: number;
51
- pageSize: number;
52
- items: RoleData[];
53
- }>;
54
-
55
- interface ResourcePrismaClient {
56
- resource: any;
57
- action: any;
58
- }
59
- /**
60
- * Get resources data with pagination and filtering
61
- * Shared function for both API route and Server Component
62
- *
63
- * @param db - The tenant-specific Prisma Client instance
64
- * @param params - Filter and pagination parameters
65
- */
66
- declare function getResourcesData(db: ResourcePrismaClient, params?: any): Promise<{
67
- total: any;
68
- page: any;
69
- pageSize: any;
70
- items: any;
71
- }>;
72
- /**
73
- * Get all active resources for permission matrix
74
- * Used in role management to build dynamic permission matrix
75
- */
76
- declare function getResourcesForPermissionMatrix(db: ResourcePrismaClient): Promise<any>;
77
- /**
78
- * Get all active actions for permission matrix
79
- * Used in role management to build dynamic permission matrix
80
- */
81
- declare function getActionsForPermissionMatrix(db: ResourcePrismaClient): Promise<any>;
82
-
83
- export { type ResourcePrismaClient as R, type RoleData as a, type RoleFilters as b, type RolePrismaClient as c, getResourcesData as d, getResourcesForPermissionMatrix as e, getRolesData as f, getActionsForPermissionMatrix as g };
@@ -1,83 +0,0 @@
1
- type RoleFilters = {
2
- page?: number;
3
- pageSize?: number;
4
- search?: string;
5
- status?: string;
6
- };
7
- type RoleData = {
8
- id: string;
9
- name: string;
10
- code: string;
11
- description?: string;
12
- status: string;
13
- permissions: string[];
14
- usersCount: number;
15
- users: {
16
- id: string;
17
- name: string | null;
18
- email: string | null;
19
- image: string | null;
20
- isActive: boolean;
21
- }[];
22
- createdAt: string;
23
- updatedAt: string;
24
- createdBy?: string;
25
- updatedBy?: string;
26
- };
27
- interface RolePrismaClient {
28
- role: {
29
- count: (args: {
30
- where: any;
31
- }) => Promise<number>;
32
- findMany: (args: {
33
- where: any;
34
- orderBy: any;
35
- skip: number;
36
- take: number;
37
- include: any;
38
- }) => Promise<any[]>;
39
- };
40
- }
41
- /**
42
- * Get roles data with pagination and filtering
43
- * Generic core implementation using injected DB client
44
- *
45
- * @param db - The tenant-specific Prisma Client instance
46
- * @param params - Filter and pagination parameters
47
- */
48
- declare function getRolesData(db: RolePrismaClient, params?: RoleFilters): Promise<{
49
- total: number;
50
- page: number;
51
- pageSize: number;
52
- items: RoleData[];
53
- }>;
54
-
55
- interface ResourcePrismaClient {
56
- resource: any;
57
- action: any;
58
- }
59
- /**
60
- * Get resources data with pagination and filtering
61
- * Shared function for both API route and Server Component
62
- *
63
- * @param db - The tenant-specific Prisma Client instance
64
- * @param params - Filter and pagination parameters
65
- */
66
- declare function getResourcesData(db: ResourcePrismaClient, params?: any): Promise<{
67
- total: any;
68
- page: any;
69
- pageSize: any;
70
- items: any;
71
- }>;
72
- /**
73
- * Get all active resources for permission matrix
74
- * Used in role management to build dynamic permission matrix
75
- */
76
- declare function getResourcesForPermissionMatrix(db: ResourcePrismaClient): Promise<any>;
77
- /**
78
- * Get all active actions for permission matrix
79
- * Used in role management to build dynamic permission matrix
80
- */
81
- declare function getActionsForPermissionMatrix(db: ResourcePrismaClient): Promise<any>;
82
-
83
- export { type ResourcePrismaClient as R, type RoleData as a, type RoleFilters as b, type RolePrismaClient as c, getResourcesData as d, getResourcesForPermissionMatrix as e, getRolesData as f, getActionsForPermissionMatrix as g };
@@ -1,71 +0,0 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import * as DialogPrimitive from '@radix-ui/react-dialog';
4
- import { ComponentProps } from 'react';
5
- import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
6
- import { Drawer as Drawer$1 } from 'vaul';
7
- import * as ProgressPrimitive from '@radix-ui/react-progress';
8
- import { Toaster as Toaster$1 } from 'sonner';
9
-
10
- declare function Sheet({ ...props }: ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
11
- declare function SheetTrigger({ className, ...props }: ComponentProps<typeof DialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
12
- declare function SheetClose({ ...props }: ComponentProps<typeof DialogPrimitive.Close>): react_jsx_runtime.JSX.Element;
13
- declare function SheetPortal({ ...props }: ComponentProps<typeof DialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
14
- declare function SheetOverlay({ className, ...props }: ComponentProps<typeof DialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
15
- declare const sheetVariants: (props?: ({
16
- side?: "top" | "right" | "bottom" | "left" | "end" | "start" | null | undefined;
17
- } & class_variance_authority_types.ClassProp) | undefined) => string;
18
- type SheetContentProps = ComponentProps<typeof DialogPrimitive.Content> & {
19
- side?: "top" | "right" | "bottom" | "left" | "start" | "end";
20
- };
21
- declare function SheetContent({ className, children, side, ...props }: SheetContentProps): react_jsx_runtime.JSX.Element;
22
- declare function SheetHeader({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
23
- declare function SheetFooter({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
24
- declare function SheetTitle({ className, ...props }: ComponentProps<typeof DialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
25
- declare function SheetDescription({ className, ...props }: ComponentProps<typeof DialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
26
-
27
- declare function ContextMenu({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Root>): react_jsx_runtime.JSX.Element;
28
- declare function ContextMenuTrigger({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
29
- declare function ContextMenuGroup({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Group>): react_jsx_runtime.JSX.Element;
30
- declare function ContextMenuPortal({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
31
- declare function ContextMenuSub({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Sub>): react_jsx_runtime.JSX.Element;
32
- declare function ContextMenuRadioGroup({ ...props }: ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): react_jsx_runtime.JSX.Element;
33
- type ContextMenuSubTriggerProps = ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
34
- inset?: boolean;
35
- };
36
- declare function ContextMenuSubTrigger({ className, inset, children, ...props }: ContextMenuSubTriggerProps): react_jsx_runtime.JSX.Element;
37
- declare function ContextMenuSubContent({ className, ...props }: ComponentProps<typeof ContextMenuPrimitive.SubContent>): react_jsx_runtime.JSX.Element;
38
- declare function ContextMenuContent({ className, ...props }: ComponentProps<typeof ContextMenuPrimitive.Content>): react_jsx_runtime.JSX.Element;
39
- type ContextMenuItemProps = ComponentProps<typeof ContextMenuPrimitive.Item> & {
40
- inset?: boolean;
41
- variant?: "default" | "destructive";
42
- };
43
- declare function ContextMenuItem({ className, inset, variant, ...props }: ContextMenuItemProps): react_jsx_runtime.JSX.Element;
44
- declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): react_jsx_runtime.JSX.Element;
45
- declare function ContextMenuRadioItem({ className, children, ...props }: ComponentProps<typeof ContextMenuPrimitive.RadioItem>): react_jsx_runtime.JSX.Element;
46
- type ContextMenuLabelProps = ComponentProps<typeof ContextMenuPrimitive.Label> & {
47
- inset?: boolean;
48
- };
49
- declare function ContextMenuLabel({ className, inset, ...props }: ContextMenuLabelProps): react_jsx_runtime.JSX.Element;
50
- declare function ContextMenuSeparator({ className, ...props }: ComponentProps<typeof ContextMenuPrimitive.Separator>): react_jsx_runtime.JSX.Element;
51
- declare function ContextMenuShortcut({ className, ...props }: ComponentProps<"span">): react_jsx_runtime.JSX.Element;
52
-
53
- declare function Drawer({ shouldScaleBackground, ...props }: ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
54
- declare function DrawerTrigger({ className, ...props }: ComponentProps<typeof Drawer$1.Trigger>): react_jsx_runtime.JSX.Element;
55
- declare function DrawerPortal({ children, ...props }: Omit<ComponentProps<typeof Drawer$1.Portal>, "children"> & {
56
- children?: React.ReactNode;
57
- }): react_jsx_runtime.JSX.Element;
58
- declare function DrawerClose({ ...props }: ComponentProps<typeof Drawer$1.Close>): react_jsx_runtime.JSX.Element;
59
- declare function DrawerOverlay({ className, ...props }: ComponentProps<typeof Drawer$1.Overlay>): react_jsx_runtime.JSX.Element;
60
- declare function DrawerContent({ className, children, ...props }: ComponentProps<typeof Drawer$1.Content>): react_jsx_runtime.JSX.Element;
61
- declare function DrawerHeader({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
62
- declare function DrawerFooter({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
63
- declare function DrawerTitle({ className, ...props }: ComponentProps<typeof Drawer$1.Title>): react_jsx_runtime.JSX.Element;
64
- declare function DrawerDescription({ className, ...props }: ComponentProps<typeof Drawer$1.Description>): react_jsx_runtime.JSX.Element;
65
-
66
- declare function Progress({ className, value, max, ...props }: ComponentProps<typeof ProgressPrimitive.Root>): react_jsx_runtime.JSX.Element;
67
-
68
- type ToasterProps = ComponentProps<typeof Toaster$1>;
69
- declare function Toaster({ ...props }: ToasterProps): react_jsx_runtime.JSX.Element;
70
-
71
- export { SheetFooter as A, SheetHeader as B, ContextMenu as C, Drawer as D, SheetOverlay as E, SheetPortal as F, SheetTitle as G, SheetTrigger as H, sheetVariants as I, Progress as P, Sheet as S, Toaster as T, ContextMenuCheckboxItem as a, ContextMenuContent as b, ContextMenuGroup as c, ContextMenuItem as d, ContextMenuLabel as e, ContextMenuPortal as f, ContextMenuRadioGroup as g, ContextMenuRadioItem as h, ContextMenuSeparator as i, ContextMenuShortcut as j, ContextMenuSub as k, ContextMenuSubContent as l, ContextMenuSubTrigger as m, ContextMenuTrigger as n, DrawerClose as o, DrawerContent as p, DrawerDescription as q, DrawerFooter as r, DrawerHeader as s, DrawerOverlay as t, DrawerPortal as u, DrawerTitle as v, DrawerTrigger as w, SheetClose as x, SheetContent as y, SheetDescription as z };
@@ -1,71 +0,0 @@
1
- import * as class_variance_authority_types from 'class-variance-authority/types';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import * as DialogPrimitive from '@radix-ui/react-dialog';
4
- import { ComponentProps } from 'react';
5
- import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
6
- import { Drawer as Drawer$1 } from 'vaul';
7
- import * as ProgressPrimitive from '@radix-ui/react-progress';
8
- import { Toaster as Toaster$1 } from 'sonner';
9
-
10
- declare function Sheet({ ...props }: ComponentProps<typeof DialogPrimitive.Root>): react_jsx_runtime.JSX.Element;
11
- declare function SheetTrigger({ className, ...props }: ComponentProps<typeof DialogPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
12
- declare function SheetClose({ ...props }: ComponentProps<typeof DialogPrimitive.Close>): react_jsx_runtime.JSX.Element;
13
- declare function SheetPortal({ ...props }: ComponentProps<typeof DialogPrimitive.Portal>): react_jsx_runtime.JSX.Element;
14
- declare function SheetOverlay({ className, ...props }: ComponentProps<typeof DialogPrimitive.Overlay>): react_jsx_runtime.JSX.Element;
15
- declare const sheetVariants: (props?: ({
16
- side?: "top" | "right" | "bottom" | "left" | "end" | "start" | null | undefined;
17
- } & class_variance_authority_types.ClassProp) | undefined) => string;
18
- type SheetContentProps = ComponentProps<typeof DialogPrimitive.Content> & {
19
- side?: "top" | "right" | "bottom" | "left" | "start" | "end";
20
- };
21
- declare function SheetContent({ className, children, side, ...props }: SheetContentProps): react_jsx_runtime.JSX.Element;
22
- declare function SheetHeader({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
23
- declare function SheetFooter({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
24
- declare function SheetTitle({ className, ...props }: ComponentProps<typeof DialogPrimitive.Title>): react_jsx_runtime.JSX.Element;
25
- declare function SheetDescription({ className, ...props }: ComponentProps<typeof DialogPrimitive.Description>): react_jsx_runtime.JSX.Element;
26
-
27
- declare function ContextMenu({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Root>): react_jsx_runtime.JSX.Element;
28
- declare function ContextMenuTrigger({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Trigger>): react_jsx_runtime.JSX.Element;
29
- declare function ContextMenuGroup({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Group>): react_jsx_runtime.JSX.Element;
30
- declare function ContextMenuPortal({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Portal>): react_jsx_runtime.JSX.Element;
31
- declare function ContextMenuSub({ ...props }: ComponentProps<typeof ContextMenuPrimitive.Sub>): react_jsx_runtime.JSX.Element;
32
- declare function ContextMenuRadioGroup({ ...props }: ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): react_jsx_runtime.JSX.Element;
33
- type ContextMenuSubTriggerProps = ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
34
- inset?: boolean;
35
- };
36
- declare function ContextMenuSubTrigger({ className, inset, children, ...props }: ContextMenuSubTriggerProps): react_jsx_runtime.JSX.Element;
37
- declare function ContextMenuSubContent({ className, ...props }: ComponentProps<typeof ContextMenuPrimitive.SubContent>): react_jsx_runtime.JSX.Element;
38
- declare function ContextMenuContent({ className, ...props }: ComponentProps<typeof ContextMenuPrimitive.Content>): react_jsx_runtime.JSX.Element;
39
- type ContextMenuItemProps = ComponentProps<typeof ContextMenuPrimitive.Item> & {
40
- inset?: boolean;
41
- variant?: "default" | "destructive";
42
- };
43
- declare function ContextMenuItem({ className, inset, variant, ...props }: ContextMenuItemProps): react_jsx_runtime.JSX.Element;
44
- declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): react_jsx_runtime.JSX.Element;
45
- declare function ContextMenuRadioItem({ className, children, ...props }: ComponentProps<typeof ContextMenuPrimitive.RadioItem>): react_jsx_runtime.JSX.Element;
46
- type ContextMenuLabelProps = ComponentProps<typeof ContextMenuPrimitive.Label> & {
47
- inset?: boolean;
48
- };
49
- declare function ContextMenuLabel({ className, inset, ...props }: ContextMenuLabelProps): react_jsx_runtime.JSX.Element;
50
- declare function ContextMenuSeparator({ className, ...props }: ComponentProps<typeof ContextMenuPrimitive.Separator>): react_jsx_runtime.JSX.Element;
51
- declare function ContextMenuShortcut({ className, ...props }: ComponentProps<"span">): react_jsx_runtime.JSX.Element;
52
-
53
- declare function Drawer({ shouldScaleBackground, ...props }: ComponentProps<typeof Drawer$1.Root>): react_jsx_runtime.JSX.Element;
54
- declare function DrawerTrigger({ className, ...props }: ComponentProps<typeof Drawer$1.Trigger>): react_jsx_runtime.JSX.Element;
55
- declare function DrawerPortal({ children, ...props }: Omit<ComponentProps<typeof Drawer$1.Portal>, "children"> & {
56
- children?: React.ReactNode;
57
- }): react_jsx_runtime.JSX.Element;
58
- declare function DrawerClose({ ...props }: ComponentProps<typeof Drawer$1.Close>): react_jsx_runtime.JSX.Element;
59
- declare function DrawerOverlay({ className, ...props }: ComponentProps<typeof Drawer$1.Overlay>): react_jsx_runtime.JSX.Element;
60
- declare function DrawerContent({ className, children, ...props }: ComponentProps<typeof Drawer$1.Content>): react_jsx_runtime.JSX.Element;
61
- declare function DrawerHeader({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
62
- declare function DrawerFooter({ className, ...props }: ComponentProps<"div">): react_jsx_runtime.JSX.Element;
63
- declare function DrawerTitle({ className, ...props }: ComponentProps<typeof Drawer$1.Title>): react_jsx_runtime.JSX.Element;
64
- declare function DrawerDescription({ className, ...props }: ComponentProps<typeof Drawer$1.Description>): react_jsx_runtime.JSX.Element;
65
-
66
- declare function Progress({ className, value, max, ...props }: ComponentProps<typeof ProgressPrimitive.Root>): react_jsx_runtime.JSX.Element;
67
-
68
- type ToasterProps = ComponentProps<typeof Toaster$1>;
69
- declare function Toaster({ ...props }: ToasterProps): react_jsx_runtime.JSX.Element;
70
-
71
- export { SheetFooter as A, SheetHeader as B, ContextMenu as C, Drawer as D, SheetOverlay as E, SheetPortal as F, SheetTitle as G, SheetTrigger as H, sheetVariants as I, Progress as P, Sheet as S, Toaster as T, ContextMenuCheckboxItem as a, ContextMenuContent as b, ContextMenuGroup as c, ContextMenuItem as d, ContextMenuLabel as e, ContextMenuPortal as f, ContextMenuRadioGroup as g, ContextMenuRadioItem as h, ContextMenuSeparator as i, ContextMenuShortcut as j, ContextMenuSub as k, ContextMenuSubContent as l, ContextMenuSubTrigger as m, ContextMenuTrigger as n, DrawerClose as o, DrawerContent as p, DrawerDescription as q, DrawerFooter as r, DrawerHeader as s, DrawerOverlay as t, DrawerPortal as u, DrawerTitle as v, DrawerTrigger as w, SheetClose as x, SheetContent as y, SheetDescription as z };
@@ -1,12 +0,0 @@
1
- declare const STATUS_ACTIVE = "active";
2
- declare const STATUS_INACTIVE = "inactive";
3
- declare const STATUS_VALUES: readonly ["active", "inactive"];
4
- declare const STATUS_OPTIONS: {
5
- label: string;
6
- value: string;
7
- }[];
8
- declare const STATUS_COLORS: Record<string, "success" | "warning" | "default" | "destructive" | "secondary" | "outline">;
9
- declare function booleanToStatus(value: boolean): string;
10
- declare function statusToBoolean(value: string): boolean;
11
-
12
- export { STATUS_ACTIVE as S, STATUS_COLORS as a, STATUS_INACTIVE as b, STATUS_OPTIONS as c, STATUS_VALUES as d, booleanToStatus as e, statusToBoolean as s };
@@ -1,12 +0,0 @@
1
- declare const STATUS_ACTIVE = "active";
2
- declare const STATUS_INACTIVE = "inactive";
3
- declare const STATUS_VALUES: readonly ["active", "inactive"];
4
- declare const STATUS_OPTIONS: {
5
- label: string;
6
- value: string;
7
- }[];
8
- declare const STATUS_COLORS: Record<string, "success" | "warning" | "default" | "destructive" | "secondary" | "outline">;
9
- declare function booleanToStatus(value: boolean): string;
10
- declare function statusToBoolean(value: string): boolean;
11
-
12
- export { STATUS_ACTIVE as S, STATUS_COLORS as a, STATUS_INACTIVE as b, STATUS_OPTIONS as c, STATUS_VALUES as d, booleanToStatus as e, statusToBoolean as s };
@@ -1,77 +0,0 @@
1
- interface ModuleManifest {
2
- /** Unique module identifier */
3
- name: string;
4
- /** Semantic version */
5
- version: string;
6
- /** Module category (e.g., 'Supply Chain', 'HR', 'Sales') */
7
- category?: string;
8
- /** Human-readable description */
9
- description?: string;
10
- /** Module dependencies */
11
- depends?: string[];
12
- /** Entities registered by this module */
13
- entities?: string[];
14
- /** Navigation items */
15
- navigation?: NavigationItem[];
16
- /** Permissions defined by this module */
17
- permissions?: string[];
18
- /** Feature flags */
19
- features?: Record<string, FeatureConfig>;
20
- }
21
- interface NavigationItem {
22
- label: string;
23
- icon?: string;
24
- path?: string;
25
- children?: NavigationItem[];
26
- permission?: string;
27
- }
28
- interface FeatureConfig {
29
- enabled: boolean;
30
- component?: React.ComponentType<any>;
31
- }
32
- /**
33
- * Module Registry - Central registry for all modules
34
- */
35
- declare class ModuleRegistry {
36
- private modules;
37
- private initialized;
38
- /**
39
- * Register a module with the registry
40
- */
41
- register(manifest: ModuleManifest): void;
42
- /**
43
- * Get all registered modules
44
- */
45
- getModules(): ModuleManifest[];
46
- /**
47
- * Get a specific module by name
48
- */
49
- getModule(name: string): ModuleManifest | undefined;
50
- /**
51
- * Get combined navigation from all modules
52
- */
53
- getNavigation(): NavigationItem[];
54
- /**
55
- * Get all permissions from all modules
56
- */
57
- getPermissions(): string[];
58
- /**
59
- * Get all entities from all modules
60
- */
61
- getEntities(): string[];
62
- /**
63
- * Check if registry is initialized
64
- */
65
- isInitialized(): boolean;
66
- /**
67
- * Mark registry as initialized
68
- */
69
- markInitialized(): void;
70
- /**
71
- * Clear all registered modules (useful for testing)
72
- */
73
- clear(): void;
74
- }
75
- declare const registry: ModuleRegistry;
76
-
77
- export { type FeatureConfig, type ModuleManifest, ModuleRegistry, type NavigationItem, registry };