From 8e3360554b4fd03b23eff031ed016f506f65cb50 Mon Sep 17 00:00:00 2001 From: apocalix Date: Thu, 18 Sep 2025 22:40:52 -0600 Subject: [PATCH 1/3] chore: update package.json to include jsdom and related dependencies, enhance README and issue templates with Spanish translations --- .github/ISSUE_TEMPLATE/bug_report.yml | 32 +++--- .github/ISSUE_TEMPLATE/config.yml | 4 +- .github/ISSUE_TEMPLATE/feature_request.yml | 20 ++-- README.es.md | 3 +- README.md | 3 +- apps/web/package.json | 5 +- apps/web/src/app/layout.tsx | 44 ++++---- apps/web/src/components/footer.tsx | 119 +++++++++++++++++++++ bun.lockb | Bin 251016 -> 268424 bytes package.json | 1 + 10 files changed, 178 insertions(+), 53 deletions(-) create mode 100644 apps/web/src/components/footer.tsx diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 0ee354b..8786219 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,43 +1,43 @@ -name: "Bug report" -description: "Report a reproducible problem" +name: "Reporte de bug" +description: "Reporta un problema reproducible" labels: ["bug"] body: - type: input id: summary attributes: - label: Summary - description: Short description of the bug. - placeholder: "Incorrect grouping on decimal fraction in binary→decimal" + label: Resumen + description: Explica brevemente el problema. + placeholder: "Agrupación incorrecta en fracción decimal al convertir binario → decimal" validations: { required: true } - type: textarea id: steps attributes: - label: Steps to reproduce - description: Provide minimal steps. + label: Pasos para reproducir + description: Detalla los pasos mínimos para provocar el bug. placeholder: | - 1) Go to /conversiones - 2) Input: 1010001011001.00010010 (binary) → decimal - 3) Observe fraction formatted incorrectly + 1) Ir a /conversiones + 2) Ingresar: 1010001011001.00010010 (binario) → decimal + 3) Observar que la fracción se formatea de forma incorrecta validations: { required: true } - type: textarea id: expected_actual attributes: - label: Expected vs. actual + label: Comportamiento esperado vs. actual placeholder: | - Expected: ... + Esperado: ... Actual: ... validations: { required: true } - type: textarea id: context attributes: - label: Additional context / logs / screenshots - placeholder: "Screenshots, logs, links…" + label: Contexto adicional / logs / capturas + placeholder: "Capturas de pantalla, registros, enlaces relevantes…" - type: input id: env attributes: - label: Environment - placeholder: "OS/Browser, versions (e.g., macOS 14.5 / Firefox 142)" + label: Entorno + placeholder: "SO/Navegador, versiones (p. ej. macOS 14.5 / Firefox 142)" diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index eb0c3d3..b78e9b5 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false contact_links: - - name: Security reports + - name: Reportes de seguridad url: https://github.com/ApocalixDeLuque/binaryx/security/advisories - about: Please report security vulnerabilities privately via GitHub Security Advisories or email in SECURITY.md. + about: Reporta vulnerabilidades de forma privada mediante GitHub Security Advisories o el correo indicado en SECURITY.md. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index a12c08e..2b9347a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,30 +1,30 @@ -name: "Feature request" -description: "Propose an enhancement or new capability" +name: "Solicitud de mejora" +description: "Propone una funcionalidad o mejora" labels: ["enhancement"] body: - type: textarea id: problem attributes: - label: Problem / use case - placeholder: "Add Decimal ↔ Gray code with step visualization…" + label: Problema / caso de uso + placeholder: "Necesitamos conversión Decimal ↔ Gray con visualización paso a paso…" validations: { required: true } - type: textarea id: proposal attributes: - label: Proposed solution - placeholder: "Create results components under src/components/results/gray-<->binary, add steps and final, wire in panel…" + label: Propuesta de solución + placeholder: "Crear componentes en src/components/results/gray-<->binary, añadir pasos y resultado final, integrar en el panel…" validations: { required: true } - type: textarea id: alternatives attributes: - label: Alternatives considered - placeholder: "External tool X, manual steps, etc." + label: Alternativas consideradas + placeholder: "Herramienta externa X, pasos manuales, etc." - type: dropdown id: priority attributes: - label: Priority - options: ["nice to have", "important", "critical"] + label: Prioridad + options: ["sería genial", "importante", "crítico"] default: 0 diff --git a/README.es.md b/README.es.md index a0328ac..16d59ec 100644 --- a/README.es.md +++ b/README.es.md @@ -22,7 +22,8 @@

-> [!NOTE] > **Estado: activo.** Este proyecto busca crecer en comunidad (lógica digital, más operaciones, visualizaciones, etc.). +> [!NOTE] +> **Estado: activo.** Este proyecto busca crecer en comunidad (lógica digital, más operaciones, visualizaciones, etc.). --- diff --git a/README.md b/README.md index 34b2899..87a3b9c 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,8 @@

