create-huenei-frontend 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/bin/create-huenei-frontend.js +2 -0
  2. package/dist/index.js +99 -0
  3. package/dist/templates/clean/.cursor/skills/architecture/SKILL.md +26 -0
  4. package/dist/templates/clean/.cursor/skills/components-shadcn/SKILL.md +23 -0
  5. package/dist/templates/clean/.cursor/skills/daisyui/SKILL.md +98 -0
  6. package/dist/templates/clean/.cursor/skills/routing/SKILL.md +32 -0
  7. package/dist/templates/clean/.cursor/skills/testing/SKILL.md +55 -0
  8. package/dist/templates/clean/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
  9. package/dist/templates/clean/.cursor/skills/ui-and-styling/SKILL.md +32 -0
  10. package/dist/templates/clean/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
  11. package/dist/templates/clean/.prettierrc +6 -0
  12. package/dist/templates/clean/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
  13. package/dist/templates/clean/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
  14. package/dist/templates/clean/.vscode/extensions.json +7 -0
  15. package/dist/templates/clean/README.md +75 -0
  16. package/dist/templates/clean/components.json +22 -0
  17. package/dist/templates/clean/eslint.config.js +31 -0
  18. package/dist/templates/clean/index.html +13 -0
  19. package/dist/templates/clean/package.json +62 -0
  20. package/dist/templates/clean/pnpm-lock.yaml +4487 -0
  21. package/dist/templates/clean/pnpm-workspace.yaml +2 -0
  22. package/dist/templates/clean/src/assets/react.svg +1 -0
  23. package/dist/templates/clean/src/components/ui/badge.tsx +37 -0
  24. package/dist/templates/clean/src/components/ui/breadcrumb.tsx +106 -0
  25. package/dist/templates/clean/src/components/ui/button.tsx +58 -0
  26. package/dist/templates/clean/src/components/ui/card.tsx +72 -0
  27. package/dist/templates/clean/src/components/ui/form.tsx +165 -0
  28. package/dist/templates/clean/src/components/ui/input.tsx +22 -0
  29. package/dist/templates/clean/src/components/ui/label.tsx +24 -0
  30. package/dist/templates/clean/src/components/ui/password-input.tsx +41 -0
  31. package/dist/templates/clean/src/components/ui/separator.tsx +28 -0
  32. package/dist/templates/clean/src/components/ui/tabs.tsx +62 -0
  33. package/dist/templates/clean/src/components/ui/textarea.tsx +21 -0
  34. package/dist/templates/clean/src/index.css +104 -0
  35. package/dist/templates/clean/src/lib/queryClient.ts +11 -0
  36. package/dist/templates/clean/src/lib/utils.ts +6 -0
  37. package/dist/templates/clean/src/main.tsx +33 -0
  38. package/dist/templates/clean/src/routeTree.gen.ts +77 -0
  39. package/dist/templates/clean/src/router.tsx +13 -0
  40. package/dist/templates/clean/src/routes/__root.tsx +82 -0
  41. package/dist/templates/clean/src/routes/index.tsx +187 -0
  42. package/dist/templates/clean/src/routes/otra-ruta.tsx +319 -0
  43. package/dist/templates/clean/src/test/setup.ts +1 -0
  44. package/dist/templates/clean/tsconfig.app.json +34 -0
  45. package/dist/templates/clean/tsconfig.json +10 -0
  46. package/dist/templates/clean/tsconfig.node.json +26 -0
  47. package/dist/templates/clean/vite.config.ts +22 -0
  48. package/dist/templates/clean/vitest.config.ts +9 -0
  49. package/dist/templates/help/.cursor/skills/architecture/SKILL.md +26 -0
  50. package/dist/templates/help/.cursor/skills/components-shadcn/SKILL.md +23 -0
  51. package/dist/templates/help/.cursor/skills/daisyui/SKILL.md +98 -0
  52. package/dist/templates/help/.cursor/skills/routing/SKILL.md +32 -0
  53. package/dist/templates/help/.cursor/skills/testing/SKILL.md +55 -0
  54. package/dist/templates/help/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
  55. package/dist/templates/help/.cursor/skills/ui-and-styling/SKILL.md +32 -0
  56. package/dist/templates/help/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
  57. package/dist/templates/help/.prettierrc +6 -0
  58. package/dist/templates/help/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
  59. package/dist/templates/help/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
  60. package/dist/templates/help/.vscode/extensions.json +7 -0
  61. package/dist/templates/help/README.md +75 -0
  62. package/dist/templates/help/components.json +22 -0
  63. package/dist/templates/help/eslint.config.js +31 -0
  64. package/dist/templates/help/index.html +13 -0
  65. package/dist/templates/help/package.json +62 -0
  66. package/dist/templates/help/pnpm-lock.yaml +4487 -0
  67. package/dist/templates/help/pnpm-workspace.yaml +2 -0
  68. package/dist/templates/help/src/assets/react.svg +1 -0
  69. package/dist/templates/help/src/components/documentacion/entorno.tsx +99 -0
  70. package/dist/templates/help/src/components/documentacion/estructura.tsx +100 -0
  71. package/dist/templates/help/src/components/documentacion/figma-mcp.tsx +200 -0
  72. package/dist/templates/help/src/components/documentacion/inicio.tsx +69 -0
  73. package/dist/templates/help/src/components/documentacion/instalacion.tsx +72 -0
  74. package/dist/templates/help/src/components/documentacion/personalizacion.tsx +163 -0
  75. package/dist/templates/help/src/components/documentacion/rutas.tsx +138 -0
  76. package/dist/templates/help/src/components/documentacion/stack.tsx +401 -0
  77. package/dist/templates/help/src/components/ui/badge.tsx +37 -0
  78. package/dist/templates/help/src/components/ui/breadcrumb.tsx +106 -0
  79. package/dist/templates/help/src/components/ui/button.tsx +58 -0
  80. package/dist/templates/help/src/components/ui/card.tsx +72 -0
  81. package/dist/templates/help/src/components/ui/form.tsx +165 -0
  82. package/dist/templates/help/src/components/ui/input.tsx +22 -0
  83. package/dist/templates/help/src/components/ui/label.tsx +24 -0
  84. package/dist/templates/help/src/components/ui/password-input.tsx +41 -0
  85. package/dist/templates/help/src/components/ui/separator.tsx +28 -0
  86. package/dist/templates/help/src/components/ui/tabs.tsx +62 -0
  87. package/dist/templates/help/src/components/ui/textarea.tsx +21 -0
  88. package/dist/templates/help/src/data/proyectos.json +56 -0
  89. package/dist/templates/help/src/index.css +104 -0
  90. package/dist/templates/help/src/lib/queryClient.ts +11 -0
  91. package/dist/templates/help/src/lib/utils.ts +6 -0
  92. package/dist/templates/help/src/main.tsx +33 -0
  93. package/dist/templates/help/src/routeTree.gen.ts +241 -0
  94. package/dist/templates/help/src/router.tsx +13 -0
  95. package/dist/templates/help/src/routes/__root.tsx +92 -0
  96. package/dist/templates/help/src/routes/auth/iniciar-sesion.tsx +139 -0
  97. package/dist/templates/help/src/routes/auth/registro.tsx +205 -0
  98. package/dist/templates/help/src/routes/contacto.tsx +60 -0
  99. package/dist/templates/help/src/routes/dashbord.tsx +9 -0
  100. package/dist/templates/help/src/routes/documentacion.tsx +80 -0
  101. package/dist/templates/help/src/routes/index.test.tsx +42 -0
  102. package/dist/templates/help/src/routes/index.tsx +211 -0
  103. package/dist/templates/help/src/routes/perfil.tsx +9 -0
  104. package/dist/templates/help/src/routes/proyectos.$proyectoId.tsx +156 -0
  105. package/dist/templates/help/src/routes/proyectos.tsx +93 -0
  106. package/dist/templates/help/src/test/setup.ts +1 -0
  107. package/dist/templates/help/tsconfig.app.json +34 -0
  108. package/dist/templates/help/tsconfig.json +10 -0
  109. package/dist/templates/help/tsconfig.node.json +26 -0
  110. package/dist/templates/help/vite.config.ts +22 -0
  111. package/dist/templates/help/vitest.config.ts +9 -0
  112. package/dist/test-cli.js +48 -0
  113. package/package.json +25 -0
  114. package/templates/clean/.cursor/skills/architecture/SKILL.md +26 -0
  115. package/templates/clean/.cursor/skills/components-shadcn/SKILL.md +23 -0
  116. package/templates/clean/.cursor/skills/daisyui/SKILL.md +98 -0
  117. package/templates/clean/.cursor/skills/routing/SKILL.md +32 -0
  118. package/templates/clean/.cursor/skills/testing/SKILL.md +55 -0
  119. package/templates/clean/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
  120. package/templates/clean/.cursor/skills/ui-and-styling/SKILL.md +32 -0
  121. package/templates/clean/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
  122. package/templates/clean/.prettierrc +6 -0
  123. package/templates/clean/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
  124. package/templates/clean/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
  125. package/templates/clean/.vscode/extensions.json +7 -0
  126. package/templates/clean/README.md +75 -0
  127. package/templates/clean/components.json +22 -0
  128. package/templates/clean/eslint.config.js +31 -0
  129. package/templates/clean/index.html +13 -0
  130. package/templates/clean/package.json +62 -0
  131. package/templates/clean/pnpm-lock.yaml +4487 -0
  132. package/templates/clean/pnpm-workspace.yaml +2 -0
  133. package/templates/clean/src/assets/react.svg +1 -0
  134. package/templates/clean/src/components/ui/badge.tsx +37 -0
  135. package/templates/clean/src/components/ui/breadcrumb.tsx +106 -0
  136. package/templates/clean/src/components/ui/button.tsx +58 -0
  137. package/templates/clean/src/components/ui/card.tsx +72 -0
  138. package/templates/clean/src/components/ui/form.tsx +165 -0
  139. package/templates/clean/src/components/ui/input.tsx +22 -0
  140. package/templates/clean/src/components/ui/label.tsx +24 -0
  141. package/templates/clean/src/components/ui/password-input.tsx +41 -0
  142. package/templates/clean/src/components/ui/separator.tsx +28 -0
  143. package/templates/clean/src/components/ui/tabs.tsx +62 -0
  144. package/templates/clean/src/components/ui/textarea.tsx +21 -0
  145. package/templates/clean/src/index.css +104 -0
  146. package/templates/clean/src/lib/queryClient.ts +11 -0
  147. package/templates/clean/src/lib/utils.ts +6 -0
  148. package/templates/clean/src/main.tsx +33 -0
  149. package/templates/clean/src/routeTree.gen.ts +77 -0
  150. package/templates/clean/src/router.tsx +13 -0
  151. package/templates/clean/src/routes/__root.tsx +82 -0
  152. package/templates/clean/src/routes/index.tsx +187 -0
  153. package/templates/clean/src/routes/otra-ruta.tsx +319 -0
  154. package/templates/clean/src/test/setup.ts +1 -0
  155. package/templates/clean/tsconfig.app.json +34 -0
  156. package/templates/clean/tsconfig.json +10 -0
  157. package/templates/clean/tsconfig.node.json +26 -0
  158. package/templates/clean/vite.config.ts +22 -0
  159. package/templates/clean/vitest.config.ts +9 -0
  160. package/templates/help/.cursor/skills/architecture/SKILL.md +26 -0
  161. package/templates/help/.cursor/skills/components-shadcn/SKILL.md +23 -0
  162. package/templates/help/.cursor/skills/daisyui/SKILL.md +98 -0
  163. package/templates/help/.cursor/skills/routing/SKILL.md +32 -0
  164. package/templates/help/.cursor/skills/testing/SKILL.md +55 -0
  165. package/templates/help/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
  166. package/templates/help/.cursor/skills/ui-and-styling/SKILL.md +32 -0
  167. package/templates/help/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
  168. package/templates/help/.prettierrc +6 -0
  169. package/templates/help/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
  170. package/templates/help/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
  171. package/templates/help/.vscode/extensions.json +7 -0
  172. package/templates/help/README.md +75 -0
  173. package/templates/help/components.json +22 -0
  174. package/templates/help/eslint.config.js +31 -0
  175. package/templates/help/index.html +13 -0
  176. package/templates/help/package.json +62 -0
  177. package/templates/help/pnpm-lock.yaml +4487 -0
  178. package/templates/help/pnpm-workspace.yaml +2 -0
  179. package/templates/help/src/assets/react.svg +1 -0
  180. package/templates/help/src/components/documentacion/entorno.tsx +99 -0
  181. package/templates/help/src/components/documentacion/estructura.tsx +100 -0
  182. package/templates/help/src/components/documentacion/figma-mcp.tsx +200 -0
  183. package/templates/help/src/components/documentacion/inicio.tsx +69 -0
  184. package/templates/help/src/components/documentacion/instalacion.tsx +72 -0
  185. package/templates/help/src/components/documentacion/personalizacion.tsx +163 -0
  186. package/templates/help/src/components/documentacion/rutas.tsx +138 -0
  187. package/templates/help/src/components/documentacion/stack.tsx +401 -0
  188. package/templates/help/src/components/ui/badge.tsx +37 -0
  189. package/templates/help/src/components/ui/breadcrumb.tsx +106 -0
  190. package/templates/help/src/components/ui/button.tsx +58 -0
  191. package/templates/help/src/components/ui/card.tsx +72 -0
  192. package/templates/help/src/components/ui/form.tsx +165 -0
  193. package/templates/help/src/components/ui/input.tsx +22 -0
  194. package/templates/help/src/components/ui/label.tsx +24 -0
  195. package/templates/help/src/components/ui/password-input.tsx +41 -0
  196. package/templates/help/src/components/ui/separator.tsx +28 -0
  197. package/templates/help/src/components/ui/tabs.tsx +62 -0
  198. package/templates/help/src/components/ui/textarea.tsx +21 -0
  199. package/templates/help/src/data/proyectos.json +56 -0
  200. package/templates/help/src/index.css +104 -0
  201. package/templates/help/src/lib/queryClient.ts +11 -0
  202. package/templates/help/src/lib/utils.ts +6 -0
  203. package/templates/help/src/main.tsx +33 -0
  204. package/templates/help/src/routeTree.gen.ts +241 -0
  205. package/templates/help/src/router.tsx +13 -0
  206. package/templates/help/src/routes/__root.tsx +92 -0
  207. package/templates/help/src/routes/auth/iniciar-sesion.tsx +139 -0
  208. package/templates/help/src/routes/auth/registro.tsx +205 -0
  209. package/templates/help/src/routes/contacto.tsx +60 -0
  210. package/templates/help/src/routes/dashbord.tsx +9 -0
  211. package/templates/help/src/routes/documentacion.tsx +80 -0
  212. package/templates/help/src/routes/index.test.tsx +42 -0
  213. package/templates/help/src/routes/index.tsx +211 -0
  214. package/templates/help/src/routes/perfil.tsx +9 -0
  215. package/templates/help/src/routes/proyectos.$proyectoId.tsx +156 -0
  216. package/templates/help/src/routes/proyectos.tsx +93 -0
  217. package/templates/help/src/test/setup.ts +1 -0
  218. package/templates/help/tsconfig.app.json +34 -0
  219. package/templates/help/tsconfig.json +10 -0
  220. package/templates/help/tsconfig.node.json +26 -0
  221. package/templates/help/vite.config.ts +22 -0
  222. package/templates/help/vitest.config.ts +9 -0
