{"_id":"@achsux/ds-backoffice","_rev":"3-4fb380b9409d2d6be40f354dd8e4149b","name":"@achsux/ds-backoffice","dist-tags":{"latest":"1.3.1"},"versions":{"1.1.0":{"name":"@achsux/ds-backoffice","version":"1.1.0","keywords":["achs","design-system","back-office","react","tailwind"],"license":"UNLICENSED","_id":"@achsux/ds-backoffice@1.1.0","maintainers":[{"name":"darcyrivas","email":"drivasu@achs.cl"}],"homepage":"https://github.com/darcy-achs/ds-backoffice#readme","bugs":{"url":"https://github.com/darcy-achs/ds-backoffice/issues"},"dist":{"shasum":"c09fae0a550ab29dc7f95a779823bd7a9e9fdf4e","tarball":"https://registry.npmjs.org/@achsux/ds-backoffice/-/ds-backoffice-1.1.0.tgz","fileCount":59,"integrity":"sha512-trkBM4D45odxgutF0b3I45X8AzjfcoeV1msbakrzeHlGe/55XaR/NTz5s8v5clOWVrdnDLgfrCa+4B6EFlR4Aw==","signatures":[{"sig":"MEQCIDouTNsjF/sJoWOoQptp8srnMg+kW1mGJesX8t90U621AiBY+du94aL7u9V+/fuNehTCBYgrxltv74xxqJT/zINZRQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1070106},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./setup":"./dist/setup.css","./tokens":"./dist/tokens/index.css","./tokens/colors":"./dist/tokens/colors.css","./tokens/layers":"./dist/tokens/layers.css","./tokens/motion":"./dist/tokens/motion.css","./tokens/shadows":"./dist/tokens/shadows.css","./tokens/spacing":"./dist/tokens/spacing.css","./tokens/typography":"./dist/tokens/typography.css"},"gitHead":"c67f715e1e642c42864db613535f959116b135a8","private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build && tsc --emitDeclarationOnly --declaration && node scripts/copy-tokens.mjs","ladle":"ladle serve","format":"prettier --write .","release":"pnpm build && changeset publish","lint:fix":"eslint . --fix","changeset":"changeset","typecheck":"tsc --noEmit","test:watch":"vitest","ladle:build":"ladle build","format:check":"prettier --check .","ladle:preview":"ladle preview","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build","typecheck:tests":"tsc --noEmit --project tsconfig.test.json","version:packages":"changeset version"},"_npmUser":{"name":"darcyrivas","email":"drivasu@achs.cl"},"repository":{"url":"git+https://github.com/darcy-achs/ds-backoffice.git","type":"git"},"_npmVersion":"10.9.3","description":"Design system para productos back office de ACHS","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"clsx":"^2.1.1","vite":"^7.0.0","jsdom":"^26.0.0","react":"^19.2.7","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","react-dom":"^19.2.7","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@ladle/react":"^5.1.1","@types/react":"^19.0.0","lucide-react":"^0.575.0","tailwind-merge":"^3.0.0","@changesets/cli":"^2.28.0","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^3.0.0","tailwindcss-animate":"^1.0.7","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.12","@vitejs/plugin-react":"^5.0.0","@radix-ui/react-toast":"^1.2.14","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-switch":"^1.2.5","@testing-library/react":"^16.0.0","eslint-config-prettier":"^10.0.0","@radix-ui/react-popover":"^1.1.14","@radix-ui/react-tooltip":"^1.2.7","@radix-ui/react-checkbox":"^1.3.2","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.0.0","eslint-plugin-react-hooks":"^5.0.0","@radix-ui/react-radio-group":"^1.3.7","@testing-library/user-event":"^14.0.0","@radix-ui/react-alert-dialog":"^1.1.15"},"peerDependencies":{"react":">=18","react-dom":">=18","tailwindcss":">=4","tailwindcss-animate":">=1.0.0","@radix-ui/react-slot":">=1.0.0","@radix-ui/react-tabs":">=1.0.0","@radix-ui/react-toast":">=1.0.0","@radix-ui/react-dialog":">=1.0.0","@radix-ui/react-select":">=2.0.0","@radix-ui/react-switch":">=1.0.0","@radix-ui/react-popover":">=1.0.0","@radix-ui/react-tooltip":">=1.0.0","@radix-ui/react-checkbox":">=1.0.0","@radix-ui/react-radio-group":">=1.0.0","@radix-ui/react-alert-dialog":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ds-backoffice_1.1.0_1780515841977_0.7534438067842819","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@achsux/ds-backoffice","version":"1.2.0","keywords":["achs","design-system","back-office","react","tailwind"],"license":"UNLICENSED","_id":"@achsux/ds-backoffice@1.2.0","maintainers":[{"name":"darcyrivas","email":"drivasu@achs.cl"}],"homepage":"https://github.com/darcy-achs/ds-backoffice#readme","bugs":{"url":"https://github.com/darcy-achs/ds-backoffice/issues"},"dist":{"shasum":"6191b7f3f0ea4f9c22f675dc8a520884f93882c9","tarball":"https://registry.npmjs.org/@achsux/ds-backoffice/-/ds-backoffice-1.2.0.tgz","fileCount":75,"integrity":"sha512-Sl98yuNlAt9YcNSpkW62Z7kOrp8CoeGQ1IwFMu+9egHm0AJ+BAMzK+F5XbT9JjQVMY1+uIYEnVCwu0bcepVS7A==","signatures":[{"sig":"MEQCID6njKiB3/pOz5ZVAd5IAX/F7H07yKKb0As/y25P8nwBAiBdBXHrMfh91II830IpuCp8/0jBzTFF5Gpg/5UU4GpjsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4333206},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22","pnpm":">=9"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./setup":"./dist/setup.css","./tokens":"./dist/tokens/index.css","./tokens/colors":"./dist/tokens/colors.css","./tokens/layers":"./dist/tokens/layers.css","./tokens/motion":"./dist/tokens/motion.css","./tokens/shadows":"./dist/tokens/shadows.css","./tokens/spacing":"./dist/tokens/spacing.css","./tokens/typography":"./dist/tokens/typography.css"},"gitHead":"4a66f75cbd7a7da4fbb589b74778f7e880f16161","private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build && tsc --emitDeclarationOnly --declaration && node scripts/copy-tokens.mjs","ladle":"ladle serve","format":"prettier --write .","release":"pnpm build && changeset publish","lint:fix":"eslint . --fix","changeset":"changeset","typecheck":"tsc --noEmit","test:watch":"vitest","ladle:build":"ladle build","format:check":"prettier --check .","ladle:preview":"ladle preview","test:coverage":"vitest run --coverage","prepublishOnly":"pnpm build","typecheck:tests":"tsc --noEmit --project tsconfig.test.json","version:packages":"changeset version"},"_npmUser":{"name":"darcyrivas","email":"drivasu@achs.cl"},"repository":{"url":"git+https://github.com/darcy-achs/ds-backoffice.git","type":"git"},"_npmVersion":"10.9.3","description":"Design system para productos back office de ACHS","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.0","devDependencies":{"clsx":"^2.1.1","vite":"^7.0.0","jsdom":"^26.0.0","react":"^19.2.7","eslint":"^9.0.0","vitest":"^3.0.0","prettier":"^3.0.0","recharts":"^2.15.0","react-dom":"^19.2.7","@eslint/js":"^9.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","tailwindcss":"^4.0.0","@ladle/react":"^5.1.1","@types/react":"^19.0.0","lucide-react":"^0.575.0","tailwind-merge":"^3.0.0","@changesets/cli":"^2.28.0","@types/recharts":"^1.8.29","vite-plugin-dts":"^4.0.0","@types/react-dom":"^19.0.0","@tailwindcss/vite":"^4.0.0","typescript-eslint":"^8.0.0","@vitest/coverage-v8":"^3.0.0","tailwindcss-animate":"^1.0.7","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.12","@vitejs/plugin-react":"^5.0.0","@radix-ui/react-toast":"^1.2.14","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-select":"^2.2.5","@radix-ui/react-switch":"^1.2.5","@testing-library/react":"^16.0.0","eslint-config-prettier":"^10.0.0","@radix-ui/react-popover":"^1.1.14","@radix-ui/react-tooltip":"^1.2.7","@radix-ui/react-checkbox":"^1.3.2","class-variance-authority":"^0.7.1","@testing-library/jest-dom":"^6.0.0","eslint-plugin-react-hooks":"^5.0.0","@radix-ui/react-radio-group":"^1.3.7","@testing-library/user-event":"^14.0.0","@radix-ui/react-alert-dialog":"^1.1.15"},"peerDependencies":{"react":">=18","recharts":">=2.12.0","react-dom":">=18","tailwindcss":">=4","tailwindcss-animate":">=1.0.0","@radix-ui/react-slot":">=1.0.0","@radix-ui/react-tabs":">=1.0.0","@radix-ui/react-toast":">=1.0.0","@radix-ui/react-dialog":">=1.0.0","@radix-ui/react-select":">=2.0.0","@radix-ui/react-switch":">=1.0.0","@radix-ui/react-popover":">=1.0.0","@radix-ui/react-tooltip":">=1.0.0","@radix-ui/react-checkbox":">=1.0.0","@radix-ui/react-radio-group":">=1.0.0","@radix-ui/react-alert-dialog":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ds-backoffice_1.2.0_1780580391000_0.5473809912461982","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@achsux/ds-backoffice","version":"1.3.1","description":"Design system para productos back office de ACHS","type":"module","sideEffects":["**/*.css"],"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./setup":"./dist/setup.css","./tokens":"./dist/tokens/index.css","./tokens/colors":"./dist/tokens/colors.css","./tokens/typography":"./dist/tokens/typography.css","./tokens/spacing":"./dist/tokens/spacing.css","./tokens/shadows":"./dist/tokens/shadows.css","./tokens/motion":"./dist/tokens/motion.css","./tokens/layers":"./dist/tokens/layers.css"},"engines":{"node":">=22","pnpm":">=9"},"packageManager":"pnpm@9.15.0","main":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"dev":"vite build --watch","build":"vite build && tsc --emitDeclarationOnly --declaration && node scripts/copy-tokens.mjs","prepublishOnly":"pnpm build","lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier --write .","format:check":"prettier --check .","typecheck":"tsc --noEmit","typecheck:tests":"tsc --noEmit --project tsconfig.test.json","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","ladle":"ladle serve -p 61000","ladle:build":"ladle build","ladle:preview":"ladle preview","changeset":"changeset","version:packages":"changeset version","release":"pnpm build && changeset publish"},"peerDependencies":{"@radix-ui/react-alert-dialog":">=1.0.0","@radix-ui/react-checkbox":">=1.0.0","@radix-ui/react-dialog":">=1.0.0","@radix-ui/react-popover":">=1.0.0","@radix-ui/react-radio-group":">=1.0.0","@radix-ui/react-select":">=2.0.0","@radix-ui/react-slot":">=1.0.0","@radix-ui/react-switch":">=1.0.0","@radix-ui/react-tabs":">=1.0.0","@radix-ui/react-toast":">=1.0.0","@radix-ui/react-tooltip":">=1.0.0","react":">=18","react-dom":">=18","tailwindcss":">=4","tailwindcss-animate":">=1.0.0","recharts":">=2.12.0"},"devDependencies":{"@changesets/cli":"^2.28.0","@eslint/js":"^9.0.0","@ladle/react":"^5.1.1","@radix-ui/react-alert-dialog":"^1.1.15","@radix-ui/react-checkbox":"^1.3.2","@radix-ui/react-dialog":"^1.1.14","@radix-ui/react-popover":"^1.1.14","@radix-ui/react-radio-group":"^1.3.7","@radix-ui/react-select":"^2.2.5","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-switch":"^1.2.5","@radix-ui/react-tabs":"^1.1.12","@radix-ui/react-toast":"^1.2.14","@radix-ui/react-tooltip":"^1.2.7","@tailwindcss/vite":"^4.0.0","@testing-library/jest-dom":"^6.0.0","@testing-library/react":"^16.0.0","@testing-library/user-event":"^14.0.0","@types/node":"^22.0.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@vitejs/plugin-react":"^5.0.0","@vitest/coverage-v8":"^3.0.0","class-variance-authority":"^0.7.1","clsx":"^2.1.1","eslint":"^9.0.0","eslint-config-prettier":"^10.0.0","eslint-plugin-react-hooks":"^5.0.0","jsdom":"^26.0.0","lucide-react":"^0.575.0","prettier":"^3.0.0","react":"^19.2.7","react-dom":"^19.2.7","tailwind-merge":"^3.0.0","tailwindcss":"^4.0.0","tailwindcss-animate":"^1.0.7","typescript":"^5.8.0","typescript-eslint":"^8.0.0","vite":"^7.0.0","vite-plugin-dts":"^4.0.0","vitest":"^3.0.0","recharts":"^2.15.0","@types/recharts":"^1.8.29"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/darcy-achs/ds-backoffice.git"},"keywords":["achs","design-system","back-office","react","tailwind"],"license":"UNLICENSED","private":false,"_id":"@achsux/ds-backoffice@1.3.1","gitHead":"2405f9cc4e18b884a500bac8c4a5da93a7f912ef","bugs":{"url":"https://github.com/darcy-achs/ds-backoffice/issues"},"homepage":"https://github.com/darcy-achs/ds-backoffice#readme","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-fMjqqVK2xTju6mxgY3dAWeZkxQhR57QHsHAaatFWOSfzWfjdiDd3/7yjAwMfSByDNdOWJTvYZIAPmSFTXLrFvg==","shasum":"aaaa1d9f6dd706ba3cd3f00eba8d522ee9aaf37f","tarball":"https://registry.npmjs.org/@achsux/ds-backoffice/-/ds-backoffice-1.3.1.tgz","fileCount":76,"unpackedSize":4348644,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC1AKydxqLbx1M6wkmzw+WRmxejqteXk9yEsHga4vD5JQIhAMqvfbsARZdpPi6xH4ofJS7MRiCzKXHgL4pZ5n/9p3SU"}]},"_npmUser":{"name":"darcyrivas","email":"drivasu@achs.cl"},"directories":{},"maintainers":[{"name":"darcyrivas","email":"drivasu@achs.cl"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ds-backoffice_1.3.1_1780670627409_0.13112500196131394"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T19:44:01.777Z","modified":"2026-06-05T14:43:47.820Z","1.1.0":"2026-06-03T19:44:02.192Z","1.2.0":"2026-06-04T13:39:51.205Z","1.3.1":"2026-06-05T14:43:47.685Z"},"bugs":{"url":"https://github.com/darcy-achs/ds-backoffice/issues"},"license":"UNLICENSED","homepage":"https://github.com/darcy-achs/ds-backoffice#readme","keywords":["achs","design-system","back-office","react","tailwind"],"repository":{"type":"git","url":"git+https://github.com/darcy-achs/ds-backoffice.git"},"description":"Design system para productos back office de ACHS","maintainers":[{"name":"darcyrivas","email":"drivasu@achs.cl"}],"readme":"# @darcy-achs/ds-backoffice\n\nDesign system para productos back office de ACHS. Sistema independiente de `@achsux/ui`, orientado a interfaces de gestión interna con alta densidad de información.\n\n**Versión estable:** ver `package.json` — librería en **GitHub Packages** (`@darcy-achs/ds-backoffice`).\n\n## Instalación\n\nCopiá [`.npmrc.example`](./.npmrc.example) a `.npmrc` del proyecto:\n\n```ini\n@darcy-achs:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n```\n\nToken: [PAT de GitHub](https://github.com/settings/tokens) con scope **`read:packages`** (y acceso al repo del paquete). En local: `export GITHUB_TOKEN=ghp_...`\n\n> **Importante:** en GitHub Packages, _público_ significa visible en la web de GitHub, pero **npm/pnpm siempre piden autenticación** para descargar. No está en registry.npmjs.org.\n\n```bash\nnpm install @darcy-achs/ds-backoffice tailwindcss-animate\n# o\npnpm add @darcy-achs/ds-backoffice tailwindcss-animate\n```\n\n> **Requisitos:** React ≥18, Tailwind CSS ≥4, tailwindcss-animate ≥1.0\n\n## Uso rápido\n\n### 1. Importar los tokens CSS\n\nEn el entry point de tu app (ej. `main.tsx` o `styles.css`):\n\n```ts\nimport \"@darcy-achs/ds-backoffice/tokens\";\n```\n\nEsto agrega todas las CSS custom properties al `:root`. A partir de ahí podés usar los tokens en tus componentes:\n\n```css\n.mi-card {\n  background: var(--card);\n  border-radius: var(--radius-lg);\n  box-shadow: var(--shadow-card);\n  padding: var(--space-card);\n}\n```\n\n### 2. Tokens individuales\n\nSi solo necesitás un subconjunto:\n\n```ts\nimport \"@darcy-achs/ds-backoffice/tokens/colors\";\nimport \"@darcy-achs/ds-backoffice/tokens/typography\";\n```\n\n### 3. Utilidades\n\n```ts\nimport { cn } from \"@darcy-achs/ds-backoffice\";\n\n// Combina clases Tailwind sin conflictos\nconst className = cn(\"px-4 py-2\", isActive && \"bg-primary\");\n```\n\n## Tokens disponibles\n\n### Colores (`/tokens/colors`)\n\n| Token                                               | Uso                                       |\n| --------------------------------------------------- | ----------------------------------------- |\n| `--background`                                      | Canvas de la página (blanco)              |\n| `--foreground`                                      | Texto principal                           |\n| `--card` / `--cream`                                | Superficie de cards (blanco)              |\n| `--ink`                                             | Texto oscuro, CTAs primarios              |\n| `--primary` / `--primary-foreground`                | Acción principal                          |\n| `--mint`                                            | Verde ACHS marca (#085F21), énfasis, foco |\n| `--success` / `--warning` / `--info` / `--critical` | Estados semánticos                        |\n| `--border` / `--input` / `--ring`                   | Bordes y foco                             |\n| `--sidebar-*`                                       | Tokens específicos de sidebar             |\n| `--chart-1..5`                                      | Serie de datos en gráficos                |\n| `--chip-*-bg/fg/border`                             | Colores de chips por estado               |\n\n### Tipografía (`/tokens/typography`)\n\n| Token               | Valor     | Uso                        |\n| ------------------- | --------- | -------------------------- |\n| `--text-2xs`        | 10px      | Etiquetas uppercase        |\n| `--text-xs`         | 11px      | Captions, hints            |\n| `--text-sm`         | 12px      | Badges, texto secundario   |\n| `--text-md`         | 13px      | Label estándar back office |\n| `--text-base`       | 14px      | Body                       |\n| `--text-3xl`        | 26px      | H1 de página               |\n| `--text-4xl`        | 30px      | Valores KPI                |\n| `--type-page-title` | compuesto | font shorthand para h1     |\n| `--type-kpi-value`  | compuesto | font shorthand para KPIs   |\n| `--type-label`      | compuesto | font shorthand para labels |\n\n### Espaciado (`/tokens/spacing`)\n\nEscala `--space-0` a `--space-24` (base 4px) + alias semánticos:\n`--space-card`, `--space-page-x`, `--space-table-cell-x`, etc.\n\n### Sombras (`/tokens/shadows`)\n\n| Token              | Uso                         |\n| ------------------ | --------------------------- |\n| `--shadow-card`    | Card flotante sobre canvas  |\n| `--shadow-raised`  | Botones, elementos elevados |\n| `--shadow-overlay` | Dropdowns, popovers         |\n| `--shadow-modal`   | Modales, drawers            |\n| `--shadow-focus`   | Ring de foco accesible      |\n\n### Capas (`/tokens/layers`)\n\n| Token         | Uso                      |\n| ------------- | ------------------------ |\n| `--z-overlay` | Backdrop de modales      |\n| `--z-modal`   | Diálogos, CommandPalette |\n| `--z-toast`   | Notificaciones           |\n\n### Motion (`/tokens/motion`)\n\n| Token                 | Valor        | Uso                     |\n| --------------------- | ------------ | ----------------------- |\n| `--duration-fast`     | 140ms        | Hover, toggles          |\n| `--duration-base`     | 200ms        | Modales, dropdowns      |\n| `--duration-slow`     | 300ms        | Drawers, sidebar        |\n| `--ease-default`      | spring suave | Mayoría de transiciones |\n| `--transition-colors` | shorthand    | Color/background/border |\n\n## Configuración con Tailwind v4\n\n### Setup en 3 líneas (cualquier framework)\n\nEn el CSS principal de tu app:\n\n```css\n@import \"tailwindcss\";\n@plugin \"tailwindcss-animate\";\n@import \"@darcy-achs/ds-backoffice/setup\"; /* escaneo automático de clases */\n@import \"@darcy-achs/ds-backoffice/tokens\"; /* tokens CSS custom properties */\n```\n\nEl archivo `./setup` le indica a Tailwind v4 dónde encontrar las clases del DS — sin configurar nada más. Sin él los componentes renderizan sin estilos (botones sin color, layouts sin espaciado) y **no hay error en consola**.\n\n---\n\n### Exponer tokens como utilidades Tailwind (opcional)\n\nSi querés usar `bg-primary`, `text-mint`, etc. como clases de Tailwind:\n\n```css\n@theme inline {\n  --color-background: var(--background);\n  --color-foreground: var(--foreground);\n  --color-primary: var(--primary);\n  --color-card: var(--card);\n  --color-success: var(--success);\n  --color-warning: var(--warning);\n  --color-critical: var(--critical);\n  --color-info: var(--info);\n  --color-mint: var(--mint);\n  --color-ink: var(--ink);\n  --color-sidebar: var(--sidebar);\n}\n```\n\n---\n\n### Por qué se necesita `tailwindcss-animate`\n\nLos overlays (Combobox, DatePicker, ConfirmDialog, Sheet, Toast) usan clases como `animate-in`, `fade-in-0`, `zoom-in-95` que pertenecen a este plugin. Sin él, las animaciones no funcionan.\n\n---\n\n### Modo oscuro con Tailwind\n\nPara activar el modo oscuro vía clase en el `<html>`:\n\n```css\n/* En tu styles.css, después del @import de Tailwind */\n@custom-variant dark (&:is(.dark *));\n```\n\n```ts\n// En tu app, donde quieras togglear\ndocument.documentElement.classList.toggle(\"dark\");\n```\n\n## Roadmap\n\n- [x] **v0.0.1** — Tokens: colores, tipografía, espaciado, sombras, motion, layers\n- [x] **v0.1.0** — Primitivos, formularios, DataTable, overlays base\n- [x] **v0.2.0** — Layout: Shell, Page, PageHeader, FilterBar, Breadcrumb\n- [x] **v0.3.0** — Datos: KPICard, ProgressBar, PillTabs, Sparkline, Stepper, Timeline\n- [x] **v0.4.0** — Feedback: EmptyState, ErrorPage, ErrorBoundary, LoadingPage, ConfirmDialog\n- [x] **v1.0.0** — Primera versión estable como librería npm reutilizable\n- [x] **Docs visuales** — Ladle / catálogo interactivo (`pnpm ladle`)\n\n## Documentación\n\n| Recurso                                      | Contenido                              |\n| -------------------------------------------- | -------------------------------------- |\n| [`docs/COMPONENTS.md`](./docs/COMPONENTS.md) | Catálogo de exports                    |\n| [`MIGRATION.md`](./MIGRATION.md)             | Adoptar el DS en un producto existente |\n| [`docs/PUBLISHING.md`](./docs/PUBLISHING.md) | Versionado y publicación               |\n| [`CHANGELOG.md`](./CHANGELOG.md)             | Historial de versiones                 |\n\n## Contribuir\n\nVer [`CONTRIBUTING.md`](./CONTRIBUTING.md) para el proceso completo: setup del entorno, convenciones de código, cómo agregar un componente y el proceso de PR.\n\nLos cambios de API requieren un [changeset](https://github.com/changesets/changesets): `pnpm changeset`.\n\n## Catálogo visual (Ladle)\n\nDocumentación interactiva del design system — foundations, componentes, patterns y landing.\n\n```bash\npnpm ladle          # servidor de desarrollo (http://localhost:61000)\npnpm ladle:build    # build estático en build/\npnpm ladle:preview  # previsualizar el build\n```\n\nEl catálogo vive en `ladle/` y consume los tokens de `src/tokens/`. Para regenerar desde `ejemplo ladle/`:\n\n```bash\nnode scripts/convert-ladle.mjs\n```\n\n### Publicar en Vercel\n\nEl catálogo se despliega como sitio estático. La config está en [`vercel.json`](./vercel.json).\n\n**Primera vez (conectar GitHub → Vercel):**\n\n1. Sube el repo a GitHub (`achs-cl/achs-ds-backoffice` o tu fork).\n2. En [vercel.com/new](https://vercel.com/new) → **Import Git Repository** → elige el repo.\n3. Vercel lee `vercel.json` automáticamente. No cambies build ni output salvo que sepas por qué:\n   - **Build command:** `pnpm ladle:build`\n   - **Output directory:** `build`\n   - **Install command:** `pnpm install --frozen-lockfile`\n4. Deploy. Cada push a la rama de producción (p. ej. `main`) redeploya el catálogo.\n\n**URL del catálogo:** la que asigne Vercel (`*.vercel.app`) o tu dominio custom. El story por defecto es el catálogo completo; también puedes usar `?story=catalog--catalog`.\n\n**Nota:** el paquete npm (`pnpm build` → `dist/`) es independiente del catálogo. Vercel solo publica Ladle; no publica el paquete a GitHub Packages.\n\n### Release (Changesets)\n\nEl workflow `.github/workflows/release.yml` abre un PR de versión cuando hay archivos en `.changeset/`. Si falla con:\n\n`GitHub Actions is not permitted to create or approve pull requests`\n\nactiva en el repo **Settings → Actions → General → Workflow permissions**:\n\n1. **Read and write permissions**\n2. Marca **Allow GitHub Actions to create and approve pull requests**\n\nLuego re-ejecuta el workflow desde la pestaña Actions (o haz un push que toque `.changeset/`).\n\nSi aún no publicas el paquete npm, puedes ignorar ese workflow: no afecta el CI ni el deploy de Vercel.\n","readmeFilename":"README.md"}