git0 0.2.5 → 0.2.7

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 (75) hide show
  1. package/bun.lock +159 -0
  2. package/docs/404.html +2 -3
  3. package/docs/Footer/index.html +2 -3
  4. package/docs/assets/js/1df93b7f.d8c05d2c.js +2 -0
  5. package/docs/assets/js/22dd74f7.237398b4.js +1 -0
  6. package/docs/assets/js/28ab763d.5714aa16.js +1 -0
  7. package/docs/assets/js/299d276b.1a1baa1c.js +1 -0
  8. package/docs/assets/js/68cef36b.c312447e.js +1 -0
  9. package/docs/assets/js/c3a618e1.965a31da.js +1 -0
  10. package/docs/assets/js/{main.c71c09a5.js → main.cf858a7d.js} +2 -2
  11. package/docs/assets/js/runtime~main.7520dc36.js +1 -0
  12. package/docs/functions/git0/index.html +48 -0
  13. package/docs/functions/github-api/index.html +149 -0
  14. package/docs/functions/index.html +4 -5
  15. package/docs/functions/modules/index.html +30 -0
  16. package/docs/index.html +3 -4
  17. package/docs/lunr-index-1749613752315.json +1 -0
  18. package/docs/lunr-index.json +1 -1
  19. package/docs/search-doc-1749613752315.json +1 -0
  20. package/docs/search-doc.json +1 -1
  21. package/docs/sitemap.xml +1 -1
  22. package/docs-config/.docusaurus/DONT-EDIT-THIS-FOLDER +5 -0
  23. package/docs-config/.docusaurus/client-manifest.json +259 -0
  24. package/docs-config/.docusaurus/client-modules.js +8 -0
  25. package/docs-config/.docusaurus/codeTranslations.json +1 -0
  26. package/docs-config/.docusaurus/docusaurus-lunr-search/default/__plugin.json +4 -0
  27. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/__mdx-loader-dependency.json +1 -0
  28. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/__plugin.json +4 -0
  29. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/p/docs-175.json +1 -0
  30. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/p/index-466.json +1 -0
  31. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-git-0-1-md-d3e.json +19 -0
  32. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-git-0-md-299.json +19 -0
  33. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-github-api-md-28a.json +23 -0
  34. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-globals-md-4a8.json +19 -0
  35. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-index-md-c3a.json +23 -0
  36. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-functions-modules-md-68c.json +19 -0
  37. package/docs-config/.docusaurus/docusaurus-plugin-content-docs/default/site-src-index-md-d14.json +21 -0
  38. package/docs-config/.docusaurus/docusaurus-plugin-content-pages/default/__plugin.json +4 -0
  39. package/docs-config/.docusaurus/docusaurus-plugin-google-gtag/default/__plugin.json +4 -0
  40. package/docs-config/.docusaurus/docusaurus.config.mjs +378 -0
  41. package/docs-config/.docusaurus/globalData.json +65 -0
  42. package/docs-config/.docusaurus/i18n.json +17 -0
  43. package/docs-config/.docusaurus/lunr.client.js +5 -0
  44. package/docs-config/.docusaurus/registry.js +15 -0
  45. package/docs-config/.docusaurus/routes.js +61 -0
  46. package/docs-config/.docusaurus/routesChunkNames.json +45 -0
  47. package/docs-config/.docusaurus/site-metadata.json +51 -0
  48. package/docs-config/.docusaurus/site-storage.json +4 -0
  49. package/docs-config/bun.lock +6139 -0
  50. package/docs-config/config/customize-docs.js +4 -2
  51. package/docs-config/docusaurus.config.ts +0 -9
  52. package/docs-config/src/functions/git0.md +101 -0
  53. package/docs-config/src/functions/github-api.md +744 -0
  54. package/docs-config/src/functions/modules.md +4 -0
  55. package/docs-config/src/functions/typedoc-sidebar.cjs +12 -1
  56. package/docs-config/src/pages/index.tsx +289 -279
  57. package/docs-config/tsconfig.json +1 -1
  58. package/package.json +10 -7
  59. package/src/git0.js +380 -0
  60. package/src/github-api.js +473 -0
  61. package/docs/assets/js/1df93b7f.dfdf0ef3.js +0 -2
  62. package/docs/assets/js/22dd74f7.5e857962.js +0 -1
  63. package/docs/assets/js/4a829dc8.728a4445.js +0 -1
  64. package/docs/assets/js/c3a618e1.50a89e4d.js +0 -1
  65. package/docs/assets/js/d140250a.62af53aa.js +0 -1
  66. package/docs/assets/js/runtime~main.ef55418f.js +0 -1
  67. package/docs/functions/globals/index.html +0 -57
  68. package/docs/lunr-index-1749601667754.json +0 -1
  69. package/docs/search-doc-1749601667754.json +0 -1
  70. package/docs-config/src/functions/globals.md +0 -153
  71. package/docs-config/src/index.md +0 -127
  72. package/docs-config/tailwind.config.js +0 -13
  73. package/git0.js +0 -646
  74. /package/docs/assets/js/{1df93b7f.dfdf0ef3.js.LICENSE.txt → 1df93b7f.d8c05d2c.js.LICENSE.txt} +0 -0
  75. /package/docs/assets/js/{main.c71c09a5.js.LICENSE.txt → main.cf858a7d.js.LICENSE.txt} +0 -0