@@ -0,0 +1,104 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+
4
+ @plugin "daisyui" {
5
+ logs: true;
6
+ }
7
+
8
+ /* Main theme */
9
+
10
+ @plugin "daisyui/theme" {
11
+ name: "huenei";
12
+ default: true;
13
+ prefersdark: false;
14
+ color-scheme: light;
15
+ --color-base-100: oklch(100% 0 0);
16
+ --color-base-200: oklch(97% 0 0);
17
+ --color-base-300: oklch(94% 0 0);
18
+ --color-base-content: oklch(0% 0 0);
19
+ --color-primary: oklch(15.906% 0 0);
20
+ --color-primary-content: oklch(100% 0 0);
21
+ --color-secondary: oklch(21.455% 0.001 17.278);
22
+ --color-secondary-content: oklch(100% 0 0);
23
+ --color-accent: oklch(26.861% 0 0);
24
+ --color-accent-content: oklch(100% 0 0);
25
+ --color-neutral: oklch(0% 0 0);
26
+ --color-neutral-content: oklch(100% 0 0);
27
+ --color-info: oklch(79.54% 0.103 205.9);
28
+ --color-info-content: oklch(15.908% 0.02 205.9);
29
+ --color-success: oklch(90.13% 0.153 164.14);
30
+ --color-success-content: oklch(18.026% 0.03 164.14);
31
+ --color-warning: oklch(88.37% 0.135 79.94);
32
+ --color-warning-content: oklch(17.674% 0.027 79.94);
33
+ --color-error: oklch(78.66% 0.15 28.47);
34
+ --color-error-content: oklch(15.732% 0.03 28.47);
35
+ --radius-selector: 2rem;
36
+ --radius-field: 0.25rem;
37
+ --radius-box: 0.5rem;
38
+ --size-selector: 0.25rem;
39
+ --size-field: 0.25rem;
40
+ --border: 1px;
41
+ --depth: 0;
42
+ --noise: 0;
43
+ }
44
+
45
+ /* Toastify theme */
46
+ :root {
47
+ --toastify-color-light: #fff;
48
+ --toastify-color-dark: #121212;
49
+ --toastify-color-info: #3498db;
50
+ --toastify-color-success: #07bc0c;
51
+ --toastify-color-warning: #f1c40f;
52
+ --toastify-color-error: hsl(6, 78%, 57%);
53
+ --toastify-color-transparent: rgba(255, 255, 255, 0.7);
54
+
55
+ --toastify-icon-color-info: var(--toastify-color-info);
56
+ --toastify-icon-color-success: var(--toastify-color-success);
57
+ --toastify-icon-color-warning: var(--toastify-color-warning);
58
+ --toastify-icon-color-error: var(--toastify-color-error);
59
+
60
+ --toastify-container-width: fit-content;
61
+ --toastify-toast-width: 320px;
62
+ --toastify-toast-offset: 16px;
63
+ --toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));
64
+ --toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));
65
+ --toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));
66
+ --toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));
67
+ --toastify-toast-background: #fff;
68
+ --toastify-toast-padding: 14px;
69
+ --toastify-toast-min-height: 64px;
70
+ --toastify-toast-max-height: 800px;
71
+ --toastify-toast-bd-radius: 6px;
72
+ --toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
73
+ --toastify-font-family: sans-serif;
74
+ --toastify-z-index: 9999;
75
+ --toastify-text-color-light: #757575;
76
+ --toastify-text-color-dark: #fff;
77
+
78
+ /* Used only for colored theme */
79
+ --toastify-text-color-info: #fff;
80
+ --toastify-text-color-success: #fff;
81
+ --toastify-text-color-warning: #fff;
82
+ --toastify-text-color-error: #fff;
83
+
84
+ --toastify-spinner-color: #616161;
85
+ --toastify-spinner-color-empty-area: #e0e0e0;
86
+ --toastify-color-progress-light: linear-gradient(
87
+ to right,
88
+ #4cd964,
89
+ #5ac8fa,
90
+ #007aff,
91
+ #34aadc,
92
+ #5856d6,
93
+ #ff2d55
94
+ );
95
+ --toastify-color-progress-dark: #bb86fc;
96
+ --toastify-color-progress-info: var(--toastify-color-info);
97
+ --toastify-color-progress-success: var(--toastify-color-success);
98
+ --toastify-color-progress-warning: var(--toastify-color-warning);
99
+ --toastify-color-progress-error: var(--toastify-color-error);
100
+ /* used to control the opacity of the progress trail */
101
+ --toastify-color-progress-bgo: 0.2;
102
+ }
103
+
104
+ @custom-variant dark (&:where([data-theme=night], [data-theme=night] *));
@@ -0,0 +1,11 @@
1
+ import { QueryClient } from "@tanstack/react-query";
2
+
3
+ export const queryClient = new QueryClient({
4
+ defaultOptions: {
5
+ queries: {
6
+ staleTime: 60_000,
7
+ retry: 1,
8
+ refetchOnWindowFocus: false,
9
+ },
10
+ },
11
+ });
@@ -0,0 +1,6 @@
1
+ import { clsx, type ClassValue } from "clsx"
2
+ import { twMerge } from "tailwind-merge"
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs))
6
+ }
@@ -0,0 +1,33 @@
1
+ import { StrictMode } from "react";
2
+ import { createRoot } from "react-dom/client";
3
+ import { RouterProvider } from "@tanstack/react-router";
4
+ import { QueryClientProvider } from "@tanstack/react-query";
5
+ import { ToastContainer } from "react-toastify";
6
+
7
+ import { TanStackRouterDevtools } from "@tanstack/react-router-devtools";
8
+ import { ReactQueryDevtools } from "@tanstack/react-query-devtools";
9
+ import { router } from "./router";
10
+ import { queryClient } from "@/lib/queryClient";
11
+ import "./index.css";
12
+
13
+ createRoot(document.getElementById("root")!).render(
14
+ <StrictMode>
15
+ <QueryClientProvider client={queryClient}>
16
+ <RouterProvider router={router} />
17
+ <TanStackRouterDevtools router={router} initialIsOpen={false} />
18
+ <ReactQueryDevtools initialIsOpen={false} />
19
+ <ToastContainer
20
+ position="bottom-center"
21
+ autoClose={5000}
22
+ hideProgressBar={false}
23
+ newestOnTop={false}
24
+ closeOnClick={false}
25
+ rtl={false}
26
+ pauseOnFocusLoss
27
+ draggable
28
+ pauseOnHover
29
+ theme="light"
30
+ />
31
+ </QueryClientProvider>
32
+ </StrictMode>
33
+ );
@@ -0,0 +1,77 @@
1
+ /* eslint-disable */
2
+
3
+ // @ts-nocheck
4
+
5
+ // noinspection JSUnusedGlobalSymbols
6
+
7
+ // This file was automatically generated by TanStack Router.
8
+ // You should NOT make any changes in this file as it will be overwritten.
9
+ // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
10
+
11
+ import { Route as rootRouteImport } from './routes/__root'
12
+ import { Route as OtraRutaRouteImport } from './routes/otra-ruta'
13
+ import { Route as IndexRouteImport } from './routes/index'
14
+
15
+ const OtraRutaRoute = OtraRutaRouteImport.update({
16
+ id: '/otra-ruta',
17
+ path: '/otra-ruta',
18
+ getParentRoute: () => rootRouteImport,
19
+ } as any)
20
+ const IndexRoute = IndexRouteImport.update({
21
+ id: '/',
22
+ path: '/',
23
+ getParentRoute: () => rootRouteImport,
24
+ } as any)
25
+
26
+ export interface FileRoutesByFullPath {
27
+ '/': typeof IndexRoute
28
+ '/otra-ruta': typeof OtraRutaRoute
29
+ }
30
+ export interface FileRoutesByTo {
31
+ '/': typeof IndexRoute
32
+ '/otra-ruta': typeof OtraRutaRoute
33
+ }
34
+ export interface FileRoutesById {
35
+ __root__: typeof rootRouteImport
36
+ '/': typeof IndexRoute
37
+ '/otra-ruta': typeof OtraRutaRoute
38
+ }
39
+ export interface FileRouteTypes {
40
+ fileRoutesByFullPath: FileRoutesByFullPath
41
+ fullPaths: '/' | '/otra-ruta'
42
+ fileRoutesByTo: FileRoutesByTo
43
+ to: '/' | '/otra-ruta'
44
+ id: '__root__' | '/' | '/otra-ruta'
45
+ fileRoutesById: FileRoutesById
46
+ }
47
+ export interface RootRouteChildren {
48
+ IndexRoute: typeof IndexRoute
49
+ OtraRutaRoute: typeof OtraRutaRoute
50
+ }
51
+
52
+ declare module '@tanstack/react-router' {
53
+ interface FileRoutesByPath {
54
+ '/otra-ruta': {
55
+ id: '/otra-ruta'
56
+ path: '/otra-ruta'
57
+ fullPath: '/otra-ruta'
58
+ preLoaderRoute: typeof OtraRutaRouteImport
59
+ parentRoute: typeof rootRouteImport
60
+ }
61
+ '/': {
62
+ id: '/'
63
+ path: '/'
64
+ fullPath: '/'
65
+ preLoaderRoute: typeof IndexRouteImport
66
+ parentRoute: typeof rootRouteImport
67
+ }
68
+ }
69
+ }
70
+
71
+ const rootRouteChildren: RootRouteChildren = {
72
+ IndexRoute: IndexRoute,
73
+ OtraRutaRoute: OtraRutaRoute,
74
+ }
75
+ export const routeTree = rootRouteImport
76
+ ._addFileChildren(rootRouteChildren)
77
+ ._addFileTypes<FileRouteTypes>()
@@ -0,0 +1,13 @@
1
+ import { createRouter } from '@tanstack/react-router'
2
+ import { routeTree } from './routeTree.gen'
3
+
4
+ export const router = createRouter({
5
+ routeTree,
6
+ defaultPreload: 'intent',
7
+ })
8
+
9
+ declare module '@tanstack/react-router' {
10
+ interface Register {
11
+ router: typeof router
12
+ }
13
+ }
@@ -0,0 +1,82 @@
1
+ import { createRootRoute, Link, Outlet } from "@tanstack/react-router";
2
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
3
+ import { Button } from "@/components/ui/button";
4
+ import { ExternalLink } from "lucide-react";
5
+
6
+ function NotFound() {
7
+ return (
8
+ <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
9
+ <Card>
10
+ <CardHeader>
11
+ <CardTitle className="text-4xl">404 - Página no encontrada</CardTitle>
12
+ <CardDescription>La página que buscas no existe o ha sido movida.</CardDescription>
13
+ </CardHeader>
14
+ <CardContent>
15
+ <Button asChild>
16
+ <Link to="/">Volver al inicio</Link>
17
+ </Button>
18
+ </CardContent>
19
+ </Card>
20
+ </div>
21
+ );
22
+ }
23
+
24
+ export const Route = createRootRoute({
25
+ component: () => (
26
+ <>
27
+ <div className="min-h-screen bg-base-100">
28
+ {/* Header */}
29
+ <header className="bg-base-100 shadow-sm">
30
+ <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
31
+ <div className="flex justify-between items-center py-6">
32
+ <div className="flex items-center">
33
+ <Link to="/" className="text-2xl font-bold text-base-content">
34
+ Huenei
35
+ </Link>
36
+ </div>
37
+ <nav className="hidden md:flex space-x-8 items-center">
38
+ <Link
39
+ to="/"
40
+ className="text-base-content/70 hover:text-base-content transition-colors [&.active]:text-base-content [&.active]:font-semibold"
41
+ >
42
+ Inicio
43
+ </Link>
44
+ <Link
45
+ to="/otra-ruta"
46
+ className="text-base-content/70 hover:text-base-content transition-colors [&.active]:text-base-content [&.active]:font-semibold"
47
+ >
48
+ Enrutamiento
49
+ </Link>
50
+ <a
51
+ href="https://huenei.com/documentacion"
52
+ target="_blank"
53
+ rel="noopener noreferrer"
54
+ className="btn btn-primary [&.active]:text-base-content [&.active]:font-semibold flex items-center gap-2"
55
+ >
56
+ <span>Documentación</span>
57
+ <ExternalLink size={10} />
58
+ </a>
59
+ </nav>
60
+ </div>
61
+ </div>
62
+ </header>
63
+
64
+ {/* Main Content */}
65
+ <main>
66
+ <Outlet />
67
+ </main>
68
+
69
+ {/* Footer */}
70
+ <footer className="bg-base-100 border-t border-base-300 mt-16">
71
+ <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
72
+ <div className="text-center text-base-content/70">
73
+ <p>&copy; {new Date().getFullYear()} Huenei. Todos los derechos reservados.</p>
74
+ <p className="mt-2 text-sm">Template base para proyectos de frontend</p>
75
+ </div>
76
+ </div>
77
+ </footer>
78
+ </div>
79
+ </>
80
+ ),
81
+ notFoundComponent: NotFound,
82
+ });
@@ -0,0 +1,187 @@
1
+ import { createFileRoute, Link } from "@tanstack/react-router";
2
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
3
+ import { Button } from "@/components/ui/button";
4
+ import { Badge } from "@/components/ui/badge";
5
+ import {
6
+ Code,
7
+ Palette,
8
+ Zap,
9
+ Database,
10
+ FileText,
11
+ Route as RouteIcon,
12
+ Settings,
13
+ BookOpen,
14
+ } from "lucide-react";
15
+
16
+ export const Route = createFileRoute("/")({
17
+ component: Index,
18
+ });
19
+
20
+ function Index() {
21
+ return (
22
+ <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-16">
23
+ <div className="text-center mb-16">
24
+ <h2 className="text-5xl font-bold text-base-content mb-6">Huenei Frontend</h2>
25
+ <p className="text-xl text-base-content/70 max-w-2xl mx-auto mb-6">
26
+ Plantilla estandarizada para los proyectos de frontend
27
+ </p>
28
+ <div className="flex flex-wrap justify-center gap-2 mb-6">
29
+ <Badge variant="outline">Vite</Badge>
30
+ <Badge variant="outline">React 19</Badge>
31
+ <Badge variant="outline">TypeScript</Badge>
32
+ <Badge variant="outline">Zod</Badge>
33
+ <Badge variant="outline">Tailwind CSS v4</Badge>
34
+ <Badge variant="outline">TanStack Query</Badge>
35
+ <Badge variant="outline">TanStack Router</Badge>
36
+ <Badge variant="outline">shadcn/ui</Badge>
37
+ <Badge variant="outline">Vitest</Badge>
38
+ </div>
39
+ </div>
40
+
41
+ {/* Features Grid */}
42
+ <div className="grid md:grid-cols-2 lg:grid-cols-4 gap-6 mb-16">
43
+ <Card className="hover:shadow-lg transition-shadow">
44
+ <CardHeader>
45
+ <div className="w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-4">
46
+ <Zap className="w-6 h-6 text-primary" />
47
+ </div>
48
+ <CardTitle>Vite</CardTitle>
49
+ <CardDescription>
50
+ Build tool ultra-rápido con HMR instantáneo y build optimizado con rolldown.
51
+ </CardDescription>
52
+ </CardHeader>
53
+ </Card>
54
+
55
+ <Card className="hover:shadow-lg transition-shadow">
56
+ <CardHeader>
57
+ <div className="w-12 h-12 bg-accent/10 rounded-lg flex items-center justify-center mb-4">
58
+ <Code className="w-6 h-6 text-accent" />
59
+ </div>
60
+ <CardTitle>React 19 + TypeScript</CardTitle>
61
+ <CardDescription>
62
+ Framework moderno con React Compiler habilitado y type safety estricto.
63
+ </CardDescription>
64
+ </CardHeader>
65
+ </Card>
66
+
67
+ <Card className="hover:shadow-lg transition-shadow">
68
+ <CardHeader>
69
+ <div className="w-12 h-12 bg-info/10 rounded-lg flex items-center justify-center mb-4">
70
+ <Database className="w-6 h-6 text-info" />
71
+ </div>
72
+ <CardTitle>TanStack Query</CardTitle>
73
+ <CardDescription>
74
+ Manejo de estado del servidor, caché y sincronización de datos con DevTools.
75
+ </CardDescription>
76
+ </CardHeader>
77
+ </Card>
78
+
79
+ <Card className="hover:shadow-lg transition-shadow">
80
+ <CardHeader>
81
+ <div className="w-12 h-12 bg-success/10 rounded-lg flex items-center justify-center mb-4">
82
+ <RouteIcon className="w-6 h-6 text-success" />
83
+ </div>
84
+ <CardTitle>TanStack Router</CardTitle>
85
+ <CardDescription>
86
+ Enrutamiento type-safe con file-based routing y preload automático.
87
+ </CardDescription>
88
+ </CardHeader>
89
+ </Card>
90
+
91
+ <Card className="hover:shadow-lg transition-shadow">
92
+ <CardHeader>
93
+ <div className="w-12 h-12 bg-warning/10 rounded-lg flex items-center justify-center mb-4">
94
+ <Palette className="w-6 h-6 text-warning" />
95
+ </div>
96
+ <CardTitle>Tailwind CSS v4</CardTitle>
97
+ <CardDescription>
98
+ Framework CSS utility-first con configuración moderna usando @theme.
99
+ </CardDescription>
100
+ </CardHeader>
101
+ </Card>
102
+
103
+ <Card className="hover:shadow-lg transition-shadow">
104
+ <CardHeader>
105
+ <div className="w-12 h-12 bg-secondary/10 rounded-lg flex items-center justify-center mb-4">
106
+ <Code className="w-6 h-6 text-secondary" />
107
+ </div>
108
+ <CardTitle>shadcn/ui</CardTitle>
109
+ <CardDescription>
110
+ Componentes UI reutilizables construidos con Radix UI y Tailwind CSS.
111
+ </CardDescription>
112
+ </CardHeader>
113
+ </Card>
114
+
115
+ <Card className="hover:shadow-lg transition-shadow">
116
+ <CardHeader>
117
+ <div className="w-12 h-12 bg-error/10 rounded-lg flex items-center justify-center mb-4">
118
+ <FileText className="w-6 h-6 text-error" />
119
+ </div>
120
+ <CardTitle>Zod</CardTitle>
121
+ <CardDescription>
122
+ Validación de esquemas TypeScript-first con integración para React Hook Form.
123
+ </CardDescription>
124
+ </CardHeader>
125
+ </Card>
126
+
127
+ <Card className="hover:shadow-lg transition-shadow">
128
+ <CardHeader>
129
+ <div className="w-12 h-12 bg-neutral/10 rounded-lg flex items-center justify-center mb-4">
130
+ <Settings className="w-6 h-6 text-neutral" />
131
+ </div>
132
+ <CardTitle>Vitest</CardTitle>
133
+ <CardDescription>
134
+ Testing rápido con React Testing Library para componentes y lógica.
135
+ </CardDescription>
136
+ </CardHeader>
137
+ </Card>
138
+ </div>
139
+
140
+ {/* Quick Start Section */}
141
+ <div className="grid md:grid-cols-2 gap-6 mb-16">
142
+ <Card>
143
+ <CardHeader>
144
+ <CardTitle>Requisitos previos</CardTitle>
145
+ <CardDescription>Lo que necesitas para comenzar con este template</CardDescription>
146
+ </CardHeader>
147
+ <CardContent>
148
+ <ul className="list-disc list-inside space-y-2 text-base-content/70">
149
+ <li>Node.js 18+</li>
150
+ <li>pnpm</li>
151
+ <li>Conocimientos básicos de React y TypeScript</li>
152
+ <li>
153
+ <strong className="text-base-content">Cursor IDE</strong> (recomendado para mejor
154
+ experiencia de desarrollo)
155
+ </li>
156
+ </ul>
157
+ </CardContent>
158
+ </Card>
159
+
160
+ <Card>
161
+ <CardHeader>
162
+ <CardTitle>Comandos rápidos</CardTitle>
163
+ <CardDescription>Scripts principales para desarrollo y producción</CardDescription>
164
+ </CardHeader>
165
+ <CardContent className="space-y-3">
166
+ <h3 className="text-base font-semibold mb-3">Instalar dependencias</h3>
167
+ <div className="bg-base-200 rounded-lg p-3 font-mono text-sm text-base-content">
168
+ <code>pnpm install</code>
169
+ </div>
170
+ <h3 className="text-base font-semibold mb-3">Ejecutar en desarrollo</h3>
171
+ <div className="bg-base-200 rounded-lg p-3 font-mono text-sm text-base-content">
172
+ <code>pnpm dev</code>
173
+ </div>
174
+ <h3 className="text-base font-semibold mb-3">Build para producción</h3>
175
+ <div className="bg-base-200 rounded-lg p-3 font-mono text-sm text-base-content">
176
+ <code>pnpm build</code>
177
+ </div>
178
+ <h3 className="text-base font-semibold mb-3">Ejecutar tests</h3>
179
+ <div className="bg-base-200 rounded-lg p-3 font-mono text-sm text-base-content">
180
+ <code>pnpm test</code>
181
+ </div>
182
+ </CardContent>
183
+ </Card>
184
+ </div>
185
+ </div>
186
+ );
187
+ }