configuraciones de eslint y prettier

This commit is contained in:
2025-12-17 23:08:27 -06:00
parent c3abc377bf
commit e40ea49031
5 changed files with 6196 additions and 1043 deletions

14
.vscode/settings.json vendored
View File

@@ -7,5 +7,19 @@
}, },
"files.readonlyInclude": { "files.readonlyInclude": {
"**/routeTree.gen.ts": true "**/routeTree.gen.ts": true
},
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"files.associations": {
"*.css": "tailwindcss"
} }
} }

6959
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,40 @@
// @ts-check // @ts-check
import { tanstackConfig } from '@tanstack/eslint-config' import { tanstackConfig } from '@tanstack/eslint-config'
import eslintConfigPrettier from 'eslint-config-prettier'
import importPlugin from 'eslint-plugin-import'
export default [...tanstackConfig] export default [
...tanstackConfig,
// Local overrides to avoid rule overlap and Prettier conflicts
{
plugins: {
import: importPlugin, // <--- Registramos el plugin
},
rules: {
// Let import/order handle ordering; disable native sort-imports to prevent conflicts
'sort-imports': 'off',
// Ensure consistent grouping and alphabetical ordering
'import/order': [
'error',
{
groups: [
'builtin',
'external',
'internal',
'parent',
'sibling',
'index',
'object',
'type',
],
// No blank lines inside or between import groups to avoid multi-save fixes
'newlines-between': 'never',
alphabetize: { order: 'asc', caseInsensitive: true },
},
],
},
},
// Turn off any ESLint rules that might conflict with Prettier
eslintConfigPrettier,
]

View File

