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.
- package/bin/create-huenei-frontend.js +2 -0
- package/dist/index.js +99 -0
- package/dist/templates/clean/.cursor/skills/architecture/SKILL.md +26 -0
- package/dist/templates/clean/.cursor/skills/components-shadcn/SKILL.md +23 -0
- package/dist/templates/clean/.cursor/skills/daisyui/SKILL.md +98 -0
- package/dist/templates/clean/.cursor/skills/routing/SKILL.md +32 -0
- package/dist/templates/clean/.cursor/skills/testing/SKILL.md +55 -0
- package/dist/templates/clean/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
- package/dist/templates/clean/.cursor/skills/ui-and-styling/SKILL.md +32 -0
- package/dist/templates/clean/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
- package/dist/templates/clean/.prettierrc +6 -0
- package/dist/templates/clean/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
- package/dist/templates/clean/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
- package/dist/templates/clean/.vscode/extensions.json +7 -0
- package/dist/templates/clean/README.md +75 -0
- package/dist/templates/clean/components.json +22 -0
- package/dist/templates/clean/eslint.config.js +31 -0
- package/dist/templates/clean/index.html +13 -0
- package/dist/templates/clean/package.json +62 -0
- package/dist/templates/clean/pnpm-lock.yaml +4487 -0
- package/dist/templates/clean/pnpm-workspace.yaml +2 -0
- package/dist/templates/clean/src/assets/react.svg +1 -0
- package/dist/templates/clean/src/components/ui/badge.tsx +37 -0
- package/dist/templates/clean/src/components/ui/breadcrumb.tsx +106 -0
- package/dist/templates/clean/src/components/ui/button.tsx +58 -0
- package/dist/templates/clean/src/components/ui/card.tsx +72 -0
- package/dist/templates/clean/src/components/ui/form.tsx +165 -0
- package/dist/templates/clean/src/components/ui/input.tsx +22 -0
- package/dist/templates/clean/src/components/ui/label.tsx +24 -0
- package/dist/templates/clean/src/components/ui/password-input.tsx +41 -0
- package/dist/templates/clean/src/components/ui/separator.tsx +28 -0
- package/dist/templates/clean/src/components/ui/tabs.tsx +62 -0
- package/dist/templates/clean/src/components/ui/textarea.tsx +21 -0
- package/dist/templates/clean/src/index.css +104 -0
- package/dist/templates/clean/src/lib/queryClient.ts +11 -0
- package/dist/templates/clean/src/lib/utils.ts +6 -0
- package/dist/templates/clean/src/main.tsx +33 -0
- package/dist/templates/clean/src/routeTree.gen.ts +77 -0
- package/dist/templates/clean/src/router.tsx +13 -0
- package/dist/templates/clean/src/routes/__root.tsx +82 -0
- package/dist/templates/clean/src/routes/index.tsx +187 -0
- package/dist/templates/clean/src/routes/otra-ruta.tsx +319 -0
- package/dist/templates/clean/src/test/setup.ts +1 -0
- package/dist/templates/clean/tsconfig.app.json +34 -0
- package/dist/templates/clean/tsconfig.json +10 -0
- package/dist/templates/clean/tsconfig.node.json +26 -0
- package/dist/templates/clean/vite.config.ts +22 -0
- package/dist/templates/clean/vitest.config.ts +9 -0
- package/dist/templates/help/.cursor/skills/architecture/SKILL.md +26 -0
- package/dist/templates/help/.cursor/skills/components-shadcn/SKILL.md +23 -0
- package/dist/templates/help/.cursor/skills/daisyui/SKILL.md +98 -0
- package/dist/templates/help/.cursor/skills/routing/SKILL.md +32 -0
- package/dist/templates/help/.cursor/skills/testing/SKILL.md +55 -0
- package/dist/templates/help/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
- package/dist/templates/help/.cursor/skills/ui-and-styling/SKILL.md +32 -0
- package/dist/templates/help/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
- package/dist/templates/help/.prettierrc +6 -0
- package/dist/templates/help/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
- package/dist/templates/help/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
- package/dist/templates/help/.vscode/extensions.json +7 -0
- package/dist/templates/help/README.md +75 -0
- package/dist/templates/help/components.json +22 -0
- package/dist/templates/help/eslint.config.js +31 -0
- package/dist/templates/help/index.html +13 -0
- package/dist/templates/help/package.json +62 -0
- package/dist/templates/help/pnpm-lock.yaml +4487 -0
- package/dist/templates/help/pnpm-workspace.yaml +2 -0
- package/dist/templates/help/src/assets/react.svg +1 -0
- package/dist/templates/help/src/components/documentacion/entorno.tsx +99 -0
- package/dist/templates/help/src/components/documentacion/estructura.tsx +100 -0
- package/dist/templates/help/src/components/documentacion/figma-mcp.tsx +200 -0
- package/dist/templates/help/src/components/documentacion/inicio.tsx +69 -0
- package/dist/templates/help/src/components/documentacion/instalacion.tsx +72 -0
- package/dist/templates/help/src/components/documentacion/personalizacion.tsx +163 -0
- package/dist/templates/help/src/components/documentacion/rutas.tsx +138 -0
- package/dist/templates/help/src/components/documentacion/stack.tsx +401 -0
- package/dist/templates/help/src/components/ui/badge.tsx +37 -0
- package/dist/templates/help/src/components/ui/breadcrumb.tsx +106 -0
- package/dist/templates/help/src/components/ui/button.tsx +58 -0
- package/dist/templates/help/src/components/ui/card.tsx +72 -0
- package/dist/templates/help/src/components/ui/form.tsx +165 -0
- package/dist/templates/help/src/components/ui/input.tsx +22 -0
- package/dist/templates/help/src/components/ui/label.tsx +24 -0
- package/dist/templates/help/src/components/ui/password-input.tsx +41 -0
- package/dist/templates/help/src/components/ui/separator.tsx +28 -0
- package/dist/templates/help/src/components/ui/tabs.tsx +62 -0
- package/dist/templates/help/src/components/ui/textarea.tsx +21 -0
- package/dist/templates/help/src/data/proyectos.json +56 -0
- package/dist/templates/help/src/index.css +104 -0
- package/dist/templates/help/src/lib/queryClient.ts +11 -0
- package/dist/templates/help/src/lib/utils.ts +6 -0
- package/dist/templates/help/src/main.tsx +33 -0
- package/dist/templates/help/src/routeTree.gen.ts +241 -0
- package/dist/templates/help/src/router.tsx +13 -0
- package/dist/templates/help/src/routes/__root.tsx +92 -0
- package/dist/templates/help/src/routes/auth/iniciar-sesion.tsx +139 -0
- package/dist/templates/help/src/routes/auth/registro.tsx +205 -0
- package/dist/templates/help/src/routes/contacto.tsx +60 -0
- package/dist/templates/help/src/routes/dashbord.tsx +9 -0
- package/dist/templates/help/src/routes/documentacion.tsx +80 -0
- package/dist/templates/help/src/routes/index.test.tsx +42 -0
- package/dist/templates/help/src/routes/index.tsx +211 -0
- package/dist/templates/help/src/routes/perfil.tsx +9 -0
- package/dist/templates/help/src/routes/proyectos.$proyectoId.tsx +156 -0
- package/dist/templates/help/src/routes/proyectos.tsx +93 -0
- package/dist/templates/help/src/test/setup.ts +1 -0
- package/dist/templates/help/tsconfig.app.json +34 -0
- package/dist/templates/help/tsconfig.json +10 -0
- package/dist/templates/help/tsconfig.node.json +26 -0
- package/dist/templates/help/vite.config.ts +22 -0
- package/dist/templates/help/vitest.config.ts +9 -0
- package/dist/test-cli.js +48 -0
- package/package.json +25 -0
- package/templates/clean/.cursor/skills/architecture/SKILL.md +26 -0
- package/templates/clean/.cursor/skills/components-shadcn/SKILL.md +23 -0
- package/templates/clean/.cursor/skills/daisyui/SKILL.md +98 -0
- package/templates/clean/.cursor/skills/routing/SKILL.md +32 -0
- package/templates/clean/.cursor/skills/testing/SKILL.md +55 -0
- package/templates/clean/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
- package/templates/clean/.cursor/skills/ui-and-styling/SKILL.md +32 -0
- package/templates/clean/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
- package/templates/clean/.prettierrc +6 -0
- package/templates/clean/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
- package/templates/clean/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
- package/templates/clean/.vscode/extensions.json +7 -0
- package/templates/clean/README.md +75 -0
- package/templates/clean/components.json +22 -0
- package/templates/clean/eslint.config.js +31 -0
- package/templates/clean/index.html +13 -0
- package/templates/clean/package.json +62 -0
- package/templates/clean/pnpm-lock.yaml +4487 -0
- package/templates/clean/pnpm-workspace.yaml +2 -0
- package/templates/clean/src/assets/react.svg +1 -0
- package/templates/clean/src/components/ui/badge.tsx +37 -0
- package/templates/clean/src/components/ui/breadcrumb.tsx +106 -0
- package/templates/clean/src/components/ui/button.tsx +58 -0
- package/templates/clean/src/components/ui/card.tsx +72 -0
- package/templates/clean/src/components/ui/form.tsx +165 -0
- package/templates/clean/src/components/ui/input.tsx +22 -0
- package/templates/clean/src/components/ui/label.tsx +24 -0
- package/templates/clean/src/components/ui/password-input.tsx +41 -0
- package/templates/clean/src/components/ui/separator.tsx +28 -0
- package/templates/clean/src/components/ui/tabs.tsx +62 -0
- package/templates/clean/src/components/ui/textarea.tsx +21 -0
- package/templates/clean/src/index.css +104 -0
- package/templates/clean/src/lib/queryClient.ts +11 -0
- package/templates/clean/src/lib/utils.ts +6 -0
- package/templates/clean/src/main.tsx +33 -0
- package/templates/clean/src/routeTree.gen.ts +77 -0
- package/templates/clean/src/router.tsx +13 -0
- package/templates/clean/src/routes/__root.tsx +82 -0
- package/templates/clean/src/routes/index.tsx +187 -0
- package/templates/clean/src/routes/otra-ruta.tsx +319 -0
- package/templates/clean/src/test/setup.ts +1 -0
- package/templates/clean/tsconfig.app.json +34 -0
- package/templates/clean/tsconfig.json +10 -0
- package/templates/clean/tsconfig.node.json +26 -0
- package/templates/clean/vite.config.ts +22 -0
- package/templates/clean/vitest.config.ts +9 -0
- package/templates/help/.cursor/skills/architecture/SKILL.md +26 -0
- package/templates/help/.cursor/skills/components-shadcn/SKILL.md +23 -0
- package/templates/help/.cursor/skills/daisyui/SKILL.md +98 -0
- package/templates/help/.cursor/skills/routing/SKILL.md +32 -0
- package/templates/help/.cursor/skills/testing/SKILL.md +55 -0
- package/templates/help/.cursor/skills/tooling-and-scripts/SKILL.md +24 -0
- package/templates/help/.cursor/skills/ui-and-styling/SKILL.md +32 -0
- package/templates/help/.cursor/skills/vibe-and-ia/SKILL.md +23 -0
- package/templates/help/.prettierrc +6 -0
- package/templates/help/.tanstack/tmp/c28007bb-2319511cf318e28129c8d8eb723db5fd +9 -0
- package/templates/help/.tanstack/tmp/c28007bb-bcef89e9e4593777e1c15ec4b4f32eea +9 -0
- package/templates/help/.vscode/extensions.json +7 -0
- package/templates/help/README.md +75 -0
- package/templates/help/components.json +22 -0
- package/templates/help/eslint.config.js +31 -0
- package/templates/help/index.html +13 -0
- package/templates/help/package.json +62 -0
- package/templates/help/pnpm-lock.yaml +4487 -0
- package/templates/help/pnpm-workspace.yaml +2 -0
- package/templates/help/src/assets/react.svg +1 -0
- package/templates/help/src/components/documentacion/entorno.tsx +99 -0
- package/templates/help/src/components/documentacion/estructura.tsx +100 -0
- package/templates/help/src/components/documentacion/figma-mcp.tsx +200 -0
- package/templates/help/src/components/documentacion/inicio.tsx +69 -0
- package/templates/help/src/components/documentacion/instalacion.tsx +72 -0
- package/templates/help/src/components/documentacion/personalizacion.tsx +163 -0
- package/templates/help/src/components/documentacion/rutas.tsx +138 -0
- package/templates/help/src/components/documentacion/stack.tsx +401 -0
- package/templates/help/src/components/ui/badge.tsx +37 -0
- package/templates/help/src/components/ui/breadcrumb.tsx +106 -0
- package/templates/help/src/components/ui/button.tsx +58 -0
- package/templates/help/src/components/ui/card.tsx +72 -0
- package/templates/help/src/components/ui/form.tsx +165 -0
- package/templates/help/src/components/ui/input.tsx +22 -0
- package/templates/help/src/components/ui/label.tsx +24 -0
- package/templates/help/src/components/ui/password-input.tsx +41 -0
- package/templates/help/src/components/ui/separator.tsx +28 -0
- package/templates/help/src/components/ui/tabs.tsx +62 -0
- package/templates/help/src/components/ui/textarea.tsx +21 -0
- package/templates/help/src/data/proyectos.json +56 -0
- package/templates/help/src/index.css +104 -0
- package/templates/help/src/lib/queryClient.ts +11 -0
- package/templates/help/src/lib/utils.ts +6 -0
- package/templates/help/src/main.tsx +33 -0
- package/templates/help/src/routeTree.gen.ts +241 -0
- package/templates/help/src/router.tsx +13 -0
- package/templates/help/src/routes/__root.tsx +92 -0
- package/templates/help/src/routes/auth/iniciar-sesion.tsx +139 -0
- package/templates/help/src/routes/auth/registro.tsx +205 -0
- package/templates/help/src/routes/contacto.tsx +60 -0
- package/templates/help/src/routes/dashbord.tsx +9 -0
- package/templates/help/src/routes/documentacion.tsx +80 -0
- package/templates/help/src/routes/index.test.tsx +42 -0
- package/templates/help/src/routes/index.tsx +211 -0
- package/templates/help/src/routes/perfil.tsx +9 -0
- package/templates/help/src/routes/proyectos.$proyectoId.tsx +156 -0
- package/templates/help/src/routes/proyectos.tsx +93 -0
- package/templates/help/src/test/setup.ts +1 -0
- package/templates/help/tsconfig.app.json +34 -0
- package/templates/help/tsconfig.json +10 -0
- package/templates/help/tsconfig.node.json +26 -0
- package/templates/help/vite.config.ts +22 -0
- 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,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>© {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
|
+
}
|