@goplusvn/core 0.1.0 → 0.1.2

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 (591) hide show
  1. package/package.json +31 -175
  2. package/src/assets/erp_wallpaper.png +0 -0
  3. package/src/assets/goeat_logo.png +0 -0
  4. package/src/audit/audit-manager.ts +139 -0
  5. package/src/audit/index.ts +11 -0
  6. package/src/audit/memory-audit-logger.ts +86 -0
  7. package/src/audit/types.ts +50 -0
  8. package/src/auth/auth-service.ts +97 -0
  9. package/src/auth/index.ts +266 -0
  10. package/src/code-generation/index.ts +69 -0
  11. package/src/configs/auth-routes.ts +17 -0
  12. package/src/configs/crud.ts +136 -0
  13. package/src/configs/data/navigations.ts +781 -0
  14. package/src/configs/data/oauth-links.ts +10 -0
  15. package/src/configs/entities/material-categories.config.ts +125 -0
  16. package/src/configs/i18n.ts +12 -0
  17. package/src/configs/index.ts +26 -0
  18. package/src/configs/status.ts +25 -0
  19. package/src/configs/themes.ts +100 -0
  20. package/src/crud/components/crud-bulk-actions.tsx +91 -0
  21. package/src/crud/components/crud-card-view.tsx +241 -0
  22. package/src/crud/components/crud-context.tsx +122 -0
  23. package/src/crud/components/crud-delete-dialog.tsx +145 -0
  24. package/src/crud/components/crud-dialog.tsx +406 -0
  25. package/src/crud/components/crud-empty-state.tsx +104 -0
  26. package/src/crud/components/crud-export-button.tsx +170 -0
  27. package/src/crud/components/crud-field-renderer.tsx +653 -0
  28. package/src/crud/components/crud-filter-chips.tsx +102 -0
  29. package/src/crud/components/crud-filters/checkbox-filter.tsx +97 -0
  30. package/src/crud/components/crud-filters/datetime-filter.tsx +83 -0
  31. package/src/crud/components/crud-filters/filter-builder.tsx +66 -0
  32. package/src/crud/components/crud-filters/index.tsx +76 -0
  33. package/src/crud/components/crud-filters/radio-filter.tsx +86 -0
  34. package/src/crud/components/crud-filters/select-filter.tsx +141 -0
  35. package/src/crud/components/crud-filters/text-filter.tsx +86 -0
  36. package/src/crud/components/crud-form.tsx +642 -0
  37. package/src/crud/components/crud-import-dialog.tsx +440 -0
  38. package/src/crud/components/crud-infinite-scroll.tsx +116 -0
  39. package/src/crud/components/crud-page.tsx +1017 -0
  40. package/src/crud/components/crud-provider.tsx +277 -0
  41. package/src/crud/components/crud-row-actions.tsx +189 -0
  42. package/src/crud/components/crud-search.tsx +82 -0
  43. package/src/crud/components/crud-sheet.tsx +336 -0
  44. package/src/crud/components/crud-table-skeleton.tsx +26 -0
  45. package/src/crud/components/crud-table-toolbar.tsx +91 -0
  46. package/src/crud/components/crud-table.tsx +352 -0
  47. package/src/crud/components/crud-virtual-table.tsx +55 -0
  48. package/src/crud/components/index.tsx +20 -0
  49. package/src/crud/crud-filters/checkbox-filter.tsx +87 -0
  50. package/src/crud/crud-filters/datetime-filter.tsx +82 -0
  51. package/src/crud/crud-filters/filter-builder.tsx +64 -0
  52. package/src/crud/crud-filters/index.tsx +78 -0
  53. package/src/crud/crud-filters/radio-filter.tsx +79 -0
  54. package/src/crud/crud-filters/select-filter.tsx +148 -0
  55. package/src/crud/crud-filters/text-filter.tsx +81 -0
  56. package/src/crud/index.ts +43 -0
  57. package/src/crud/lib/crud-service.test.ts +334 -0
  58. package/src/crud/lib/crud-service.ts +358 -0
  59. package/src/crud/lib/crud-utils.test.ts +354 -0
  60. package/src/crud/lib/crud-utils.ts +299 -0
  61. package/src/crud/lib/crud-validator.ts +247 -0
  62. package/src/crud/lib/data-loader.ts +234 -0
  63. package/src/crud/lib/field-calculator.ts +241 -0
  64. package/src/crud/lib/field-formatter.ts +240 -0
  65. package/src/crud/lib/import-export-service.test.ts +290 -0
  66. package/src/crud/lib/import-export-service.ts +352 -0
  67. package/src/crud/lib/import-server-utils.ts +109 -0
  68. package/src/crud/lib/lazy-loader.ts +241 -0
  69. package/src/crud/lib/parse-filters.ts +85 -0
  70. package/src/crud/lib/permissions.ts +52 -0
  71. package/src/crud/lib/serialize-config.ts +60 -0
  72. package/src/crud/lib/stream-loader.ts +145 -0
  73. package/src/crud/lib/translate-config.ts +335 -0
  74. package/src/crud/lib/types.ts +11 -0
  75. package/src/crud/pages/entity-crud-page.tsx +144 -0
  76. package/src/crud/server.ts +8 -0
  77. package/src/home/constants.tsx +142 -0
  78. package/src/home/feature-showcase.tsx +171 -0
  79. package/src/home/home-page.tsx +191 -0
  80. package/src/home/hooks/index.ts +1 -0
  81. package/src/home/hooks/useWidgetPreferences.ts +167 -0
  82. package/src/home/index.ts +33 -0
  83. package/src/home/quick-access-dialog.tsx +271 -0
  84. package/src/home/quick-access-menu.tsx +267 -0
  85. package/src/home/types.ts +140 -0
  86. package/src/home/welcome-card.tsx +92 -0
  87. package/src/home/widget-container.tsx +258 -0
  88. package/src/home/widgets/base-widget.tsx +200 -0
  89. package/src/home/widgets/customers-widget.tsx +74 -0
  90. package/src/home/widgets/index.ts +6 -0
  91. package/src/home/widgets/orders-widget.tsx +87 -0
  92. package/src/home/widgets/revenue-widget.tsx +71 -0
  93. package/src/home/widgets/stock-widget.tsx +109 -0
  94. package/src/hooks/index.tsx +598 -0
  95. package/src/hooks/use-tenant.test.tsx +30 -0
  96. package/src/hooks/use-tenant.ts +5 -0
  97. package/src/index.ts +17 -0
  98. package/src/infrastructure/__tests__/architecture-verification.spec.ts +103 -0
  99. package/src/infrastructure/api-service.ts +317 -0
  100. package/src/infrastructure/cache/cache-manager.ts +107 -0
  101. package/src/infrastructure/cache/cache.ts +120 -0
  102. package/src/infrastructure/cache/index.ts +8 -0
  103. package/src/infrastructure/cache/types.ts +48 -0
  104. package/src/infrastructure/cron/cron-manager.ts +239 -0
  105. package/src/infrastructure/cron/index.ts +6 -0
  106. package/src/infrastructure/cron/types.ts +41 -0
  107. package/src/infrastructure/event-bus/event-bus.ts +145 -0
  108. package/src/infrastructure/event-bus/index.ts +2 -0
  109. package/src/infrastructure/event-bus/types.ts +22 -0
  110. package/src/infrastructure/index.ts +32 -0
  111. package/src/infrastructure/lock/decorators.ts +67 -0
  112. package/src/infrastructure/lock/index.ts +2 -0
  113. package/src/infrastructure/lock/lock-manager.ts +33 -0
  114. package/src/infrastructure/logger/index.ts +2 -0
  115. package/src/infrastructure/logger/logger.ts +96 -0
  116. package/src/infrastructure/logger/types.ts +25 -0
  117. package/src/layout/index.tsx +185 -0
  118. package/src/navigation/index.ts +91 -0
  119. package/src/notification/index.ts +14 -0
  120. package/src/notification/notification-service.ts +120 -0
  121. package/src/notification/storage/in-memory.ts +56 -0
  122. package/src/notification/storage/index.ts +1 -0
  123. package/src/notification/types.ts +51 -0
  124. package/src/organization/branch-service.ts +299 -0
  125. package/src/organization/branches.config.ts +154 -0
  126. package/src/organization/index.ts +5 -0
  127. package/src/plugin/apps-registry.ts +97 -0
  128. package/src/plugin/index.ts +5 -0
  129. package/src/plugin/types.ts +41 -0
  130. package/src/providers/index.tsx +109 -0
  131. package/src/providers/tenant-provider.tsx +45 -0
  132. package/src/rbac/components/roles/role-card.tsx +158 -0
  133. package/src/rbac/components/roles/role-stats-cards.tsx +29 -0
  134. package/src/rbac/components/roles/role-toolbar.tsx +123 -0
  135. package/src/rbac/hooks/use-role-operations.ts +159 -0
  136. package/src/rbac/hooks/use-roles-data.ts +59 -0
  137. package/src/rbac/index.ts +297 -0
  138. package/src/rbac/lib/permission-helpers.ts +63 -0
  139. package/src/rbac/pages/action-list-page.tsx +25 -0
  140. package/src/rbac/pages/resource-list-page.tsx +25 -0
  141. package/src/rbac/pages/role-list-page.tsx +378 -0
  142. package/src/rbac/permission-service.ts +140 -0
  143. package/src/rbac/permissions.ts +135 -0
  144. package/src/rbac/resource-service.ts +115 -0
  145. package/src/rbac/resource-validator.ts +119 -0
  146. package/src/rbac/role-service.ts +165 -0
  147. package/src/rbac/server.ts +16 -0
  148. package/src/rbac/types.ts +38 -0
  149. package/src/schemas/action.schema.ts +66 -0
  150. package/src/schemas/branch.schema.ts +52 -0
  151. package/src/schemas/coming-soon-schema.ts +9 -0
  152. package/src/schemas/company.schema.ts +44 -0
  153. package/src/schemas/forgot-passward-schema.ts +9 -0
  154. package/src/schemas/index.ts +30 -0
  155. package/src/schemas/material-category.schema.ts +43 -0
  156. package/src/schemas/material-pricing.schema.ts +74 -0
  157. package/src/schemas/material.schema.ts +76 -0
  158. package/src/schemas/materials.ts +52 -0
  159. package/src/schemas/new-passward-schema.ts +15 -0
  160. package/src/schemas/partner-company.schema.ts +149 -0
  161. package/src/schemas/register-schema.ts +36 -0
  162. package/src/schemas/resource.schema.ts +133 -0
  163. package/src/schemas/role.schema.ts +11 -0
  164. package/src/schemas/sign-in-schema.ts +24 -0
  165. package/src/schemas/supplier-pricing.schema.ts +15 -0
  166. package/src/schemas/supplier.schema.ts +120 -0
  167. package/src/schemas/system-category-group.schema.ts +67 -0
  168. package/src/schemas/system-category.schema.ts +77 -0
  169. package/src/schemas/system-config.schema.ts +118 -0
  170. package/src/schemas/uom.schema.ts +75 -0
  171. package/src/schemas/user-supplier.schema.ts +179 -0
  172. package/src/schemas/user.schema.ts +18 -0
  173. package/src/schemas/verify-email-schema.ts +9 -0
  174. package/src/schemas/warehouse.schema.ts +49 -0
  175. package/src/system/components/categories/category-list.tsx +529 -0
  176. package/src/system/components/categories/category-manager.tsx +89 -0
  177. package/src/system/components/categories/group-sidebar.tsx +308 -0
  178. package/src/system/components/settings/setting-dialogs.tsx +197 -0
  179. package/src/system/components/settings/setting-field.tsx +291 -0
  180. package/src/system/components/settings/setting-form-dialog.tsx +308 -0
  181. package/src/system/components/settings/settings-groups.ts +80 -0
  182. package/src/system/components/settings/settings-search.tsx +71 -0
  183. package/src/system/components/settings/settings-section.tsx +74 -0
  184. package/src/system/components/settings/settings-sidebar.tsx +81 -0
  185. package/src/system/constants.ts +3 -0
  186. package/src/system/index.ts +150 -0
  187. package/src/system/job-manager.ts +176 -0
  188. package/src/system/pages/components/categories/category-list.tsx +537 -0
  189. package/src/system/pages/components/categories/category-manager.tsx +90 -0
  190. package/src/system/pages/components/categories/group-sidebar.tsx +311 -0
  191. package/src/system/pages/components/settings/sales-rules-settings.tsx +222 -0
  192. package/src/system/pages/components/settings/setting-dialogs.tsx +197 -0
  193. package/src/system/pages/components/settings/setting-field.tsx +292 -0
  194. package/src/system/pages/components/settings/setting-form-dialog.tsx +308 -0
  195. package/src/system/pages/components/settings/settings-groups.ts +87 -0
  196. package/src/system/pages/components/settings/settings-page.tsx +372 -0
  197. package/src/system/pages/components/settings/settings-search.tsx +71 -0
  198. package/src/system/pages/components/settings/settings-section.tsx +74 -0
  199. package/src/system/pages/components/settings/settings-sidebar.tsx +81 -0
  200. package/src/system/pages/components/settings/system-settings.tsx +244 -0
  201. package/src/system/pages/system-category-page.tsx +15 -0
  202. package/src/system/pages/system-settings-page.tsx +380 -0
  203. package/src/system/schemas/system-category-group.schema.ts +46 -0
  204. package/src/system/schemas/system-category.schema.ts +56 -0
  205. package/src/system/services/settings-service.ts +127 -0
  206. package/src/system/services/system-category-service.ts +63 -0
  207. package/src/system/types.ts +45 -0
  208. package/src/types/index.ts +703 -0
  209. package/src/ui/auth/auth-layout.tsx +135 -0
  210. package/src/ui/auth/forgot-password-form.tsx +98 -0
  211. package/src/ui/auth/index.tsx +7 -0
  212. package/src/ui/auth/new-password-form.tsx +107 -0
  213. package/src/ui/auth/oauth-links.tsx +30 -0
  214. package/src/ui/auth/register-form.tsx +202 -0
  215. package/src/ui/auth/sign-in-form.tsx +238 -0
  216. package/src/ui/auth/verify-email-form.tsx +104 -0
  217. package/src/ui/crud/index.tsx +10 -0
  218. package/src/ui/data-display/accordion.tsx +65 -0
  219. package/src/ui/data-display/aspect-ratio.tsx +11 -0
  220. package/src/ui/data-display/avatar.tsx +163 -0
  221. package/src/ui/data-display/bento-grid.tsx +77 -0
  222. package/src/ui/data-display/carousel.tsx +249 -0
  223. package/src/ui/data-display/chart.tsx +363 -0
  224. package/src/ui/data-display/code-block-highlight.tsx +54 -0
  225. package/src/ui/data-display/collapsible.tsx +42 -0
  226. package/src/ui/data-display/compact-stat-bar.tsx +149 -0
  227. package/src/ui/data-display/data-table/data-table-context.tsx +255 -0
  228. package/src/ui/data-display/data-table/data-table-empty-state.tsx +133 -0
  229. package/src/ui/data-display/data-table/data-table-skeleton.tsx +145 -0
  230. package/src/ui/data-display/data-table/data-table-toolbar.tsx +353 -0
  231. package/src/ui/data-display/data-table/data-table.tsx +597 -0
  232. package/src/ui/data-display/data-table/index.ts +44 -0
  233. package/src/ui/data-display/data-table-column-header.tsx +75 -0
  234. package/src/ui/data-display/data-table-pagination.tsx +130 -0
  235. package/src/ui/data-display/data-table-view-options.tsx +59 -0
  236. package/src/ui/data-display/formatted-number-input.tsx +210 -0
  237. package/src/ui/data-display/highlight.tsx +20 -0
  238. package/src/ui/data-display/hover-card.tsx +48 -0
  239. package/src/ui/data-display/index.tsx +50 -0
  240. package/src/ui/data-display/iphone-15-pro.tsx +114 -0
  241. package/src/ui/data-display/kanban/index.ts +4 -0
  242. package/src/ui/data-display/kanban/kanban-board.tsx +192 -0
  243. package/src/ui/data-display/kanban/kanban-column.tsx +74 -0
  244. package/src/ui/data-display/kanban/kanban-item.tsx +50 -0
  245. package/src/ui/data-display/kanban/kanban-types.ts +21 -0
  246. package/src/ui/data-display/kpi-card.tsx +68 -0
  247. package/src/ui/data-display/media-grid.tsx +110 -0
  248. package/src/ui/data-display/safari.tsx +175 -0
  249. package/src/ui/data-display/show-more-text.tsx +55 -0
  250. package/src/ui/data-display/tabs.tsx +68 -0
  251. package/src/ui/data-display/timeline.tsx +256 -0
  252. package/src/ui/feedback/alert.tsx +60 -0
  253. package/src/ui/feedback/context-menu.tsx +245 -0
  254. package/src/ui/feedback/drawer.tsx +132 -0
  255. package/src/ui/feedback/error-dialog.tsx +273 -0
  256. package/src/ui/feedback/index.tsx +183 -0
  257. package/src/ui/feedback/progress.tsx +32 -0
  258. package/src/ui/feedback/sheet.tsx +148 -0
  259. package/src/ui/feedback/sonner.tsx +36 -0
  260. package/src/ui/forms/command.tsx +157 -0
  261. package/src/ui/forms/date-picker.tsx +73 -0
  262. package/src/ui/forms/date-range-picker.tsx +76 -0
  263. package/src/ui/forms/date-time-picker.tsx +109 -0
  264. package/src/ui/forms/editor/editor-menu-bar.tsx +394 -0
  265. package/src/ui/forms/editor/index.tsx +130 -0
  266. package/src/ui/forms/editor/multi-select-example.tsx +1234 -0
  267. package/src/ui/forms/emoji-picker.tsx +109 -0
  268. package/src/ui/forms/file-dropzone.tsx +169 -0
  269. package/src/ui/forms/file-thumbnail.tsx +29 -0
  270. package/src/ui/forms/index.tsx +201 -0
  271. package/src/ui/forms/input-file.tsx +99 -0
  272. package/src/ui/forms/input-group.tsx +46 -0
  273. package/src/ui/forms/input-otp.tsx +81 -0
  274. package/src/ui/forms/input-phone.tsx +172 -0
  275. package/src/ui/forms/input-spin.tsx +116 -0
  276. package/src/ui/forms/input-tags.tsx +219 -0
  277. package/src/ui/forms/input-time.tsx +42 -0
  278. package/src/ui/forms/multi-select.tsx +629 -0
  279. package/src/ui/forms/multiple-date-picker.tsx +74 -0
  280. package/src/ui/forms/radio-group.tsx +42 -0
  281. package/src/ui/forms/rating.tsx +158 -0
  282. package/src/ui/forms/time-picker.tsx +57 -0
  283. package/src/ui/index.tsx +17 -0
  284. package/src/ui/layout/animated-list.tsx +77 -0
  285. package/src/ui/layout/animated-sidebar.tsx +294 -0
  286. package/src/ui/layout/command-menu.tsx +355 -0
  287. package/src/ui/layout/customizer.tsx +324 -0
  288. package/src/ui/layout/footer.tsx +43 -0
  289. package/src/ui/layout/full-screen-toggle.tsx +52 -0
  290. package/src/ui/layout/header-breadcrumb.tsx +77 -0
  291. package/src/ui/layout/horizontal-layout-header.tsx +83 -0
  292. package/src/ui/layout/horizontal-layout.tsx +50 -0
  293. package/src/ui/layout/index.tsx +25 -0
  294. package/src/ui/layout/language-dropdown.tsx +103 -0
  295. package/src/ui/layout/logo.tsx +63 -0
  296. package/src/ui/layout/main-layout.tsx +57 -0
  297. package/src/ui/layout/mode-dropdown.tsx +58 -0
  298. package/src/ui/layout/notification-dropdown.tsx +127 -0
  299. package/src/ui/layout/page-tabs.tsx +306 -0
  300. package/src/ui/layout/route-cache.tsx +214 -0
  301. package/src/ui/layout/sidebar-group-icon-menu.tsx +195 -0
  302. package/src/ui/layout/sidebar.tsx +279 -0
  303. package/src/ui/layout/tab-content-cache.tsx +201 -0
  304. package/src/ui/layout/tab-navigation-provider.tsx +536 -0
  305. package/src/ui/layout/toggle-mobile-sidebar.tsx +33 -0
  306. package/src/ui/layout/top-bar-header-menubar.tsx +412 -0
  307. package/src/ui/layout/user-dropdown.tsx +188 -0
  308. package/src/ui/layout/vertical-layout-header.tsx +65 -0
  309. package/src/ui/layout/vertical-layout.tsx +47 -0
  310. package/src/ui/management/audit-log-page.tsx +209 -0
  311. package/src/ui/management/cache-management.tsx +349 -0
  312. package/src/ui/management/index.ts +3 -0
  313. package/src/ui/management/job-management.tsx +308 -0
  314. package/src/ui/pages/not-found.tsx +30 -0
  315. package/src/ui/primitives/badge.tsx +66 -0
  316. package/src/ui/primitives/breadcrumb.tsx +103 -0
  317. package/src/ui/primitives/button.tsx +129 -0
  318. package/src/ui/primitives/calendar.tsx +74 -0
  319. package/src/ui/primitives/card.tsx +86 -0
  320. package/src/ui/primitives/checkbox.tsx +31 -0
  321. package/src/ui/primitives/client.ts +30 -0
  322. package/src/ui/primitives/combobox.tsx +290 -0
  323. package/src/ui/primitives/dialog.tsx +121 -0
  324. package/src/ui/primitives/dropdown-menu.tsx +239 -0
  325. package/src/ui/primitives/dynamic-icon.tsx +24 -0
  326. package/src/ui/primitives/index.tsx +134 -0
  327. package/src/ui/primitives/input-number.tsx +131 -0
  328. package/src/ui/primitives/input.tsx +22 -0
  329. package/src/ui/primitives/keyboard.tsx +23 -0
  330. package/src/ui/primitives/label.tsx +24 -0
  331. package/src/ui/primitives/menubar.tsx +262 -0
  332. package/src/ui/primitives/navigation-menu.tsx +157 -0
  333. package/src/ui/primitives/pagination.tsx +118 -0
  334. package/src/ui/primitives/popover.tsx +56 -0
  335. package/src/ui/primitives/prefetch-link.tsx +60 -0
  336. package/src/ui/primitives/resizable.tsx +59 -0
  337. package/src/ui/primitives/scroll-area.tsx +63 -0
  338. package/src/ui/primitives/select.tsx +172 -0
  339. package/src/ui/primitives/separator.tsx +51 -0
  340. package/src/ui/primitives/sidebar.tsx +844 -0
  341. package/src/ui/primitives/slider.tsx +27 -0
  342. package/src/ui/primitives/status-badge.tsx +47 -0
  343. package/src/ui/primitives/sticky-layout.tsx +50 -0
  344. package/src/ui/primitives/switch.tsx +29 -0
  345. package/src/ui/primitives/table.tsx +116 -0
  346. package/src/ui/primitives/tabs.tsx +55 -0
  347. package/src/ui/primitives/toggle-group.tsx +70 -0
  348. package/src/ui/primitives/toggle.tsx +47 -0
  349. package/src/ui/primitives/tooltip.tsx +59 -0
  350. package/src/user/components/dangerous-zone.tsx +34 -0
  351. package/src/user/components/delete-account-form.tsx +40 -0
  352. package/src/user/components/index.ts +4 -0
  353. package/src/user/components/profile-info-form.tsx +390 -0
  354. package/src/user/components/profile-info.tsx +32 -0
  355. package/src/user/components/unified-profile-dialog.tsx +1019 -0
  356. package/src/user/components/user-stats.tsx +27 -0
  357. package/src/user/components/user-toolbar.tsx +137 -0
  358. package/src/user/components/users-card-view.tsx +253 -0
  359. package/src/user/index.ts +11 -0
  360. package/src/user/pages/user-list-page.tsx +234 -0
  361. package/src/user/pages/users-client-page.tsx +385 -0
  362. package/src/user/profile-page.tsx +19 -0
  363. package/src/user/schemas.ts +68 -0
  364. package/src/user/types.ts +34 -0
  365. package/src/user/user-service.ts +538 -0
  366. package/src/utils/index.ts +906 -0
  367. package/src/workflow/activity-timeline.tsx +412 -0
  368. package/src/workflow/approval-workflow.tsx +31 -0
  369. package/src/workflow/index.ts +2 -0
  370. package/dist/audit/index.d.mts +0 -115
  371. package/dist/audit/index.d.ts +0 -115
  372. package/dist/audit/index.js +0 -204
  373. package/dist/audit/index.js.map +0 -1
  374. package/dist/audit/index.mjs +0 -200
  375. package/dist/audit/index.mjs.map +0 -1
  376. package/dist/auth/index.d.mts +0 -86
  377. package/dist/auth/index.d.ts +0 -86
  378. package/dist/auth/index.js +0 -210
  379. package/dist/auth/index.js.map +0 -1
  380. package/dist/auth/index.mjs +0 -198
  381. package/dist/auth/index.mjs.map +0 -1
  382. package/dist/button-1dWvP9Ib.d.mts +0 -30
  383. package/dist/button-1dWvP9Ib.d.ts +0 -30
  384. package/dist/calendar-2QzdEo1z.d.mts +0 -20
  385. package/dist/calendar-2QzdEo1z.d.ts +0 -20
  386. package/dist/code-generation/index.d.mts +0 -30
  387. package/dist/code-generation/index.d.ts +0 -30
  388. package/dist/code-generation/index.js +0 -31
  389. package/dist/code-generation/index.js.map +0 -1
  390. package/dist/code-generation/index.mjs +0 -28
  391. package/dist/code-generation/index.mjs.map +0 -1
  392. package/dist/configs/index.d.mts +0 -175
  393. package/dist/configs/index.d.ts +0 -175
  394. package/dist/configs/index.js +0 -254
  395. package/dist/configs/index.js.map +0 -1
  396. package/dist/configs/index.mjs +0 -233
  397. package/dist/configs/index.mjs.map +0 -1
  398. package/dist/crud/index.d.mts +0 -646
  399. package/dist/crud/index.d.ts +0 -646
  400. package/dist/crud/index.js +0 -11772
  401. package/dist/crud/index.js.map +0 -1
  402. package/dist/crud/index.mjs +0 -11665
  403. package/dist/crud/index.mjs.map +0 -1
  404. package/dist/crud/server.d.mts +0 -20
  405. package/dist/crud/server.d.ts +0 -20
  406. package/dist/crud/server.js +0 -123
  407. package/dist/crud/server.js.map +0 -1
  408. package/dist/crud/server.mjs +0 -120
  409. package/dist/crud/server.mjs.map +0 -1
  410. package/dist/data-table-skeleton-12NA8Mjx.d.mts +0 -39
  411. package/dist/data-table-skeleton-12NA8Mjx.d.ts +0 -39
  412. package/dist/dialog-bKfjZMTd.d.mts +0 -22
  413. package/dist/dialog-bKfjZMTd.d.ts +0 -22
  414. package/dist/dynamic-icon-DrGIiu2N.d.mts +0 -10
  415. package/dist/dynamic-icon-DrGIiu2N.d.ts +0 -10
  416. package/dist/home/index.d.mts +0 -269
  417. package/dist/home/index.d.ts +0 -269
  418. package/dist/home/index.js +0 -1678
  419. package/dist/home/index.js.map +0 -1
  420. package/dist/home/index.mjs +0 -1635
  421. package/dist/home/index.mjs.map +0 -1
  422. package/dist/hooks/index.d.mts +0 -7
  423. package/dist/hooks/index.d.ts +0 -7
  424. package/dist/hooks/index.js +0 -8316
  425. package/dist/hooks/index.js.map +0 -1
  426. package/dist/hooks/index.mjs +0 -8255
  427. package/dist/hooks/index.mjs.map +0 -1
  428. package/dist/index-50hpiPrV.d.ts +0 -116
  429. package/dist/index-B9zQVEVi.d.mts +0 -116
  430. package/dist/index.d.mts +0 -5
  431. package/dist/index.d.ts +0 -5
  432. package/dist/index.js +0 -123
  433. package/dist/index.js.map +0 -1
  434. package/dist/index.mjs +0 -118
  435. package/dist/index.mjs.map +0 -1
  436. package/dist/infrastructure/index.d.mts +0 -423
  437. package/dist/infrastructure/index.d.ts +0 -423
  438. package/dist/infrastructure/index.js +0 -633
  439. package/dist/infrastructure/index.js.map +0 -1
  440. package/dist/infrastructure/index.mjs +0 -619
  441. package/dist/infrastructure/index.mjs.map +0 -1
  442. package/dist/label-DWTEkNPo.d.ts +0 -226
  443. package/dist/label-LPpdcoBx.d.mts +0 -226
  444. package/dist/layout/index.d.mts +0 -48
  445. package/dist/layout/index.d.ts +0 -48
  446. package/dist/layout/index.js +0 -117
  447. package/dist/layout/index.js.map +0 -1
  448. package/dist/layout/index.mjs +0 -90
  449. package/dist/layout/index.mjs.map +0 -1
  450. package/dist/navigation/index.d.mts +0 -16
  451. package/dist/navigation/index.d.ts +0 -16
  452. package/dist/navigation/index.js +0 -53
  453. package/dist/navigation/index.js.map +0 -1
  454. package/dist/navigation/index.mjs +0 -50
  455. package/dist/navigation/index.mjs.map +0 -1
  456. package/dist/notification/index.d.mts +0 -105
  457. package/dist/notification/index.d.ts +0 -105
  458. package/dist/notification/index.js +0 -278
  459. package/dist/notification/index.js.map +0 -1
  460. package/dist/notification/index.mjs +0 -274
  461. package/dist/notification/index.mjs.map +0 -1
  462. package/dist/organization/index.d.mts +0 -99
  463. package/dist/organization/index.d.ts +0 -99
  464. package/dist/organization/index.js +0 -360
  465. package/dist/organization/index.js.map +0 -1
  466. package/dist/organization/index.mjs +0 -352
  467. package/dist/organization/index.mjs.map +0 -1
  468. package/dist/plugin/index.d.mts +0 -83
  469. package/dist/plugin/index.d.ts +0 -83
  470. package/dist/plugin/index.js +0 -86
  471. package/dist/plugin/index.js.map +0 -1
  472. package/dist/plugin/index.mjs +0 -84
  473. package/dist/plugin/index.mjs.map +0 -1
  474. package/dist/providers/index.d.mts +0 -25
  475. package/dist/providers/index.d.ts +0 -25
  476. package/dist/providers/index.js +0 -84
  477. package/dist/providers/index.js.map +0 -1
  478. package/dist/providers/index.mjs +0 -77
  479. package/dist/providers/index.mjs.map +0 -1
  480. package/dist/rbac/index.d.mts +0 -226
  481. package/dist/rbac/index.d.ts +0 -226
  482. package/dist/rbac/index.js +0 -4784
  483. package/dist/rbac/index.js.map +0 -1
  484. package/dist/rbac/index.mjs +0 -4722
  485. package/dist/rbac/index.mjs.map +0 -1
  486. package/dist/rbac/permissions.d.mts +0 -26
  487. package/dist/rbac/permissions.d.ts +0 -26
  488. package/dist/rbac/permissions.js +0 -94
  489. package/dist/rbac/permissions.js.map +0 -1
  490. package/dist/rbac/permissions.mjs +0 -90
  491. package/dist/rbac/permissions.mjs.map +0 -1
  492. package/dist/rbac/server.d.mts +0 -1
  493. package/dist/rbac/server.d.ts +0 -1
  494. package/dist/rbac/server.js +0 -128
  495. package/dist/rbac/server.js.map +0 -1
  496. package/dist/rbac/server.mjs +0 -124
  497. package/dist/rbac/server.mjs.map +0 -1
  498. package/dist/schemas/index.d.mts +0 -1257
  499. package/dist/schemas/index.d.ts +0 -1257
  500. package/dist/schemas/index.js +0 -572
  501. package/dist/schemas/index.js.map +0 -1
  502. package/dist/schemas/index.mjs +0 -523
  503. package/dist/schemas/index.mjs.map +0 -1
  504. package/dist/server-QuYCTa89.d.mts +0 -83
  505. package/dist/server-QuYCTa89.d.ts +0 -83
  506. package/dist/sonner-C74GlRDQ.d.mts +0 -71
  507. package/dist/sonner-C74GlRDQ.d.ts +0 -71
  508. package/dist/status-BOXZgIqX.d.mts +0 -12
  509. package/dist/status-BOXZgIqX.d.ts +0 -12
  510. package/dist/system/index.d.mts +0 -77
  511. package/dist/system/index.d.ts +0 -77
  512. package/dist/system/index.js +0 -102
  513. package/dist/system/index.js.map +0 -1
  514. package/dist/system/index.mjs +0 -100
  515. package/dist/system/index.mjs.map +0 -1
  516. package/dist/tabs-C6FfBwPY.d.mts +0 -18
  517. package/dist/tabs-C6FfBwPY.d.ts +0 -18
  518. package/dist/tenant-provider-B8eC_Wpb.d.mts +0 -27
  519. package/dist/tenant-provider-B8eC_Wpb.d.ts +0 -27
  520. package/dist/types/index.d.mts +0 -469
  521. package/dist/types/index.d.ts +0 -469
  522. package/dist/types/index.js +0 -25
  523. package/dist/types/index.js.map +0 -1
  524. package/dist/types/index.mjs +0 -21
  525. package/dist/types/index.mjs.map +0 -1
  526. package/dist/ui/auth.d.mts +0 -39
  527. package/dist/ui/auth.d.ts +0 -39
  528. package/dist/ui/auth.js +0 -4941
  529. package/dist/ui/auth.js.map +0 -1
  530. package/dist/ui/auth.mjs +0 -4896
  531. package/dist/ui/auth.mjs.map +0 -1
  532. package/dist/ui/crud.d.mts +0 -2
  533. package/dist/ui/crud.d.ts +0 -2
  534. package/dist/ui/crud.js +0 -4
  535. package/dist/ui/crud.js.map +0 -1
  536. package/dist/ui/crud.mjs +0 -3
  537. package/dist/ui/crud.mjs.map +0 -1
  538. package/dist/ui/data-display.d.mts +0 -596
  539. package/dist/ui/data-display.d.ts +0 -596
  540. package/dist/ui/data-display.js +0 -5307
  541. package/dist/ui/data-display.js.map +0 -1
  542. package/dist/ui/data-display.mjs +0 -5212
  543. package/dist/ui/data-display.mjs.map +0 -1
  544. package/dist/ui/feedback.d.mts +0 -55
  545. package/dist/ui/feedback.d.ts +0 -55
  546. package/dist/ui/feedback.js +0 -2608
  547. package/dist/ui/feedback.js.map +0 -1
  548. package/dist/ui/feedback.mjs +0 -2526
  549. package/dist/ui/feedback.mjs.map +0 -1
  550. package/dist/ui/forms.d.mts +0 -309
  551. package/dist/ui/forms.d.ts +0 -309
  552. package/dist/ui/forms.js +0 -4656
  553. package/dist/ui/forms.js.map +0 -1
  554. package/dist/ui/forms.mjs +0 -4571
  555. package/dist/ui/forms.mjs.map +0 -1
  556. package/dist/ui/index.d.mts +0 -331
  557. package/dist/ui/index.d.ts +0 -331
  558. package/dist/ui/index.js +0 -16953
  559. package/dist/ui/index.js.map +0 -1
  560. package/dist/ui/index.mjs +0 -16598
  561. package/dist/ui/index.mjs.map +0 -1
  562. package/dist/ui/primitives/client.d.mts +0 -61
  563. package/dist/ui/primitives/client.d.ts +0 -61
  564. package/dist/ui/primitives/client.js +0 -3408
  565. package/dist/ui/primitives/client.js.map +0 -1
  566. package/dist/ui/primitives/client.mjs +0 -3256
  567. package/dist/ui/primitives/client.mjs.map +0 -1
  568. package/dist/ui/primitives.d.mts +0 -113
  569. package/dist/ui/primitives.d.ts +0 -113
  570. package/dist/ui/primitives.js +0 -3356
  571. package/dist/ui/primitives.js.map +0 -1
  572. package/dist/ui/primitives.mjs +0 -3227
  573. package/dist/ui/primitives.mjs.map +0 -1
  574. package/dist/user/index.d.mts +0 -228
  575. package/dist/user/index.d.ts +0 -228
  576. package/dist/user/index.js +0 -4306
  577. package/dist/user/index.js.map +0 -1
  578. package/dist/user/index.mjs +0 -4260
  579. package/dist/user/index.mjs.map +0 -1
  580. package/dist/utils/index.d.mts +0 -205
  581. package/dist/utils/index.d.ts +0 -205
  582. package/dist/utils/index.js +0 -574
  583. package/dist/utils/index.js.map +0 -1
  584. package/dist/utils/index.mjs +0 -514
  585. package/dist/utils/index.mjs.map +0 -1
  586. package/dist/workflow/index.d.mts +0 -40
  587. package/dist/workflow/index.d.ts +0 -40
  588. package/dist/workflow/index.js +0 -3710
  589. package/dist/workflow/index.js.map +0 -1
  590. package/dist/workflow/index.mjs +0 -3677
  591. package/dist/workflow/index.mjs.map +0 -1
