{"_rev":"93-9450f400729dcefaf376eb0080ffaa24","time":{"created":"2026-04-21T02:41:55.639Z","modified":"2026-04-21T02:41:56.193Z","1.94.0":"2022-06-20T17:56:21.801Z","1.95.0":"2022-06-20T18:46:45.049Z","1.96.0":"2022-06-20T19:31:12.994Z","1.96.1":"2022-06-21T13:40:58.843Z","1.96.2":"2022-06-21T13:45:11.690Z","1.97.0":"2022-06-21T14:27:12.515Z","1.97.1":"2022-06-21T17:03:13.324Z","1.97.2":"2022-06-23T14:27:46.897Z","1.98.0":"2022-06-23T14:37:36.776Z","1.99.0":"2022-06-28T13:42:11.439Z","1.99.1":"2022-06-28T14:04:18.702Z","1.100.0":"2022-06-28T19:18:26.728Z","1.100.1":"2022-06-29T14:18:31.348Z","1.101.0":"2022-06-29T17:02:53.460Z","1.102.0":"2022-06-29T20:21:30.820Z","1.103.0":"2022-06-29T20:46:49.237Z","1.103.1":"2022-06-29T20:58:17.671Z","1.104.0":"2022-06-30T01:12:39.634Z","1.105.0":"2022-06-30T17:21:07.541Z","1.105.1":"2022-06-30T17:30:49.452Z","1.105.2":"2022-06-30T18:04:34.699Z","1.106.0":"2022-07-04T20:47:14.507Z","1.106.1":"2022-07-05T18:50:10.676Z","1.106.2":"2022-07-13T16:22:59.602Z","1.106.3":"2022-07-22T16:04:14.597Z","1.107.0":"2022-08-04T13:29:35.910Z","1.108.0":"2022-08-08T17:19:47.976Z","1.108.1":"2022-08-10T18:18:26.868Z","1.109.0":"2022-08-23T19:18:56.010Z","1.110.0":"2022-08-29T13:48:43.982Z","1.110.1":"2022-08-30T17:49:14.017Z","1.110.2":"2022-08-30T18:17:15.122Z","1.111.0":"2022-09-01T17:01:35.158Z","1.111.1":"2022-09-01T17:15:45.043Z","1.112.0":"2022-09-02T15:53:53.973Z","1.113.0":"2022-09-02T16:24:48.880Z","1.113.1":"2022-09-02T16:58:05.417Z","1.113.2":"2022-09-02T17:09:12.802Z","1.113.3":"2022-09-02T17:18:52.753Z","1.113.4":"2022-09-02T17:53:28.172Z","1.113.5":"2022-09-02T20:30:02.507Z","1.114.0":"2022-09-05T16:41:38.972Z","1.115.0":"2022-09-05T18:40:23.148Z","1.116.0":"2022-09-05T19:04:46.175Z","1.116.1":"2022-09-05T21:23:24.610Z","1.116.2":"2022-09-06T14:10:26.750Z","1.116.3":"2022-09-06T17:08:04.472Z","1.116.4":"2022-09-06T17:53:23.105Z","1.116.5":"2022-09-06T18:59:53.759Z","1.117.0":"2022-09-08T14:12:50.603Z","1.117.1":"2022-09-08T16:25:18.947Z","1.117.2":"2022-09-08T16:48:06.977Z","1.118.0":"2022-09-13T13:57:00.688Z","1.118.1":"2022-09-13T18:13:37.675Z","1.118.2":"2022-09-14T15:26:24.750Z","1.118.3":"2022-09-14T17:25:34.635Z","1.118.4":"2022-09-14T20:42:05.750Z","1.119.0":"2022-09-14T23:21:53.709Z","1.120.0":"2022-09-15T02:41:34.164Z","1.120.1":"2022-09-15T03:11:39.129Z","1.120.2":"2022-09-15T14:18:35.700Z","1.120.3":"2022-09-15T15:35:04.893Z","1.121.0":"2022-09-16T18:23:44.530Z","1.121.1":"2022-09-16T20:25:52.924Z","1.121.2":"2022-09-16T21:01:24.572Z","1.122.0":"2022-09-20T18:05:45.279Z","1.123.0":"2022-09-27T20:06:47.726Z","1.124.0":"2022-09-29T15:17:28.465Z","1.125.0":"2022-09-29T15:31:38.107Z","1.126.0":"2022-10-11T17:42:34.520Z","1.127.0":"2022-10-13T01:15:14.566Z","1.128.0":"2022-10-13T01:34:31.210Z","1.128.1":"2022-10-13T17:41:31.039Z","1.128.2":"2022-10-14T21:03:59.344Z","1.128.3":"2022-10-17T15:17:32.200Z","1.128.4":"2022-10-17T15:47:38.738Z","1.128.5":"2022-10-18T14:43:53.056Z","1.128.6":"2022-10-21T14:27:28.734Z","1.129.0":"2022-10-21T15:14:14.310Z","1.130.0":"2022-10-21T17:00:20.962Z","1.130.1":"2022-11-17T00:12:48.443Z","1.130.2":"2022-11-17T18:30:40.268Z","1.130.3":"2022-11-28T21:06:41.448Z","1.131.0":"2022-11-29T15:16:37.692Z","1.131.1":"2022-12-06T13:30:35.747Z","1.131.2":"2022-12-12T19:25:06.589Z","1.132.0":"2023-02-03T00:11:37.625Z","1.132.1":"2023-02-03T00:31:43.886Z","1.132.2":"2023-02-06T03:03:01.748Z","2.0.0":"2026-04-21T02:41:55.955Z"},"_id":"@abbiamo/ui","name":"@abbiamo/ui","dist-tags":{"latest":"2.0.0"},"versions":{"2.0.0":{"name":"@abbiamo/ui","version":"2.0.0","description":"Abbiamo Design System — React component library","type":"module","license":"UNLICENSED","private":false,"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/abbiamo-log/abbiamo-design-system.git","directory":"packages/abbiamo-ui"},"homepage":"https://github.com/abbiamo-log/abbiamo-design-system#readme","bugs":{"url":"https://github.com/abbiamo-log/abbiamo-design-system/issues"},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs","types":"./dist/index.d.ts"},"./styles":"./dist/styles.css","./tailwind":"./tailwind.config.js"},"sideEffects":["**/*.css"],"scripts":{"build":"vite build && tsc --emitDeclarationOnly --declarationDir dist","dev":"vite build --watch","lint":"eslint src --ext .ts,.tsx","typecheck":"tsc --noEmit","clean":"rm -rf dist","test":"vitest run"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false},"react-dom":{"optional":false}},"devDependencies":{"@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.7.0","autoprefixer":"^10.4.19","jsdom":"^27.0.1","postcss":"^8.4.38","tailwindcss":"^3.4.0","typescript":"^5.4.0","vite":"^5.2.0","vite-plugin-dts":"^4.5.4","vite-plugin-lib-inject-css":"^2.1.0","vitest":"^3.2.4"},"dependencies":{"class-variance-authority":"^0.7.1","clsx":"^2.1.1","tailwind-merge":"^2.3.0"},"keywords":["abbiamo","design-system","react","typescript","tailwind"],"_id":"@abbiamo/ui@2.0.0","gitHead":"c41cdf1d58b1753d61df1972ea4345ed5e06350e","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-vf0Mz8UBPQbMbWyPzS6Jx+UkfzbphblzT3cB5J9Lt9Vy6c/RB6H8mZgYWRMGu0pttFYesXAsgP8pV6qFmN3rBA==","shasum":"9b65fa67cb9bedeb54f8990715c7bc4edd59d601","tarball":"https://registry.npmjs.org/@abbiamo/ui/-/ui-2.0.0.tgz","fileCount":58,"unpackedSize":308546,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGNZbeCjqOAC+Lf+wzIdO4Bk8o9Wf0wojMLO99fUFC22AiEAwVqkpY5b6mZQCUP20r5zg86GGapiggJip152+0KoMwM="}]},"_npmUser":{"name":"abbiamo","email":"dev@abbiamolog.com"},"directories":{},"maintainers":[{"name":"abbiamo","email":"dev@abbiamolog.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui_2.0.0_1776739315809_0.025702268592712185"},"_hasShrinkwrap":false}},"maintainers":[{"name":"abbiamo","email":"dev@abbiamolog.com"}],"description":"Abbiamo Design System — React component library","homepage":"https://github.com/abbiamo-log/abbiamo-design-system#readme","keywords":["abbiamo","design-system","react","typescript","tailwind"],"repository":{"type":"git","url":"git+https://github.com/abbiamo-log/abbiamo-design-system.git","directory":"packages/abbiamo-ui"},"bugs":{"url":"https://github.com/abbiamo-log/abbiamo-design-system/issues"},"license":"UNLICENSED","readme":"# @abbiamo/ui\n\n> Official Abbiamo Design System — React component library for the Abbiamo product family.\n\nBuilt on **React 18 + TypeScript + Tailwind CSS v3**.\nCompatible with **Vite**, **Next.js**, and any React project.\n\n> **New here?** Start with the [main README](../../README.md) for the full 0-to-hero guide, product family overview, and design token reference.\n>\n> **Want to see it visually?** Open [`design-system.html`](./design-system.html) in your browser.\n\n---\n\n## Installation\n\n```bash\nnpm install @abbiamo/ui\n```\n\nConfigure your npm client for the GitHub registry (`.npmrc` in project root):\n\n```ini\n@abbiamo:registry=https://npm.pkg.github.com\n//npm.pkg.github.com/:_authToken=${NPM_TOKEN}\n```\n\nPeer dependencies:\n\n```bash\nnpm install react react-dom\nnpm install -D tailwindcss clsx tailwind-merge class-variance-authority\n```\n\n---\n\n## Setup (2 steps)\n\n### 1. Import styles\n\nOnce in your app root:\n\n```tsx\nimport \"@abbiamo/ui/styles\";\n```\n\n### 2. Extend Tailwind\n\n```ts\n// tailwind.config.ts\nimport abbiamoPreset from \"@abbiamo/ui/tailwind\";\n\nexport default {\n  presets: [abbiamoPreset],\n  content: [\n    \"./src/**/*.{ts,tsx}\",\n    \"./node_modules/@abbiamo/ui/dist/**/*.js\",\n  ],\n};\n```\n\n---\n\n## Usage\n\n```tsx\nimport { Button, Badge, StatCard, Input, Alert, Sidebar, AppShell } from \"@abbiamo/ui\";\n\n// Product-themed — just pass the product prop\n<Button product=\"go\">Start route</Button>\n<Button product=\"pay\" productOutline>View invoice</Button>\n<StatCard label=\"Entregas\" value=\"1.284\" trend={12.5} product=\"group\" />\n\n// Forms\n<Input label=\"CEP\" placeholder=\"00000-000\" error=\"Campo obrigatório\" />\n\n// Alerts\n<Alert variant=\"success\" title=\"Rota criada\">407 CEPs encontrados.</Alert>\n\n// App shell with sidebar\n<AppShell\n  sidebar={\n    <Sidebar\n      product=\"group\"\n      brand={<img src=\"/logo.png\" />}\n      navGroups={[{ items: [...] }]}\n      user={{ name: \"Aurelio\", email: \"aurelio@abbiamolog.com.br\" }}\n    />\n  }\n>\n  {children}\n</AppShell>\n```\n\n---\n\n## Product Colors\n\nEvery component accepts a `product` prop that switches to the correct palette:\n\n| Product | Color | Hex | Use case |\n|---------|-------|-----|----------|\n| `group` | Green | `#6ED796` | Parent brand, admin, multi-product |\n| `go` | Yellow | `#FFE56B` | Routes, fleet, deliveries |\n| `pay` | Blue | `#44B4FF` | Invoices, payments, finance |\n| `engage` | Coral | `#FF7378` | Campaigns, CRM, notifications |\n| `ai` | Purple | `#B47BCB` | Analytics, predictions, AI tools |\n\n---\n\n## Dark Mode\n\n```tsx\nimport { ThemeProvider, ThemeToggle, THEME_SCRIPT } from \"@abbiamo/ui\";\n\n// Prevent flash of unstyled content\n<script dangerouslySetInnerHTML={{ __html: THEME_SCRIPT }} />\n\n<ThemeProvider>\n  <App />\n  <ThemeToggle />\n</ThemeProvider>\n```\n\n---\n\n## Claude Code Skill\n\nInstall the [`/abbiamo-preview`](./claude-skill/README.md) skill to get AI-assisted design compliance:\n\n```bash\ncd claude-skill && ./install.sh\n```\n\nGenerates 2 HTML design alternatives before you build, validates components, and looks up tokens.\n\n---\n\n## Contributing\n\nSee [`CONTRIBUTING.md`](../../CONTRIBUTING.md) for the component authoring checklist.\n\n---\n\n*Abbiamo Design System v1.1*\n","readmeFilename":"README.md"}