@@ -19,74 +19,121 @@ code {
} }
:root { :root {
--background: oklch(1 0 0); --background: oklch(0.994 0 0);
--foreground: oklch(0.141 0.005 285.823); --foreground: oklch(0.275 0.1348 262.7129);
--card: oklch(1 0 0); --card: oklch(0.994 0 0);
--card-foreground: oklch(0.141 0.005 285.823); --card-foreground: oklch(0.275 0.1348 262.7129);
--popover: oklch(1 0 0); --popover: oklch(0.9911 0 0);
--popover-foreground: oklch(0.141 0.005 285.823); --popover-foreground: oklch(0.275 0.1348 262.7129);
--primary: oklch(0.21 0.006 285.885); --primary: oklch(0.5332 0.2596 262.6358);
--primary-foreground: oklch(0.985 0 0); --primary-foreground: oklch(1 0 0);
--secondary: oklch(0.967 0.001 286.375); --secondary: oklch(0.954 0.0063 255.4755);
--secondary-foreground: oklch(0.21 0.006 285.885); --secondary-foreground: oklch(0.1344 0 0);
--muted: oklch(0.967 0.001 286.375); --muted: oklch(0.9702 0 0);
--muted-foreground: oklch(0.552 0.016 285.938); --muted-foreground: oklch(0.4386 0 0);
--accent: oklch(0.967 0.001 286.375); --accent: oklch(0.9108 0.046 18.0291);
--accent-foreground: oklch(0.21 0.006 285.885); --accent-foreground: oklch(0.5788 0.2316 259.638);
--destructive: oklch(0.577 0.245 27.325); --destructive: oklch(0.629 0.1902 23.0704);
--destructive-foreground: oklch(0.577 0.245 27.325); --destructive-foreground: oklch(1 0 0);
--border: oklch(0.92 0.004 286.32); --border: oklch(0.93 0.0094 286.2156);
--input: oklch(0.92 0.004 286.32); --input: oklch(0.9401 0 0);
--ring: oklch(0.871 0.006 286.286); --ring: oklch(0 0 0);
--chart-1: oklch(0.646 0.222 41.116); --chart-1: oklch(0.8071 0.1021 247.9427);
--chart-2: oklch(0.6 0.118 184.704); --chart-2: oklch(0.657 0.2293 16.8059);
--chart-3: oklch(0.398 0.07 227.392); --chart-3: oklch(0.8718 0.1716 90.9505);
--chart-4: oklch(0.828 0.189 84.429); --chart-4: oklch(0.5828 0.1809 259.7276);
--chart-5: oklch(0.769 0.188 70.08); --chart-5: oklch(0.7043 0.0854 189.5354);
--radius: 0.625rem; --sidebar: oklch(0.9777 0.0051 247.8763);
--sidebar: oklch(0.985 0 0); --sidebar-foreground: oklch(0 0 0);
--sidebar-foreground: oklch(0.141 0.005 285.823); --sidebar-primary: oklch(0 0 0);
--sidebar-primary: oklch(0.21 0.006 285.885); --sidebar-primary-foreground: oklch(1 0 0);
--sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.9401 0 0);
--sidebar-accent: oklch(0.967 0.001 286.375); --sidebar-accent-foreground: oklch(0.6304 0.2472 28.2698);
--sidebar-accent-foreground: oklch(0.21 0.006 285.885); --sidebar-border: oklch(0.9401 0 0);
--sidebar-border: oklch(0.92 0.004 286.32); --sidebar-ring: oklch(0 0 0);
--sidebar-ring: oklch(0.871 0.006 286.286); --font-sans: Plus Jakarta Sans, sans-serif;
--font-serif: Lora, serif;
--font-mono: IBM Plex Mono, monospace;
--radius: 1.4rem;
--shadow-x: 0px;
--shadow-y: 2px;
--shadow-blur: 3px;
--shadow-spread: 0px;
--shadow-opacity: 0.16;
--shadow-color: hsl(0 0% 0%);
--shadow-2xs: 0px 2px 3px 0px hsl(0 0% 0% / 0.08);
--shadow-xs: 0px 2px 3px 0px hsl(0 0% 0% / 0.08);
--shadow-sm:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 1px 2px -1px hsl(0 0% 0% / 0.16);
--shadow:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 1px 2px -1px hsl(0 0% 0% / 0.16);
--shadow-md:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 2px 4px -1px hsl(0 0% 0% / 0.16);
--shadow-lg:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 4px 6px -1px hsl(0 0% 0% / 0.16);
--shadow-xl:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 8px 10px -1px hsl(0 0% 0% / 0.16);
--shadow-2xl: 0px 2px 3px 0px hsl(0 0% 0% / 0.4);
--tracking-normal: -0.025em;
--spacing: 0.27rem;
} }
.dark { .dark {
--background: oklch(0.141 0.005 285.823); --background: oklch(0 0 0);
--foreground: oklch(0.985 0 0); --foreground: oklch(0.9551 0 0);
--card: oklch(0.141 0.005 285.823); --card: oklch(0.1564 0.0688 261.2771);
--card-foreground: oklch(0.985 0 0); --card-foreground: oklch(0.9551 0 0);
--popover: oklch(0.141 0.005 285.823); --popover: oklch(0.2568 0.0076 274.6528);
--popover-foreground: oklch(0.985 0 0); --popover-foreground: oklch(0.9551 0 0);
--primary: oklch(0.985 0 0); --primary: oklch(0.6648 0.1771 264.5722);
--primary-foreground: oklch(0.21 0.006 285.885); --primary-foreground: oklch(1 0 0);
--secondary: oklch(0.274 0.006 286.033); --secondary: oklch(0.294 0.013 272.9312);
--secondary-foreground: oklch(0.985 0 0); --secondary-foreground: oklch(0.9551 0 0);
--muted: oklch(0.274 0.006 286.033); --muted: oklch(0.294 0.013 272.9312);
--muted-foreground: oklch(0.705 0.015 286.067); --muted-foreground: oklch(0.7155 0 0);
--accent: oklch(0.274 0.006 286.033); --accent: oklch(0.342 0.0826 22.4427);
--accent-foreground: oklch(0.985 0 0); --accent-foreground: oklch(0.8871 0.0542 256.13);
--destructive: oklch(0.396 0.141 25.723); --destructive: oklch(0.7106 0.1661 22.2162);
--destructive-foreground: oklch(0.637 0.237 25.331); --destructive-foreground: oklch(1 0 0);
--border: oklch(0.274 0.006 286.033); --border: oklch(0.3289 0.0092 268.3843);
--input: oklch(0.274 0.006 286.033); --input: oklch(0.3289 0.0092 268.3843);
--ring: oklch(0.442 0.017 285.786); --ring: oklch(0.5186 0.2689 263.269);
--chart-1: oklch(0.488 0.243 264.376); --chart-1: oklch(0.6686 0.1794 251.7436);
--chart-2: oklch(0.696 0.17 162.48); --chart-2: oklch(0.6342 0.2516 22.4415);
--chart-3: oklch(0.769 0.188 70.08); --chart-3: oklch(0.8718 0.1716 90.9505);
--chart-4: oklch(0.627 0.265 303.9); --chart-4: oklch(0.4503 0.229 263.0881);
--chart-5: oklch(0.645 0.246 16.439); --chart-5: oklch(0.8322 0.146 185.9404);
--sidebar: oklch(0.21 0.006 285.885); --sidebar: oklch(0.1564 0.0688 261.2771);
--sidebar-foreground: oklch(0.985 0 0); --sidebar-foreground: oklch(0.9551 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376); --sidebar-primary: oklch(0.6048 0.2166 257.2136);
--sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-primary-foreground: oklch(1 0 0);
--sidebar-accent: oklch(0.274 0.006 286.033); --sidebar-accent: oklch(0.2503 0.0763 24.5173);
--sidebar-accent-foreground: oklch(0.985 0 0); --sidebar-accent-foreground: oklch(0.6786 0.2095 24.6583);
--sidebar-border: oklch(0.274 0.006 286.033); --sidebar-border: oklch(0.3289 0.0092 268.3843);
--sidebar-ring: oklch(0.442 0.017 285.786); --sidebar-ring: oklch(0.6048 0.2166 257.2136);
--font-sans: Plus Jakarta Sans, sans-serif;
--font-serif: Lora, serif;
--font-mono: IBM Plex Mono, monospace;
--radius: 1.4rem;
--shadow-x: 0px;
--shadow-y: 2px;
--shadow-blur: 3px;
--shadow-spread: 0px;
--shadow-opacity: 0.16;
--shadow-color: hsl(0 0% 0%);
--shadow-2xs: 0px 2px 3px 0px hsl(0 0% 0% / 0.08);
--shadow-xs: 0px 2px 3px 0px hsl(0 0% 0% / 0.08);
--shadow-sm:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 1px 2px -1px hsl(0 0% 0% / 0.16);
--shadow:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 1px 2px -1px hsl(0 0% 0% / 0.16);
--shadow-md:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 2px 4px -1px hsl(0 0% 0% / 0.16);
--shadow-lg:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 4px 6px -1px hsl(0 0% 0% / 0.16);
--shadow-xl:
0px 2px 3px 0px hsl(0 0% 0% / 0.16), 0px 8px 10px -1px hsl(0 0% 0% / 0.16);
--shadow-2xl: 0px 2px 3px 0px hsl(0 0% 0% / 0.4);
} }
@theme inline { @theme inline {
@@ -114,10 +161,6 @@ code {
--color-chart-3: var(--chart-3); --color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4); --color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5); --color-chart-5: var(--chart-5);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--color-sidebar: var(--sidebar); --color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary: var(--sidebar-primary);
@@ -126,6 +169,35 @@ code {
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border); --color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring); --color-sidebar-ring: var(--sidebar-ring);
--font-sans: var(--font-sans);
--font-mono: var(--font-mono);
--font-serif: var(--font-serif);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--shadow-2xs: var(--shadow-2xs);
--shadow-xs: var(--shadow-xs);
--shadow-sm: var(--shadow-sm);
--shadow: var(--shadow);
--shadow-md: var(--shadow-md);
--shadow-lg: var(--shadow-lg);
--shadow-xl: var(--shadow-xl);
--shadow-2xl: var(--shadow-2xl);
--tracking-tighter: calc(var(--tracking-normal) - 0.05em);
--tracking-tight: calc(var(--tracking-normal) - 0.025em);
--tracking-normal: var(--tracking-normal);
--tracking-wide: calc(var(--tracking-normal) + 0.025em);
--tracking-wider: calc(var(--tracking-normal) + 0.05em);
--tracking-widest: calc(var(--tracking-normal) + 0.1em);
}
body {
letter-spacing: var(--tracking-normal);
} }
@layer base { @layer base {

View File

@@ -1,17 +1,16 @@
import { defineConfig } from 'vite' import { fileURLToPath, URL } from "node:url";
import { devtools } from '@tanstack/devtools-vite' import tailwindcss from "@tailwindcss/vite";
import viteReact from '@vitejs/plugin-react' import { devtools } from "@tanstack/devtools-vite";
import tailwindcss from '@tailwindcss/vite' import { tanstackRouter } from "@tanstack/router-plugin/vite";
import viteReact from "@vitejs/plugin-react";
import { tanstackRouter } from '@tanstack/router-plugin/vite' import { defineConfig } from "vite";
import { fileURLToPath, URL } from 'node:url'
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [
devtools(), devtools(),
tanstackRouter({ tanstackRouter({
target: 'react', target: "react",
autoCodeSplitting: true, autoCodeSplitting: true,
}), }),
viteReact(), viteReact(),
@@ -19,7 +18,7 @@ export default defineConfig({
], ],
resolve: { resolve: {
alias: { alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)), "@": fileURLToPath(new URL("./src", import.meta.url)),
}, },
}, },
}) });