@@ -1,646 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { EntityConfig, CrudPermissions, CrudResponse, ActiveFilter, SortingState, CrudQueryParams, ExportOptions, FieldConfig, FilterOperator, DataSource, ImportOptions, ImportResult } from '../types/index.js';
3
- import * as React$1 from 'react';
4
- import { ReactNode } from 'react';
5
- import { useForm } from 'react-hook-form';
6
- import { a as DictionaryType } from '../index-50hpiPrV.js';
7
- import { Table } from '@tanstack/react-table';
8
- import { z } from 'zod';
9
- export { getCrudPermissions, mergePermissions } from './server.js';
10
- export { a as CrudTableSkeleton, b as CrudTableSkeletonProps } from '../data-table-skeleton-12NA8Mjx.js';
11
- import 'lucide-react';
12
- import '../tenant-provider-B8eC_Wpb.js';
13
- import 'next-auth';
14
-
15
- interface CrudBulkActionsProps {
16
- config: EntityConfig;
17
- permissions: CrudPermissions;
18
- onDelete?: (rowIds: string[]) => void;
19
- onExport?: (rowIds: string[]) => void;
20
- }
21
- declare function CrudBulkActions({ config, permissions, onDelete, onExport, }: CrudBulkActionsProps): react_jsx_runtime.JSX.Element | null;
22
-
23
- interface CrudCardViewProps<TData = Record<string, unknown>> {
24
- config: EntityConfig;
25
- data: CrudResponse<TData>;
26
- permissions: CrudPermissions;
27
- loading?: boolean;
28
- onEdit?: (rowId: string, rowData?: Record<string, unknown>) => void;
29
- onDelete?: (rowId: string) => void;
30
- onCustomAction?: (action: string, rowId: string, rowData: Record<string, unknown>) => void | Promise<void>;
31
- onEmptyStateAction?: {
32
- onCreate?: () => void;
33
- onClearSearch?: () => void;
34
- onClearFilters?: () => void;
35
- };
36
- }
37
- declare function CrudCardView<TData extends Record<string, unknown>>({ config: propConfig, // Rename to avoid conflict if we use context, but here we might just use props as it was designed
38
- data, permissions: propPermissions, loading, onEdit, onDelete, onCustomAction, onEmptyStateAction, }: CrudCardViewProps<TData>): react_jsx_runtime.JSX.Element;
39
-
40
- interface CrudTranslations {
41
- edit?: string;
42
- delete?: string;
43
- save?: string;
44
- cancel?: string;
45
- create?: string;
46
- update?: string;
47
- creating?: string;
48
- updating?: string;
49
- deleting?: string;
50
- savedSuccessfully?: string;
51
- createdSuccessfully?: string;
52
- updatedSuccessfully?: string;
53
- confirmDeleteTitle?: string;
54
- confirmBulkDeleteTitle?: string;
55
- confirmDeleteDescription?: string;
56
- confirmBulkDeleteDescription?: string;
57
- deleteSelected?: string;
58
- actions?: string;
59
- add?: string;
60
- addNew?: string;
61
- }
62
- interface CrudConfigContextValue {
63
- config: EntityConfig | null;
64
- setConfig: (config: EntityConfig) => void;
65
- permissions: CrudPermissions;
66
- setPermissions: (permissions: CrudPermissions) => void;
67
- translations: CrudTranslations;
68
- setTranslations: (translations: CrudTranslations) => void;
69
- }
70
- declare const CrudConfigContext: React$1.Context<CrudConfigContextValue | undefined>;
71
- declare function useCrudConfig(): CrudConfigContextValue;
72
- interface CrudStateContextValue {
73
- search: string;
74
- setSearch: (search: string) => void;
75
- filters: ActiveFilter[];
76
- setFilters: (filters: ActiveFilter[]) => void;
77
- addFilter: (filter: ActiveFilter) => void;
78
- removeFilter: (filterName: string) => void;
79
- updateFilter: (filterName: string, value: unknown) => void;
80
- clearFilters: () => void;
81
- pagination: {
82
- page: number;
83
- pageSize: number;
84
- };
85
- setPagination: (pagination: {
86
- page: number;
87
- pageSize: number;
88
- }) => void;
89
- setPage: (page: number) => void;
90
- setPageSize: (pageSize: number) => void;
91
- sorting: SortingState | null;
92
- setSorting: (sorting: SortingState | null) => void;
93
- getQueryParams: () => CrudQueryParams;
94
- }
95
- declare const CrudStateContext: React$1.Context<CrudStateContextValue | undefined>;
96
- declare function useCrudState(): CrudStateContextValue;
97
- interface CrudSelectionContextValue {
98
- selectedRows: Set<string>;
99
- setSelectedRows: (selectedRows: Set<string>) => void;
100
- toggleRowSelection: (rowId: string) => void;
101
- selectAllRows: (rowIds: string[]) => void;
102
- clearSelection: () => void;
103
- }
104
- declare const CrudSelectionContext: React$1.Context<CrudSelectionContextValue | undefined>;
105
- declare function useCrudSelection(): CrudSelectionContextValue;
106
-
107
- interface CrudDeleteDialogProps {
108
- open: boolean;
109
- onOpenChange: (open: boolean) => void;
110
- config: EntityConfig;
111
- itemData?: Record<string, unknown>;
112
- itemCount?: number;
113
- onConfirm: () => void;
114
- loading?: boolean;
115
- translations?: {
116
- confirmDeleteTitle?: string;
117
- confirmBulkDeleteTitle?: string;
118
- confirmDeleteDescription?: string;
119
- confirmBulkDeleteDescription?: string;
120
- cancel?: string;
121
- delete?: string;
122
- deleting?: string;
123
- };
124
- }
125
- declare function CrudDeleteDialog({ open, onOpenChange, config, itemData, itemCount, onConfirm, loading, translations, }: CrudDeleteDialogProps): react_jsx_runtime.JSX.Element;
126
-
127
- interface CrudDialogProps {
128
- open: boolean;
129
- onOpenChange: (open: boolean) => void;
130
- config: EntityConfig;
131
- initialData?: Record<string, unknown>;
132
- mode?: "create" | "edit";
133
- onSubmit: (data: Record<string, unknown>) => Promise<void> | void;
134
- }
135
- declare function CrudDialog({ open, onOpenChange, config, initialData, mode, onSubmit, }: CrudDialogProps): react_jsx_runtime.JSX.Element;
136
-
137
- interface CrudEmptyStateProps {
138
- config: EntityConfig;
139
- hasSearch?: boolean;
140
- hasFilters?: boolean;
141
- onClearSearch?: () => void;
142
- onClearFilters?: () => void;
143
- onCreate?: () => void;
144
- canCreate?: boolean;
145
- }
146
- declare function CrudEmptyState({ config, hasSearch, hasFilters, onClearSearch, onClearFilters, onCreate, canCreate, }: CrudEmptyStateProps): react_jsx_runtime.JSX.Element;
147
-
148
- interface CrudExportButtonProps {
149
- endpoint: string;
150
- filters?: ActiveFilter[];
151
- search?: string;
152
- canExport?: boolean;
153
- format?: ExportOptions["format"];
154
- }
155
- declare function CrudExportButton({ endpoint, filters, search, canExport, }: CrudExportButtonProps): react_jsx_runtime.JSX.Element | null;
156
-
157
- interface CrudFieldRendererProps {
158
- field: FieldConfig;
159
- mode?: "create" | "edit";
160
- }
161
- declare function CrudFieldRenderer({ field, mode, }: CrudFieldRendererProps): react_jsx_runtime.JSX.Element;
162
-
163
- interface CrudFilterChipsProps {
164
- config: EntityConfig;
165
- }
166
- declare function CrudFilterChips({ config }: CrudFilterChipsProps): react_jsx_runtime.JSX.Element | null;
167
-
168
- interface CrudFormProps {
169
- config: EntityConfig;
170
- initialData?: Record<string, unknown>;
171
- onSubmit: (data: Record<string, unknown>) => Promise<void> | void;
172
- onCancel?: () => void;
173
- submitLabel?: string;
174
- cancelLabel?: string;
175
- submittingLabel?: string;
176
- isSubmitting?: boolean;
177
- mode?: "create" | "edit";
178
- enableAutoSave?: boolean;
179
- onFormReady?: (form: ReturnType<typeof useForm>) => void;
180
- }
181
- declare const CrudForm: React$1.ForwardRefExoticComponent<CrudFormProps & React$1.RefAttributes<HTMLFormElement>>;
182
-
183
- interface CrudImportDialogProps {
184
- config: EntityConfig;
185
- endpoint: string;
186
- canImport?: boolean;
187
- onSuccess?: () => void;
188
- open?: boolean;
189
- onOpenChange?: (open: boolean) => void;
190
- }
191
- declare function CrudImportDialog({ config, endpoint, canImport, onSuccess, open: controlledOpen, onOpenChange: controlledOnOpenChange, }: CrudImportDialogProps): react_jsx_runtime.JSX.Element | null;
192
-
193
- interface CrudInfiniteScrollProps {
194
- endpoint: string;
195
- queryParams: CrudQueryParams;
196
- onLoadMore: (data: unknown[]) => void;
197
- mode?: "auto" | "button";
198
- }
199
- declare function CrudInfiniteScroll({ endpoint, queryParams, onLoadMore, mode, }: CrudInfiniteScrollProps): react_jsx_runtime.JSX.Element | null;
200
-
201
- interface CrudPageProps {
202
- config: EntityConfig;
203
- permissions: CrudPermissions;
204
- entityName?: string;
205
- dictionary: DictionaryType;
206
- customActions?: React.ReactNode;
207
- }
208
- declare function CrudPage({ config, permissions, entityName, dictionary, customActions, }: CrudPageProps): react_jsx_runtime.JSX.Element;
209
-
210
- interface CrudContextValue extends CrudConfigContextValue, CrudStateContextValue, CrudSelectionContextValue {
211
- }
212
- interface CrudProviderProps {
213
- children: ReactNode;
214
- initialConfig?: EntityConfig;
215
- initialPermissions?: CrudPermissions;
216
- initialTranslations?: CrudTranslations;
217
- }
218
- declare function CrudProvider({ children, initialConfig, initialPermissions, initialTranslations, }: CrudProviderProps): react_jsx_runtime.JSX.Element;
219
- declare function useCrudContext(): CrudContextValue;
220
-
221
- interface CrudRowActionsProps {
222
- rowId: string;
223
- rowData: Record<string, unknown>;
224
- config: EntityConfig;
225
- permissions: CrudPermissions;
226
- onEdit?: (rowId: string, rowData?: Record<string, unknown>) => void;
227
- onDelete?: (rowId: string) => void;
228
- onCustomAction?: (action: string, rowId: string, rowData: Record<string, unknown>) => void | Promise<void>;
229
- translations?: {
230
- edit?: string;
231
- delete?: string;
232
- actions?: string;
233
- };
234
- }
235
- declare function CrudRowActions({ rowId, rowData, config, permissions, onEdit, onDelete, onCustomAction, translations, }: CrudRowActionsProps): react_jsx_runtime.JSX.Element | null;
236
-
237
- interface CrudSearchProps {
238
- placeholder?: string;
239
- debounceMs?: number;
240
- }
241
- declare function CrudSearch({ placeholder, debounceMs, }: CrudSearchProps): react_jsx_runtime.JSX.Element;
242
-
243
- interface CrudSheetProps {
244
- open: boolean;
245
- onOpenChange: (open: boolean) => void;
246
- config: EntityConfig;
247
- initialData?: Record<string, unknown>;
248
- mode?: "create" | "edit";
249
- onSubmit: (data: Record<string, unknown>) => Promise<void> | void;
250
- side?: "top" | "right" | "bottom" | "left";
251
- }
252
- declare function CrudSheet({ open, onOpenChange, config, initialData, mode, onSubmit, side, }: CrudSheetProps): react_jsx_runtime.JSX.Element;
253
-
254
- interface LegacyCrudTableSkeletonProps {
255
- columns: number;
256
- rows?: number;
257
- }
258
- /**
259
- * @deprecated Use DataTableSkeleton from @goerp/core/ui instead
260
- * This is kept for backward compatibility
261
- */
262
- declare function CrudTableSkeletonLegacy({ columns, rows, }: LegacyCrudTableSkeletonProps): react_jsx_runtime.JSX.Element;
263
-
264
- interface CrudTableToolbarProps<TData> {
265
- table?: Table<TData>;
266
- config: EntityConfig;
267
- permissions: CrudPermissions;
268
- viewMode?: "table" | "card";
269
- onViewModeChange?: (mode: "table" | "card") => void;
270
- }
271
- declare function CrudTableToolbar<TData>({ table, config, permissions, viewMode, onViewModeChange, }: CrudTableToolbarProps<TData>): react_jsx_runtime.JSX.Element;
272
-
273
- interface CrudTableProps<TData = Record<string, unknown>> {
274
- data: CrudResponse<TData>;
275
- loading?: boolean;
276
- onEdit?: (rowId: string, rowData?: Record<string, unknown>) => void;
277
- onDelete?: (rowId: string) => void;
278
- onCustomAction?: (action: string, rowId: string, rowData: Record<string, unknown>) => void | Promise<void>;
279
- onTableReady?: (table: Table<TData>) => void;
280
- onEmptyStateAction?: {
281
- onCreate?: () => void;
282
- onClearSearch?: () => void;
283
- onClearFilters?: () => void;
284
- };
285
- getTranslation?: (key: string) => string;
286
- }
287
- declare function CrudTable<TData extends Record<string, unknown>>({ data, loading, onEdit, onDelete, onCustomAction, onTableReady, onEmptyStateAction, getTranslation, }: CrudTableProps<TData>): react_jsx_runtime.JSX.Element;
288
-
289
- interface CrudVirtualTableProps<TData = Record<string, unknown>> {
290
- config: EntityConfig;
291
- data: CrudResponse<TData>;
292
- permissions: CrudPermissions;
293
- loading?: boolean;
294
- onEdit?: (rowId: string) => void;
295
- onDelete?: (rowId: string) => void;
296
- }
297
- /**
298
- * Virtual table component for large datasets
299
- *
300
- * TODO: Implement with @tanstack/react-virtual when needed
301
- * Example implementation:
302
- *
303
- * import { useVirtualizer } from '@tanstack/react-virtual'
304
- *
305
- * const parentRef = useRef<HTMLDivElement>(null)
306
- * const virtualizer = useVirtualizer({
307
- * count: data.data.length,
308
- * getScrollElement: () => parentRef.current,
309
- * estimateSize: () => 50,
310
- * overscan: 5,
311
- * })
312
- */
313
- declare function CrudVirtualTable<TData extends Record<string, unknown>>({ config, data, permissions, loading, onEdit, onDelete, }: CrudVirtualTableProps<TData>): react_jsx_runtime.JSX.Element;
314
-
315
- interface EntityCrudPageProps {
316
- entity: string;
317
- lang: string;
318
- config: EntityConfig;
319
- session: any;
320
- dictionary: any;
321
- }
322
- declare function EntityCrudPage({ entity, lang, config, session, dictionary, }: EntityCrudPageProps): Promise<react_jsx_runtime.JSX.Element>;
323
-
324
- declare class CrudService {
325
- /**
326
- * Fetch list of records
327
- */
328
- fetch<T = Record<string, unknown>>(endpoint: string, params: CrudQueryParams, signal?: AbortSignal): Promise<CrudResponse<T>>;
329
- /**
330
- * Create a new record
331
- */
332
- create(endpoint: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
333
- /**
334
- * Update an existing record
335
- */
336
- update(endpoint: string, id: string, data: Record<string, unknown>): Promise<Record<string, unknown>>;
337
- /**
338
- * Delete a record
339
- */
340
- delete(endpoint: string, id: string): Promise<void>;
341
- /**
342
- * Delete multiple records
343
- */
344
- deleteMany(endpoint: string, ids: string[]): Promise<void>;
345
- }
346
- declare const crudService: CrudService;
347
-
348
- /**
349
- * Build query string from CrudQueryParams
350
- */
351
- declare function buildQueryString(params: CrudQueryParams): string;
352
- /**
353
- * Parse query string to CrudQueryParams
354
- */
355
- declare function parseQueryString(searchParams: URLSearchParams): CrudQueryParams;
356
- /**
357
- * Apply filter operator to value
358
- */
359
- declare function applyFilterOperator(value: unknown, operator: FilterOperator, filterValue: unknown): boolean;
360
- /**
361
- * Get default value for a field
362
- */
363
- declare function getFieldDefaultValue(field: FieldConfig): unknown;
364
- /**
365
- * Get default values for all fields in config
366
- */
367
- declare function getDefaultValues(config: EntityConfig): Record<string, unknown>;
368
- /**
369
- * Check if a field is visible in table
370
- */
371
- declare function isFieldVisibleInTable(field: FieldConfig): boolean;
372
- /**
373
- * Check if a field is visible in form
374
- */
375
- declare function isFieldVisibleInForm(field: FieldConfig): boolean;
376
- /**
377
- * Filter out display-only (DTO) fields from form data before submitting to API
378
- * Display-only fields are computed/transformed fields, not actual entity fields
379
- */
380
- declare function filterDisplayOnlyFields(data: Record<string, unknown>, config: EntityConfig): Record<string, unknown>;
381
- /**
382
- * Sort fields by order property
383
- * Fields without order will be placed after fields with order
384
- * If multiple fields have the same order, maintain original array order
385
- */
386
- declare function sortFieldsByOrder(fields: FieldConfig[]): FieldConfig[];
387
- /**
388
- * Validate field value
389
- */
390
- declare function validateFieldValue(value: unknown, field: FieldConfig): {
391
- valid: boolean;
392
- error?: string;
393
- };
394
- /**
395
- * Type guard: Check if value is a valid CrudResponse
396
- */
397
- declare function isCrudResponse<T = unknown>(value: unknown): value is CrudResponse<T>;
398
-
399
- /**
400
- * Build Zod schema from FieldConfig
401
- */
402
- declare function buildSchemaFromConfig(fields: FieldConfig[]): z.ZodObject<Record<string, z.ZodTypeAny>>;
403
- /**
404
- * Validate form data against EntityConfig
405
- */
406
- declare function validateFormData(data: Record<string, unknown>, config: EntityConfig): {
407
- valid: boolean;
408
- errors: Record<string, string>;
409
- };
410
- /**
411
- * Get default values object from config
412
- */
413
- declare function getDefaultValuesFromConfig(config: EntityConfig): Record<string, unknown>;
414
- /**
415
- * Transform form data to match API format
416
- */
417
- declare function transformFormData(data: Record<string, unknown>, config: EntityConfig): Record<string, unknown>;
418
-
419
- declare class DataLoader {
420
- private cache;
421
- private cacheEnabled;
422
- private defaultCacheTime;
423
- private pendingRequests;
424
- /**
425
- * Load options from dataSource (static or API)
426
- */
427
- loadOptions(dataSource: DataSource): Promise<Array<{
428
- label: string;
429
- value: string | number | boolean;
430
- }>>;
431
- /**
432
- * Load options from API with caching
433
- */
434
- private loadFromAPI;
435
- /**
436
- * Actually fetch data from API
437
- */
438
- private fetchFromAPI;
439
- /**
440
- * Generate cache key from dataSource
441
- */
442
- private getCacheKey;
443
- /**
444
- * Clear cache for a specific endpoint or all cache
445
- */
446
- clearCache(endpoint?: string): void;
447
- /**
448
- * Get cache size
449
- */
450
- getCacheSize(): number;
451
- }
452
- declare const dataLoader: DataLoader;
453
-
454
- /**
455
- * Field Calculator - Handles field calculations based on dependencies
456
- */
457
-
458
- /**
459
- * Evaluate a formula string or function
460
- * SECURITY: No longer uses eval() - uses safe evaluator instead
461
- */
462
- declare function evaluateFormula(formula: string | ((values: Record<string, unknown>) => unknown), values: Record<string, unknown>): unknown;
463
- /**
464
- * Calculate field value based on dependencies
465
- */
466
- declare function calculateFieldValue(field: FieldConfig, formValues: Record<string, unknown>): unknown;
467
- /**
468
- * Get all fields that depend on a given field
469
- */
470
- declare function getDependentFields(fieldName: string, allFields: FieldConfig[]): FieldConfig[];
471
-
472
- /**
473
- * Field Formatter - Handles field value formatting for display
474
- */
475
-
476
- /**
477
- * Format a value based on field configuration
478
- */
479
- declare function formatFieldValue(value: unknown, field: FieldConfig): string;
480
-
481
- /**
482
- * Parse CSV file
483
- */
484
- declare function parseCSV(file: File): Promise<Record<string, unknown>[]>;
485
- /**
486
- * Parse JSON file
487
- */
488
- declare function parseJSON(file: File): Promise<Record<string, unknown>[]>;
489
- /**
490
- * Parse XLSX file (requires xlsx library)
491
- */
492
- declare function parseXLSX(file: File): Promise<Record<string, unknown>[]>;
493
- /**
494
- * Parse file based on format
495
- */
496
- declare function parseFile(file: File, format: ImportOptions["format"]): Promise<Record<string, unknown>[]>;
497
- /**
498
- * Validate import data against field configs
499
- */
500
- declare function validateImportData(data: Record<string, unknown>[], config: EntityConfig, options?: Partial<ImportOptions>): ImportResult;
501
- /**
502
- * Generate CSV template from config
503
- */
504
- declare function generateCSVTemplate(config: EntityConfig): string;
505
- /**
506
- * Generate JSON template from config
507
- */
508
- declare function generateJSONTemplate(config: EntityConfig): Record<string, unknown>;
509
- /**
510
- * Generate XLSX template (requires xlsx library)
511
- */
512
- declare function generateXLSXTemplate(config: EntityConfig): Promise<Blob>;
513
- /**
514
- * Export data to CSV
515
- */
516
- declare function exportToCSV(data: Record<string, unknown>[], fields?: string[]): string;
517
- /**
518
- * Export data to JSON
519
- */
520
- declare function exportToJSON(data: Record<string, unknown>[], fields?: string[]): string;
521
- /**
522
- * Export data to XLSX (requires xlsx library)
523
- */
524
- declare function exportToXLSX(data: Record<string, unknown>[], fields?: string[]): Promise<Blob>;
525
- /**
526
- * Download file
527
- */
528
- declare function downloadFile(blob: Blob, filename: string): void;
529
-
530
- declare function getRowValue(row: Record<string, unknown>, field: Pick<FieldConfig, "name" | "label">): unknown;
531
- declare function normalizeRowForConfig(row: Record<string, unknown>, config: EntityConfig): Record<string, unknown>;
532
- declare function coerceRowForConfig(row: Record<string, unknown>, config: EntityConfig): Record<string, unknown>;
533
- declare function emptyImportResult(): ImportResult;
534
-
535
- declare class LazyLoader {
536
- private state;
537
- private lastAccessTime;
538
- private readonly MAX_STATES;
539
- private readonly MAX_AGE;
540
- private cleanupInterval;
541
- constructor();
542
- /**
543
- * Start periodic cleanup of old states
544
- */
545
- private startCleanupInterval;
546
- /**
547
- * Stop cleanup interval
548
- */
549
- private stopCleanupInterval;
550
- /**
551
- * Cleanup old and unused states
552
- */
553
- private cleanupOldStates;
554
- /**
555
- * Get or initialize state for an endpoint
556
- */
557
- private getState;
558
- /**
559
- * Load initial data
560
- */
561
- loadInitial(endpoint: string, queryParams: CrudQueryParams): Promise<CrudResponse>;
562
- /**
563
- * Load more data (next page)
564
- */
565
- loadMore(endpoint: string, queryParams: CrudQueryParams): Promise<CrudResponse>;
566
- /**
567
- * Reset state for an endpoint
568
- */
569
- reset(endpoint: string): void;
570
- /**
571
- * Cleanup all states (useful for testing or memory management)
572
- */
573
- cleanupAll(): void;
574
- /**
575
- * Get current cache size
576
- */
577
- getCacheSize(): number;
578
- /**
579
- * Check if has more data to load
580
- */
581
- hasMore(endpoint: string): boolean;
582
- /**
583
- * Get current data
584
- */
585
- getData(endpoint: string): unknown[];
586
- /**
587
- * Get loading state
588
- */
589
- isLoading(endpoint: string): boolean;
590
- }
591
- declare const lazyLoader: LazyLoader;
592
-
593
- /**
594
- * Parse filters from CRUD query params
595
- * Extracts filter values from filters array format
596
- */
597
- /**
598
- * Parse filters from query params and extract specific filter values
599
- * @param filtersParam - JSON string of filters array
600
- * @param filterName - Name of the filter to extract
601
- * @returns Filter value or undefined
602
- */
603
- declare function parseFilterValue(filtersParam: string | null, filterName: string): string | undefined;
604
- /**
605
- * Parse multiple filter values from query params
606
- * @param filtersParam - JSON string of filters array
607
- * @param filterNames - Array of filter names to extract
608
- * @returns Object with filter values
609
- */
610
- declare function parseFilterValues<T extends string>(filtersParam: string | null, filterNames: T[]): Partial<Record<T, string>>;
611
-
612
- interface StreamChunk {
613
- type: "data" | "error" | "done";
614
- data?: unknown[];
615
- error?: string;
616
- total?: number;
617
- }
618
- /**
619
- * Stream data from API using fetch streaming
620
- */
621
- declare function streamData(endpoint: string, queryParams: CrudQueryParams): AsyncGenerator<StreamChunk, void, unknown>;
622
- /**
623
- * Load data progressively from stream
624
- */
625
- declare function loadStreamData(endpoint: string, queryParams: CrudQueryParams, onChunk: (chunk: unknown[]) => void): Promise<CrudResponse>;
626
-
627
- /**
628
- * CRUD Translation Utilities
629
- * Translate EntityConfig ở server-side trước khi pass xuống client
630
- */
631
-
632
- /**
633
- * Translate EntityConfig với dictionary
634
- * Chạy ở server-side trước khi pass xuống client
635
- */
636
- declare function translateEntityConfig(config: EntityConfig, dictionary: DictionaryType, locale: string, entityName?: string): EntityConfig;
637
- /**
638
- * Get common CRUD translations
639
- */
640
- declare function getCrudCommonTranslations(dictionary: DictionaryType): Record<string, string>;
641
- /**
642
- * Translate CRUD message với parameters
643
- */
644
- declare function translateCrudMessage(dictionary: DictionaryType, key: string, params?: Record<string, string | number>): string;
645
-
646
- export { CrudBulkActions, CrudCardView, CrudConfigContext, type CrudConfigContextValue, CrudDeleteDialog, CrudDialog, CrudEmptyState, CrudExportButton, CrudFieldRenderer, CrudFilterChips, CrudForm, CrudImportDialog, CrudInfiniteScroll, CrudPage, CrudProvider, CrudRowActions, CrudSearch, CrudSelectionContext, type CrudSelectionContextValue, CrudSheet, CrudStateContext, type CrudStateContextValue, CrudTable, CrudTableSkeletonLegacy, CrudTableToolbar, type CrudTranslations, CrudVirtualTable, DataLoader, EntityCrudPage, LazyLoader, type LegacyCrudTableSkeletonProps, applyFilterOperator, buildQueryString, buildSchemaFromConfig, calculateFieldValue, coerceRowForConfig, crudService, dataLoader, downloadFile, emptyImportResult, evaluateFormula, exportToCSV, exportToJSON, exportToXLSX, filterDisplayOnlyFields, formatFieldValue, generateCSVTemplate, generateJSONTemplate, generateXLSXTemplate, getCrudCommonTranslations, getDefaultValues, getDefaultValuesFromConfig, getDependentFields, getFieldDefaultValue, getRowValue, isCrudResponse, isFieldVisibleInForm, isFieldVisibleInTable, lazyLoader, loadStreamData, normalizeRowForConfig, parseCSV, parseFile, parseFilterValue, parseFilterValues, parseJSON, parseQueryString, parseXLSX, sortFieldsByOrder, streamData, transformFormData, translateCrudMessage, translateEntityConfig, useCrudConfig, useCrudContext, useCrudSelection, useCrudState, validateFieldValue, validateFormData, validateImportData };