@auto-engineer/frontend-generator-react-graphql 0.11.2 → 0.11.4

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 (110) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/mui-starter/auto-configure.ts +114 -0
  3. package/dist/mui-starter/codegen.ts +16 -0
  4. package/dist/mui-starter/design-system-principles.md +32 -0
  5. package/dist/mui-starter/eslint.config.ts +57 -0
  6. package/dist/mui-starter/index.html +26 -0
  7. package/dist/mui-starter/package.json +70 -0
  8. package/dist/mui-starter/postcss.config.ts +5 -0
  9. package/dist/mui-starter/public/favicon.ico +0 -0
  10. package/dist/mui-starter/src/App.css +42 -0
  11. package/dist/mui-starter/src/App.tsx +21 -0
  12. package/dist/mui-starter/src/apolloClient.ts +8 -0
  13. package/dist/mui-starter/src/hooks/use-mobile.tsx +19 -0
  14. package/dist/mui-starter/src/hooks/use-toast.ts +186 -0
  15. package/dist/mui-starter/src/index.css +0 -0
  16. package/dist/mui-starter/src/main.tsx +5 -0
  17. package/dist/mui-starter/src/pages/Index.tsx +10 -0
  18. package/dist/mui-starter/src/pages/NotFound.tsx +20 -0
  19. package/dist/mui-starter/src/theme.ts +86 -0
  20. package/dist/mui-starter/src/theme.ts.ejs +3 -0
  21. package/dist/mui-starter/tsconfig.json +40 -0
  22. package/dist/mui-starter/vite.config.ts +21 -0
  23. package/dist/shadcn-starter/auto-configure.ts +107 -0
  24. package/dist/shadcn-starter/codegen.ts +16 -0
  25. package/dist/shadcn-starter/components.json +20 -0
  26. package/dist/shadcn-starter/design-system-principles.md +23 -0
  27. package/dist/shadcn-starter/eslint.config.ts +57 -0
  28. package/dist/shadcn-starter/index.html +26 -0
  29. package/dist/shadcn-starter/package.json +101 -0
  30. package/dist/shadcn-starter/pnpm-lock.yaml +8234 -0
  31. package/dist/shadcn-starter/postcss.config.ts +6 -0
  32. package/dist/shadcn-starter/public/favicon.ico +0 -0
  33. package/dist/shadcn-starter/src/App.css +6 -0
  34. package/dist/shadcn-starter/src/App.tsx +28 -0
  35. package/dist/shadcn-starter/src/apolloClient.ts +8 -0
  36. package/dist/shadcn-starter/src/components/atoms/accordion.tsx +52 -0
  37. package/dist/shadcn-starter/src/components/atoms/alert-dialog.tsx +104 -0
  38. package/dist/shadcn-starter/src/components/atoms/alert.tsx +43 -0
  39. package/dist/shadcn-starter/src/components/atoms/aspect-ratio.tsx +5 -0
  40. package/dist/shadcn-starter/src/components/atoms/avatar.tsx +40 -0
  41. package/dist/shadcn-starter/src/components/atoms/badge.tsx +29 -0
  42. package/dist/shadcn-starter/src/components/atoms/breadcrumb.tsx +90 -0
  43. package/dist/shadcn-starter/src/components/atoms/button.tsx +47 -0
  44. package/dist/shadcn-starter/src/components/atoms/calendar.tsx +158 -0
  45. package/dist/shadcn-starter/src/components/atoms/card.tsx +43 -0
  46. package/dist/shadcn-starter/src/components/atoms/carousel.tsx +224 -0
  47. package/dist/shadcn-starter/src/components/atoms/chart.tsx +307 -0
  48. package/dist/shadcn-starter/src/components/atoms/checkbox.tsx +26 -0
  49. package/dist/shadcn-starter/src/components/atoms/collapsible.tsx +11 -0
  50. package/dist/shadcn-starter/src/components/atoms/command.tsx +132 -0
  51. package/dist/shadcn-starter/src/components/atoms/context-menu.tsx +178 -0
  52. package/dist/shadcn-starter/src/components/atoms/dialog.tsx +97 -0
  53. package/dist/shadcn-starter/src/components/atoms/drawer.tsx +87 -0
  54. package/dist/shadcn-starter/src/components/atoms/dropdown-menu.tsx +181 -0
  55. package/dist/shadcn-starter/src/components/atoms/form.tsx +136 -0
  56. package/dist/shadcn-starter/src/components/atoms/hover-card.tsx +27 -0
  57. package/dist/shadcn-starter/src/components/atoms/input-otp.tsx +61 -0
  58. package/dist/shadcn-starter/src/components/atoms/input.tsx +22 -0
  59. package/dist/shadcn-starter/src/components/atoms/label.tsx +19 -0
  60. package/dist/shadcn-starter/src/components/atoms/menubar.tsx +217 -0
  61. package/dist/shadcn-starter/src/components/atoms/navigation-menu.tsx +120 -0
  62. package/dist/shadcn-starter/src/components/atoms/pagination.tsx +81 -0
  63. package/dist/shadcn-starter/src/components/atoms/popover.tsx +29 -0
  64. package/dist/shadcn-starter/src/components/atoms/progress.tsx +25 -0
  65. package/dist/shadcn-starter/src/components/atoms/radio-group.tsx +36 -0
  66. package/dist/shadcn-starter/src/components/atoms/resizable.tsx +39 -0
  67. package/dist/shadcn-starter/src/components/atoms/scroll-area.tsx +38 -0
  68. package/dist/shadcn-starter/src/components/atoms/select.tsx +145 -0
  69. package/dist/shadcn-starter/src/components/atoms/separator.tsx +20 -0
  70. package/dist/shadcn-starter/src/components/atoms/sheet.tsx +109 -0
  71. package/dist/shadcn-starter/src/components/atoms/sidebar.tsx +641 -0
  72. package/dist/shadcn-starter/src/components/atoms/skeleton.tsx +7 -0
  73. package/dist/shadcn-starter/src/components/atoms/slider.tsx +23 -0
  74. package/dist/shadcn-starter/src/components/atoms/sonner.tsx +29 -0
  75. package/dist/shadcn-starter/src/components/atoms/switch.tsx +27 -0
  76. package/dist/shadcn-starter/src/components/atoms/table.tsx +72 -0
  77. package/dist/shadcn-starter/src/components/atoms/tabs.tsx +53 -0
  78. package/dist/shadcn-starter/src/components/atoms/textarea.tsx +21 -0
  79. package/dist/shadcn-starter/src/components/atoms/toggle-group.tsx +51 -0
  80. package/dist/shadcn-starter/src/components/atoms/toggle.tsx +37 -0
  81. package/dist/shadcn-starter/src/components/atoms/tooltip.tsx +30 -0
  82. package/dist/shadcn-starter/src/hooks/use-mobile.tsx +19 -0
  83. package/dist/shadcn-starter/src/hooks/use-toast.ts +186 -0
  84. package/dist/shadcn-starter/src/index.css +103 -0
  85. package/dist/shadcn-starter/src/index.css.ejs +27 -0
  86. package/dist/shadcn-starter/src/lib/utils.ts +6 -0
  87. package/dist/shadcn-starter/src/main.tsx +5 -0
  88. package/dist/shadcn-starter/src/mockApolloClient.ts +93 -0
  89. package/dist/shadcn-starter/src/pages/NotFound.tsx +22 -0
  90. package/dist/shadcn-starter/tailwind.config.ts +92 -0
  91. package/dist/shadcn-starter/tsconfig.json +48 -0
  92. package/dist/shadcn-starter/vite.config.ts +21 -0
  93. package/dist/src/builder.js +3 -3
  94. package/dist/src/builder.js.map +1 -1
  95. package/dist/src/commands/copy-example.js +1 -1
  96. package/dist/src/commands/copy-example.js.map +1 -1
  97. package/dist/src/commands/generate-client.d.ts +2 -1
  98. package/dist/src/commands/generate-client.d.ts.map +1 -1
  99. package/dist/src/commands/generate-client.js +14 -4
  100. package/dist/src/commands/generate-client.js.map +1 -1
  101. package/dist/src/configure-starter.js +1 -1
  102. package/dist/src/configure-starter.js.map +1 -1
  103. package/dist/src/generator/generateComponents.js +3 -3
  104. package/dist/src/generator/generateComponents.js.map +1 -1
  105. package/dist/src/run-codegen.js +2 -2
  106. package/dist/src/run-codegen.js.map +1 -1
  107. package/dist/src/write-graphql-schema.js +1 -1
  108. package/dist/src/write-graphql-schema.js.map +1 -1
  109. package/dist/tsconfig.tsbuildinfo +1 -1
  110. package/package.json +5 -5
