snowbase-templates-installer 1.0.1

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 (181) hide show
  1. package/README.md +70 -0
  2. package/bin/cli.js +140 -0
  3. package/landing-pages/ai-saas-template/.orchids/orchids.json +8 -0
  4. package/landing-pages/ai-saas-template/README.md +36 -0
  5. package/landing-pages/ai-saas-template/bun.lock +2062 -0
  6. package/landing-pages/ai-saas-template/components.json +22 -0
  7. package/landing-pages/ai-saas-template/eslint.config.mjs +33 -0
  8. package/landing-pages/ai-saas-template/next.config.ts +24 -0
  9. package/landing-pages/ai-saas-template/package-lock.json +11708 -0
  10. package/landing-pages/ai-saas-template/package.json +114 -0
  11. package/landing-pages/ai-saas-template/postcss.config.mjs +7 -0
  12. package/landing-pages/ai-saas-template/public/file.svg +1 -0
  13. package/landing-pages/ai-saas-template/public/globe.svg +1 -0
  14. package/landing-pages/ai-saas-template/public/next.svg +1 -0
  15. package/landing-pages/ai-saas-template/public/vercel.svg +1 -0
  16. package/landing-pages/ai-saas-template/public/window.svg +1 -0
  17. package/landing-pages/ai-saas-template/src/app/favicon.ico +0 -0
  18. package/landing-pages/ai-saas-template/src/app/global-error.tsx +5 -0
  19. package/landing-pages/ai-saas-template/src/app/globals.css +172 -0
  20. package/landing-pages/ai-saas-template/src/app/layout.tsx +42 -0
  21. package/landing-pages/ai-saas-template/src/app/page.tsx +23 -0
  22. package/landing-pages/ai-saas-template/src/components/ErrorReporter.tsx +136 -0
  23. package/landing-pages/ai-saas-template/src/components/sections/cta.tsx +62 -0
  24. package/landing-pages/ai-saas-template/src/components/sections/features-grid.tsx +205 -0
  25. package/landing-pages/ai-saas-template/src/components/sections/footer.tsx +111 -0
  26. package/landing-pages/ai-saas-template/src/components/sections/hero.tsx +92 -0
  27. package/landing-pages/ai-saas-template/src/components/sections/logos.tsx +69 -0
  28. package/landing-pages/ai-saas-template/src/components/sections/navbar.tsx +83 -0
  29. package/landing-pages/ai-saas-template/src/components/sections/testimonials-header.tsx +41 -0
  30. package/landing-pages/ai-saas-template/src/components/sections/value-props.tsx +97 -0
  31. package/landing-pages/ai-saas-template/src/components/ui/accordion.tsx +66 -0
  32. package/landing-pages/ai-saas-template/src/components/ui/alert-dialog.tsx +157 -0
  33. package/landing-pages/ai-saas-template/src/components/ui/alert.tsx +66 -0
  34. package/landing-pages/ai-saas-template/src/components/ui/aspect-ratio.tsx +11 -0
  35. package/landing-pages/ai-saas-template/src/components/ui/avatar.tsx +53 -0
  36. package/landing-pages/ai-saas-template/src/components/ui/badge.tsx +46 -0
  37. package/landing-pages/ai-saas-template/src/components/ui/breadcrumb.tsx +109 -0
  38. package/landing-pages/ai-saas-template/src/components/ui/button-group.tsx +83 -0
  39. package/landing-pages/ai-saas-template/src/components/ui/button.tsx +59 -0
  40. package/landing-pages/ai-saas-template/src/components/ui/calendar.tsx +213 -0
  41. package/landing-pages/ai-saas-template/src/components/ui/card.tsx +92 -0
  42. package/landing-pages/ai-saas-template/src/components/ui/carousel.tsx +241 -0
  43. package/landing-pages/ai-saas-template/src/components/ui/chart.tsx +353 -0
  44. package/landing-pages/ai-saas-template/src/components/ui/checkbox.tsx +32 -0
  45. package/landing-pages/ai-saas-template/src/components/ui/collapsible.tsx +33 -0
  46. package/landing-pages/ai-saas-template/src/components/ui/command.tsx +184 -0
  47. package/landing-pages/ai-saas-template/src/components/ui/context-menu.tsx +252 -0
  48. package/landing-pages/ai-saas-template/src/components/ui/dialog.tsx +143 -0
  49. package/landing-pages/ai-saas-template/src/components/ui/drawer.tsx +135 -0
  50. package/landing-pages/ai-saas-template/src/components/ui/dropdown-menu.tsx +257 -0
  51. package/landing-pages/ai-saas-template/src/components/ui/empty.tsx +104 -0
  52. package/landing-pages/ai-saas-template/src/components/ui/field.tsx +248 -0
  53. package/landing-pages/ai-saas-template/src/components/ui/form.tsx +167 -0
  54. package/landing-pages/ai-saas-template/src/components/ui/hover-card.tsx +44 -0
  55. package/landing-pages/ai-saas-template/src/components/ui/input-group.tsx +170 -0
  56. package/landing-pages/ai-saas-template/src/components/ui/input-otp.tsx +77 -0
  57. package/landing-pages/ai-saas-template/src/components/ui/input.tsx +21 -0
  58. package/landing-pages/ai-saas-template/src/components/ui/item.tsx +193 -0
  59. package/landing-pages/ai-saas-template/src/components/ui/kbd.tsx +28 -0
  60. package/landing-pages/ai-saas-template/src/components/ui/label.tsx +24 -0
  61. package/landing-pages/ai-saas-template/src/components/ui/menubar.tsx +276 -0
  62. package/landing-pages/ai-saas-template/src/components/ui/navigation-menu.tsx +168 -0
  63. package/landing-pages/ai-saas-template/src/components/ui/pagination.tsx +127 -0
  64. package/landing-pages/ai-saas-template/src/components/ui/popover.tsx +48 -0
  65. package/landing-pages/ai-saas-template/src/components/ui/progress.tsx +31 -0
  66. package/landing-pages/ai-saas-template/src/components/ui/radio-group.tsx +45 -0
  67. package/landing-pages/ai-saas-template/src/components/ui/resizable.tsx +56 -0
  68. package/landing-pages/ai-saas-template/src/components/ui/scroll-area.tsx +58 -0
  69. package/landing-pages/ai-saas-template/src/components/ui/select.tsx +185 -0
  70. package/landing-pages/ai-saas-template/src/components/ui/separator.tsx +28 -0
  71. package/landing-pages/ai-saas-template/src/components/ui/sheet.tsx +139 -0
  72. package/landing-pages/ai-saas-template/src/components/ui/sidebar.tsx +726 -0
  73. package/landing-pages/ai-saas-template/src/components/ui/skeleton.tsx +13 -0
  74. package/landing-pages/ai-saas-template/src/components/ui/slider.tsx +63 -0
  75. package/landing-pages/ai-saas-template/src/components/ui/sonner.tsx +25 -0
  76. package/landing-pages/ai-saas-template/src/components/ui/spinner.tsx +16 -0
  77. package/landing-pages/ai-saas-template/src/components/ui/switch.tsx +31 -0
  78. package/landing-pages/ai-saas-template/src/components/ui/table.tsx +116 -0
  79. package/landing-pages/ai-saas-template/src/components/ui/tabs.tsx +66 -0
  80. package/landing-pages/ai-saas-template/src/components/ui/textarea.tsx +18 -0
  81. package/landing-pages/ai-saas-template/src/components/ui/toggle-group.tsx +73 -0
  82. package/landing-pages/ai-saas-template/src/components/ui/toggle.tsx +47 -0
  83. package/landing-pages/ai-saas-template/src/components/ui/tooltip.tsx +61 -0
  84. package/landing-pages/ai-saas-template/src/hooks/use-mobile.ts +19 -0
  85. package/landing-pages/ai-saas-template/src/lib/hooks/use-mobile.tsx +21 -0
  86. package/landing-pages/ai-saas-template/src/lib/utils.ts +6 -0
  87. package/landing-pages/ai-saas-template/src/visual-edits/VisualEditsMessenger.tsx +2159 -0
  88. package/landing-pages/ai-saas-template/src/visual-edits/component-tagger-loader.js +460 -0
  89. package/landing-pages/ai-saas-template/tsconfig.json +42 -0
  90. package/landing-pages/open-engineer-template/.orchids/orchids.json +8 -0
  91. package/landing-pages/open-engineer-template/README.md +36 -0
  92. package/landing-pages/open-engineer-template/bun.lock +2062 -0
  93. package/landing-pages/open-engineer-template/components.json +22 -0
  94. package/landing-pages/open-engineer-template/eslint.config.mjs +33 -0
  95. package/landing-pages/open-engineer-template/next.config.ts +24 -0
  96. package/landing-pages/open-engineer-template/package-lock.json +13669 -0
  97. package/landing-pages/open-engineer-template/package.json +114 -0
  98. package/landing-pages/open-engineer-template/postcss.config.mjs +7 -0
  99. package/landing-pages/open-engineer-template/public/file.svg +1 -0
  100. package/landing-pages/open-engineer-template/public/globe.svg +1 -0
  101. package/landing-pages/open-engineer-template/public/next.svg +1 -0
  102. package/landing-pages/open-engineer-template/public/vercel.svg +1 -0
  103. package/landing-pages/open-engineer-template/public/window.svg +1 -0
  104. package/landing-pages/open-engineer-template/src/app/favicon.ico +0 -0
  105. package/landing-pages/open-engineer-template/src/app/global-error.tsx +5 -0
  106. package/landing-pages/open-engineer-template/src/app/globals.css +189 -0
  107. package/landing-pages/open-engineer-template/src/app/layout.tsx +42 -0
  108. package/landing-pages/open-engineer-template/src/app/page.tsx +31 -0
  109. package/landing-pages/open-engineer-template/src/components/ErrorReporter.tsx +136 -0
  110. package/landing-pages/open-engineer-template/src/components/sections/cta-stats.tsx +71 -0
  111. package/landing-pages/open-engineer-template/src/components/sections/faq.tsx +188 -0
  112. package/landing-pages/open-engineer-template/src/components/sections/features-grid.tsx +193 -0
  113. package/landing-pages/open-engineer-template/src/components/sections/footer.tsx +137 -0
  114. package/landing-pages/open-engineer-template/src/components/sections/header.tsx +105 -0
  115. package/landing-pages/open-engineer-template/src/components/sections/hero.tsx +118 -0
  116. package/landing-pages/open-engineer-template/src/components/sections/how-it-works.tsx +123 -0
  117. package/landing-pages/open-engineer-template/src/components/sections/pricing.tsx +168 -0
  118. package/landing-pages/open-engineer-template/src/components/sections/testimonials-logos.tsx +88 -0
  119. package/landing-pages/open-engineer-template/src/components/sections/use-cases.tsx +141 -0
  120. package/landing-pages/open-engineer-template/src/components/sections/workflow-tabs.tsx +792 -0
  121. package/landing-pages/open-engineer-template/src/components/ui/accordion.tsx +66 -0
  122. package/landing-pages/open-engineer-template/src/components/ui/alert-dialog.tsx +157 -0
  123. package/landing-pages/open-engineer-template/src/components/ui/alert.tsx +66 -0
  124. package/landing-pages/open-engineer-template/src/components/ui/aspect-ratio.tsx +11 -0
  125. package/landing-pages/open-engineer-template/src/components/ui/avatar.tsx +53 -0
  126. package/landing-pages/open-engineer-template/src/components/ui/badge.tsx +46 -0
  127. package/landing-pages/open-engineer-template/src/components/ui/breadcrumb.tsx +109 -0
  128. package/landing-pages/open-engineer-template/src/components/ui/button-group.tsx +83 -0
  129. package/landing-pages/open-engineer-template/src/components/ui/button.tsx +59 -0
  130. package/landing-pages/open-engineer-template/src/components/ui/calendar.tsx +213 -0
  131. package/landing-pages/open-engineer-template/src/components/ui/card.tsx +92 -0
  132. package/landing-pages/open-engineer-template/src/components/ui/carousel.tsx +241 -0
  133. package/landing-pages/open-engineer-template/src/components/ui/chart.tsx +353 -0
  134. package/landing-pages/open-engineer-template/src/components/ui/checkbox.tsx +32 -0
  135. package/landing-pages/open-engineer-template/src/components/ui/collapsible.tsx +33 -0
  136. package/landing-pages/open-engineer-template/src/components/ui/command.tsx +184 -0
  137. package/landing-pages/open-engineer-template/src/components/ui/context-menu.tsx +252 -0
  138. package/landing-pages/open-engineer-template/src/components/ui/dialog.tsx +143 -0
  139. package/landing-pages/open-engineer-template/src/components/ui/drawer.tsx +135 -0
  140. package/landing-pages/open-engineer-template/src/components/ui/dropdown-menu.tsx +257 -0
  141. package/landing-pages/open-engineer-template/src/components/ui/empty.tsx +104 -0
  142. package/landing-pages/open-engineer-template/src/components/ui/field.tsx +248 -0
  143. package/landing-pages/open-engineer-template/src/components/ui/form.tsx +167 -0
  144. package/landing-pages/open-engineer-template/src/components/ui/hover-card.tsx +44 -0
  145. package/landing-pages/open-engineer-template/src/components/ui/input-group.tsx +170 -0
  146. package/landing-pages/open-engineer-template/src/components/ui/input-otp.tsx +77 -0
  147. package/landing-pages/open-engineer-template/src/components/ui/input.tsx +21 -0
  148. package/landing-pages/open-engineer-template/src/components/ui/item.tsx +193 -0
  149. package/landing-pages/open-engineer-template/src/components/ui/kbd.tsx +28 -0
  150. package/landing-pages/open-engineer-template/src/components/ui/label.tsx +24 -0
  151. package/landing-pages/open-engineer-template/src/components/ui/menubar.tsx +276 -0
  152. package/landing-pages/open-engineer-template/src/components/ui/navigation-menu.tsx +168 -0
  153. package/landing-pages/open-engineer-template/src/components/ui/pagination.tsx +127 -0
  154. package/landing-pages/open-engineer-template/src/components/ui/popover.tsx +48 -0
  155. package/landing-pages/open-engineer-template/src/components/ui/progress.tsx +31 -0
  156. package/landing-pages/open-engineer-template/src/components/ui/radio-group.tsx +45 -0
  157. package/landing-pages/open-engineer-template/src/components/ui/resizable.tsx +56 -0
  158. package/landing-pages/open-engineer-template/src/components/ui/scroll-area.tsx +58 -0
  159. package/landing-pages/open-engineer-template/src/components/ui/select.tsx +185 -0
  160. package/landing-pages/open-engineer-template/src/components/ui/separator.tsx +28 -0
  161. package/landing-pages/open-engineer-template/src/components/ui/sheet.tsx +139 -0
  162. package/landing-pages/open-engineer-template/src/components/ui/sidebar.tsx +726 -0
  163. package/landing-pages/open-engineer-template/src/components/ui/skeleton.tsx +13 -0
  164. package/landing-pages/open-engineer-template/src/components/ui/slider.tsx +63 -0
  165. package/landing-pages/open-engineer-template/src/components/ui/sonner.tsx +25 -0
  166. package/landing-pages/open-engineer-template/src/components/ui/spinner.tsx +16 -0
  167. package/landing-pages/open-engineer-template/src/components/ui/switch.tsx +31 -0
  168. package/landing-pages/open-engineer-template/src/components/ui/table.tsx +116 -0
  169. package/landing-pages/open-engineer-template/src/components/ui/tabs.tsx +66 -0
  170. package/landing-pages/open-engineer-template/src/components/ui/textarea.tsx +18 -0
  171. package/landing-pages/open-engineer-template/src/components/ui/toggle-group.tsx +73 -0
  172. package/landing-pages/open-engineer-template/src/components/ui/toggle.tsx +47 -0
  173. package/landing-pages/open-engineer-template/src/components/ui/tooltip.tsx +61 -0
  174. package/landing-pages/open-engineer-template/src/hooks/use-mobile.ts +19 -0
  175. package/landing-pages/open-engineer-template/src/lib/hooks/use-mobile.tsx +21 -0
  176. package/landing-pages/open-engineer-template/src/lib/utils.ts +6 -0
  177. package/landing-pages/open-engineer-template/src/visual-edits/VisualEditsMessenger.tsx +2159 -0
  178. package/landing-pages/open-engineer-template/src/visual-edits/component-tagger-loader.js +460 -0
  179. package/landing-pages/open-engineer-template/tsconfig.json +42 -0
  180. package/package.json +36 -0
  181. package/templates.json +22 -0
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "app",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "next dev --turbopack",
7
+ "build": "next build",
8
+ "start": "next start",
9
+ "lint": "next lint"
10
+ },
11
+ "dependencies": {
12
+ "@babel/parser": "^7.28.5",
13
+ "@headlessui/react": "^2.2.9",
14
+ "@heroicons/react": "^2.2.0",
15
+ "@hookform/resolvers": "^5.1.1",
16
+ "@libsql/client": "^0.15.15",
17
+ "@number-flow/react": "^0.5.10",
18
+ "@radix-ui/react-accordion": "^1.2.11",
19
+ "@radix-ui/react-alert-dialog": "^1.1.14",
20
+ "@radix-ui/react-aspect-ratio": "^1.1.7",
21
+ "@radix-ui/react-avatar": "^1.1.10",
22
+ "@radix-ui/react-checkbox": "^1.3.2",
23
+ "@radix-ui/react-collapsible": "^1.1.11",
24
+ "@radix-ui/react-context-menu": "^2.2.15",
25
+ "@radix-ui/react-dialog": "^1.1.14",
26
+ "@radix-ui/react-dropdown-menu": "^2.1.15",
27
+ "@radix-ui/react-hover-card": "^1.1.14",
28
+ "@radix-ui/react-label": "^2.1.7",
29
+ "@radix-ui/react-menubar": "^1.1.15",
30
+ "@radix-ui/react-navigation-menu": "^1.2.13",
31
+ "@radix-ui/react-popover": "^1.1.14",
32
+ "@radix-ui/react-progress": "^1.1.7",
33
+ "@radix-ui/react-radio-group": "^1.3.7",
34
+ "@radix-ui/react-scroll-area": "^1.2.9",
35
+ "@radix-ui/react-select": "^2.2.5",
36
+ "@radix-ui/react-separator": "^1.1.7",
37
+ "@radix-ui/react-slider": "^1.3.5",
38
+ "@radix-ui/react-slot": "^1.2.3",
39
+ "@radix-ui/react-switch": "^1.2.5",
40
+ "@radix-ui/react-tabs": "^1.1.12",
41
+ "@radix-ui/react-toggle": "^1.1.9",
42
+ "@radix-ui/react-toggle-group": "^1.1.10",
43
+ "@radix-ui/react-tooltip": "^1.2.7",
44
+ "@react-three/drei": "^10.4.4",
45
+ "@react-three/fiber": "^9.0.0-alpha.8",
46
+ "@tabler/icons-react": "^3.35.0",
47
+ "@tailwindcss/typography": "^0.5.19",
48
+ "@tsparticles/engine": "^3.8.1",
49
+ "@tsparticles/react": "^3.0.0",
50
+ "@tsparticles/slim": "^3.8.1",
51
+ "atmn": "^0.0.28",
52
+ "autumn-js": "^0.1.43",
53
+ "bcrypt": "^6.0.0",
54
+ "better-auth": "^1.3.17",
55
+ "class-variance-authority": "^0.7.1",
56
+ "clsx": "^2.1.1",
57
+ "cmdk": "^1.1.1",
58
+ "cobe": "^0.6.5",
59
+ "date-fns": "^4.1.0",
60
+ "dotted-map": "^2.2.3",
61
+ "drizzle-kit": "^0.31.6",
62
+ "drizzle-orm": "^0.44.7",
63
+ "embla-carousel-auto-scroll": "^8.6.0",
64
+ "embla-carousel-autoplay": "^8.6.0",
65
+ "embla-carousel-react": "^8.6.0",
66
+ "estree-walker": "2.0.2",
67
+ "framer-motion": "^12.23.24",
68
+ "input-otp": "^1.4.2",
69
+ "lucide-react": "^0.552.0",
70
+ "mini-svg-data-uri": "^1.4.4",
71
+ "motion": "^12.23.24",
72
+ "motion-dom": "^12.23.23",
73
+ "next": "15.5.9",
74
+ "next-themes": "^0.4.6",
75
+ "qss": "^3.0.0",
76
+ "react": "^19.0.0",
77
+ "react-day-picker": "^9.8.0",
78
+ "react-dom": "^19.0.0",
79
+ "react-dropzone": "^14.3.8",
80
+ "react-fast-marquee": "^1.6.5",
81
+ "react-hook-form": "^7.60.0",
82
+ "react-icons": "^5.5.0",
83
+ "react-intersection-observer": "^10.0.0",
84
+ "react-resizable-panels": "^3.0.3",
85
+ "react-responsive-masonry": "^2.7.1",
86
+ "react-syntax-highlighter": "^15.6.1",
87
+ "react-wrap-balancer": "^1.1.1",
88
+ "recharts": "^3.0.2",
89
+ "simplex-noise": "^4.0.3",
90
+ "sonner": "^2.0.6",
91
+ "stripe": "^19.2.0",
92
+ "swiper": "^12.0.3",
93
+ "tailwind-merge": "^3.3.1",
94
+ "tailwindcss-animate": "^1.0.7",
95
+ "three": "^0.178.0",
96
+ "three-globe": "^2.43.0",
97
+ "vaul": "^1.1.2",
98
+ "zod": "^4.1.12"
99
+ },
100
+ "devDependencies": {
101
+ "@eslint/eslintrc": "^3.3.1",
102
+ "@tailwindcss/postcss": "^4",
103
+ "@types/node": "^20",
104
+ "@types/react": "^19",
105
+ "@types/react-dom": "^19",
106
+ "@types/react-syntax-highlighter": "^15.5.13",
107
+ "@types/three": "^0.178.0",
108
+ "eslint": "^9.38.0",
109
+ "eslint-config-next": "^16.0.1",
110
+ "tailwindcss": "^4",
111
+ "tw-animate-css": "^1.4.0",
112
+ "typescript": "^5"
113
+ }
114
+ }
@@ -0,0 +1,7 @@
1
+ const config = {
2
+ plugins: {
3
+ "@tailwindcss/postcss": {},
4
+ },
5
+ };
6
+
7
+ export default config;
@@ -0,0 +1 @@
1
+ <svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg>
@@ -0,0 +1 @@
1
+ <svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg>
@@ -0,0 +1,5 @@
1
+ "use client";
2
+
3
+ import ErrorReporter from "@/components/ErrorReporter";
4
+
5
+ export default ErrorReporter;
@@ -0,0 +1,172 @@
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
2
+ @import "tailwindcss";
3
+ @import "tw-animate-css";
4
+
5
+ @custom-variant dark (&:is(.dark *));
6
+
7
+ @theme {
8
+ --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
9
+
10
+ --color-background: #ffffff;
11
+ --color-foreground: #000000;
12
+
13
+ --color-card: #ffffff;
14
+ --color-card-foreground: #000000;
15
+
16
+ --color-popover: #ffffff;
17
+ --color-popover-foreground: #000000;
18
+
19
+ --color-primary: #171717;
20
+ --color-primary-foreground: #ffffff;
21
+
22
+ --color-secondary: #f3f4f6;
23
+ --color-secondary-foreground: #171717;
24
+
25
+ --color-muted: #f9fafb;
26
+ --color-muted-foreground: #666666;
27
+
28
+ --color-accent: #f3f4f6;
29
+ --color-accent-foreground: #171717;
30
+
31
+ --color-destructive: #ef4444;
32
+ --color-destructive-foreground: #fafafa;
33
+
34
+ --color-border: #e5e5e5;
35
+ --color-input: #e5e5e5;
36
+ --color-ring: #171717;
37
+
38
+ --color-chart-1: #3b82f6;
39
+ --color-chart-2: #10b981;
40
+ --color-chart-3: #f59e0b;
41
+ --color-chart-4: #8b5cf6;
42
+ --color-chart-5: #ef4444;
43
+
44
+ --color-sidebar: #ffffff;
45
+ --color-sidebar-foreground: #404040;
46
+ --color-sidebar-primary: #171717;
47
+ --color-sidebar-primary-foreground: #ffffff;
48
+ --color-sidebar-accent: #f3f4f6;
49
+ --color-sidebar-accent-foreground: #171717;
50
+ --color-sidebar-border: #e5e5e5;
51
+ --color-sidebar-ring: #171717;
52
+
53
+ --radius-lg: 0.75rem;
54
+ --radius-md: calc(0.75rem - 2px);
55
+ --radius-sm: calc(0.75rem - 4px);
56
+
57
+ --animate-accordion-down: accordion-down 0.2s ease-out;
58
+ --animate-accordion-up: accordion-up 0.2s ease-out;
59
+
60
+ @keyframes accordion-down {
61
+ from { height: 0; }
62
+ to { height: var(--radix-accordion-content-height); }
63
+ }
64
+ @keyframes accordion-up {
65
+ from { height: var(--radix-accordion-content-height); }
66
+ to { height: 0; }
67
+ }
68
+ }
69
+
70
+ @layer base {
71
+ *,
72
+ ::after,
73
+ ::before,
74
+ ::backdrop,
75
+ ::file-selector-button {
76
+ border-color: #e5e5e5;
77
+ }
78
+
79
+ :root {
80
+ --background: #ffffff;
81
+ --foreground: #000000;
82
+ --card: #ffffff;
83
+ --card-foreground: #000000;
84
+ --popover: #ffffff;
85
+ --popover-foreground: #000000;
86
+ --primary: #171717;
87
+ --primary-foreground: #ffffff;
88
+ --secondary: #f3f4f6;
89
+ --secondary-foreground: #171717;
90
+ --muted: #f9fafb;
91
+ --muted-foreground: #666666;
92
+ --accent: #f3f4f6;
93
+ --accent-foreground: #171717;
94
+ --destructive: #ef4444;
95
+ --destructive-foreground: #fafafa;
96
+ --border: #e5e5e5;
97
+ --input: #e5e5e5;
98
+ --ring: #171717;
99
+ --radius: 0.75rem;
100
+ }
101
+
102
+ html {
103
+ scroll-behavior: smooth;
104
+ -webkit-font-smoothing: antialiased;
105
+ }
106
+
107
+ body {
108
+ font-family: var(--font-sans);
109
+ background-color: var(--background);
110
+ color: var(--foreground);
111
+ letter-spacing: -0.01em;
112
+ }
113
+
114
+ h1, h2, h3, h4, h5, h6 {
115
+ font-weight: 700;
116
+ letter-spacing: -0.03em;
117
+ line-height: 1.1;
118
+ }
119
+
120
+ h1 { font-size: 4.5rem; }
121
+ h2 { font-size: 3rem; font-weight: 600; letter-spacing: -0.02em; }
122
+ h3 { font-size: 1.5rem; font-weight: 600; }
123
+
124
+ p {
125
+ line-height: 1.6;
126
+ color: var(--muted-foreground);
127
+ }
128
+
129
+ .container {
130
+ width: 100%;
131
+ margin-right: auto;
132
+ margin-left: auto;
133
+ padding-right: 2rem;
134
+ padding-left: 2rem;
135
+ max-width: 1280px;
136
+ }
137
+ }
138
+
139
+ @layer utilities {
140
+ .grid-pattern {
141
+ background-image: radial-gradient(circle, #e5e5e5 1px, transparent 1px);
142
+ background-size: 40px 40px;
143
+ }
144
+
145
+ .noise-texture {
146
+ background-image: url("https://grainy-gradients.vercel.app/noise.svg");
147
+ filter: contrast(150%) brightness(100%);
148
+ }
149
+
150
+ .text-balance {
151
+ text-wrap: balance;
152
+ }
153
+
154
+ .glass-nav {
155
+ background: rgba(255, 255, 255, 0.7);
156
+ backdrop-filter: blur(12px);
157
+ border: 1px solid rgba(229, 229, 229, 0.5);
158
+ }
159
+
160
+ .bento-border {
161
+ border: 1px dashed #e5e5e5;
162
+ }
163
+ }
164
+
165
+ @layer base {
166
+ * {
167
+ @apply border-border;
168
+ }
169
+ body {
170
+ @apply bg-background text-foreground;
171
+ }
172
+ }
@@ -0,0 +1,42 @@
1
+ import type { Metadata } from "next";
2
+ import "./globals.css";
3
+ import VisualEditsMessenger from "../visual-edits/VisualEditsMessenger";
4
+ import ErrorReporter from "@/components/ErrorReporter";
5
+ import Script from "next/script";
6
+
7
+ export const metadata: Metadata = {
8
+ title: "Every AI - Generate Images, Text and Videos with AI",
9
+ description: "Everything AI seamlessly integrated all the modern AI generation tools into one platform so that you can generate content with a single click.",
10
+ };
11
+
12
+ export default function RootLayout({
13
+ children,
14
+ }: Readonly<{
15
+ children: React.ReactNode;
16
+ }>) {
17
+ return (
18
+ <html lang="en">
19
+ <body className="antialiased">
20
+ <Script
21
+ id="orchids-browser-logs"
22
+ src="https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/scripts/orchids-browser-logs.js"
23
+ strategy="afterInteractive"
24
+ data-orchids-project-id="f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e"
25
+ />
26
+ <ErrorReporter />
27
+ <Script
28
+ src="https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/scripts//route-messenger.js"
29
+ strategy="afterInteractive"
30
+ data-target-origin="*"
31
+ data-message-type="ROUTE_CHANGE"
32
+ data-include-search-params="true"
33
+ data-only-in-iframe="true"
34
+ data-debug="true"
35
+ data-custom-data='{"appName": "YourApp", "version": "1.0.0", "greeting": "hi"}'
36
+ />
37
+ {children}
38
+ <VisualEditsMessenger />
39
+ </body>
40
+ </html>
41
+ );
42
+ }
@@ -0,0 +1,23 @@
1
+ import Navbar from "@/components/sections/navbar";
2
+ import HeroSection from "@/components/sections/hero";
3
+ import Logos from "@/components/sections/logos";
4
+ import FeaturesGrid from "@/components/sections/features-grid";
5
+ import ValueProps from "@/components/sections/value-props";
6
+ import TestimonialsHeader from "@/components/sections/testimonials-header";
7
+ import CTA from "@/components/sections/cta";
8
+ import Footer from "@/components/sections/footer";
9
+
10
+ export default function Home() {
11
+ return (
12
+ <main className="relative min-h-screen bg-white">
13
+ <Navbar />
14
+ <HeroSection />
15
+ <Logos />
16
+ <FeaturesGrid />
17
+ <ValueProps />
18
+ <TestimonialsHeader />
19
+ <CTA />
20
+ <Footer />
21
+ </main>
22
+ );
23
+ }
@@ -0,0 +1,136 @@
1
+ "use client";
2
+
3
+ import { useEffect, useRef } from "react";
4
+
5
+ type ReporterProps = {
6
+ /* ⎯⎯ props are only provided on the global-error page ⎯⎯ */
7
+ error?: Error & { digest?: string };
8
+ reset?: () => void;
9
+ };
10
+
11
+ export default function ErrorReporter({ error, reset }: ReporterProps) {
12
+ /* ─ instrumentation shared by every route ─ */
13
+ const lastOverlayMsg = useRef("");
14
+ const pollRef = useRef<NodeJS.Timeout>();
15
+
16
+ useEffect(() => {
17
+ const inIframe = window.parent !== window;
18
+ if (!inIframe) return;
19
+
20
+ const send = (payload: unknown) => window.parent.postMessage(payload, "*");
21
+
22
+ const onError = (e: ErrorEvent) =>
23
+ send({
24
+ type: "ERROR_CAPTURED",
25
+ error: {
26
+ message: e.message,
27
+ stack: e.error?.stack,
28
+ filename: e.filename,
29
+ lineno: e.lineno,
30
+ colno: e.colno,
31
+ source: "window.onerror",
32
+ },
33
+ timestamp: Date.now(),
34
+ });
35
+
36
+ const onReject = (e: PromiseRejectionEvent) =>
37
+ send({
38
+ type: "ERROR_CAPTURED",
39
+ error: {
40
+ message: e.reason?.message ?? String(e.reason),
41
+ stack: e.reason?.stack,
42
+ source: "unhandledrejection",
43
+ },
44
+ timestamp: Date.now(),
45
+ });
46
+
47
+ const pollOverlay = () => {
48
+ const overlay = document.querySelector("[data-nextjs-dialog-overlay]");
49
+ const node =
50
+ overlay?.querySelector(
51
+ "h1, h2, .error-message, [data-nextjs-dialog-body]"
52
+ ) ?? null;
53
+ const txt = node?.textContent ?? node?.innerHTML ?? "";
54
+ if (txt && txt !== lastOverlayMsg.current) {
55
+ lastOverlayMsg.current = txt;
56
+ send({
57
+ type: "ERROR_CAPTURED",
58
+ error: { message: txt, source: "nextjs-dev-overlay" },
59
+ timestamp: Date.now(),
60
+ });
61
+ }
62
+ };
63
+
64
+ window.addEventListener("error", onError);
65
+ window.addEventListener("unhandledrejection", onReject);
66
+ pollRef.current = setInterval(pollOverlay, 1000);
67
+
68
+ return () => {
69
+ window.removeEventListener("error", onError);
70
+ window.removeEventListener("unhandledrejection", onReject);
71
+ pollRef.current && clearInterval(pollRef.current);
72
+ };
73
+ }, []);
74
+
75
+ /* ─ extra postMessage when on the global-error route ─ */
76
+ useEffect(() => {
77
+ if (!error) return;
78
+ window.parent.postMessage(
79
+ {
80
+ type: "global-error-reset",
81
+ error: {
82
+ message: error.message,
83
+ stack: error.stack,
84
+ digest: error.digest,
85
+ name: error.name,
86
+ },
87
+ timestamp: Date.now(),
88
+ userAgent: navigator.userAgent,
89
+ },
90
+ "*"
91
+ );
92
+ }, [error]);
93
+
94
+ /* ─ ordinary pages render nothing ─ */
95
+ if (!error) return null;
96
+
97
+ /* ─ global-error UI ─ */
98
+ return (
99
+ <html>
100
+ <body className="min-h-screen bg-background text-foreground flex items-center justify-center p-4">
101
+ <div className="max-w-md w-full text-center space-y-6">
102
+ <div className="space-y-2">
103
+ <h1 className="text-2xl font-bold text-destructive">
104
+ Something went wrong!
105
+ </h1>
106
+ <p className="text-muted-foreground">
107
+ An unexpected error occurred. Please try again fixing with Orchids
108
+ </p>
109
+ </div>
110
+ <div className="space-y-2">
111
+ {process.env.NODE_ENV === "development" && (
112
+ <details className="mt-4 text-left">
113
+ <summary className="cursor-pointer text-sm text-muted-foreground hover:text-foreground">
114
+ Error details
115
+ </summary>
116
+ <pre className="mt-2 text-xs bg-muted p-2 rounded overflow-auto">
117
+ {error.message}
118
+ {error.stack && (
119
+ <div className="mt-2 text-muted-foreground">
120
+ {error.stack}
121
+ </div>
122
+ )}
123
+ {error.digest && (
124
+ <div className="mt-2 text-muted-foreground">
125
+ Digest: {error.digest}
126
+ </div>
127
+ )}
128
+ </pre>
129
+ </details>
130
+ )}
131
+ </div>
132
+ </div>
133
+ </body>
134
+ </html>
135
+ );
136
+ }
@@ -0,0 +1,62 @@
1
+ import React from "react";
2
+ import Image from "next/image";
3
+
4
+ /**
5
+ * CTA Section Component
6
+ *
7
+ * Clones the 'Ready to signup' block with pixel-perfect accuracy.
8
+ * Features:
9
+ * - Dark rounded container (#171717 equivalent / dark charcoal)
10
+ * - Noise texture background using the provided asset
11
+ * - Centered "Join Waitlist" heading and description
12
+ * - Pill-shaped CTA button
13
+ */
14
+ const CTA = () => {
15
+ return (
16
+ <section className="relative w-full py-20 px-4 md:px-6 lg:px-8 bg-white">
17
+ {/* Container with max-width and background properties */}
18
+ <div className="max-w-7xl mx-auto overflow-hidden relative rounded-[24px] md:rounded-[32px] bg-[#0f172a] min-h-[400px] flex items-center justify-center">
19
+
20
+ {/* Noise Texture Overlay */}
21
+ <div
22
+ className="absolute inset-0 opacity-30 pointer-events-none mix-blend-overlay"
23
+ style={{
24
+ backgroundImage: `url('https://slelguoygbfzlpylpxfs.supabase.co/storage/v1/object/public/test-clones/f6e84b2d-0ab9-4d46-81b2-866fa9a82d1e-ai-saas-template-aceternity-vercel-app/assets/images/noise-9.webp')`,
25
+ backgroundSize: '200px 200px',
26
+ backgroundRepeat: 'repeat'
27
+ }}
28
+ />
29
+
30
+ {/* Subtle radial gradient for depth */}
31
+ <div className="absolute inset-0 bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.05)_0%,transparent_70%)] pointer-events-none" />
32
+
33
+ {/* Content wrapper */}
34
+ <div className="relative z-10 flex flex-col items-center text-center px-6 py-16 md:py-24 max-w-3xl mx-auto">
35
+ <h2 className="text-3xl md:text-5xl lg:text-5xl font-bold tracking-tight text-white mb-6 leading-[1.1]">
36
+ Ready to signup and join the waitlist?
37
+ </h2>
38
+
39
+ <p className="text-neutral-400 text-base md:text-lg mb-10 max-w-xl mx-auto leading-relaxed">
40
+ Get instant access to our state of the art project and join the waitlist.
41
+ </p>
42
+
43
+ <a
44
+ href="/signup"
45
+ className="group relative inline-flex items-center justify-center bg-white text-black text-sm md:text-base font-semibold px-8 py-3 rounded-full transition-all duration-200 hover:bg-neutral-200 active:scale-95 shadow-[0_0_20px_rgba(255,255,255,0.1)]"
46
+ >
47
+ Join Waitlist
48
+ </a>
49
+ </div>
50
+ </div>
51
+
52
+ {/* Background Decorative Large Text - Part of the original design footer integration */}
53
+ <div className="absolute bottom-0 left-0 right-0 overflow-hidden pointer-events-none z-0 translate-y-1/2 opacity-[0.03]">
54
+ <h1 className="text-[20vw] font-bold text-center whitespace-nowrap leading-none select-none">
55
+ EVERY AI
56
+ </h1>
57
+ </div>
58
+ </section>
59
+ );
60
+ };
61
+
62
+ export default CTA;