npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@amsintegra/design-system

v1.1.1

Published

AMS Integra Design System — React components built on Ant Design v6 with the B2BMX (Metronic) theme.

Readme

@amsintegra/design-system

Sistema de diseño de React para la plataforma B2BMX de AMS Integra. Está construido sobre Ant Design v6 con el tema de marca Metronic (primario #A72432, tipografía Inter, base de 13px) e incluye Storybook para explorar y documentar cada componente.

Cubre todos los componentes de Ant Design v6 como wrappers/re-exports tipados con el tema aplicado, más composites propios que consolidan patrones ya usados en los microfrontends.

📦 Se instala en cada proyecto

Este es un paquete de librería: cada proyecto que lo use tiene que instalarlo por su cuenta. No es algo que se instale una sola vez y quede disponible para todos los proyectos. Cuando arranques un portal o microfrontend nuevo, corré la instalación de abajo dentro de ese proyecto.

Es una dependencia normal de la app (sus componentes se renderizan en runtime), así que va en dependencies, no en devDependencies.

Instalación

1. Instalá el paquete

npm install @amsintegra/design-system

2. Asegurate de tener sus peers

La librería necesita que tu proyecto tenga estas piezas (son peer dependencies, o sea que las comparte con tu app en vez de traer su propia copia):

| Peer | Versión | |------|---------| | react / react-dom | 18, 19 o 20 | | antd | 6 | | @ant-design/icons | 6 | | dayjs | 1.11+ |

  • Si tu proyecto ya tiene React y antd 6 (por ejemplo un portal con Next.js): no hacés nada más, la librería usa los que ya tenés.

  • Si te falta alguno, instalalos de una:

    npm install antd@^6 @ant-design/icons@^6 dayjs react react-dom

Ojo con antd: tiene que ser la versión 6, igual que @ant-design/icons (icons 6 no funciona con antd 5). Y antd 6 pide React 18 o superior.

Requiere Node.js 18 o superior para desarrollar.

Declarar React y antd como peers (en vez de empaquetarlos dentro de la librería) evita terminar con dos instancias de React/antd en runtime —el clásico Invalid hook call y los contextos de tema duplicados— cuando la librería se consume bajo Module Federation. La librería reutiliza la copia que ya tiene tu app.

Uso

Envuelve la app una sola vez en la raíz con AmsConfigProvider (aplica el tema y el contexto de antd App para message/notification/Modal):

import { AmsConfigProvider, Button, DataTable } from '@amsintegra/design-system';
import esES from 'antd/locale/es_ES';

export function Root({ children }) {
  return (
    <AmsConfigProvider mode="light" locale={esES}>
      {children}
    </AmsConfigProvider>
  );
}

Luego importa componentes con named imports:

import { Button, DataTable, ModalDialog, FilterSelect } from '@amsintegra/design-system';

Modo oscuro:

<AmsConfigProvider mode="dark">…</AmsConfigProvider>

Toasts context-safe (sin el warning de método estático de antd):

import { useAmsMessage } from '@amsintegra/design-system';

function Guardar() {
  const message = useAmsMessage();
  return <Button onClick={() => message.success('Guardado')}>Guardar</Button>;
}

Qué incluye

  • Tema: AmsConfigProvider, buildTheme, tokens de Metronic (primitives, semantic, radius, typography, sizing).
  • Todos los componentes de antd v6 como re-exports tipados (General, Layout, Navigation, Data Entry, Data Display, Feedback y otros).
  • Composites AMS: DataTable, ModalDialog, FilterSelect, FileUploadDragger, PageHeader, DownloadButton, ConfirmModal.
  • Hooks: useAmsMessage, useAmsNotification, useControllableState.

El inventario completo con estado por componente está en plan/03-component-inventory.md.

Desarrollo

npm install              # instala dependencias
npm run storybook        # levanta Storybook en http://localhost:6006
npm run test             # corre los tests (Vitest)
npm run typecheck        # tsc --noEmit
npm run build            # build de la librería (ESM + CJS + tipos) con tsup
npm run build-storybook  # Storybook estático (para publicar la doc)

Storybook

Storybook (v10, @storybook/react-vite) es la documentación viva del design system: una story por componente, docs en MDX y un piloto de pantalla real (Pilot/Consulta de Facturas). Incluye los addons de accesibilidad (a11y), themes (light/dark) y docs.

Desarrollo local

npm run storybook

Levanta el servidor en http://localhost:6006 con hot reload.

Build del sitio estático

npm run build-storybook

Genera el sitio en storybook-static/. Esa carpeta es un sitio estático autocontenido que se puede servir con cualquier hosting de estáticos.

Despliegue

Publicá el contenido de storybook-static/ en el hosting que use el equipo:

  • Servir localmente para revisar el build:

    npx http-server storybook-static
  • Bitbucket Pages / hosting estático: subí el contenido de storybook-static/ como artefacto del pipeline.

  • Netlify / Vercel / S3+CloudFront: apuntá el directorio de publicación a storybook-static y el comando de build a npm run build-storybook.

storybook-static/ está en .gitignore — es un artefacto de build, no se commitea. Se regenera en cada despliegue.

Publicación

El paquete se publica en el registry público de npm bajo el scope @amsintegra, con acceso público (publishConfig.access = "public"). prepublishOnly corre typecheck + tests + build automáticamente, así que no se publica un build roto.

npm login                # autenticación en npmjs.com (requiere permiso en el scope @amsintegra)
npm publish              # publica la versión actual de package.json

El scope @amsintegra debe existir en npm y tu cuenta necesita permiso de publicación en él. Una versión publicada es prácticamente inmutable: no se puede re-publicar el mismo número con otro contenido.

Generar un tarball para entregar/instalar sin registry:

npm run pack:tarball     # genera amsintegra-design-system-<version>.tgz
# en el proyecto consumidor:
npm install /ruta/al/amsintegra-design-system-<version>.tgz

Para asistentes de IA

En la raíz del paquete hay un llms.txt: una guía concisa y legible por máquina para que un asistente de IA descubra e interprete cómo usar la librería (imports, reglas de oro, setup) aunque no tenga la skill dedicada. Se incluye dentro del paquete publicado en npm, así que también aparece en node_modules. La referencia completa por componente vive en docs/skills/ams-design-system/SKILL.md.

Changelog

El historial de versiones está en CHANGELOG.md.

Licencia

MIT © AMS Integra

Estado

  • ✅ Tema (light + dark, tokens Metronic)
  • ✅ Cobertura completa de componentes antd v6 + composites AMS
  • ✅ Storybook con story por componente y un piloto (Pilot/Consulta de Facturas)
  • ✅ Empaquetado listo para publicar (@amsintegra/design-system)

Detalles y roadmap en plan/.