create-react-forge 1.0.2 → 1.0.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 (90) hide show
  1. package/README.md +91 -61
  2. package/dist/cli/index.js +1 -1
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/cli/parser.js +1 -1
  5. package/dist/cli/parser.js.map +1 -1
  6. package/dist/docs/architecture-generator.js +2 -2
  7. package/dist/docs/architecture-generator.js.map +1 -1
  8. package/dist/generator/index.js +1 -1
  9. package/dist/generator/index.js.map +1 -1
  10. package/package.json +2 -1
  11. package/src/templates/overlays/base/manifest.json +16 -0
  12. package/src/templates/overlays/base/src/components/ui/Button.tsx +66 -0
  13. package/src/templates/overlays/base/src/components/ui/Input.tsx +51 -0
  14. package/src/templates/overlays/base/src/components/ui/index.ts +3 -0
  15. package/src/templates/overlays/base/src/hooks/use-disclosure.ts +21 -0
  16. package/src/templates/overlays/base/src/hooks/use-local-storage.ts +80 -0
  17. package/src/templates/overlays/base/src/lib/api-client.ts +101 -0
  18. package/src/templates/overlays/base/src/lib/utils.ts +34 -0
  19. package/src/templates/overlays/base/src/types/api.ts +47 -0
  20. package/src/templates/overlays/features/tanstack-query/manifest.json +17 -0
  21. package/src/templates/overlays/features/tanstack-query/src/features/users/api/create-user.ts +41 -0
  22. package/src/templates/overlays/features/tanstack-query/src/features/users/api/get-user.ts +27 -0
  23. package/src/templates/overlays/features/tanstack-query/src/features/users/api/get-users.ts +39 -0
  24. package/src/templates/overlays/features/tanstack-query/src/hooks/use-query-config.ts +42 -0
  25. package/src/templates/overlays/features/tanstack-query/src/lib/QueryProvider.tsx +28 -0
  26. package/src/templates/overlays/features/tanstack-query/src/lib/react-query.ts +46 -0
  27. package/src/templates/overlays/runtime/nextjs/manifest.json +27 -0
  28. package/src/templates/overlays/runtime/nextjs/next-env.d.ts +6 -0
  29. package/src/templates/overlays/runtime/nextjs/next.config.js +12 -0
  30. package/src/templates/overlays/runtime/nextjs/src/app/error.tsx +34 -0
  31. package/src/templates/overlays/runtime/nextjs/src/app/layout.tsx +23 -0
  32. package/src/templates/overlays/runtime/nextjs/src/app/loading.tsx +12 -0
  33. package/src/templates/overlays/runtime/nextjs/src/app/not-found.tsx +26 -0
  34. package/src/templates/overlays/runtime/nextjs/src/app/page.tsx +33 -0
  35. package/src/templates/overlays/runtime/nextjs/src/app/providers.tsx +14 -0
  36. package/src/templates/overlays/runtime/nextjs/src/styles/globals.css +50 -0
  37. package/src/templates/overlays/runtime/nextjs/tsconfig.json +29 -0
  38. package/src/templates/overlays/runtime/vite/index.html +14 -0
  39. package/src/templates/overlays/runtime/vite/manifest.json +28 -0
  40. package/src/templates/overlays/runtime/vite/public/vite.svg +2 -0
  41. package/src/templates/overlays/runtime/vite/src/app/App.tsx +11 -0
  42. package/src/templates/overlays/runtime/vite/src/app/provider.tsx +20 -0
  43. package/src/templates/overlays/runtime/vite/src/app/router.tsx +19 -0
  44. package/src/templates/overlays/runtime/vite/src/components/errors/ErrorFallback.tsx +21 -0
  45. package/src/templates/overlays/runtime/vite/src/components/ui/LoadingSpinner.tsx +23 -0
  46. package/src/templates/overlays/runtime/vite/src/features/misc/routes/Landing.tsx +33 -0
  47. package/src/templates/overlays/runtime/vite/src/features/misc/routes/NotFound.tsx +26 -0
  48. package/src/templates/overlays/runtime/vite/src/main.tsx +11 -0
  49. package/src/templates/overlays/runtime/vite/src/styles/globals.css +55 -0
  50. package/src/templates/overlays/runtime/vite/tsconfig.json +32 -0
  51. package/src/templates/overlays/runtime/vite/tsconfig.node.json +23 -0
  52. package/src/templates/overlays/runtime/vite/vite.config.ts +22 -0
  53. package/src/templates/overlays/state/redux/manifest.json +17 -0
  54. package/src/templates/overlays/state/redux/src/stores/Provider.tsx +17 -0
  55. package/src/templates/overlays/state/redux/src/stores/hooks.ts +11 -0
  56. package/src/templates/overlays/state/redux/src/stores/index.ts +17 -0
  57. package/src/templates/overlays/state/redux/src/stores/slices/auth.ts +54 -0
  58. package/src/templates/overlays/state/redux/src/stores/slices/notifications.ts +58 -0
  59. package/src/templates/overlays/state/redux/src/stores/store.ts +27 -0
  60. package/src/templates/overlays/state/zustand/manifest.json +16 -0
  61. package/src/templates/overlays/state/zustand/src/stores/auth.ts +48 -0
  62. package/src/templates/overlays/state/zustand/src/stores/index.ts +3 -0
  63. package/src/templates/overlays/state/zustand/src/stores/notifications.ts +54 -0
  64. package/src/templates/overlays/styling/css-modules/manifest.json +14 -0
  65. package/src/templates/overlays/styling/css-modules/src/components/ui/Button.module.css +87 -0
  66. package/src/templates/overlays/styling/css-modules/src/styles/globals.css +91 -0
  67. package/src/templates/overlays/styling/tailwind/manifest.json +18 -0
  68. package/src/templates/overlays/styling/tailwind/postcss.config.js +7 -0
  69. package/src/templates/overlays/styling/tailwind/src/styles/globals.css +54 -0
  70. package/src/templates/overlays/styling/tailwind/tailwind.config.js +62 -0
  71. package/src/templates/overlays/testing/jest/jest.config.js +24 -0
  72. package/src/templates/overlays/testing/jest/manifest.json +27 -0
  73. package/src/templates/overlays/testing/jest/src/components/ui/__tests__/Button.test.tsx +33 -0
  74. package/src/templates/overlays/testing/jest/src/testing/mocks/browser.ts +17 -0
  75. package/src/templates/overlays/testing/jest/src/testing/mocks/handlers.ts +42 -0
  76. package/src/templates/overlays/testing/jest/src/testing/mocks/server.ts +8 -0
  77. package/src/templates/overlays/testing/jest/src/testing/setup.ts +20 -0
  78. package/src/templates/overlays/testing/jest/src/testing/test-utils.tsx +39 -0
  79. package/src/templates/overlays/testing/playwright/manifest.json +21 -0
  80. package/src/templates/overlays/testing/playwright/playwright.config.ts +53 -0
  81. package/src/templates/overlays/testing/playwright/tests/e2e/accessibility.spec.ts +41 -0
  82. package/src/templates/overlays/testing/playwright/tests/e2e/home.spec.ts +41 -0
  83. package/src/templates/overlays/testing/vitest/manifest.json +28 -0
  84. package/src/templates/overlays/testing/vitest/src/components/ui/__tests__/Button.test.tsx +34 -0
  85. package/src/templates/overlays/testing/vitest/src/testing/mocks/browser.ts +17 -0
  86. package/src/templates/overlays/testing/vitest/src/testing/mocks/handlers.ts +42 -0
  87. package/src/templates/overlays/testing/vitest/src/testing/mocks/server.ts +8 -0
  88. package/src/templates/overlays/testing/vitest/src/testing/setup.ts +21 -0
  89. package/src/templates/overlays/testing/vitest/src/testing/test-utils.tsx +39 -0
  90. package/src/templates/overlays/testing/vitest/vitest.config.ts +31 -0
