@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
@@ -0,0 +1,183 @@
1
+ // @goerp/core/ui/feedback
2
+ // Feedback components (Toast, Dialog, Loading, etc.)
3
+
4
+ // ============================================================================
5
+ // Dialog (Re-exported from primitives)
6
+ // ============================================================================
7
+
8
+ export {
9
+ Dialog,
10
+ DialogTrigger,
11
+ DialogPortal,
12
+ DialogClose,
13
+ DialogOverlay,
14
+ DialogContent,
15
+ DialogHeader,
16
+ DialogFooter,
17
+ DialogTitle,
18
+ DialogDescription,
19
+ } from "../primitives";
20
+
21
+ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
22
+
23
+ import type { ComponentProps } from "react";
24
+
25
+ import { cn } from "../../utils";
26
+ import { buttonVariants } from "../primitives";
27
+
28
+ export * from "./progress";
29
+ export * from "./sheet";
30
+ export * from "./alert";
31
+ export * from "./context-menu";
32
+ export * from "./drawer";
33
+ export * from "./sonner";
34
+
35
+ export * from "./error-dialog";
36
+
37
+ export function AlertDialog({
38
+ ...props
39
+ }: ComponentProps<typeof AlertDialogPrimitive.Root>) {
40
+ return <AlertDialogPrimitive.Root data-slot="alert-dialog" {...props} />;
41
+ }
42
+
43
+ export function AlertDialogTrigger({
44
+ className,
45
+ ...props
46
+ }: ComponentProps<typeof AlertDialogPrimitive.Trigger>) {
47
+ return (
48
+ <AlertDialogPrimitive.Trigger
49
+ data-slot="alert-dialog-trigger"
50
+ className={cn("cursor-pointer", className)}
51
+ {...props}
52
+ />
53
+ );
54
+ }
55
+
56
+ export function AlertDialogPortal({
57
+ ...props
58
+ }: ComponentProps<typeof AlertDialogPrimitive.Portal>) {
59
+ return (
60
+ <AlertDialogPrimitive.Portal data-slot="alert-dialog-portal" {...props} />
61
+ );
62
+ }
63
+
64
+ export function AlertDialogOverlay({
65
+ className,
66
+ ...props
67
+ }: ComponentProps<typeof AlertDialogPrimitive.Overlay>) {
68
+ return (
69
+ <AlertDialogPrimitive.Overlay
70
+ data-slot="alert-dialog-overlay"
71
+ className={cn(
72
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
73
+ className,
74
+ )}
75
+ {...props}
76
+ />
77
+ );
78
+ }
79
+
80
+ export function AlertDialogContent({
81
+ className,
82
+ ...props
83
+ }: ComponentProps<typeof AlertDialogPrimitive.Content>) {
84
+ return (
85
+ <AlertDialogPortal>
86
+ <AlertDialogOverlay />
87
+ <AlertDialogPrimitive.Content
88
+ data-slot="alert-dialog-content"
89
+ className={cn(
90
+ "fixed top-[50%] left-[50%] z-50 w-full max-w-[calc(100%-2rem)] grid bg-background translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:max-w-lg",
91
+ className,
92
+ )}
93
+ {...props}
94
+ />
95
+ </AlertDialogPortal>
96
+ );
97
+ }
98
+
99
+ export function AlertDialogHeader({
100
+ className,
101
+ ...props
102
+ }: ComponentProps<"div">) {
103
+ return (
104
+ <div
105
+ data-slot="alert-dialog-header"
106
+ className={cn(
107
+ "flex flex-col space-y-2 text-center sm:text-left",
108
+ className,
109
+ )}
110
+ {...props}
111
+ />
112
+ );
113
+ }
114
+
115
+ export function AlertDialogFooter({
116
+ className,
117
+ ...props
118
+ }: ComponentProps<"div">) {
119
+ return (
120
+ <div
121
+ data-slot="alert-dialog-footer"
122
+ className={cn(
123
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2",
124
+ className,
125
+ )}
126
+ {...props}
127
+ />
128
+ );
129
+ }
130
+
131
+ export function AlertDialogTitle({
132
+ className,
133
+ ...props
134
+ }: ComponentProps<typeof AlertDialogPrimitive.Title>) {
135
+ return (
136
+ <AlertDialogPrimitive.Title
137
+ data-slot="alert-dialog-title"
138
+ className={cn("text-lg font-semibold", className)}
139
+ {...props}
140
+ />
141
+ );
142
+ }
143
+
144
+ export function AlertDialogDescription({
145
+ className,
146
+ ...props
147
+ }: ComponentProps<typeof AlertDialogPrimitive.Description>) {
148
+ return (
149
+ <AlertDialogPrimitive.Description
150
+ data-slot="alert-dialog-description"
151
+ className={cn("text-sm text-muted-foreground", className)}
152
+ {...props}
153
+ />
154
+ );
155
+ }
156
+
157
+ export function AlertDialogAction({
158
+ className,
159
+ ...props
160
+ }: ComponentProps<typeof AlertDialogPrimitive.Action>) {
161
+ return (
162
+ <AlertDialogPrimitive.Action
163
+ className={cn(buttonVariants(), className)}
164
+ {...props}
165
+ />
166
+ );
167
+ }
168
+
169
+ export function AlertDialogCancel({
170
+ className,
171
+ ...props
172
+ }: ComponentProps<typeof AlertDialogPrimitive.Cancel>) {
173
+ return (
174
+ <AlertDialogPrimitive.Cancel
175
+ className={cn(
176
+ buttonVariants({ variant: "outline" }),
177
+ "mt-2 sm:mt-0",
178
+ className,
179
+ )}
180
+ {...props}
181
+ />
182
+ );
183
+ }
@@ -0,0 +1,32 @@
1
+ "use client";
2
+
3
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
4
+ import type { ComponentProps } from "react";
5
+ import { cn } from "../../utils";
6
+
7
+ export function Progress({
8
+ className,
9
+ value,
10
+ max,
11
+ ...props
12
+ }: ComponentProps<typeof ProgressPrimitive.Root>) {
13
+ return (
14
+ <ProgressPrimitive.Root
15
+ data-slot="progress"
16
+ className={cn(
17
+ "relative h-2 w-full overflow-hidden rounded-lg bg-primary/20",
18
+ className,
19
+ )}
20
+ max={max}
21
+ {...props}
22
+ >
23
+ <ProgressPrimitive.Indicator
24
+ data-slot="progress-indicator"
25
+ className="h-full w-full flex-1 bg-primary transition-all"
26
+ style={{
27
+ transform: `translateX(-${100 - ((value || 0) / (max || 100)) * 100}%)`,
28
+ }}
29
+ />
30
+ </ProgressPrimitive.Root>
31
+ );
32
+ }
@@ -0,0 +1,148 @@
1
+ "use client";
2
+
3
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
4
+ import { cva } from "class-variance-authority";
5
+ import type { ComponentProps } from "react";
6
+ import { cn } from "../../utils";
7
+
8
+ export function Sheet({
9
+ ...props
10
+ }: ComponentProps<typeof SheetPrimitive.Root>) {
11
+ return <SheetPrimitive.Root data-slot="sheet" {...props} />;
12
+ }
13
+
14
+ export function SheetTrigger({
15
+ className,
16
+ ...props
17
+ }: ComponentProps<typeof SheetPrimitive.Trigger>) {
18
+ return (
19
+ <SheetPrimitive.Trigger
20
+ data-slot="sheet-trigger"
21
+ className={cn("cursor-pointer", className)}
22
+ {...props}
23
+ />
24
+ );
25
+ }
26
+
27
+ export function SheetClose({
28
+ ...props
29
+ }: ComponentProps<typeof SheetPrimitive.Close>) {
30
+ return <SheetPrimitive.Close data-slot="sheet-close" {...props} />;
31
+ }
32
+
33
+ export function SheetPortal({
34
+ ...props
35
+ }: ComponentProps<typeof SheetPrimitive.Portal>) {
36
+ return <SheetPrimitive.Portal data-slot="sheet-portal" {...props} />;
37
+ }
38
+
39
+ export function SheetOverlay({
40
+ className,
41
+ ...props
42
+ }: ComponentProps<typeof SheetPrimitive.Overlay>) {
43
+ return (
44
+ <SheetPrimitive.Overlay
45
+ data-slot="sheet-overlay"
46
+ className={cn(
47
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
48
+ className,
49
+ )}
50
+ {...props}
51
+ />
52
+ );
53
+ }
54
+
55
+ export const sheetVariants = cva(
56
+ "fixed z-50 gap-4 bg-background p-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",
57
+ {
58
+ variants: {
59
+ side: {
60
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
61
+ bottom:
62
+ "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
63
+ left: "inset-y-0 left-0 h-full w-72 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
64
+ right:
65
+ "inset-y-0 right-0 h-full w-72 border-s data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
66
+ start:
67
+ "inset-y-0 start-0 h-full w-72 border-e data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left data-[state=closed]:rtl:slide-out-to-right data-[state=open]:rtl:slide-in-from-right sm:max-w-sm",
68
+ end: "inset-y-0 end-0 h-full w-72 border-s data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right data-[state=closed]:rtl:slide-out-to-left data-[state=open]:rtl:slide-in-from-left sm:max-w-sm",
69
+ },
70
+ },
71
+ defaultVariants: {
72
+ side: "right",
73
+ },
74
+ },
75
+ );
76
+
77
+ type SheetContentProps = ComponentProps<typeof SheetPrimitive.Content> & {
78
+ side?: "top" | "right" | "bottom" | "left" | "start" | "end";
79
+ };
80
+
81
+ export function SheetContent({
82
+ className,
83
+ children,
84
+ side = "right",
85
+ ...props
86
+ }: SheetContentProps) {
87
+ return (
88
+ <SheetPortal>
89
+ <SheetOverlay />
90
+ <SheetPrimitive.Content
91
+ data-slot="sheet-content"
92
+ className={cn(sheetVariants({ side }), className)}
93
+ {...props}
94
+ >
95
+ {children}
96
+ </SheetPrimitive.Content>
97
+ </SheetPortal>
98
+ );
99
+ }
100
+
101
+ export function SheetHeader({ className, ...props }: ComponentProps<"div">) {
102
+ return (
103
+ <div
104
+ data-slot="sheet-header"
105
+ className={cn("flex flex-col space-y-1", className)}
106
+ {...props}
107
+ />
108
+ );
109
+ }
110
+
111
+ export function SheetFooter({ className, ...props }: ComponentProps<"div">) {
112
+ return (
113
+ <div
114
+ data-slot="sheet-footer"
115
+ className={cn(
116
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:gap-x-2",
117
+ className,
118
+ )}
119
+ {...props}
120
+ />
121
+ );
122
+ }
123
+
124
+ export function SheetTitle({
125
+ className,
126
+ ...props
127
+ }: ComponentProps<typeof SheetPrimitive.Title>) {
128
+ return (
129
+ <SheetPrimitive.Title
130
+ data-slot="sheet-title"
131
+ className={cn("text-lg font-semibold text-foreground", className)}
132
+ {...props}
133
+ />
134
+ );
135
+ }
136
+
137
+ export function SheetDescription({
138
+ className,
139
+ ...props
140
+ }: ComponentProps<typeof SheetPrimitive.Description>) {
141
+ return (
142
+ <SheetPrimitive.Description
143
+ data-slot="sheet-description"
144
+ className={cn("text-sm text-muted-foreground", className)}
145
+ {...props}
146
+ />
147
+ );
148
+ }
@@ -0,0 +1,36 @@
1
+ "use client";
2
+
3
+ import { Toaster as Sonner } from "sonner";
4
+
5
+ import type { ComponentProps } from "react";
6
+
7
+ import { useSettings } from "../../hooks";
8
+
9
+ type ToasterProps = ComponentProps<typeof Sonner>;
10
+
11
+ export function Toaster({ ...props }: ToasterProps) {
12
+ const { settings } = useSettings();
13
+
14
+ const mode = settings.mode;
15
+
16
+ return (
17
+ <Sonner
18
+ theme={mode as ToasterProps["theme"]}
19
+ className="toaster group"
20
+ toastOptions={{
21
+ classNames: {
22
+ toast:
23
+ "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
24
+ description: "group-[.toast]:text-muted-foreground",
25
+ actionButton:
26
+ "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
27
+ cancelButton:
28
+ "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground",
29
+ },
30
+ }}
31
+ richColors
32
+ closeButton
33
+ {...props}
34
+ />
35
+ );
36
+ }
@@ -0,0 +1,157 @@
1
+ "use client";
2
+
3
+ import { Command as CommandPrimitive } from "cmdk";
4
+ import { Search } from "lucide-react";
5
+ import type { ComponentProps } from "react";
6
+ import { cn } from "../../utils";
7
+ import { Dialog, DialogContent } from "../feedback";
8
+
9
+ export function Command({
10
+ className,
11
+ ...props
12
+ }: ComponentProps<typeof CommandPrimitive>) {
13
+ return (
14
+ <CommandPrimitive
15
+ data-slot="command"
16
+ className={cn(
17
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
18
+ className,
19
+ )}
20
+ {...props}
21
+ />
22
+ );
23
+ }
24
+
25
+ interface CommandDialogProps extends ComponentProps<typeof Dialog> {
26
+ commandProps?: ComponentProps<typeof Command>;
27
+ }
28
+
29
+ export function CommandDialog({
30
+ children,
31
+ commandProps,
32
+ ...props
33
+ }: CommandDialogProps) {
34
+ return (
35
+ <Dialog {...props}>
36
+ <DialogContent className="overflow-hidden p-0 shadow-lg">
37
+ <Command
38
+ className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5"
39
+ {...commandProps}
40
+ >
41
+ {children as any}
42
+ </Command>
43
+ </DialogContent>
44
+ </Dialog>
45
+ );
46
+ }
47
+
48
+ export function CommandInput({
49
+ className,
50
+ ...props
51
+ }: ComponentProps<typeof CommandPrimitive.Input>) {
52
+ return (
53
+ <div
54
+ data-slot="command-input-wrapper"
55
+ className="flex items-center border-b px-3"
56
+ >
57
+ <Search className="me-2 size-4 shrink-0 opacity-50" />
58
+ <CommandPrimitive.Input
59
+ data-slot="command-input"
60
+ className={cn(
61
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
62
+ className,
63
+ )}
64
+ {...props}
65
+ />
66
+ </div>
67
+ );
68
+ }
69
+
70
+ export function CommandList({
71
+ className,
72
+ ...props
73
+ }: ComponentProps<typeof CommandPrimitive.List>) {
74
+ return (
75
+ <CommandPrimitive.List
76
+ data-slot="command-list"
77
+ className={cn(
78
+ "max-h-[300px] overflow-y-auto overflow-x-hidden",
79
+ className,
80
+ )}
81
+ {...props}
82
+ />
83
+ );
84
+ }
85
+
86
+ export function CommandEmpty({
87
+ ...props
88
+ }: ComponentProps<typeof CommandPrimitive.Empty>) {
89
+ return (
90
+ <CommandPrimitive.Empty
91
+ data-slot="command-empty"
92
+ className="py-6 text-center text-sm"
93
+ {...props}
94
+ />
95
+ );
96
+ }
97
+
98
+ export function CommandGroup({
99
+ className,
100
+ ...props
101
+ }: ComponentProps<typeof CommandPrimitive.Group>) {
102
+ return (
103
+ <CommandPrimitive.Group
104
+ data-slot="command-group"
105
+ className={cn(
106
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-sm [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
107
+ className,
108
+ )}
109
+ {...props}
110
+ />
111
+ );
112
+ }
113
+
114
+ export function CommandSeparator({
115
+ className,
116
+ ...props
117
+ }: ComponentProps<typeof CommandPrimitive.Separator>) {
118
+ return (
119
+ <CommandPrimitive.Separator
120
+ data-slot="command-separator"
121
+ className={cn("-mx-1 h-px bg-border", className)}
122
+ {...props}
123
+ />
124
+ );
125
+ }
126
+
127
+ export function CommandItem({
128
+ className,
129
+ ...props
130
+ }: ComponentProps<typeof CommandPrimitive.Item>) {
131
+ return (
132
+ <CommandPrimitive.Item
133
+ data-slot="command-item"
134
+ className={cn(
135
+ "cursor-pointer relative flex gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50",
136
+ className,
137
+ )}
138
+ {...props}
139
+ />
140
+ );
141
+ }
142
+
143
+ export function CommandShortcut({
144
+ className,
145
+ ...props
146
+ }: ComponentProps<"span">) {
147
+ return (
148
+ <span
149
+ data-slot="command-shortcut"
150
+ className={cn(
151
+ "ms-auto text-sm tracking-widest text-muted-foreground",
152
+ className,
153
+ )}
154
+ {...props}
155
+ />
156
+ );
157
+ }
@@ -0,0 +1,73 @@
1
+ "use client";
2
+
3
+ import { format } from "date-fns";
4
+ import { CalendarIcon } from "lucide-react";
5
+
6
+ import type { ComponentProps } from "react";
7
+
8
+ import { cn } from "../../utils";
9
+
10
+ import { Button } from "../primitives";
11
+ import {
12
+ Calendar,
13
+ Popover,
14
+ PopoverContent,
15
+ PopoverTrigger,
16
+ } from "../primitives/client";
17
+
18
+ type DatePickerProps = Omit<
19
+ ComponentProps<typeof Calendar>,
20
+ "mode" | "selected" | "onSelect"
21
+ > & {
22
+ value?: Date;
23
+ onValueChange?: (date?: Date) => void;
24
+ formatStr?: string;
25
+ popoverContentClassName?: string;
26
+ popoverContentOptions?: ComponentProps<typeof PopoverContent>;
27
+ buttonClassName?: string;
28
+ buttonOptions?: ComponentProps<typeof Button>;
29
+ placeholder?: string;
30
+ };
31
+
32
+ export function DatePicker({
33
+ value,
34
+ onValueChange,
35
+ formatStr = "yyyy-MM-dd",
36
+ popoverContentClassName,
37
+ popoverContentOptions,
38
+ buttonClassName,
39
+ buttonOptions,
40
+ placeholder = "Pick date",
41
+ ...props
42
+ }: DatePickerProps) {
43
+ return (
44
+ <Popover modal>
45
+ <PopoverTrigger asChild>
46
+ <Button
47
+ variant="outline"
48
+ className={cn("w-full px-3 text-start font-normal", buttonClassName)}
49
+ {...buttonOptions}
50
+ >
51
+ {value ? (
52
+ <span>{format(value, formatStr)}</span>
53
+ ) : (
54
+ <span className="text-muted-foreground">{placeholder}</span>
55
+ )}
56
+ <CalendarIcon className="shrink-0 h-4 w-4 ms-auto text-muted-foreground" />
57
+ </Button>
58
+ </PopoverTrigger>
59
+ <PopoverContent
60
+ className={cn("w-auto p-0", popoverContentClassName)}
61
+ align="start"
62
+ {...popoverContentOptions}
63
+ >
64
+ <Calendar
65
+ mode="single"
66
+ selected={value}
67
+ onSelect={onValueChange}
68
+ {...props}
69
+ />
70
+ </PopoverContent>
71
+ </Popover>
72
+ );
73
+ }
@@ -0,0 +1,76 @@
1
+ "use client";
2
+
3
+ import { format } from "date-fns";
4
+ import { CalendarIcon } from "lucide-react";
5
+
6
+ import type { ComponentProps } from "react";
7
+ import type { DateRange } from "react-day-picker";
8
+
9
+ import { cn } from "../../utils";
10
+
11
+ import { Button } from "../primitives";
12
+ import { Calendar } from "../primitives/client";
13
+ import { Popover, PopoverContent, PopoverTrigger } from "../primitives/client";
14
+
15
+ type DateRangePickerProps = Omit<
16
+ ComponentProps<typeof Calendar>,
17
+ "mode" | "selected" | "onSelect"
18
+ > & {
19
+ value?: DateRange;
20
+ onValueChange?: (date?: DateRange) => void;
21
+ formatStr?: string;
22
+ popoverContentClassName?: string;
23
+ popoverContentOptions?: ComponentProps<typeof PopoverContent>;
24
+ buttonClassName?: string;
25
+ buttonOptions?: ComponentProps<typeof Button>;
26
+ placeholder?: string;
27
+ };
28
+
29
+ export function DateRangePicker({
30
+ value,
31
+ onValueChange,
32
+ formatStr = "yyyy-MM-dd",
33
+ popoverContentClassName,
34
+ popoverContentOptions,
35
+ buttonClassName,
36
+ buttonOptions,
37
+ placeholder = "Pick date",
38
+ ...props
39
+ }: DateRangePickerProps) {
40
+ return (
41
+ <Popover modal>
42
+ <PopoverTrigger asChild>
43
+ <Button
44
+ variant="outline"
45
+ className={cn("w-full px-3 text-start font-normal", buttonClassName)}
46
+ {...buttonOptions}
47
+ >
48
+ {value?.from ? (
49
+ value.to ? (
50
+ <span>
51
+ {format(value.from, formatStr)} to {format(value.to, formatStr)}
52
+ </span>
53
+ ) : (
54
+ <span>{format(value.from, formatStr)}</span>
55
+ )
56
+ ) : (
57
+ <span className="text-muted-foreground">{placeholder}</span>
58
+ )}
59
+ <CalendarIcon className="ms-auto h-4 w-4 text-muted-foreground" />
60
+ </Button>
61
+ </PopoverTrigger>
62
+ <PopoverContent
63
+ className={cn("w-auto p-0", popoverContentClassName)}
64
+ align="start"
65
+ {...popoverContentOptions}
66
+ >
67
+ <Calendar
68
+ mode="range"
69
+ selected={value}
70
+ onSelect={onValueChange}
71
+ {...props}
72
+ />
73
+ </PopoverContent>
74
+ </Popover>
75
+ );
76
+ }