-> [!NOTE] > **Status: active.** This project aims to grow with the community (digital logic, more operations, visualizations, etc.). +> [!NOTE] +> **Status: active.** This project aims to grow with the community (digital logic, more operations, visualizations, etc.). --- diff --git a/apps/web/package.json b/apps/web/package.json index 2239e20..bcd11b0 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -69,6 +69,9 @@ "@types/react-dom": "^19", "tailwindcss": "^4.1.10", "typescript": "^5", - "vitest": "^3.2.4" + "vitest": "^3.2.4", + "jsdom": "^24.1.0", + "@types/jsdom": "^21.1.7", + "vite": "^5.4.10" } } diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 87c79af..b225e51 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -3,39 +3,39 @@ import { Geist, Geist_Mono } from "next/font/google"; import "../index.css"; import Providers from "@/components/providers"; import Header from "@/components/header"; +import Footer from "@/components/footer"; const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], + variable: "--font-geist-sans", + subsets: ["latin"], }); const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], + variable: "--font-geist-mono", + subsets: ["latin"], }); export const metadata: Metadata = { - title: "binaryx", - description: "binaryx", + title: "binaryx", + description: "binaryx", }; export default function RootLayout({ - children, + children, }: Readonly<{ - children: React.ReactNode; + children: React.ReactNode; }>) { - return ( - - - -
-
- {children} -
-
- - - ); + return ( + + + +
+
+
{children}
+
+
+
+ + + ); } diff --git a/apps/web/src/components/footer.tsx b/apps/web/src/components/footer.tsx new file mode 100644 index 0000000..512d6fe --- /dev/null +++ b/apps/web/src/components/footer.tsx @@ -0,0 +1,119 @@ +import Image from "next/image"; +import Link from "next/link"; +import { Bug, Github, Sparkles, Star, type LucideIcon } from "lucide-react"; + +import { Button } from "@/components/ui/button"; + +const primaryActions = [ + { + label: "Reportar un bug", + href: "https://github.com/ApocalixDeLuque/binaryx/issues/new?labels=bug&title=%5BBug%5D%3A%20Describe%20el%20problema%20&body=Describe%20los%20pasos%20para%20reproducirlo%2C%20el%20comportamiento%20esperado%20y%20cualquier%20dato%20adicional%20relevante.", + icon: Bug, + variant: "outline" as const, + }, + { + label: "Sugerir mejora", + href: "https://github.com/ApocalixDeLuque/binaryx/issues/new?template=feature_request.yml", + icon: Sparkles, + variant: "outline" as const, + }, + { + label: "Dar estrella en GitHub", + href: "https://github.com/ApocalixDeLuque/binaryx/stargazers", + icon: Star, + variant: "secondary" as const, + }, + { + label: "Abrir repositorio", + href: "https://github.com/ApocalixDeLuque/binaryx", + icon: Github, + variant: "ghost" as const, + }, +] satisfies Array<{ + label: string; + href: string; + icon: LucideIcon; + variant: "outline" | "secondary" | "ghost"; +}>; + +const secondaryLinks = [ + { + label: "Documentación", + href: "https://github.com/ApocalixDeLuque/binaryx#readme", + }, + { + label: "Guía de contribución", + href: "https://github.com/ApocalixDeLuque/binaryx/blob/main/CONTRIBUTING.md", + }, + { + label: "Licencia", + href: "https://github.com/ApocalixDeLuque/binaryx/blob/main/LICENSE", + }, + { + label: "Historial de cambios", + href: "https://github.com/ApocalixDeLuque/binaryx/releases", + }, +] satisfies Array<{ + label: string; + href: string; +}>; + +export default function Footer() { + const year = new Date().getFullYear(); + + return ( + + ); +} diff --git a/bun.lockb b/bun.lockb index b86eed1c791908c18ede8c809a6b7b87c6ea42e7..b54036e81e2a395bcb24b7c49957d7d39029340e 100755 GIT binary patch delta 56403 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 Q=f!Hg@Cgcco)`1~2g+eV`r}gklVkeF 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 W-KCas#&iyFNc(~G`LLAh?*9WVMJ-7H diff --git a/package.json b/package.json index d206b2b..c4bd262 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-hooks": "^5.1.0-rc.0", "globals": "^16.4.0", + "jsdom": "24.0.0", "prettier": "^3.3.3", "turbo": "^2.5.4", "typescript-eslint": "^8.44.0" From 49b2a8d2de26407d493e76f56498db2f431e18e8 Mon Sep 17 00:00:00 2001 From: apocalix Date: Thu, 18 Sep 2025 22:43:02 -0600 Subject: [PATCH 2/3] fix: update Link href type casting in Footer component --- apps/web/src/components/footer.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/src/components/footer.tsx b/apps/web/src/components/footer.tsx index 512d6fe..e55eaff 100644 --- a/apps/web/src/components/footer.tsx +++ b/apps/web/src/components/footer.tsx @@ -86,7 +86,7 @@ export default function Footer() {
{primaryActions.map(({ label, href, icon: Icon, variant }) => (