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 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
|
2
|
+
import { Separator } from "@/components/ui/separator";
|
|
3
|
+
import { Monitor, Palette, Database } from "lucide-react";
|
|
4
|
+
|
|
5
|
+
export function EntornoTab() {
|
|
6
|
+
return (
|
|
7
|
+
<Card>
|
|
8
|
+
<CardHeader>
|
|
9
|
+
<div className="flex items-center gap-2">
|
|
10
|
+
<Monitor className="h-5 w-5" />
|
|
11
|
+
<CardTitle>Entorno Ideal de Desarrollo</CardTitle>
|
|
12
|
+
</div>
|
|
13
|
+
<CardDescription>
|
|
14
|
+
Configuración recomendada para maximizar la productividad y mantener la consistencia en el
|
|
15
|
+
desarrollo. Si bien es posible usar otro IDE, se recomienda usar Cursor ya que cuenta con
|
|
16
|
+
skills propios y reglas que ayudan a mantener las eficiencia y la calidad del código.
|
|
17
|
+
</CardDescription>
|
|
18
|
+
</CardHeader>
|
|
19
|
+
<CardContent className="space-y-6">
|
|
20
|
+
<div className="p-4 bg-slate-50 dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700">
|
|
21
|
+
<h3 className="text-lg font-semibold mb-3">Índice</h3>
|
|
22
|
+
<ul className="space-y-2 text-sm">
|
|
23
|
+
<li>
|
|
24
|
+
<a href="#entorno-cursor" className="text-blue-600 hover:underline">
|
|
25
|
+
Cursor IDE
|
|
26
|
+
</a>
|
|
27
|
+
</li>
|
|
28
|
+
<li>
|
|
29
|
+
<a href="#entorno-figma" className="text-blue-600 hover:underline">
|
|
30
|
+
Figma
|
|
31
|
+
</a>
|
|
32
|
+
</li>
|
|
33
|
+
<li>
|
|
34
|
+
<a href="#entorno-mcps" className="text-blue-600 hover:underline">
|
|
35
|
+
MCPs (Model Context Protocol)
|
|
36
|
+
</a>
|
|
37
|
+
</li>
|
|
38
|
+
</ul>
|
|
39
|
+
</div>
|
|
40
|
+
<Separator />
|
|
41
|
+
<div id="entorno-cursor">
|
|
42
|
+
<h3 className="text-lg font-semibold mb-3 flex items-center gap-2">
|
|
43
|
+
<Monitor className="h-4 w-4" />
|
|
44
|
+
Cursor IDE
|
|
45
|
+
</h3>
|
|
46
|
+
<p className="text-slate-600 mb-3">
|
|
47
|
+
<strong>Cursor</strong> es el IDE recomendado para trabajar en este proyecto.
|
|
48
|
+
Proporciona:
|
|
49
|
+
</p>
|
|
50
|
+
<ul className="list-disc list-inside space-y-2 text-slate-600 ml-4">
|
|
51
|
+
<li>Integración nativa con IA para asistencia en código</li>
|
|
52
|
+
<li>Mejor experiencia con TypeScript y React</li>
|
|
53
|
+
<li>Soporte para MCPs (Model Context Protocol) sin extensiones</li>
|
|
54
|
+
<li>Autocompletado inteligente y refactoring avanzado</li>
|
|
55
|
+
<li>
|
|
56
|
+
Skills propios y reglas que ayudan a mantener la eficiencia y la calidad del código
|
|
57
|
+
</li>
|
|
58
|
+
</ul>
|
|
59
|
+
</div>
|
|
60
|
+
<Separator />
|
|
61
|
+
<div id="entorno-figma">
|
|
62
|
+
<h3 className="text-lg font-semibold mb-3 flex items-center gap-2">
|
|
63
|
+
<Palette className="h-4 w-4" />
|
|
64
|
+
Figma
|
|
65
|
+
</h3>
|
|
66
|
+
<p className="text-slate-600 mb-3">
|
|
67
|
+
Este template cuenta con reglas diseñadas para trabajar con Figma a partir de un diseño.
|
|
68
|
+
</p>
|
|
69
|
+
<ul className="list-disc list-inside space-y-2 text-slate-600 ml-4">
|
|
70
|
+
<li>Creación de Layout, spacing y jerarquía visual</li>
|
|
71
|
+
<li>Colores y tipografía</li>
|
|
72
|
+
<li>Componentes y estados</li>
|
|
73
|
+
<li>
|
|
74
|
+
Reglas que limitan la imaginación de la IA para no inventar UX, layout ni flujos que
|
|
75
|
+
no estén en Figma
|
|
76
|
+
</li>
|
|
77
|
+
</ul>
|
|
78
|
+
</div>
|
|
79
|
+
<Separator />
|
|
80
|
+
<div id="entorno-mcps">
|
|
81
|
+
<h3 className="text-lg font-semibold mb-3 flex items-center gap-2">
|
|
82
|
+
<Database className="h-4 w-4" />
|
|
83
|
+
MCPs (Model Context Protocol)
|
|
84
|
+
</h3>
|
|
85
|
+
<p className="text-slate-600 mb-3">
|
|
86
|
+
Los <strong>MCPs</strong> permiten que Cursor acceda a recursos externos como Figma,
|
|
87
|
+
proporcionando contexto adicional durante el desarrollo:
|
|
88
|
+
</p>
|
|
89
|
+
<ul className="list-disc list-inside space-y-2 text-slate-600 ml-4">
|
|
90
|
+
<li>Integración con Figma para acceder a diseños directamente</li>
|
|
91
|
+
<li>Contexto visual durante la implementación</li>
|
|
92
|
+
<li>Mejor alineación entre diseño y código</li>
|
|
93
|
+
<li>Reducción drástica en tiempos de desarrollo</li>
|
|
94
|
+
</ul>
|
|
95
|
+
</div>
|
|
96
|
+
</CardContent>
|
|
97
|
+
</Card>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
|
2
|
+
import { Badge } from "@/components/ui/badge";
|
|
3
|
+
import { Separator } from "@/components/ui/separator";
|
|
4
|
+
import { FileText } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
export function EstructuraTab() {
|
|
7
|
+
return (
|
|
8
|
+
<Card>
|
|
9
|
+
<CardHeader>
|
|
10
|
+
<div className="flex items-center gap-2">
|
|
11
|
+
<FileText className="h-5 w-5" />
|
|
12
|
+
<CardTitle>Estructura del Proyecto</CardTitle>
|
|
13
|
+
</div>
|
|
14
|
+
<CardDescription>Organización de archivos y carpetas del template.</CardDescription>
|
|
15
|
+
</CardHeader>
|
|
16
|
+
<CardContent className="space-y-4">
|
|
17
|
+
<div className="p-4 bg-slate-50 dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700">
|
|
18
|
+
<h3 className="text-lg font-semibold mb-3">Índice</h3>
|
|
19
|
+
<ul className="space-y-2 text-sm">
|
|
20
|
+
<li>
|
|
21
|
+
<a href="#estructura-directorios" className="text-blue-600 hover:underline">
|
|
22
|
+
Estructura de directorios
|
|
23
|
+
</a>
|
|
24
|
+
</li>
|
|
25
|
+
<li>
|
|
26
|
+
<a href="#estructura-archivos" className="text-blue-600 hover:underline">
|
|
27
|
+
Archivos importantes
|
|
28
|
+
</a>
|
|
29
|
+
</li>
|
|
30
|
+
</ul>
|
|
31
|
+
</div>
|
|
32
|
+
<Separator />
|
|
33
|
+
<div id="estructura-directorios">
|
|
34
|
+
<h3 className="text-lg font-semibold mb-3">Estructura de directorios</h3>
|
|
35
|
+
<div className="bg-slate-100 rounded-lg p-4 font-mono text-sm space-y-1">
|
|
36
|
+
<div>src/</div>
|
|
37
|
+
<div className="ml-4">
|
|
38
|
+
routes/{" "}
|
|
39
|
+
<Badge variant="outline" className="ml-2">
|
|
40
|
+
Rutas de la aplicación
|
|
41
|
+
</Badge>
|
|
42
|
+
</div>
|
|
43
|
+
<div className="ml-4">
|
|
44
|
+
components/{" "}
|
|
45
|
+
<Badge variant="outline" className="ml-2">
|
|
46
|
+
Componentes reutilizables
|
|
47
|
+
</Badge>
|
|
48
|
+
</div>
|
|
49
|
+
<div className="ml-8">
|
|
50
|
+
ui/{" "}
|
|
51
|
+
<Badge variant="outline" className="ml-2">
|
|
52
|
+
Componentes shadcn/ui
|
|
53
|
+
</Badge>
|
|
54
|
+
</div>
|
|
55
|
+
<div className="ml-4">
|
|
56
|
+
lib/{" "}
|
|
57
|
+
<Badge variant="outline" className="ml-2">
|
|
58
|
+
Utilidades y helpers
|
|
59
|
+
</Badge>
|
|
60
|
+
</div>
|
|
61
|
+
<div className="ml-4">
|
|
62
|
+
data/{" "}
|
|
63
|
+
<Badge variant="outline" className="ml-2">
|
|
64
|
+
Datos estáticos
|
|
65
|
+
</Badge>
|
|
66
|
+
</div>
|
|
67
|
+
<div className="ml-4">
|
|
68
|
+
assets/{" "}
|
|
69
|
+
<Badge variant="outline" className="ml-2">
|
|
70
|
+
Recursos estáticos
|
|
71
|
+
</Badge>
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
<Separator />
|
|
76
|
+
<div id="estructura-archivos">
|
|
77
|
+
<h3 className="text-lg font-semibold mb-2">Archivos importantes</h3>
|
|
78
|
+
<ul className="list-disc list-inside space-y-2 text-slate-600">
|
|
79
|
+
<li>
|
|
80
|
+
<code className="bg-slate-100 px-1 rounded">vite.config.ts</code> - Configuración de
|
|
81
|
+
Vite
|
|
82
|
+
</li>
|
|
83
|
+
<li>
|
|
84
|
+
<code className="bg-slate-100 px-1 rounded">tsconfig.json</code> - Configuración de
|
|
85
|
+
TypeScript
|
|
86
|
+
</li>
|
|
87
|
+
<li>
|
|
88
|
+
<code className="bg-slate-100 px-1 rounded">components.json</code> - Configuración de
|
|
89
|
+
shadcn/ui
|
|
90
|
+
</li>
|
|
91
|
+
<li>
|
|
92
|
+
<code className="bg-slate-100 px-1 rounded">src/router.tsx</code> - Configuración del
|
|
93
|
+
router
|
|
94
|
+
</li>
|
|
95
|
+
</ul>
|
|
96
|
+
</div>
|
|
97
|
+
</CardContent>
|
|
98
|
+
</Card>
|
|
99
|
+
);
|
|
100
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
|
2
|
+
import { Separator } from "@/components/ui/separator";
|
|
3
|
+
import { Database, ExternalLink } from "lucide-react";
|
|
4
|
+
|
|
5
|
+
export function FigmaMcpTab() {
|
|
6
|
+
return (
|
|
7
|
+
<Card>
|
|
8
|
+
<CardHeader>
|
|
9
|
+
<div className="flex items-center gap-2">
|
|
10
|
+
<Database className="h-5 w-5" />
|
|
11
|
+
<CardTitle>Figma MCP - Model Context Protocol</CardTitle>
|
|
12
|
+
</div>
|
|
13
|
+
<CardDescription>
|
|
14
|
+
Integración de Figma con Cursor mediante el protocolo MCP para proporcionar contexto
|
|
15
|
+
visual y de diseño directamente a los agentes de IA.
|
|
16
|
+
</CardDescription>
|
|
17
|
+
</CardHeader>
|
|
18
|
+
<CardContent className="space-y-6">
|
|
19
|
+
<div className="p-4 bg-slate-50 dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700">
|
|
20
|
+
<h3 className="text-lg font-semibold mb-3">Índice</h3>
|
|
21
|
+
<ul className="space-y-2 text-sm">
|
|
22
|
+
<li>
|
|
23
|
+
<a href="#figma-mcp-que-es" className="text-blue-600 hover:underline">
|
|
24
|
+
¿Qué es MCP?
|
|
25
|
+
</a>
|
|
26
|
+
</li>
|
|
27
|
+
<li>
|
|
28
|
+
<a href="#figma-mcp-beneficios" className="text-blue-600 hover:underline">
|
|
29
|
+
Beneficios de Contexto para Agentes
|
|
30
|
+
</a>
|
|
31
|
+
</li>
|
|
32
|
+
<li>
|
|
33
|
+
<a href="#figma-mcp-como-funciona" className="text-blue-600 hover:underline">
|
|
34
|
+
Cómo Funciona
|
|
35
|
+
</a>
|
|
36
|
+
</li>
|
|
37
|
+
<li>
|
|
38
|
+
<a href="#configurar-figma-mcp" className="text-blue-600 hover:underline">
|
|
39
|
+
Ejemplo de Uso
|
|
40
|
+
</a>
|
|
41
|
+
</li>
|
|
42
|
+
<li>
|
|
43
|
+
<a href="#figma-mcp-recomendacion" className="text-blue-600 hover:underline">
|
|
44
|
+
Recomendación
|
|
45
|
+
</a>
|
|
46
|
+
</li>
|
|
47
|
+
</ul>
|
|
48
|
+
</div>
|
|
49
|
+
<Separator />
|
|
50
|
+
<div id="figma-mcp-que-es">
|
|
51
|
+
<h3 className="text-lg font-semibold mb-3">¿Qué es MCP?</h3>
|
|
52
|
+
<p className="text-slate-600 mb-3">
|
|
53
|
+
El <strong>Model Context Protocol (MCP)</strong> es un protocolo estándar que permite
|
|
54
|
+
que los agentes de IA accedan a recursos externos y herramientas de forma estructurada y
|
|
55
|
+
segura. En este proyecto, MCP se utiliza para conectar Cursor con Figma.
|
|
56
|
+
</p>
|
|
57
|
+
<p className="text-slate-600">
|
|
58
|
+
A través de MCP, los agentes de IA pueden leer diseños, componentes, estilos,{" "}
|
|
59
|
+
<strong>metadatos de diseño</strong> y especificaciones directamente desde Figma,
|
|
60
|
+
proporcionando un contexto visual completo durante el desarrollo.
|
|
61
|
+
</p>
|
|
62
|
+
</div>
|
|
63
|
+
<Separator />
|
|
64
|
+
<div id="figma-mcp-beneficios">
|
|
65
|
+
<h3 className="text-lg font-semibold mb-3">Beneficios de Contexto para Agentes</h3>
|
|
66
|
+
<div className="space-y-4">
|
|
67
|
+
<div className="p-4 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-200 dark:border-blue-800">
|
|
68
|
+
<h4 className="font-semibold text-blue-900 dark:text-blue-100 mb-2">
|
|
69
|
+
1. Precisión en la Implementación
|
|
70
|
+
</h4>
|
|
71
|
+
<p className="text-sm text-blue-800 dark:text-blue-200">
|
|
72
|
+
Los agentes pueden ver exactamente cómo debe verse el diseño, incluyendo spacing,
|
|
73
|
+
colores, tipografía y layout. Esto elimina conjeturas y reduce iteraciones de
|
|
74
|
+
corrección.
|
|
75
|
+
</p>
|
|
76
|
+
</div>
|
|
77
|
+
<div className="p-4 bg-green-50 dark:bg-green-900/20 rounded-lg border border-green-200 dark:border-green-800">
|
|
78
|
+
<h4 className="font-semibold text-green-900 dark:text-green-100 mb-2">
|
|
79
|
+
2. Consistencia Automática
|
|
80
|
+
</h4>
|
|
81
|
+
<p className="text-sm text-green-800 dark:text-green-200">
|
|
82
|
+
Al tener acceso directo a los componentes y estilos de Figma, los agentes mantienen
|
|
83
|
+
automáticamente la consistencia visual en todo el proyecto, sin necesidad de
|
|
84
|
+
referencias manuales constantes.
|
|
85
|
+
</p>
|
|
86
|
+
</div>
|
|
87
|
+
<div className="p-4 bg-purple-50 dark:bg-purple-900/20 rounded-lg border border-purple-200 dark:border-purple-800">
|
|
88
|
+
<h4 className="font-semibold text-purple-900 dark:text-purple-100 mb-2">
|
|
89
|
+
3. Reducción de Errores de Diseño
|
|
90
|
+
</h4>
|
|
91
|
+
<p className="text-sm text-purple-800 dark:text-purple-200">
|
|
92
|
+
Los agentes pueden verificar automáticamente que el código implementado coincide con
|
|
93
|
+
el diseño, detectando discrepancias en medidas, colores o espaciados antes de que
|
|
94
|
+
lleguen a producción.
|
|
95
|
+
</p>
|
|
96
|
+
</div>
|
|
97
|
+
<div className="p-4 bg-amber-50 dark:bg-amber-900/20 rounded-lg border border-amber-200 dark:border-amber-800">
|
|
98
|
+
<h4 className="font-semibold text-amber-900 dark:text-amber-100 mb-2">
|
|
99
|
+
4. Velocidad de Desarrollo
|
|
100
|
+
</h4>
|
|
101
|
+
<p className="text-sm text-amber-800 dark:text-amber-200">
|
|
102
|
+
No es necesario describir manualmente cada elemento del diseño. Los agentes pueden
|
|
103
|
+
acceder directamente a la información necesaria, acelerando significativamente el
|
|
104
|
+
proceso de desarrollo.
|
|
105
|
+
</p>
|
|
106
|
+
</div>
|
|
107
|
+
<div className="p-4 bg-indigo-50 dark:bg-indigo-900/20 rounded-lg border border-indigo-200 dark:border-indigo-800">
|
|
108
|
+
<h4 className="font-semibold text-indigo-900 dark:text-indigo-100 mb-2">
|
|
109
|
+
5. Sincronización Automática
|
|
110
|
+
</h4>
|
|
111
|
+
<p className="text-sm text-indigo-800 dark:text-indigo-200">
|
|
112
|
+
Cuando los diseños se actualizan en Figma, los agentes pueden acceder a las
|
|
113
|
+
versiones más recientes, asegurando que el código siempre refleje el estado actual
|
|
114
|
+
del diseño.
|
|
115
|
+
</p>
|
|
116
|
+
</div>
|
|
117
|
+
<div className="p-4 bg-rose-50 dark:bg-rose-900/20 rounded-lg border border-rose-200 dark:border-rose-800">
|
|
118
|
+
<h4 className="font-semibold text-rose-900 dark:text-rose-100 mb-2">
|
|
119
|
+
6. Mejor Comunicación Diseño-Código
|
|
120
|
+
</h4>
|
|
121
|
+
<p className="text-sm text-rose-800 dark:text-rose-200">
|
|
122
|
+
Los agentes pueden entender mejor la intención del diseñador al tener acceso a
|
|
123
|
+
anotaciones, especificaciones técnicas y la jerarquía visual completa del diseño.
|
|
124
|
+
</p>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
<Separator />
|
|
129
|
+
<div id="figma-mcp-como-funciona">
|
|
130
|
+
<h3 className="text-lg font-semibold mb-3">Cómo Funciona</h3>
|
|
131
|
+
<ol className="list-decimal list-inside space-y-2 text-slate-600">
|
|
132
|
+
<li className="flex items-center gap-2">
|
|
133
|
+
Se configura un servidor MCP que se conecta a la API de Figma (requiere token de
|
|
134
|
+
acceso){" "}
|
|
135
|
+
<a
|
|
136
|
+
className="link-primary flex items-center gap-1"
|
|
137
|
+
href="https://www.youtube.com/watch?v=sJghnNqYao4"
|
|
138
|
+
target="_blank"
|
|
139
|
+
rel="noopener noreferrer"
|
|
140
|
+
>
|
|
141
|
+
<span>Tutorial</span> <ExternalLink size={12} />
|
|
142
|
+
</a>
|
|
143
|
+
</li>
|
|
144
|
+
<li>
|
|
145
|
+
Cursor se conecta al servidor MCP y puede acceder a recursos de Figma mediante
|
|
146
|
+
herramientas y recursos definidos
|
|
147
|
+
</li>
|
|
148
|
+
<li>
|
|
149
|
+
Los agentes de IA pueden usar estas herramientas para leer frames, componentes,
|
|
150
|
+
estilos y especificaciones
|
|
151
|
+
</li>
|
|
152
|
+
<li>
|
|
153
|
+
El contexto visual se integra automáticamente en las sugerencias y generación de
|
|
154
|
+
código
|
|
155
|
+
</li>
|
|
156
|
+
</ol>
|
|
157
|
+
</div>
|
|
158
|
+
<Separator />
|
|
159
|
+
<div id="configurar-figma-mcp">
|
|
160
|
+
<h3 className="text-lg font-semibold mb-3">Configuración de Figma MCP</h3>
|
|
161
|
+
<p className="text-slate-600 mb-3">
|
|
162
|
+
Para agregar el mcp que conecta Figma con Cursor, se debe agregar el siguiente código en
|
|
163
|
+
el archivo .cursorrules:
|
|
164
|
+
</p>
|
|
165
|
+
<pre className="bg-base-200 rounded-lg border border-base-300 p-4">
|
|
166
|
+
<code className="text-sm text-base-content/70">
|
|
167
|
+
{`
|
|
168
|
+
{
|
|
169
|
+
"mcpServers": {
|
|
170
|
+
"Framelink MCP for Figma": {
|
|
171
|
+
"command": "npx",
|
|
172
|
+
"args": [
|
|
173
|
+
"-y",
|
|
174
|
+
"figma-developer-mcp",
|
|
175
|
+
"--figma-api-key=<TU_API_KEY_DE_FIGMA>",
|
|
176
|
+
"--stdio"
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
`}
|
|
182
|
+
</code>
|
|
183
|
+
</pre>
|
|
184
|
+
</div>
|
|
185
|
+
<Separator />
|
|
186
|
+
<div
|
|
187
|
+
id="figma-mcp-recomendacion"
|
|
188
|
+
className="p-4 bg-slate-50 dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700"
|
|
189
|
+
>
|
|
190
|
+
<h3 className="text-lg font-semibold mb-2">Recomendación</h3>
|
|
191
|
+
<p className="text-sm text-slate-600 dark:text-slate-400">
|
|
192
|
+
Configurar MCP con Figma es altamente recomendado para proyectos que requieren alta
|
|
193
|
+
fidelidad entre diseño y código. Esta integración transforma a los agentes de IA en
|
|
194
|
+
desarrolladores que "ven" el diseño, no solo lo interpretan a partir de descripciones.
|
|
195
|
+
</p>
|
|
196
|
+
</div>
|
|
197
|
+
</CardContent>
|
|
198
|
+
</Card>
|
|
199
|
+
);
|
|
200
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
|
2
|
+
import { Badge } from "@/components/ui/badge";
|
|
3
|
+
import { Separator } from "@/components/ui/separator";
|
|
4
|
+
import { Book } from "lucide-react";
|
|
5
|
+
|
|
6
|
+
export function InicioTab() {
|
|
7
|
+
return (
|
|
8
|
+
<Card>
|
|
9
|
+
<CardHeader>
|
|
10
|
+
<div className="flex items-center gap-2">
|
|
11
|
+
<Book className="h-5 w-5" />
|
|
12
|
+
<CardTitle>Template Base Frontend - Huenei</CardTitle>
|
|
13
|
+
</div>
|
|
14
|
+
<CardDescription>
|
|
15
|
+
Plantilla estandarizada para todos los proyectos de frontend de Huenei. Este template
|
|
16
|
+
proporciona una base sólida y consistente para acelerar el desarrollo.
|
|
17
|
+
</CardDescription>
|
|
18
|
+
</CardHeader>
|
|
19
|
+
<CardContent className="space-y-4">
|
|
20
|
+
<div className="p-4 bg-slate-50 dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700">
|
|
21
|
+
<h3 className="text-lg font-semibold mb-3">Índice</h3>
|
|
22
|
+
<ul className="space-y-2 text-sm">
|
|
23
|
+
<li>
|
|
24
|
+
<a href="#inicio-stack" className="text-blue-600 hover:underline">
|
|
25
|
+
Stack Tecnológico
|
|
26
|
+
</a>
|
|
27
|
+
</li>
|
|
28
|
+
<li>
|
|
29
|
+
<a href="#inicio-requisitos" className="text-blue-600 hover:underline">
|
|
30
|
+
Requisitos previos
|
|
31
|
+
</a>
|
|
32
|
+
</li>
|
|
33
|
+
</ul>
|
|
34
|
+
</div>
|
|
35
|
+
<Separator />
|
|
36
|
+
<div id="inicio-stack">
|
|
37
|
+
<h3 className="text-lg font-semibold mb-2">Stack Tecnológico</h3>
|
|
38
|
+
<div className="flex flex-wrap gap-2 mb-3">
|
|
39
|
+
<Badge variant="default">Vite</Badge>
|
|
40
|
+
<Badge variant="default">React 19</Badge>
|
|
41
|
+
<Badge variant="default">TypeScript</Badge>
|
|
42
|
+
<Badge variant="default">Zod</Badge>
|
|
43
|
+
<Badge variant="default">Tailwind CSS v4</Badge>
|
|
44
|
+
<Badge variant="default">TanStack Query</Badge>
|
|
45
|
+
<Badge variant="default">TanStack Router</Badge>
|
|
46
|
+
<Badge variant="default">shadcn/ui</Badge>
|
|
47
|
+
<Badge variant="default">Vitest</Badge>
|
|
48
|
+
</div>
|
|
49
|
+
<p className="text-sm text-slate-600">
|
|
50
|
+
Stack tecnológico estandarizado para garantizar consistencia, mantenibilidad y
|
|
51
|
+
escalabilidad en todos los proyectos.
|
|
52
|
+
</p>
|
|
53
|
+
</div>
|
|
54
|
+
<Separator />
|
|
55
|
+
<div id="inicio-requisitos">
|
|
56
|
+
<h3 className="text-lg font-semibold mb-2">Requisitos previos</h3>
|
|
57
|
+
<ul className="list-disc list-inside space-y-2 text-slate-600">
|
|
58
|
+
<li>Node.js 18+</li>
|
|
59
|
+
<li>pnpm</li>
|
|
60
|
+
<li>Conocimientos básicos de React y TypeScript</li>
|
|
61
|
+
<li>
|
|
62
|
+
<strong>Cursor IDE</strong> (recomendado para mejor experiencia de desarrollo)
|
|
63
|
+
</li>
|
|
64
|
+
</ul>
|
|
65
|
+
</div>
|
|
66
|
+
</CardContent>
|
|
67
|
+
</Card>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card";
|
|
2
|
+
import { Separator } from "@/components/ui/separator";
|
|
3
|
+
import { Package } from "lucide-react";
|
|
4
|
+
|
|
5
|
+
export function InstalacionTab() {
|
|
6
|
+
return (
|
|
7
|
+
<Card>
|
|
8
|
+
<CardHeader>
|
|
9
|
+
<div className="flex items-center gap-2">
|
|
10
|
+
<Package className="h-5 w-5" />
|
|
11
|
+
<CardTitle>Instalación</CardTitle>
|
|
12
|
+
</div>
|
|
13
|
+
<CardDescription>Pasos para configurar el proyecto en tu entorno local.</CardDescription>
|
|
14
|
+
</CardHeader>
|
|
15
|
+
<CardContent className="space-y-6">
|
|
16
|
+
<div className="p-4 bg-slate-50 dark:bg-slate-800 rounded-lg border border-slate-200 dark:border-slate-700">
|
|
17
|
+
<h3 className="text-lg font-semibold mb-3">Índice</h3>
|
|
18
|
+
<ul className="space-y-2 text-sm">
|
|
19
|
+
<li>
|
|
20
|
+
<a href="#instalacion-dependencias" className="text-blue-600 hover:underline">
|
|
21
|
+
Clonar e instalar dependencias
|
|
22
|
+
</a>
|
|
23
|
+
</li>
|
|
24
|
+
<li>
|
|
25
|
+
<a href="#instalacion-desarrollo" className="text-blue-600 hover:underline">
|
|
26
|
+
Ejecutar en desarrollo
|
|
27
|
+
</a>
|
|
28
|
+
</li>
|
|
29
|
+
<li>
|
|
30
|
+
<a href="#instalacion-produccion" className="text-blue-600 hover:underline">
|
|
31
|
+
Build para producción
|
|
32
|
+
</a>
|
|
33
|
+
</li>
|
|
34
|
+
<li>
|
|
35
|
+
<a href="#instalacion-tests" className="text-blue-600 hover:underline">
|
|
36
|
+
Ejecutar tests
|
|
37
|
+
</a>
|
|
38
|
+
</li>
|
|
39
|
+
</ul>
|
|
40
|
+
</div>
|
|
41
|
+
<Separator />
|
|
42
|
+
<div id="instalacion-dependencias">
|
|
43
|
+
<h3 className="text-lg font-semibold mb-3">1. Clonar e instalar dependencias</h3>
|
|
44
|
+
<div className="bg-slate-100 rounded-lg p-4 font-mono text-sm">
|
|
45
|
+
<code>pnpm install</code>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<Separator />
|
|
49
|
+
<div id="instalacion-desarrollo">
|
|
50
|
+
<h3 className="text-lg font-semibold mb-3">2. Ejecutar en desarrollo</h3>
|
|
51
|
+
<div className="bg-slate-100 rounded-lg p-4 font-mono text-sm">
|
|
52
|
+
<code>pnpm dev</code>
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
<Separator />
|
|
56
|
+
<div id="instalacion-produccion">
|
|
57
|
+
<h3 className="text-lg font-semibold mb-3">3. Build para producción</h3>
|
|
58
|
+
<div className="bg-slate-100 rounded-lg p-4 font-mono text-sm">
|
|
59
|
+
<code>pnpm build</code>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
<Separator />
|
|
63
|
+
<div id="instalacion-tests">
|
|
64
|
+
<h3 className="text-lg font-semibold mb-3">4. Ejecutar tests</h3>
|
|
65
|
+
<div className="bg-slate-100 rounded-lg p-4 font-mono text-sm">
|
|
66
|
+
<code>pnpm test</code>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</CardContent>
|
|
70
|
+
</Card>
|
|
71
|
+
);
|
|
72
|
+
}
|