@@ -0,0 +1,86 @@
1
+ import { createTheme } from '@mui/material';
2
+
3
+ export const theme = createTheme({
4
+ palette: {
5
+ text: {
6
+ primary: '',
7
+ secondary: '',
8
+ disabled: '',
9
+ },
10
+ primary: {
11
+ main: '',
12
+ light: '',
13
+ dark: '',
14
+ contrastText: '',
15
+ },
16
+ secondary: {
17
+ main: '',
18
+ light: '',
19
+ dark: '',
20
+ contrastText: '',
21
+ },
22
+ background: {
23
+ default: '',
24
+ paper: '',
25
+ },
26
+ action: {
27
+ disabled: '',
28
+ active: '',
29
+ focus: '',
30
+ hover: '',
31
+ activatedOpacity: 1,
32
+ disabledBackground: '',
33
+ focusOpacity: 1,
34
+ selected: '',
35
+ disabledOpacity: 1,
36
+ hoverOpacity: 1,
37
+ selectedOpacity: 1,
38
+ },
39
+ error: {
40
+ main: '',
41
+ light: '',
42
+ dark: '',
43
+ contrastText: '',
44
+ },
45
+ warning: {
46
+ main: '',
47
+ light: '',
48
+ dark: '',
49
+ contrastText: '',
50
+ },
51
+ info: {
52
+ main: '',
53
+ light: '',
54
+ dark: '',
55
+ contrastText: '',
56
+ },
57
+ success: {
58
+ main: '',
59
+ light: '',
60
+ dark: '',
61
+ contrastText: '',
62
+ },
63
+ divider: '',
64
+ },
65
+ breakpoints: {
66
+ values: {
67
+ xs: 444,
68
+ sm: 600,
69
+ md: 900,
70
+ lg: 1200,
71
+ xl: 1536,
72
+ },
73
+ },
74
+ spacing: 8,
75
+ shape: {
76
+ borderRadius: 4,
77
+ },
78
+ typography: {
79
+ fontFamily: 'Roboto',
80
+ fontWeightLight: 300,
81
+ fontWeightRegular: 400,
82
+ fontWeightMedium: 500,
83
+ fontWeightBold: 700,
84
+ fontSize: 16,
85
+ },
86
+ });
@@ -0,0 +1,3 @@
1
+ import { createTheme } from '@mui/material';
2
+
3
+ export const theme = createTheme(<%- JSON.stringify(themeOptions, null, 2) %>);
@@ -0,0 +1,40 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "lib": ["ES2023", "DOM", "DOM.Iterable"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "node",
7
+ "isolatedModules": true,
8
+ "moduleDetection": "force",
9
+ "noEmit": true,
10
+ "jsx": "react-jsx",
11
+ "jsxImportSource": "react",
12
+ /* Type Safety */
13
+ "strict": false,
14
+ "strictNullChecks": false,
15
+ "strictFunctionTypes": false,
16
+ "strictBindCallApply": false,
17
+ "strictPropertyInitialization": false,
18
+ "noImplicitAny": false,
19
+ "noImplicitThis": false,
20
+ // "alwaysStrict": true,
21
+ /* Quality Checks */
22
+ "noUnusedLocals": false,
23
+ "noUnusedParameters": false,
24
+ "noFallthroughCasesInSwitch": false,
25
+ "noImplicitReturns": false,
26
+ "exactOptionalPropertyTypes": false,
27
+ "forceConsistentCasingInFileNames": false,
28
+ "skipLibCheck": true,
29
+ "skipDefaultLibCheck": true,
30
+ "allowSyntheticDefaultImports": true,
31
+ "esModuleInterop": true,
32
+ /* Paths / Aliases */
33
+ "baseUrl": ".",
34
+ "paths": {
35
+ "@/*": ["./src/*"]
36
+ }
37
+ },
38
+ "include": ["src/**/*", "vite.config.ts", "codegen.ts", "eslint.config.ts", "auto-configure.ts", "postcss.config.ts"],
39
+ "exclude": ["node_modules/**", "dist"]
40
+ }
@@ -0,0 +1,21 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import path from 'path';
4
+ import postcss from './postcss.config';
5
+
6
+ // https://vitejs.dev/config/
7
+ export default defineConfig(({ mode }) => ({
8
+ server: {
9
+ host: '::',
10
+ port: 8080,
11
+ },
12
+ plugins: [react()],
13
+ css: {
14
+ postcss,
15
+ },
16
+ resolve: {
17
+ alias: {
18
+ '@': path.resolve(__dirname, './src'),
19
+ },
20
+ },
21
+ }));
@@ -0,0 +1,107 @@
1
+ import { createFile, templatePropsAIMapper } from '@auto-engineer/frontend-generator-react-graphql';
2
+
3
+ const cssVariables = {
4
+ tokens: {
5
+ radius: '0.5rem',
6
+
7
+ background: '',
8
+ foreground: '',
9
+
10
+ card: '',
11
+ 'card-foreground': '',
12
+
13
+ popover: '',
14
+ 'popover-foreground': '',
15
+
16
+ primary: '',
17
+ 'primary-foreground': '',
18
+
19
+ secondary: '',
20
+ 'secondary-foreground': '',
21
+
22
+ muted: '',
23
+ 'muted-foreground': '',
24
+
25
+ accent: '',
26
+ 'accent-foreground': '',
27
+
28
+ destructive: '',
29
+ 'destructive-foreground': '',
30
+
31
+ border: '',
32
+ input: '',
33
+ ring: '',
34
+
35
+ 'chart-1': '',
36
+ 'chart-2': '',
37
+ 'chart-3': '',
38
+ 'chart-4': '',
39
+ 'chart-5': '',
40
+
41
+ sidebar: '',
42
+ 'sidebar-foreground': '',
43
+ 'sidebar-primary': '',
44
+ 'sidebar-primary-foreground': '',
45
+ 'sidebar-accent': '',
46
+ 'sidebar-accent-foreground': '',
47
+ 'sidebar-border': '',
48
+ 'sidebar-ring': '',
49
+ },
50
+ darkTokens: {
51
+ background: '',
52
+ foreground: '',
53
+
54
+ card: '',
55
+ 'card-foreground': '',
56
+
57
+ popover: '',
58
+ 'popover-foreground': '',
59
+
60
+ primary: '',
61
+ 'primary-foreground': '',
62
+
63
+ secondary: '',
64
+ 'secondary-foreground': '',
65
+
66
+ muted: '',
67
+ 'muted-foreground': '',
68
+
69
+ accent: '',
70
+ 'accent-foreground': '',
71
+
72
+ destructive: '',
73
+ 'destructive-foreground': '',
74
+
75
+ border: '',
76
+ input: '',
77
+ ring: '',
78
+
79
+ sidebar: '',
80
+ 'sidebar-foreground': '',
81
+ 'sidebar-primary': '',
82
+ 'sidebar-primary-foreground': '',
83
+ 'sidebar-accent': '',
84
+ 'sidebar-accent-foreground': '',
85
+ 'sidebar-border': '',
86
+ 'sidebar-ring': '',
87
+ },
88
+ };
89
+
90
+ await createFile(
91
+ 'index.css.ejs',
92
+ 'index.css',
93
+ templatePropsAIMapper('../.context/figma-file.json', {
94
+ prompt: `
95
+ - Goal: Map Figma variables to strictly named CSS variables provided as input: ${JSON.stringify(cssVariables)}
96
+ - The input will contain a predefined set of CSS variable names.
97
+ - Output format must be:
98
+ {
99
+ "tokens": { ... },
100
+ "tokensDark": { ... }
101
+ }
102
+ - If a variable does not have a dark mode, map the same light mode value to the dark mode.
103
+ - Ensure multi-part values and HSL values are kept exactly as provided.
104
+ - Use zero-like defaults for any missing matches.
105
+ `,
106
+ }),
107
+ );
@@ -0,0 +1,16 @@
1
+ import type { CodegenConfig } from '@graphql-codegen/cli';
2
+
3
+ const config: CodegenConfig = {
4
+ overwrite: true,
5
+ schema: './schema.graphql',
6
+ documents: ['src/graphql/**/*.ts', 'src/graphql/**/*.tsx'],
7
+ ignoreNoDocuments: true,
8
+ generates: {
9
+ 'src/gql/': {
10
+ preset: 'client',
11
+ plugins: [],
12
+ },
13
+ },
14
+ };
15
+
16
+ export default config;
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.ts",
8
+ "css": "src/index.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/atoms",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ }
20
+ }
@@ -0,0 +1,23 @@
1
+ Branding & Visual Identity:
2
+
3
+ - You must **infer the branding** (tone, visual identity, personality) directly from the TailwindCSS + shadcn theme in `src/globals.css`.
4
+ - Use the brand's tone and color palette consistently across all components, spacing, interactions, and layout structure.
5
+ - Avoid visual indicators like H1/H2 headings — do not use them to represent concepts or sections.
6
+ - Communicate page hierarchy through layout, spacing, color intensity, and component usage — **not headings**.
7
+
8
+ Design Patterns:
9
+
10
+ - Layouts must be responsive by default.
11
+ - Use a consistent spacing scale: 4 / 8 / 12 / 16 px.
12
+ - Components must reflect brand personality: minimal, bold, playful, formal, etc., as inferred from the theme.
13
+ - Component files should be small and composable.
14
+
15
+ UX Principles:
16
+
17
+ - Do not use visual headers or hero titles to convey page identity.
18
+ - Use dynamic hierarchy expressed through tone, spacing, and primary-color signals.
19
+ - Prefer subtle transitions and clear focus indicators.
20
+
21
+ Templates:
22
+
23
+ - For the app layout make sure to use a non collapsable sidebar
@@ -0,0 +1,57 @@
1
+ import js from '@eslint/js';
2
+ import globals from 'globals';
3
+ import reactHooks from 'eslint-plugin-react-hooks';
4
+ import reactRefresh from 'eslint-plugin-react-refresh';
5
+ import tseslint from 'typescript-eslint';
6
+ import { dirname } from 'path';
7
+ import { fileURLToPath } from 'url';
8
+
9
+ const __dirname = dirname(fileURLToPath(import.meta.url));
10
+
11
+ export default tseslint.config(
12
+ js.configs.recommended,
13
+ ...tseslint.configs.recommended,
14
+ {
15
+ languageOptions: {
16
+ parserOptions: {
17
+ tsconfigRootDir: __dirname,
18
+ project: ['./tsconfig.json'],
19
+ },
20
+ },
21
+ },
22
+ {
23
+ ignores: ['dist', 'eslint.config.ts', 'postcss.config.js'],
24
+ },
25
+ {
26
+ files: ['**/*.{ts,tsx}'],
27
+ languageOptions: {
28
+ ecmaVersion: 2020,
29
+ globals: globals.browser,
30
+ parserOptions: {
31
+ project: './tsconfig.json',
32
+ },
33
+ },
34
+ plugins: {
35
+ 'react-hooks': reactHooks,
36
+ 'react-refresh': reactRefresh,
37
+ },
38
+ rules: {
39
+ ...reactHooks.configs.recommended.rules,
40
+ 'react-refresh/only-export-components': ['warn', { allowConstantExport: true }],
41
+ '@typescript-eslint/no-unused-vars': 'off',
42
+ '@typescript-eslint/no-unsafe-assignment': 'off',
43
+ '@typescript-eslint/no-unsafe-call': 'off',
44
+ '@typescript-eslint/no-unsafe-member-access': 'off',
45
+ '@typescript-eslint/no-unsafe-return': 'off',
46
+ '@typescript-eslint/strict-boolean-expressions': 'off',
47
+ '@typescript-eslint/no-floating-promises': 'off',
48
+ '@typescript-eslint/no-misused-promises': 'off',
49
+ '@typescript-eslint/no-implied-eval': 'off',
50
+ '@typescript-eslint/no-unnecessary-type-assertion': 'off',
51
+ '@typescript-eslint/restrict-plus-operands': 'off',
52
+ '@typescript-eslint/restrict-template-expressions': 'off',
53
+ '@typescript-eslint/unbound-method': 'off',
54
+ '@typescript-eslint/no-explicit-any': 'off',
55
+ },
56
+ },
57
+ );
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Auto Starter</title>
8
+ <meta name="description" content="Auto Generated Project" />
9
+ <meta name="author" content="Auto" />
10
+
11
+ <meta property="og:title" content="Auto Starter" />
12
+ <meta property="og:description" content="Auto Generated Project" />
13
+ <meta property="og:type" content="website" />
14
+ <!-- <meta property="og:image" content="https://on.auto/opengraph-image-p98pqg.png" /> -->
15
+
16
+ <meta name="twitter:card" content="summary_large_image" />
17
+ <meta name="twitter:site" content="@beonauto" />
18
+ <meta name="twitter:image" content="https://on.auto/opengraph-image-p98pqg.png" />
19
+ </head>
20
+
21
+ <body>
22
+ <div id="root"></div>
23
+ <script type="module" src="/src/main.tsx"></script>
24
+ </body>
25
+
26
+ </html>
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@examples/react-graphql-shadcn-starter",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "start": "vite",
9
+ "build": "vite build",
10
+ "build:dev": "vite build --mode development",
11
+ "lint": "eslint .",
12
+ "preview": "vite preview",
13
+ "codegen": "graphql-codegen --config codegen.ts",
14
+ "format": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../../.prettierignore --log-level warn",
15
+ "type:check": "tsc --noEmit",
16
+ "type-check": "tsc --noEmit",
17
+ "lint:fix": "eslint .",
18
+ "format:fix": "prettier --write \"**/*.{js,ts,json,md,yml,yaml}\" --ignore-path ../../../.prettierignore --log-level warn",
19
+ "auto-configure": "tsx auto-configure.ts"
20
+ },
21
+ "dependencies": {
22
+ "@apollo/client": "^3.13.8",
23
+ "@dnd-kit/core": "^6.3.1",
24
+ "@dnd-kit/sortable": "^10.0.0",
25
+ "@hookform/resolvers": "^3.10.0",
26
+ "@radix-ui/react-accordion": "^1.2.11",
27
+ "@radix-ui/react-alert-dialog": "^1.1.14",
28
+ "@radix-ui/react-aspect-ratio": "^1.1.7",
29
+ "@radix-ui/react-avatar": "^1.1.10",
30
+ "@radix-ui/react-checkbox": "^1.3.2",
31
+ "@radix-ui/react-collapsible": "^1.1.11",
32
+ "@radix-ui/react-context-menu": "^2.2.15",
33
+ "@radix-ui/react-dialog": "^1.1.15",
34
+ "@radix-ui/react-dropdown-menu": "^2.1.15",
35
+ "@radix-ui/react-hover-card": "^1.1.14",
36
+ "@radix-ui/react-label": "^2.1.7",
37
+ "@radix-ui/react-menubar": "^1.1.15",
38
+ "@radix-ui/react-navigation-menu": "^1.2.13",
39
+ "@radix-ui/react-popover": "^1.1.14",
40
+ "@radix-ui/react-progress": "^1.1.7",
41
+ "@radix-ui/react-radio-group": "^1.3.7",
42
+ "@radix-ui/react-scroll-area": "^1.2.9",
43
+ "@radix-ui/react-select": "^2.2.5",
44
+ "@radix-ui/react-separator": "^1.1.7",
45
+ "@radix-ui/react-slider": "^1.3.5",
46
+ "@radix-ui/react-slot": "^1.2.3",
47
+ "@radix-ui/react-switch": "^1.2.5",
48
+ "@radix-ui/react-tabs": "^1.1.12",
49
+ "@radix-ui/react-toast": "^1.2.14",
50
+ "@radix-ui/react-toggle": "^1.1.9",
51
+ "@radix-ui/react-toggle-group": "^1.1.10",
52
+ "@radix-ui/react-tooltip": "^1.2.8",
53
+ "@tanstack/react-query": "^5.56.2",
54
+ "class-variance-authority": "^0.7.1",
55
+ "clsx": "^2.1.1",
56
+ "cmdk": "^1.1.1",
57
+ "commander": "^14.0.0",
58
+ "date-fns": "^3.6.0",
59
+ "ejs": "^3.1.10",
60
+ "embla-carousel-react": "^8.6.0",
61
+ "framer-motion": "^12.23.22",
62
+ "graphql": "16.8.1",
63
+ "input-otp": "^1.4.2",
64
+ "lucide-react": "^0.462.0",
65
+ "next-themes": "^0.3.0",
66
+ "react": "^18.3.1",
67
+ "react-day-picker": "^9.11.0",
68
+ "react-dom": "^18.3.1",
69
+ "react-hook-form": "^7.57.0",
70
+ "react-resizable-panels": "^2.1.9",
71
+ "react-router-dom": "^6.26.2",
72
+ "recharts": "2.15.4",
73
+ "sonner": "^1.7.4",
74
+ "tailwind-merge": "^2.5.2",
75
+ "tailwindcss-animate": "^1.0.7",
76
+ "vaul": "^0.9.9",
77
+ "zod": "^3.25.63"
78
+ },
79
+ "devDependencies": {
80
+ "@eslint/js": "^9.9.0",
81
+ "@graphql-codegen/cli": "3.2.0",
82
+ "@graphql-codegen/client-preset": "2.1.0",
83
+ "@graphql-typed-document-node/core": "^3.2.0",
84
+ "@tailwindcss/typography": "^0.5.15",
85
+ "@types/node": "^22.16.5",
86
+ "@types/react": "^18.3.23",
87
+ "@types/react-dom": "^18.3.7",
88
+ "@types/recharts": "^2.0.1",
89
+ "@vitejs/plugin-react": "^4.7.0",
90
+ "autoprefixer": "^10.4.20",
91
+ "eslint": "^9.9.0",
92
+ "eslint-plugin-react-hooks": "^5.1.0-rc.0",
93
+ "eslint-plugin-react-refresh": "^0.4.9",
94
+ "globals": "^15.9.0",
95
+ "postcss": "^8.4.47",
96
+ "tailwindcss": "^3.4.11",
97
+ "typescript": "^5.4.5",
98
+ "typescript-eslint": "^8.0.1",
99
+ "vite": "^5.4.1"
100
+ }
101
+ }