Skip to content

Commit ee5a8ad

Browse files
authored
Feature/upgrades (#60)
* feat: upgrades libraries * chore: upgrade dependencies to Jest v30, testing-library/jest-dom v7, and Chromatic v18, and update snapshot references
1 parent 82f4bdb commit ee5a8ad

20 files changed

Lines changed: 5588 additions & 7866 deletions

File tree

‎.agents/AGENTS.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Rules
2+
3+
- **Actualización de Documentación por Versión**: Siempre que se modifique o actualice la versión del proyecto en `package.json`, debes actualizar correspondientemente los archivos de documentación del repositorio (tales como `Changelog.md`, `README.md` y `CONTEXT.md`) para reflejar la versión actual y listar los cambios asociados a dicha versión.

‎.nvmrc‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v20
1+
v24

‎ADR.md‎

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Architecture Decision Records (ADR)
2+
3+
Este documento registra las decisiones arquitectónicas clave y de diseño técnico del proyecto `@creativecodeco/ui`.
4+
5+
---
6+
7+
## PURPOSE
8+
El objetivo de `@creativecodeco/ui` es proveer el Sistema de Diseño oficial para CreativeCode.com.co, implementando componentes atómicos y controles de formulario altamente configurables, consistentes y optimizados bajo un enfoque CSS-first.
9+
10+
---
11+
12+
## STACK
13+
- **Core**: React 19 (v19.2.8)
14+
- **Estilos**: Tailwind CSS v4 (CSS-first) + DaisyUI v5 (v5.7.0)
15+
- **Documentación**: Storybook 10 & Chromatic v18
16+
- **Tipado**: TypeScript 6 (v6.0.3)
17+
- **Pruebas**: Jest 30 (v30.4.2) & React Testing Library v16 (v16.3.2)
18+
19+
---
20+
21+
## ARCHITECTURE
22+
El proyecto sigue una arquitectura modular en la cual:
23+
- **`src/ui/components/`**: Componentes de presentación sin dependencias de estado global (Avatar, Badge, Button, Accordion).
24+
- **`src/ui/forms/`**: Componentes controladores e interactivos (TextBox, Checkbox, Radio, Dropdown, RadioList).
25+
- **`src/ui/provider/`**: Contiene `CreativeCodeUIProvider` para inyectar el tema visual `creativecode` (usando el atributo HTML `data-theme="creativecode"`).
26+
- **`src/theme/`**: La capa de diseño visual construida sobre Tailwind CSS v4, gestionada mediante tokens CSS-first en `main.css`.
27+
28+
---
29+
30+
## PATTERNS
31+
32+
### 1. React Version Alignment via Overrides
33+
Durante la actualización de dependencias, diferencias en el árbol resolutivo provocaban que `react` y `react-dom` se instalaran en versiones dispares (`19.2.7` y `19.2.8`), disparando fallos críticos de incompatibilidad en testing-library.
34+
- **Decisión**: Se forzó la alineación estricta de React a la versión `19.2.8` utilizando la sección `overrides` en `package.json`.
35+
36+
---
37+
38+
## TRADEOFFS
39+
- **Conservar TypeScript 6.0.3**:
40+
Se decidió no forzar la actualización a TypeScript 7.0.2 para evitar incompatibilidades críticas con herramientas del ecosistema de testing (como `ts-jest`), las cuales requieren APIs de compilación programática ausentes en la versión Go del compilador nativo de TS 7.0. Esto evita configuraciones complejas de aliasing o el uso de flags de instalación inseguros (`--legacy-peer-deps`).
41+
- **Babel y ESLint Conservadores**: Se retuvo Babel en la rama 7.x y ESLint en la 9.x debido a incompatibilidades de peer dependencies de los plugins core del ecosistema (`eslint-plugin-react` y `ts-jest`), priorizando la consistencia y la instalación limpia en `npm install`.
42+
43+
---
44+
45+
## PHILOSOPHY
46+
- **CSS-First**: Declarar y extender colores y estilos a través de variables y directivas `@theme` nativas en hojas de estilo, minimizando el CSS dinámico inyectado por JS.
47+
- **Resolución Limpia de Dependencias**: No usar `--legacy-peer-deps` en la instalación del proyecto. Cualquier conflicto de árbol resolutivo debe arreglarse mediante alineación de versiones o anclaje a versiones estables.

‎CONTEXT.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
`@creativecodeco/ui` is the official Design System for **CreativeCode.com.co**. It provides a set of reusable, accessible, and highly customizable UI components built with modern web technologies.
55

66
## Technical Stack
7-
- **Framework**: [React 18](https://react.dev/)
7+
- **Framework**: [React 19](https://react.dev/)
88
- **Styling**: [Tailwind CSS v4](https://tailwindcss.com/) (CSS-first configuration)
99
- **UI Base**: [DaisyUI v5](https://daisyui.com/)
1010
- **Documentation**: [Storybook 10](https://storybook.js.org/)

‎Changelog.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
# Changelog
44

5+
## v2.1.0 - Update Libraries
6+
7+
### ☝🏻 Upgrade
8+
9+
- Upgrade Jest to v30
10+
- Upgrade @testing-library/jest-dom to v7
11+
- Upgrade Chromatic to v18
12+
513
## v2.0.0 - Update Dependencies
614

715
### ☝🏻 Upgrade

‎jest.config.ts‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
77
import { pathsToModuleNameMapper } from 'ts-jest';
88

9-
import { compilerOptions } from './tsconfig.json';
9+
import tsconfig from './tsconfig.json' with { type: 'json' };
10+
const compilerOptions = tsconfig.compilerOptions;
1011

1112
export default {
1213
clearMocks: true,

0 commit comments

Comments
 (0)