@@ -1,18 +1,18 @@
1
1
  import React, { useState, useEffect } from 'react';
2
2
  import Footer from './Footer';
3
3
 
4
- import {
5
- Github,
6
- Download,
7
- Search,
8
- Zap,
9
- Terminal,
10
- Code,
11
- Star,
12
- GitBranch,
13
- Users,
14
- Activity,
15
- Copy,
4
+ import {
5
+ Github,
6
+ Download,
7
+ Search,
8
+ Zap,
9
+ Terminal,
10
+ Code,
11
+ Star,
12
+ GitBranch,
13
+ Users,
14
+ Activity,
15
+ Copy,
16
16
  Check,
17
17
  ArrowRight,
18
18
  Sparkles,
@@ -41,118 +41,119 @@ import {
41
41
 
42
42
  const custom = {
43
43
  installCommands: {
44
- bun: 'bun install -g git0',
45
- npm: 'npm install -g git0',
46
- npx: 'npx git0 react starter'
47
- }, coreFeatures: [
48
- {
44
+ bun: 'bun install -g git0',
45
+ npm: 'npm install -g git0',
46
+ npx: 'npx git0 react starter'
47
+ }, coreFeatures: [
48
+ {
49
49
  icon: Search,
50
50
  title: 'Search GitHub Repositories',
51
51
  description: 'Search repositories by name with intelligent fuzzy matching and instant results',
52
52
  gradient: 'from-blue-500 via-cyan-500 to-teal-500',
53
53
  example: 'git0 react starter'
54
- },
55
- {
54
+ },
55
+ {
56
56
  icon: Download,
57
57
  title: 'Direct Repository Download',
58
58
  description: 'Download from GitHub URLs or owner/repo shortcuts. Skip the manual git clone dance',
59
59
  gradient: 'from-purple-500 via-pink-500 to-rose-500',
60
60
  example: 'git0 facebook/react'
61
- },
62
- {
61
+ },
62
+ {
63
63
  icon: Package,
64
64
  title: 'Git Release Package Manager',
65
65
  description: 'Instantly download latest release binaries for your system or all platforms',
66
66
  gradient: 'from-green-500 via-emerald-500 to-cyan-500',
67
67
  example: 'gg user/repo'
68
- },
69
- {
68
+ },
69
+ {
70
70
  icon: Zap,
71
71
  title: 'Automatic Dependency Installation',
72
72
  description: 'Smart detection and installation of dependencies for multiple project types',
73
73
  gradient: 'from-orange-500 via-red-500 to-pink-500',
74
74
  example: 'Auto-detects package.json, requirements.txt, Cargo.toml'
75
- },
76
- {
75
+ },
76
+ {
77
77
  icon: Code,
78
78
  title: 'Smart IDE Integration',
79
79
  description: 'Automatically opens projects in Cursor, Windsurf, VS Code, or your preferred editor',
80
80
  gradient: 'from-indigo-500 via-purple-500 to-blue-500',
81
81
  example: 'Opens in cursor, windsurf, code, nvim'
82
- },
83
- {
82
+ },
83
+ {
84
84
  icon: Shield,
85
85
  title: 'Conflict Resolution',
86
86
  description: 'Handles directory naming conflicts automatically with smart numbering',
87
87
  gradient: 'from-yellow-500 via-orange-500 to-red-500',
88
88
  example: 'react → react-2 → react-3'
89
- }
90
- ], projectTypes: [
91
- {
89
+ }
90
+ ], projectTypes: [
91
+ {
92
92
  name: 'Node.js',
93
93
  file: 'package.json',
94
94
  install: 'bun install (fallback to npm)',
95
95
  color: 'text-green-400',
96
96
  icon: Package
97
- },
98
- {
97
+ },
98
+ {
99
99
  name: 'Docker',
100
100
  file: 'Dockerfile, docker-compose.yml',
101
101
  install: 'docker-compose up -d',
102
102
  color: 'text-blue-400',
103
103
  icon: Layers
104
- },
105
- {
104
+ },
105
+ {
106
106
  name: 'Python',
107
107
  file: 'requirements.txt, setup.py',
108
108
  install: 'Virtual env + pip install',
109
109
  color: 'text-yellow-400',
110
110
  icon: FileCode
111
- },
112
- {
111
+ },
112
+ {
113
113
  name: 'Rust',
114
114
  file: 'Cargo.toml',
115
115
  install: 'cargo build',
116
116
  color: 'text-orange-400',
117
117
  icon: Settings
118
- },
119
- {
118
+ },
119
+ {
120
120
  name: 'Go',
121
121
  file: 'go.mod',
122
122
  install: 'go mod tidy',
123
123
  color: 'text-cyan-400',
124
124
  icon: Play
125
- }
126
- ], supportedIDEs: [
127
- { name: 'Cursor', command: 'cursor', color: 'text-blue-400' },
128
- { name: 'Windsurf', command: 'windsurf', color: 'text-purple-400' },
129
- { name: 'VS Code', command: 'code', color: 'text-blue-300' },
130
- { name: 'Code Server', command: 'code-server', color: 'text-green-400' },
131
- { name: 'Neovim', command: 'nvim', color: 'text-orange-400' }
132
- ], featuresList: [
133
- { title: 'Search Repositories', command: 'git0 react starter', desc: 'Find repositories by name with fuzzy matching' },
134
- { title: 'Direct Download', command: 'gg facebook/react', desc: 'Download using owner/repo shorthand' },
135
- { title: 'From GitHub URL', command: 'git0 https://github.com/user/repo', desc: 'Download from any GitHub URL' }
136
- ], workflowSteps: [
137
- { step: '1', title: 'Repository Downloaded', desc: 'To your current directory', icon: Download },
138
- { step: '2', title: 'Project Type Detected', desc: 'Automatically identified', icon: Search },
139
- { step: '3', title: 'Dependencies Installed', desc: 'Based on project type', icon: Package },
140
- { step: '4', title: 'IDE Launched', desc: 'Opens in preferred editor', icon: Code },
141
- { step: '5', title: 'Dev Server Started', desc: 'For Node.js projects', icon: Play }
142
- ],
143
- urlDocs: "https://git0.js.org/functions",
144
- urlSupport: "https://discord.gg/SJdBqBz3tV",
145
- urlGithub: "https://github.com/vtempest/git0",
146
- urlGithubChat: "https://github.com/vtempest/git0/discussions",
147
- urlLogo: "https://i.imgur.com/857meew.png",
148
- name: "git0",
149
- urlAuthor: "https://github.com/vtempest",
150
- author: "vtempest",
151
- copyrightHTML: `&copy; 2025 Get git0. <a href="https://github.com/vtempest/git0">Star this on GitHub</a> so it can grow!`
125
+ }
126
+ ], supportedIDEs: [
127
+ { name: 'Cursor', command: 'cursor', color: 'text-blue-400' },
128
+ { name: 'Windsurf', command: 'windsurf', color: 'text-purple-400' },
129
+ { name: 'VS Code', command: 'code', color: 'text-blue-300' },
130
+ { name: 'Code Server', command: 'code-server', color: 'text-green-400' },
131
+ { name: 'Neovim', command: 'nvim', color: 'text-orange-400' }
132
+ ], featuresList: [
133
+ { title: 'Search Repositories', command: 'git0 react starter', desc: 'Find repositories by name with fuzzy matching' },
134
+ { title: 'Direct Download', command: 'gg facebook/react', desc: 'Download using owner/repo shorthand' },
135
+ { title: 'From GitHub URL', command: 'git0 https://github.com/user/repo', desc: 'Download from any GitHub URL' }
136
+ ], workflowSteps: [
137
+ { step: '1', title: 'Repository Downloaded', desc: 'To your current directory', icon: Download },
138
+ { step: '2', title: 'Project Type Detected', desc: 'Automatically identified', icon: Search },
139
+ { step: '3', title: 'Dependencies Installed', desc: 'Based on project type', icon: Package },
140
+ { step: '4', title: 'IDE Launched', desc: 'Opens in preferred editor', icon: Code },
141
+ { step: '5', title: 'Dev Server Started', desc: 'For Node.js projects', icon: Play }
142
+ ],
143
+ urlDocs: "https://git0.js.org/functions",
144
+ urlSupport: "https://discord.gg/SJdBqBz3tV",
145
+ urlGithub: "https://github.com/vtempest/git0",
146
+ urlGithubChat: "https://github.com/vtempest/git0/discussions",
147
+ urlLogo: "https://i.imgur.com/857meew.png",
148
+ name: "git0",
149
+ urlAuthor: "https://github.com/vtempest",
150
+ author: "vtempest",
151
+ copyrightHTML: `&copy; 2025 Get git0. <a href="https://github.com/vtempest/git0">Star this on GitHub</a> so it can grow!`
152
152
  }
153
153
 
154
154
  function App() {
155
155
  const [copiedCommand, setCopiedCommand] = useState<string | null>(null);
156
+ const [isLoaded, setIsLoaded] = useState(false);
156
157
  const [activeTab, setActiveTab] = useState('bun');
157
158
  const [mousePosition, setMousePosition] = useState({ x: 0, y: 0 });
158
159
 
@@ -164,6 +165,18 @@ function App() {
164
165
  return () => window.removeEventListener('mousemove', handleMouseMove);
165
166
  }, []);
166
167
 
168
+ useEffect(() => {
169
+ // Check if Tailwind CDN is already attached
170
+ const script = document.createElement('script');
171
+ script.id = 'tailwind-cdn';
172
+ script.src = "https://cdn.tailwindcss.com";
173
+ script.async = true;
174
+ document.head.appendChild(script);
175
+ setTimeout(() =>
176
+ setIsLoaded(true),
177
+ 900)
178
+ }, []);
179
+
167
180
  const copyToClipboard = (text: string, command: string) => {
168
181
  navigator.clipboard.writeText(text);
169
182
  setCopiedCommand(command);
@@ -171,254 +184,251 @@ function App() {
171
184
  };
172
185
 
173
186
 
174
- return (
175
- <div className="min-h-screen bg-gray-900 text-white overflow-hidden relative">
176
- {/* Enhanced Animated Background */}
177
- <div className="fixed inset-0 bg-gradient-to-br from-gray-900 via-blue-900/30 to-purple-900/30">
178
- {/* Floating Orbs */}
179
- <div className="absolute inset-0">
180
- <div
181
- className="absolute w-96 h-96 bg-blue-500/20 rounded-full blur-3xl animate-pulse"
182
- style={{
183
- left: `${20 + mousePosition.x * 0.02}%`,
184
- top: `${10 + mousePosition.y * 0.01}%`,
185
- transform: 'translate3d(0, 0, 0)',
186
- }}
187
- ></div>
188
- <div
189
- className="absolute w-80 h-80 bg-purple-500/20 rounded-full blur-3xl animate-pulse delay-1000"
190
- style={{
191
- right: `${15 + mousePosition.x * -0.015}%`,
192
- bottom: `${20 + mousePosition.y * -0.01}%`,
193
- transform: 'translate3d(0, 0, 0)',
194
- }}
195
- ></div>
196
- <div
197
- className="absolute w-64 h-64 bg-cyan-500/15 rounded-full blur-3xl animate-pulse delay-2000"
198
- style={{
199
- left: `${60 + mousePosition.x * 0.01}%`,
200
- top: `${60 + mousePosition.y * 0.005}%`,
201
- transform: 'translate3d(0, 0, 0)',
202
- }}
203
- ></div>
187
+ return isLoaded && (<div className="min-h-screen bg-gray-900 text-white overflow-hidden relative">
188
+ {/* Enhanced Animated Background */}
189
+ <div className="fixed inset-0 bg-gradient-to-br from-gray-900 via-blue-900/30 to-purple-900/30">
190
+ {/* Floating Orbs */}
191
+ <div className="absolute inset-0">
192
+ <div
193
+ className="absolute w-96 h-96 bg-blue-500/20 rounded-full blur-3xl animate-pulse"
194
+ style={{
195
+ left: `${20 + mousePosition.x * 0.02}%`,
196
+ top: `${10 + mousePosition.y * 0.01}%`,
197
+ transform: 'translate3d(0, 0, 0)',
198
+ }}
199
+ ></div>
200
+ <div
201
+ className="absolute w-80 h-80 bg-purple-500/20 rounded-full blur-3xl animate-pulse delay-1000"
202
+ style={{
203
+ right: `${15 + mousePosition.x * -0.015}%`,
204
+ bottom: `${20 + mousePosition.y * -0.01}%`,
205
+ transform: 'translate3d(0, 0, 0)',
206
+ }}
207
+ ></div>
208
+ <div
209
+ className="absolute w-64 h-64 bg-cyan-500/15 rounded-full blur-3xl animate-pulse delay-2000"
210
+ style={{
211
+ left: `${60 + mousePosition.x * 0.01}%`,
212
+ top: `${60 + mousePosition.y * 0.005}%`,
213
+ transform: 'translate3d(0, 0, 0)',
214
+ }}
215
+ ></div>
216
+ </div>
217
+
218
+ {/* Grid Pattern */}
219
+ <div className="absolute inset-0 bg-[linear-gradient(rgba(56,189,248,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(56,189,248,0.03)_1px,transparent_1px)] bg-[size:50px_50px]"></div>
220
+
221
+ {/* Radial Gradients */}
222
+ <div className="absolute inset-0 bg-[radial-gradient(circle_at_25%_25%,rgba(56,189,248,0.15),transparent_50%)]"></div>
223
+ <div className="absolute inset-0 bg-[radial-gradient(circle_at_75%_75%,rgba(147,51,234,0.15),transparent_50%)]"></div>
224
+ </div>
225
+
226
+ {/* Navigation */}
227
+ <nav className="relative z-50 flex items-center justify-between p-6 backdrop-blur-xl bg-gray-900/70 border-b border-gray-700/50">
228
+ <div className="flex items-center space-x-3">
229
+ <div className="w-12 h-12 bg-gradient-to-br from-blue-500 via-cyan-500 to-purple-600 rounded-xl flex items-center justify-center shadow-2xl shadow-blue-500/25 transform hover:scale-110 transition-all duration-300">
230
+ <img src={custom.urlLogo} alt="logo" className="w-10 h-10" />
204
231
  </div>
205
-
206
- {/* Grid Pattern */}
207
- <div className="absolute inset-0 bg-[linear-gradient(rgba(56,189,248,0.03)_1px,transparent_1px),linear-gradient(90deg,rgba(56,189,248,0.03)_1px,transparent_1px)] bg-[size:50px_50px]"></div>
208
-
209
- {/* Radial Gradients */}
210
- <div className="absolute inset-0 bg-[radial-gradient(circle_at_25%_25%,rgba(56,189,248,0.15),transparent_50%)]"></div>
211
- <div className="absolute inset-0 bg-[radial-gradient(circle_at_75%_75%,rgba(147,51,234,0.15),transparent_50%)]"></div>
232
+ <span className="text-3xl font-bold bg-gradient-to-r from-blue-400 via-cyan-400 to-purple-400 bg-clip-text text-transparent">
233
+ {custom.name}
234
+ </span>
212
235
  </div>
236
+ <div className="flex items-center space-x-8">
237
+ <a href="#features" className="hover:text-blue-400 transition-all duration-300 hover:scale-105">Features</a>
238
+ <a href="#installation" className="hover:text-blue-400 transition-all duration-300 hover:scale-105">Install</a>
239
+ <a href="#workflow" className="hover:text-blue-400 transition-all duration-300 hover:scale-105">How It Works</a>
240
+ <a href={custom.urlGithub} className="flex items-center space-x-2 bg-gradient-to-r from-blue-600 via-cyan-600 to-purple-600 px-6 py-3 rounded-xl hover:from-blue-500 hover:via-cyan-500 hover:to-purple-500 transition-all duration-300 shadow-2xl shadow-blue-500/25 hover:scale-105 hover:shadow-blue-500/40">
241
+ <Github className="w-5 h-5" />
242
+ <span className="font-semibold">GitHub</span>
243
+ </a>
244
+ </div>
245
+ </nav>
213
246
 
214
- {/* Navigation */}
215
- <nav className="relative z-50 flex items-center justify-between p-6 backdrop-blur-xl bg-gray-900/70 border-b border-gray-700/50">
216
- <div className="flex items-center space-x-3">
217
- <div className="w-12 h-12 bg-gradient-to-br from-blue-500 via-cyan-500 to-purple-600 rounded-xl flex items-center justify-center shadow-2xl shadow-blue-500/25 transform hover:scale-110 transition-all duration-300">
218
- <img src={custom.urlLogo} alt="logo" className="w-10 h-10" />
247
+ {/* Hero Section */}
248
+ <section className="relative z-10 pt-6 pb-10 px-6">
249
+ <div className="max-w-7xl mx-auto text-center">
250
+ <div className="">
251
+ <div className="inline-flex items-center space-x-3 bg-gradient-to-r from-blue-500/20 via-cyan-500/20 to-purple-500/20 backdrop-blur-xl border border-blue-500/30 rounded-full px-6 py-3 mb-8 shadow-2xl shadow-blue-500/10 hover:shadow-blue-500/20 transition-all duration-500">
252
+ <Sparkles className="w-5 h-5 text-blue-400 animate-pulse" />
253
+ <span className="text-blue-300 font-medium">Download Git Repo on Step Zero</span>
254
+ <div className="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
219
255
  </div>
220
- <span className="text-3xl font-bold bg-gradient-to-r from-blue-400 via-cyan-400 to-purple-400 bg-clip-text text-transparent">
221
- {custom.name}
222
- </span>
223
- </div>
224
- <div className="flex items-center space-x-8">
225
- <a href="#features" className="hover:text-blue-400 transition-all duration-300 hover:scale-105">Features</a>
226
- <a href="#installation" className="hover:text-blue-400 transition-all duration-300 hover:scale-105">Install</a>
227
- <a href="#workflow" className="hover:text-blue-400 transition-all duration-300 hover:scale-105">How It Works</a>
228
- <a href={custom.urlGithub} className="flex items-center space-x-2 bg-gradient-to-r from-blue-600 via-cyan-600 to-purple-600 px-6 py-3 rounded-xl hover:from-blue-500 hover:via-cyan-500 hover:to-purple-500 transition-all duration-300 shadow-2xl shadow-blue-500/25 hover:scale-105 hover:shadow-blue-500/40">
229
- <Github className="w-5 h-5" />
230
- <span className="font-semibold">GitHub</span>
231
- </a>
232
- </div>
233
- </nav>
234
256
 
235
- {/* Hero Section */}
236
- <section className="relative z-10 pt-6 pb-10 px-6">
237
- <div className="max-w-7xl mx-auto text-center">
238
- <div className="">
239
- <div className="inline-flex items-center space-x-3 bg-gradient-to-r from-blue-500/20 via-cyan-500/20 to-purple-500/20 backdrop-blur-xl border border-blue-500/30 rounded-full px-6 py-3 mb-8 shadow-2xl shadow-blue-500/10 hover:shadow-blue-500/20 transition-all duration-500">
240
- <Sparkles className="w-5 h-5 text-blue-400 animate-pulse" />
241
- <span className="text-blue-300 font-medium">Download Git Repo on Step Zero</span>
242
- <div className="w-2 h-2 bg-green-400 rounded-full animate-pulse"></div>
243
- </div>
244
-
245
- {/* position as grid next to each other */}
246
- <div className="grid grid-cols-2 gap-4">
247
- <img src="https://i.imgur.com/Io3ukRC.gif" alt="Git Preview" className="w-full" />
248
-
249
-
250
- <img src="https://i.imgur.com/6l9esbL.png" alt="Git Preview" className="w-full" />
251
- </div>
252
-
253
- <p className="text-2xl md:text-3xl mt-4 text-gray-300 mb-12 max-w-5xl mx-auto leading-relaxed font-light">
254
- CLI tool to search GitHub repositories, download source & releases, and instantly set up projects with
255
- <span className="bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent font-semibold"> automatic dependency installation and editor opening</span>
256
- </p>
257
+ {/* position as grid next to each other */}
258
+ <div className="grid grid-cols-2 gap-4">
259
+ <img src="https://i.imgur.com/Io3ukRC.gif" alt="Git Preview" className="w-full" />
260
+
261
+
262
+ <img src="https://i.imgur.com/6l9esbL.png" alt="Git Preview" className="w-full" />
257
263
  </div>
258
264
 
259
- {/* Installation Section */}
260
- <div id="installation">
261
- <div className="flex justify-center mb-8">
262
- <div className="flex bg-gray-800/50 backdrop-blur-xl rounded-2xl p-2 border border-gray-700/50 shadow-2xl">
263
- {Object.keys(custom.installCommands).map((tab) => (
264
- <button
265
- key={tab}
266
- onClick={() => setActiveTab(tab)}
267
- className={`px-6 py-3 rounded-xl transition-all duration-300 font-semibold ${
268
- activeTab === tab
269
- ? 'bg-gradient-to-r from-blue-500 via-cyan-500 to-purple-500 text-white shadow-lg transform scale-105'
270
- : 'text-gray-400 hover:text-white hover:bg-gray-700/50'
265
+ <p className="text-2xl md:text-3xl mt-4 text-gray-300 mb-12 max-w-5xl mx-auto leading-relaxed font-light">
266
+ CLI tool to search GitHub repositories, download source & releases, and instantly set up projects with
267
+ <span className="bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent font-semibold"> automatic dependency installation and editor opening</span>
268
+ </p>
269
+ </div>
270
+
271
+ {/* Installation Section */}
272
+ <div id="installation">
273
+ <div className="flex justify-center mb-8">
274
+ <div className="flex bg-gray-800/50 backdrop-blur-xl rounded-2xl p-2 border border-gray-700/50 shadow-2xl">
275
+ {Object.keys(custom.installCommands).map((tab) => (
276
+ <button
277
+ key={tab}
278
+ onClick={() => setActiveTab(tab)}
279
+ className={`px-6 py-3 rounded-xl transition-all duration-300 font-semibold ${activeTab === tab
280
+ ? 'bg-gradient-to-r from-blue-500 via-cyan-500 to-purple-500 text-white shadow-lg transform scale-105'
281
+ : 'text-gray-400 hover:text-white hover:bg-gray-700/50'
271
282
  }`}
272
- >
273
- {tab.toUpperCase()}
274
- </button>
275
- ))}
276
- </div>
283
+ >
284
+ {tab.toUpperCase()}
285
+ </button>
286
+ ))}
277
287
  </div>
278
-
279
- <div className="max-w-3xl mx-auto">
280
- <div className="bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 shadow-2xl hover:shadow-blue-500/10 transition-all duration-500 transform hover:scale-[1.02]">
281
- <div className="flex items-center justify-between mb-4">
282
- <span className="text-gray-400 font-medium">Installation Command</span>
283
- <button
284
- onClick={() => copyToClipboard(custom.installCommands[activeTab as keyof typeof custom.installCommands], activeTab)}
285
- className="flex items-center space-x-2 text-blue-400 hover:text-blue-300 transition-all duration-300 bg-blue-500/10 px-4 py-2 rounded-lg hover:bg-blue-500/20"
286
- >
287
- {copiedCommand === activeTab ? <Check className="w-5 h-5" /> : <Copy className="w-5 h-5" />}
288
- <span className="font-medium">{copiedCommand === activeTab ? 'Copied!' : 'Copy'}</span>
289
- </button>
290
- </div>
291
- <code className="text-xl text-green-400 font-mono bg-gray-900/50 p-4 rounded-lg block">
292
- {custom.installCommands[activeTab as keyof typeof custom.installCommands]}
293
- </code>
288
+ </div>
289
+
290
+ <div className="max-w-3xl mx-auto">
291
+ <div className="bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 shadow-2xl hover:shadow-blue-500/10 transition-all duration-500 transform hover:scale-[1.02]">
292
+ <div className="flex items-center justify-between mb-4">
293
+ <span className="text-gray-400 font-medium">Installation Command</span>
294
+ <button
295
+ onClick={() => copyToClipboard(custom.installCommands[activeTab as keyof typeof custom.installCommands], activeTab)}
296
+ className="flex items-center space-x-2 text-blue-400 hover:text-blue-300 transition-all duration-300 bg-blue-500/10 px-4 py-2 rounded-lg hover:bg-blue-500/20"
297
+ >
298
+ {copiedCommand === activeTab ? <Check className="w-5 h-5" /> : <Copy className="w-5 h-5" />}
299
+ <span className="font-medium">{copiedCommand === activeTab ? 'Copied!' : 'Copy'}</span>
300
+ </button>
294
301
  </div>
302
+ <code className="text-xl text-green-400 font-mono bg-gray-900/50 p-4 rounded-lg block">
303
+ {custom.installCommands[activeTab as keyof typeof custom.installCommands]}
304
+ </code>
295
305
  </div>
296
306
  </div>
307
+ </div>
297
308
 
298
- {/* Usage Examples */}
299
- <div className="">
300
- <div className="max-w-6xl mx-auto bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-10 shadow-2xl">
301
- <h3 className="text-3xl font-bold mb-8 text-center bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent">
302
- Usage Examples
303
- </h3>
304
- <div className="grid md:grid-cols-3 gap-6">
305
- {custom.featuresList.map((item, index) => (
306
- <div key={index} className="bg-gray-800/50 rounded-xl p-6 border border-gray-700/50 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-105 hover:shadow-xl">
307
- <div className="text-blue-400 font-bold text-lg mb-2">{item.title}</div>
308
- <code className="text-green-400 text-lg font-mono block mb-3 bg-gray-900/50 p-3 rounded">{item.command}</code>
309
- <p className="text-gray-400 text-sm">{item.desc}</p>
310
- </div>
311
- ))}
312
- </div>
309
+ {/* Usage Examples */}
310
+ <div className="">
311
+ <div className="max-w-6xl mx-auto bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-10 shadow-2xl">
312
+ <h3 className="text-3xl font-bold mb-8 text-center bg-gradient-to-r from-blue-400 to-purple-400 bg-clip-text text-transparent">
313
+ Usage Examples
314
+ </h3>
315
+ <div className="grid md:grid-cols-3 gap-6">
316
+ {custom.featuresList.map((item, index) => (
317
+ <div key={index} className="bg-gray-800/50 rounded-xl p-6 border border-gray-700/50 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-105 hover:shadow-xl">
318
+ <div className="text-blue-400 font-bold text-lg mb-2">{item.title}</div>
319
+ <code className="text-green-400 text-lg font-mono block mb-3 bg-gray-900/50 p-3 rounded">{item.command}</code>
320
+ <p className="text-gray-400 text-sm">{item.desc}</p>
321
+ </div>
322
+ ))}
313
323
  </div>
314
324
  </div>
315
325
  </div>
316
- </section>
326
+ </div>
327
+ </section>
317
328
 
318
- {/* Core Features Section */}
319
- <section id="features" className="relative z-10 px-6">
320
- <div className="max-w-7xl mx-auto">
329
+ {/* Core Features Section */}
330
+ <section id="features" className="relative z-10 px-6">
331
+ <div className="max-w-7xl mx-auto">
321
332
 
322
- <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 ">
323
- {custom.coreFeatures.map((feature, index) => (
324
- <div
325
- key={index}
326
- className="group relative bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 hover:bg-gray-800/50 transition-all duration-500 transform hover:scale-105 hover:shadow-2xl hover:shadow-blue-500/20"
327
- >
328
- <div className={`w-16 h-16 bg-gradient-to-br ${feature.gradient} rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-all duration-300 shadow-2xl`}>
329
- <feature.icon className="w-8 h-8 text-white" />
330
- </div>
331
- <h3 className="text-xl font-bold mb-4 group-hover:text-blue-400 transition-colors">{feature.title}</h3>
332
- <p className="text-gray-400 leading-relaxed mb-4">{feature.description}</p>
333
- <code className="text-sm text-green-400 bg-gray-900/50 px-3 py-1 rounded font-mono">{feature.example}</code>
334
-
335
- <div className="absolute inset-0 bg-gradient-to-r from-blue-500/5 to-purple-500/5 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
333
+ <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-8 ">
334
+ {custom.coreFeatures.map((feature, index) => (
335
+ <div
336
+ key={index}
337
+ className="group relative bg-gray-800/30 backdrop-blur-xl border border-gray-700/50 rounded-2xl p-8 hover:bg-gray-800/50 transition-all duration-500 transform hover:scale-105 hover:shadow-2xl hover:shadow-blue-500/20"
338
+ >
339
+ <div className={`w-16 h-16 bg-gradient-to-br ${feature.gradient} rounded-2xl flex items-center justify-center mb-6 group-hover:scale-110 transition-all duration-300 shadow-2xl`}>
340
+ <feature.icon className="w-8 h-8 text-white" />
336
341
  </div>
337
- ))}
338
- </div>
342
+ <h3 className="text-xl font-bold mb-4 group-hover:text-blue-400 transition-colors">{feature.title}</h3>
343
+ <p className="text-gray-400 leading-relaxed mb-4">{feature.description}</p>
344
+ <code className="text-sm text-green-400 bg-gray-900/50 px-3 py-1 rounded font-mono">{feature.example}</code>
345
+
346
+ <div className="absolute inset-0 bg-gradient-to-r from-blue-500/5 to-purple-500/5 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300"></div>
347
+ </div>
348
+ ))}
339
349
  </div>
340
- </section>
350
+ </div>
351
+ </section>
341
352
 
342
- {/* Supported Project Types */}
343
- <section className="relative z-10 px-6 mt-4 ">
344
- <div className="max-w-7xl mx-auto">
345
- <div className="text-center ">
346
- <h2 className="text-6xl h-full md:text-5xl font-bold mb-6 bg-gradient-to-r pb-4 from-green-400 to-blue-400 bg-clip-text text-transparent">
347
- Supported Project Types
348
- </h2>
349
- </div>
353
+ {/* Supported Project Types */}
354
+ <section className="relative z-10 px-6 mt-4 ">
355
+ <div className="max-w-7xl mx-auto">
356
+ <div className="text-center ">
357
+ <h2 className="text-6xl h-full md:text-5xl font-bold mb-6 bg-gradient-to-r pb-4 from-green-400 to-blue-400 bg-clip-text text-transparent">
358
+ Supported Project Types
359
+ </h2>
360
+ </div>
350
361
 
351
- <div className="grid md:grid-cols-1 lg:grid-cols-1 gap-6 mt-4 ">
352
- {custom.projectTypes.map((type, index) => (
353
- <div key={index} className="bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-[1.02]">
354
- <div className="flex items-center justify-between">
355
- <div className="flex items-center space-x-4">
356
- <type.icon className={`w-8 h-8 ${type.color}`} />
357
- <div>
358
- <h3 className={`text-lg font-bold ${type.color}`}>{type.name}</h3>
359
- <p className="text-gray-400 text-sm">Detection: {type.file}</p>
360
- </div>
361
- </div>
362
- <div className="text-right">
363
- <p className="text-gray-300 font-medium">Installation</p>
364
- <code className="text-green-400 text-sm">{type.install}</code>
362
+ <div className="grid md:grid-cols-1 lg:grid-cols-1 gap-6 mt-4 ">
363
+ {custom.projectTypes.map((type, index) => (
364
+ <div key={index} className="bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 hover:border-blue-500/50 transition-all duration-300 transform hover:scale-[1.02]">
365
+ <div className="flex items-center justify-between">
366
+ <div className="flex items-center space-x-4">
367
+ <type.icon className={`w-8 h-8 ${type.color}`} />
368
+ <div>
369
+ <h3 className={`text-lg font-bold ${type.color}`}>{type.name}</h3>
370
+ <p className="text-gray-400 text-sm">Detection: {type.file}</p>
365
371
  </div>
366
372
  </div>
373
+ <div className="text-right">
374
+ <p className="text-gray-300 font-medium">Installation</p>
375
+ <code className="text-green-400 text-sm">{type.install}</code>
376
+ </div>
367
377
  </div>
368
- ))}
369
- </div>
370
-
371
-
378
+ </div>
379
+ ))}
372
380
  </div>
373
- </section>
374
381
 
375
- {/* Workflow Section */}
376
- <section id="workflow" className="relative z-10 mt-6 px-6">
377
- <div className="max-w-7xl mx-auto">
378
- <div className="text-center">
379
- <h2 className="text-4xl md:text-5xl font-bold mb-6 mt-10 bg-gradient-to-r from-cyan-400 to-blue-400 bg-clip-text text-transparent">
380
- The Proper Protocol to Download Git Repo
381
- </h2>
382
- <p className="text-xl text-gray-300 max-w-3xl mx-auto mb-10">
382
+
383
+ </div>
384
+ </section>
385
+
386
+ {/* Workflow Section */}
387
+ <section id="workflow" className="relative z-10 mt-6 px-6">
388
+ <div className="max-w-7xl mx-auto">
389
+ <div className="text-center">
390
+ <h2 className="text-4xl md:text-5xl font-bold mb-6 mt-10 bg-gradient-to-r from-cyan-400 to-blue-400 bg-clip-text text-transparent">
391
+ The Proper Protocol to Download Git Repo
392
+ </h2>
393
+ <p className="text-xl text-gray-300 max-w-3xl mx-auto mb-10">
383
394
  Skip the manual "git clone, cd, install" dance.
384
- </p>
385
- </div>
395
+ </p>
396
+ </div>
386
397
 
387
- <div className="grid md:grid-cols-5 gap-8 mt-6">
388
- {custom.workflowSteps.map((step, index) => (
389
- <div key={index} className="text-center group">
390
- <div className="relative mb-6">
391
- <div className="w-16 h-16 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center mx-auto shadow-2xl group-hover:scale-110 transition-all duration-300">
392
- <step.icon className="w-8 h-8 text-white" />
393
- </div>
394
- <div className="absolute -top-2 -right-2 w-8 h-8 bg-gradient-to-r from-cyan-400 to-blue-400 rounded-full flex items-center justify-center text-sm font-bold text-gray-900">
395
- {step.step}
396
- </div>
398
+ <div className="grid md:grid-cols-5 gap-8 mt-6">
399
+ {custom.workflowSteps.map((step, index) => (
400
+ <div key={index} className="text-center group">
401
+ <div className="relative mb-6">
402
+ <div className="w-16 h-16 bg-gradient-to-br from-blue-500 to-purple-600 rounded-full flex items-center justify-center mx-auto shadow-2xl group-hover:scale-110 transition-all duration-300">
403
+ <step.icon className="w-8 h-8 text-white" />
404
+ </div>
405
+ <div className="absolute -top-2 -right-2 w-8 h-8 bg-gradient-to-r from-cyan-400 to-blue-400 rounded-full flex items-center justify-center text-sm font-bold text-gray-900">
406
+ {step.step}
397
407
  </div>
398
- <h3 className="text-lg font-bold mb-2 group-hover:text-blue-400 transition-colors">{step.title}</h3>
399
- <p className="text-gray-400 text-sm">{step.desc}</p>
400
408
  </div>
401
- ))}
402
- </div>
403
-
404
- <div className="mt-8 mb-8 text-center">
405
- <div className="bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 max-w-2xl mx-auto">
406
- <p className="text-gray-300 mb-4">
407
- <strong className="text-blue-400">Conflict Resolution:</strong> If a directory with the same name exists,
408
- git0 automatically appends a number
409
- </p>
410
- <code className="text-green-400 bg-gray-900/50 px-4 py-2 rounded">
411
- react-app → react-app-2 → react-app-3
412
- </code>
409
+ <h3 className="text-lg font-bold mb-2 group-hover:text-blue-400 transition-colors">{step.title}</h3>
410
+ <p className="text-gray-400 text-sm">{step.desc}</p>
413
411
  </div>
412
+ ))}
413
+ </div>
414
+
415
+ <div className="mt-8 mb-8 text-center">
416
+ <div className="bg-gray-800/40 backdrop-blur-xl border border-gray-700/50 rounded-xl p-6 max-w-2xl mx-auto">
417
+ <p className="text-gray-300 mb-4">
418
+ <strong className="text-blue-400">Conflict Resolution:</strong> If a directory with the same name exists,
419
+ git0 automatically appends a number
420
+ </p>
421
+ <code className="text-green-400 bg-gray-900/50 px-4 py-2 rounded">
422
+ react-app → react-app-2 → react-app-3
423
+ </code>
414
424
  </div>
415
425
  </div>
416
- </section>
426
+ </div>
427
+ </section>
417
428
 
418
- {/* Footer */}
419
- <Footer />
420
- </div>
421
- );
429
+ {/* Footer */}
430
+ <Footer />
431
+ </div>
432
+ )
422
433
  }
423
-
424
434
  export default App;