package/README.md CHANGED
@@ -1,21 +1,17 @@
1
- # react-scaffold
1
+ # create-react-forge
2
2
 
3
- Production-ready React CLI scaffolder with first-class testing support, flexible runtimes (Vite/Next.js), and a composable template system based on [bulletproof-react](https://github.com/alan2207/bulletproof-react) architecture.
3
+ Production-ready React scaffolding CLI with first-class testing, flexible runtimes (Vite/Next.js), and a composable template system inspired by [bulletproof-react](https://github.com/alan2207/bulletproof-react).
4
4
 
5
- ## Features
5
+ ## Requirements
6
6
 
7
- - 🚀 **Vite & Next.js Support** — Choose your runtime
8
- - 🧪 **Testing as First-Class Citizen** — Vitest, Jest, React Testing Library, Playwright, Cypress
9
- - 🎨 **Flexible Styling** — Tailwind CSS, CSS Modules, or plain CSS
10
- - 📦 **State Management** — Zustand or Redux Toolkit
11
- - 🔄 **Data Fetching** — TanStack Query with DevTools
12
- - 📁 **Feature-Based Architecture** — Scalable project structure
13
- - ⚡ **Zero Config** — Smart defaults, minimal prompts
7
+ - Node.js **>= 18**
14
8
 
15
- ## Quick Start
9
+ ## Quick start
10
+
11
+ Create a new project (interactive):
16
12
 
17
13
  ```bash
18
- npx create-react-forge
14
+ npx create-react-forge@latest
19
15
  ```
20
16
 
21
17
  Or install globally:
@@ -25,9 +21,38 @@ npm install -g create-react-forge
25
21
  create-react-forge
26
22
  ```
27
23
 
28
- ## What You Get
24
+ ## What it does
25
+
26
+ When you run `create-react-forge`, it will:
27
+
28
+ - Ask a few questions (runtime, language, styling, testing, etc.)
29
+ - Generate a new project directory (the directory **must not already exist**)
30
+ - Optionally initialize a git repo (depending on your answers)
31
+ - Print the “next steps” commands
32
+
33
+ Note: it **does not automatically install dependencies** — you’ll run your package manager install after generation.
34
+
35
+ ## Interactive prompts (current)
36
+
37
+ The CLI is currently **prompt-driven**. You’ll choose:
38
+
39
+ - **Project name** (lowercase letters/numbers/hyphens)
40
+ - **Project directory**
41
+ - **Runtime**: Vite or Next.js
42
+ - **Language**: TypeScript or JavaScript
43
+ - **Styling**: Tailwind, CSS, Styled Components, or CSS Modules
44
+ - **State**: none, Zustand, or Redux Toolkit
45
+ - **Testing**: full (unit+component+E2E), unit+component only, or none
46
+ - **Unit runner**: Vitest or Jest (if testing enabled)
47
+ - **E2E runner**: Playwright or Cypress (if full testing)
48
+ - **Data fetching**: include TanStack Query
49
+ - **Package manager**: npm / yarn / pnpm
50
+ - **Git init**: yes/no
51
+ - **Prettier**: yes/no
29
52
 
30
- A production-ready React project with:
53
+ ## What you get
54
+
55
+ A production-ready React project with a scalable, feature-based structure:
31
56
 
32
57
  ```
33
58
  my-app/
@@ -37,72 +62,77 @@ my-app/
37
62
  │ ├── features/ # Feature-based modules
38
63
  │ ├── hooks/ # Custom hooks
39
64
  │ ├── lib/ # Utilities, API client
40
- │ ├── stores/ # State management
41
- │ ├── testing/ # Test utilities, mocks
42
- │ └── types/ # TypeScript types
43
- ├── tests/ # E2E tests
65
+ │ ├── stores/ # State management (if selected)
66
+ │ ├── testing/ # Test utilities, mocks (if selected)
67
+ │ └── types/ # Shared types
68
+ ├── tests/ # E2E tests (if selected)
44
69
  └── [config files]
45
70
  ```
46
71
 
47
- ## Configuration Options
48
-
49
- | Option | Choices |
50
- |--------|---------|
51
- | **Runtime** | Vite, Next.js |
52
- | **Language** | TypeScript, JavaScript |
53
- | **Styling** | Tailwind, CSS Modules, CSS |
54
- | **State** | Zustand, Redux, None |
55
- | **Data Fetching** | TanStack Query, None |
56
- | **Unit Testing** | Vitest, Jest |
57
- | **E2E Testing** | Playwright, Cypress, None |
58
- | **Package Manager** | npm, yarn, pnpm |
59
-
60
- ## Architecture
61
-
62
- This project implements a modular, layered CLI architecture. Generated projects follow the [bulletproof-react](https://github.com/alan2207/bulletproof-react) patterns:
72
+ ## Configuration options (summary)
63
73
 
64
- - Feature-based folder structure
65
- - Co-located tests with features
66
- - Centralized API client
67
- - Type-safe throughout
74
+ | Category | Choices |
75
+ |---|---|
76
+ | **Runtime** | `vite`, `nextjs` |
77
+ | **Language** | `typescript`, `javascript` |
78
+ | **Styling** | `tailwind`, `css`, `styled-components`, `css-modules` |
79
+ | **State** | `none`, `zustand`, `redux` |
80
+ | **Testing** | `full`, `unit-component`, `none` |
81
+ | **Unit runner** | `vitest`, `jest` |
82
+ | **E2E runner** | `playwright`, `cypress` |
83
+ | **Data fetching** | TanStack Query on/off |
84
+ | **Package manager** | `npm`, `yarn`, `pnpm` |
85
+ | **Formatting** | Prettier on/off |
86
+ | **Git** | init on/off |
68
87
 
69
- See [ARCHITECTURE.md](./ARCHITECTURE.md) for detailed design documentation.
88
+ ## Screenshot
89
+ <img width="709" height="1047" alt="image" src="https://github.com/user-attachments/assets/dc8956a9-473b-4001-8c2d-0b3b54f29583" />
70
90
 
71
- ## Development
91
+ ## Next steps (after generation)
72
92
 
73
93
  ```bash
74
- # Install dependencies
94
+ cd <your-project>
75
95
  npm install
76
-
77
- # Run CLI in dev mode
78
96
  npm run dev
97
+ ```
79
98
 
80
- # Run tests
81
- npm run test
82
- npm run test:watch
99
+ ## Advanced: config schema & templates API
83
100
 
84
- # Build for production
85
- npm run build
101
+ This package exposes a couple of **advanced** entrypoints intended for tooling:
102
+
103
+ ### Config schema (Zod)
104
+
105
+ ```ts
106
+ import { ProjectConfigSchema, DEFAULT_CONFIG } from 'create-react-forge/config';
107
+
108
+ const parsed = ProjectConfigSchema.parse(DEFAULT_CONFIG);
86
109
  ```
87
110
 
88
- ## Contributing
111
+ ### Template registry
112
+
113
+ ```ts
114
+ import { TemplateRegistry } from 'create-react-forge/templates';
115
+
116
+ const registry = new TemplateRegistry();
117
+ // registry.loadTemplatesForConfig(...) etc.
118
+ ```
89
119
 
90
- We welcome contributions! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
120
+ ## Troubleshooting
91
121
 
92
- ### Quick Contribution Steps
122
+ - **“Directory already exists”**: pick a new project directory (or delete the existing folder).
123
+ - **Node version issues**: ensure `node -v` is **18+**.
124
+ - **Install step**: dependencies are not installed automatically — run your package manager install in the generated folder.
93
125
 
94
- 1. Fork the repository
95
- 2. Create a feature branch: `git checkout -b feature/amazing-feature`
96
- 3. Make your changes
97
- 4. Run tests: `npm run test`
98
- 5. Submit a pull request
126
+ ## Architecture & development
99
127
 
100
- ## Related Projects
128
+ See [ARCHITECTURE.md](https://github.com/chiragmak10/react-setup/blob/master/ARCHITECTURE.md) for internal design details.
101
129
 
102
- - [bulletproof-react](https://github.com/alan2207/bulletproof-react) — Architecture reference
103
- - [Vite](https://vitejs.dev/) — Build tool
104
- - [Next.js](https://nextjs.org/) — React framework
105
- - [TanStack Query](https://tanstack.com/query) — Data fetching
130
+ ```bash
131
+ npm install
132
+ npm run dev
133
+ npm run test
134
+ npm run build
135
+ ```
106
136
 
107
137
  ## License
108
138
 
package/dist/cli/index.js CHANGED
@@ -70,7 +70,7 @@ function displayProjectSummary(config) {
70
70
  * Main CLI entry point
71
71
  */
72
72
  export async function main() {
73
- console.log(chalk.cyan.bold('\n ⚛️ react-setup\n'));
73
+ console.log(chalk.cyan.bold('\n ⚛️ create-react-forge\n'));
74
74
  console.log(chalk.gray(' Production-ready React scaffolder with first-class testing\n'));
75
75
  try {
76
76
  // Get user input
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ function getVersion() {
18
18
  export function createCommand() {
19
19
  const program = new Command();
20
20
  program
21
- .name('react-setup')
21
+ .name('create-react-forge')
22
22
  .description('Production-ready React CLI scaffolder with first-class testing support')
23
23
  .version(getVersion());
24
24
  program
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export function generateArchitectureDoc(config) {
4
4
 
5
5
  ## Overview
6
6
 
7
- This project was bootstrapped with \`react-setup\` using:
7
+ This project was bootstrapped with \`create-react-forge\` using:
8
8
 
9
9
  - **Runtime**: ${runtime === 'vite' ? 'Vite (SPA)' : 'Next.js (App Router)'}
10
10
  - **Language**: ${language === 'typescript' ? 'TypeScript' : 'JavaScript'}
@@ -67,7 +67,7 @@ We use **${dataFetching.library}** for server state management.
67
67
 
68
68
  ${stateManagement !== 'none' ? `
69
69
  We use **${stateManagement}** for global client state.
70
- ` : 'Local state (`useState`) is preferred. Global state is managed via Context API if needed.'}
70
+ ` : 'Local state (\`useState\`) is preferred. Global state is managed via Context API if needed.'}
71
71
  `;
72
72
  }
73
73
  //# sourceMappingURL=architecture-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-generator.js","sourceRoot":"","sources":["../../src/docs/architecture-generator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEtF,OAAO;;;;;;iBAMQ,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB;kBACzD,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;iBACxD,OAAO,CAAC,QAAQ;0BACP,eAAe;uBAClB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;iBAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;;;;;;;;;;EAUvD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,EAAE;EACtF,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;EAqBxF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACA,OAAO,CAAC,IAAI,CAAC,MAAM;yBACd,OAAO,CAAC,SAAS,CAAC,OAAO;EAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;CAMpE,CAAC,CAAC,CAAC,gCAAgC;;;;EAIlC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;WACd,YAAY,CAAC,OAAO;;;;CAI9B,CAAC,CAAC,CAAC,4DAA4D;;;;EAI9D,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC;WACpB,eAAe;CACzB,CAAC,CAAC,CAAC,2FAA2F;CAC9F,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"architecture-generator.js","sourceRoot":"","sources":["../../src/docs/architecture-generator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEtF,OAAO;;;;;;iBAMQ,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB;kBACzD,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY;iBACxD,OAAO,CAAC,QAAQ;0BACP,eAAe;uBAClB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;iBAC1D,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU;;;;;;;;;;EAUvD,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC,CAAC,EAAE;EACtF,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;EAqBxF,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;oBACA,OAAO,CAAC,IAAI,CAAC,MAAM;yBACd,OAAO,CAAC,SAAS,CAAC,OAAO;EAChD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;CAMpE,CAAC,CAAC,CAAC,gCAAgC;;;;EAIlC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;WACd,YAAY,CAAC,OAAO;;;;CAI9B,CAAC,CAAC,CAAC,4DAA4D;;;;EAI9D,eAAe,KAAK,MAAM,CAAC,CAAC,CAAC;WACpB,eAAe;CACzB,CAAC,CAAC,CAAC,6FAA6F;CAChG,CAAC;AACF,CAAC"}
@@ -158,7 +158,7 @@ playwright-report/
158
158
  cwd: this.config.path,
159
159
  stdio: 'ignore',
160
160
  });
161
- execSync('git commit -m "Initial commit from react-setup"', {
161
+ execSync('git commit -m "Initial commit from create-react-forge"', {
162
162
  cwd: this.config.path,
163
163
  stdio: 'ignore',
164
164
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAa5E;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAK3B,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAqB;YAC/B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YAC7B,YAAY,EAAE,CAAC;YACf,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,4CAA4C;YAC5C,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpE,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,yBAAyB;YACzB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBACrD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC5B,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe;gBAC5C,OAAO,EAAE;oBACP,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;oBACpC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI;oBAC9B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG;iBAC7B;gBACD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;aACvC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,UAAU,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC;YAExD,mCAAmC;YACnC,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAErC,iCAAiC;YACjC,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAEnD,6BAA6B;YAC7B,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YACzF,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;YAE7E,+BAA+B;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC1C,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;oBAChC,YAAY,EAAE,QAAQ;iBACvB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,aAAa,WAAW,CAAC,IAAI,QAAQ,CAAC,CAAC;YAEvD,8BAA8B;YAC9B,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;YAE/C,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,WAAW,WAAW,CAAC,YAAY,eAAe,WAAW,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YACrG,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,OAAO,CAAC,WAAW,WAAW,CAAC,YAAY,QAAQ,CAAC,CAAC;YAC/D,CAAC;YAED,uCAAuC;YACvC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAChD,IAAI,CAAC;oBACH,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;oBAC5D,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,gDAAgD;YAChD,iEAAiE;YACjE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,QAAQ,CAAC,UAAU,EAAE;YACnB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACrB,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoC5B,CAAC;QAEE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,QAAQ,CAAC,YAAY,EAAE;oBACrB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACrB,KAAK,EAAE,QAAQ;iBAChB,CAAC,CAAC;gBACH,QAAQ,CAAC,iDAAiD,EAAE;oBAC1D,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;oBACrB,KAAK,EAAE,QAAQ;iBAChB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,MAAM,QAAQ,GAA2B;YACvC,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,cAAc;SACrB,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,MAAM,QAAQ,GAA2B;YACvC,GAAG,EAAE,aAAa;YAClB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;SACjB,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC;IAC/D,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAqB;IACzD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-react-forge",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Production-ready React CLI scaffolder with Vite/Next.js, testing as first-class citizen",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -46,6 +46,7 @@
46
46
  "license": "MIT",
47
47
  "files": [
48
48
  "dist",
49
+ "src/templates/overlays",
49
50
  "README.md",
50
51
  "LICENSE"
51
52
  ],
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "base",
3
+ "version": "1.0.0",
4
+ "description": "Base shared utilities, types, and hooks following bulletproof-react patterns",
5
+ "compatibleWith": ["runtime-vite", "runtime-nextjs"],
6
+ "dependencies": {
7
+ "clsx": "^2.1.0"
8
+ },
9
+ "devDependencies": {},
10
+ "scripts": {},
11
+ "filePatterns": {
12
+ "include": ["**/*"],
13
+ "exclude": ["manifest.json"]
14
+ }
15
+ }
16
+
@@ -0,0 +1,66 @@
1
+ import { forwardRef } from 'react';
2
+ import { cn } from '@/lib/utils';
3
+
4
+ export type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
5
+ variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';
6
+ size?: 'sm' | 'md' | 'lg';
7
+ isLoading?: boolean;
8
+ };
9
+
10
+ const variants = {
11
+ primary:
12
+ 'bg-indigo-600 text-white hover:bg-indigo-500 focus-visible:outline-indigo-600',
13
+ secondary:
14
+ 'bg-gray-100 text-gray-900 hover:bg-gray-200 focus-visible:outline-gray-600',
15
+ outline:
16
+ 'border border-gray-300 bg-transparent text-gray-700 hover:bg-gray-50 focus-visible:outline-gray-600',
17
+ ghost:
18
+ 'bg-transparent text-gray-700 hover:bg-gray-100 focus-visible:outline-gray-600',
19
+ danger:
20
+ 'bg-red-600 text-white hover:bg-red-500 focus-visible:outline-red-600',
21
+ };
22
+
23
+ const sizes = {
24
+ sm: 'px-2.5 py-1.5 text-xs',
25
+ md: 'px-3.5 py-2.5 text-sm',
26
+ lg: 'px-4 py-3 text-base',
27
+ };
28
+
29
+ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
30
+ (
31
+ {
32
+ className,
33
+ variant = 'primary',
34
+ size = 'md',
35
+ isLoading = false,
36
+ disabled,
37
+ children,
38
+ ...props
39
+ },
40
+ ref
41
+ ) => {
42
+ return (
43
+ <button
44
+ ref={ref}
45
+ className={cn(
46
+ 'inline-flex items-center justify-center rounded-md font-semibold shadow-sm transition-colors',
47
+ 'focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2',
48
+ 'disabled:cursor-not-allowed disabled:opacity-50',
49
+ variants[variant],
50
+ sizes[size],
51
+ className
52
+ )}
53
+ disabled={disabled || isLoading}
54
+ {...props}
55
+ >
56
+ {isLoading && (
57
+ <span className="mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" />
58
+ )}
59
+ {children}
60
+ </button>
61
+ );
62
+ }
63
+ );
64
+
65
+ Button.displayName = 'Button';
66
+
@@ -0,0 +1,51 @@
1
+ import { forwardRef } from 'react';
2
+ import { cn } from '@/lib/utils';
3
+
4
+ export type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {
5
+ label?: string;
6
+ error?: string;
7
+ };
8
+
9
+ export const Input = forwardRef<HTMLInputElement, InputProps>(
10
+ ({ className, label, error, id, ...props }, ref) => {
11
+ const inputId = id || props.name;
12
+
13
+ return (
14
+ <div className="w-full">
15
+ {label && (
16
+ <label
17
+ htmlFor={inputId}
18
+ className="mb-1 block text-sm font-medium text-gray-700"
19
+ >
20
+ {label}
21
+ </label>
22
+ )}
23
+ <input
24
+ ref={ref}
25
+ id={inputId}
26
+ className={cn(
27
+ 'block w-full rounded-md border-0 px-3 py-2 text-gray-900 shadow-sm ring-1 ring-inset',
28
+ 'placeholder:text-gray-400',
29
+ 'focus:ring-2 focus:ring-inset focus:ring-indigo-600',
30
+ 'disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500',
31
+ error
32
+ ? 'ring-red-300 focus:ring-red-500'
33
+ : 'ring-gray-300',
34
+ className
35
+ )}
36
+ aria-invalid={error ? 'true' : 'false'}
37
+ aria-describedby={error ? `${inputId}-error` : undefined}
38
+ {...props}
39
+ />
40
+ {error && (
41
+ <p id={`${inputId}-error`} className="mt-1 text-sm text-red-600">
42
+ {error}
43
+ </p>
44
+ )}
45
+ </div>
46
+ );
47
+ }
48
+ );
49
+
50
+ Input.displayName = 'Input';
51
+
@@ -0,0 +1,3 @@
1
+ export { Button, type ButtonProps } from './Button';
2
+ export { Input, type InputProps } from './Input';
3
+
@@ -0,0 +1,21 @@
1
+ import { useCallback, useState } from 'react';
2
+
3
+ /**
4
+ * Hook for managing disclosure state (modals, dropdowns, etc.)
5
+ * Following bulletproof-react patterns
6
+ */
7
+ export function useDisclosure(initialState = false) {
8
+ const [isOpen, setIsOpen] = useState(initialState);
9
+
10
+ const open = useCallback(() => setIsOpen(true), []);
11
+ const close = useCallback(() => setIsOpen(false), []);
12
+ const toggle = useCallback(() => setIsOpen((prev) => !prev), []);
13
+
14
+ return {
15
+ isOpen,
16
+ open,
17
+ close,
18
+ toggle,
19
+ };
20
+ }
21
+
@@ -0,0 +1,80 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+
3
+ /**
4
+ * Hook for syncing state with localStorage
5
+ */
6
+ export function useLocalStorage<T>(
7
+ key: string,
8
+ initialValue: T
9
+ ): [T, (value: T | ((prev: T) => T)) => void, () => void] {
10
+ // Get stored value or use initial value
11
+ const readValue = useCallback((): T => {
12
+ if (typeof window === 'undefined') {
13
+ return initialValue;
14
+ }
15
+
16
+ try {
17
+ const item = window.localStorage.getItem(key);
18
+ return item ? (JSON.parse(item) as T) : initialValue;
19
+ } catch (error) {
20
+ console.warn(`Error reading localStorage key "${key}":`, error);
21
+ return initialValue;
22
+ }
23
+ }, [initialValue, key]);
24
+
25
+ const [storedValue, setStoredValue] = useState<T>(readValue);
26
+
27
+ // Set value to localStorage
28
+ const setValue = useCallback(
29
+ (value: T | ((prev: T) => T)) => {
30
+ if (typeof window === 'undefined') {
31
+ console.warn(`Cannot set localStorage key "${key}" during SSR`);
32
+ return;
33
+ }
34
+
35
+ try {
36
+ const valueToStore = value instanceof Function ? value(storedValue) : value;
37
+ window.localStorage.setItem(key, JSON.stringify(valueToStore));
38
+ setStoredValue(valueToStore);
39
+
40
+ // Dispatch storage event for other tabs/windows
41
+ window.dispatchEvent(new Event('local-storage'));
42
+ } catch (error) {
43
+ console.warn(`Error setting localStorage key "${key}":`, error);
44
+ }
45
+ },
46
+ [key, storedValue]
47
+ );
48
+
49
+ // Remove value from localStorage
50
+ const removeValue = useCallback(() => {
51
+ if (typeof window === 'undefined') {
52
+ return;
53
+ }
54
+
55
+ try {
56
+ window.localStorage.removeItem(key);
57
+ setStoredValue(initialValue);
58
+ } catch (error) {
59
+ console.warn(`Error removing localStorage key "${key}":`, error);
60
+ }
61
+ }, [initialValue, key]);
62
+
63
+ // Listen for changes in other tabs/windows
64
+ useEffect(() => {
65
+ const handleStorageChange = () => {
66
+ setStoredValue(readValue());
67
+ };
68
+
69
+ window.addEventListener('storage', handleStorageChange);
70
+ window.addEventListener('local-storage', handleStorageChange);
71
+
72
+ return () => {
73
+ window.removeEventListener('storage', handleStorageChange);
74
+ window.removeEventListener('local-storage', handleStorageChange);
75
+ };
76
+ }, [readValue]);
77
+
78
+ return [storedValue, setValue, removeValue];
79
+ }
80
+