{"_id":"@by2-ai/calangoui","_rev":"2-4b198af068f522fe87d6522136868f1f","name":"@by2-ai/calangoui","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@by2-ai/calangoui","version":"0.1.0","keywords":["react","design-system","ui","oled","dark-mode","styled-components","radix-ui","typescript"],"license":"MIT","_id":"@by2-ai/calangoui@0.1.0","maintainers":[{"name":"by2-studio","email":"by2.studio.ai@gmail.com"}],"dist":{"shasum":"d7251ff4e940d3a675ee38e4becb3c7bb7e327ae","tarball":"https://registry.npmjs.org/@by2-ai/calangoui/-/calangoui-0.1.0.tgz","fileCount":20,"integrity":"sha512-cWAYmsmUP6TWC46Kg5iFWWEkI+jp+4zIYydrmCBffg9CcyoHnW1K5MvoLDp5pPThj+eCQwCOVUaY7Pw6CxXYNA==","signatures":[{"sig":"MEYCIQDgvqIFqBvbNldM7veUoidO15RfOkc8PkLEj21NlsBzNwIhAL6iJVuMTsPojj49h7rLACPN7r+GNL3PR/dO1pzJAeZw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":723442},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./theme":{"import":{"types":"./dist/theme/index.d.ts","default":"./dist/theme.js"},"require":{"types":"./dist/theme/index.d.ts","default":"./dist/theme.cjs"}},"./tokens":{"import":{"types":"./dist/tokens/index.d.ts","default":"./dist/tokens.js"},"require":{"types":"./dist/tokens/index.d.ts","default":"./dist/tokens.cjs"}}},"gitHead":"9dadcc2751ad9c06a3240e64be86d414f40c9a4f","scripts":{"dev":"vite","lint":"tsc --noEmit","test":"vitest run","build":"tsc --noEmit && vite build","storybook":"storybook dev -p 6006","test:watch":"vitest","build-storybook":"storybook build"},"_npmUser":{"name":"by2-studio","email":"by2.studio.ai@gmail.com"},"_npmVersion":"11.6.1","description":"A dark-first, minimalist React design system with OLED aesthetics","directories":{},"sideEffects":false,"_nodeVersion":"24.9.0","dependencies":{"recharts":"^3.8.1","react-icons":"^5.6.0","react-input-mask":"^2.0.4","@radix-ui/react-slot":"^1.1.0","@radix-ui/react-tabs":"^1.1.0","@radix-ui/react-toast":"^1.2.0","@radix-ui/react-avatar":"^1.1.0","@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-select":"^2.1.0","@radix-ui/react-slider":"^1.2.0","@radix-ui/react-switch":"^1.1.0","@radix-ui/react-popover":"^1.1.0","@radix-ui/react-tooltip":"^1.1.0","@radix-ui/react-checkbox":"^1.1.0","@radix-ui/react-accordion":"^1.2.0","@radix-ui/react-separator":"^1.1.0","@radix-ui/react-hover-card":"^1.1.0","@radix-ui/react-collapsible":"^1.1.0","@radix-ui/react-radio-group":"^1.2.0","@radix-ui/react-scroll-area":"^1.2.0","@radix-ui/react-alert-dialog":"^1.1.0","@radix-ui/react-aspect-ratio":"^1.1.0","@radix-ui/react-context-menu":"^2.2.0","@radix-ui/react-dropdown-menu":"^2.1.0","@radix-ui/react-navigation-menu":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.0","jsdom":"^25.0.0","react":"^19.0.0","vitest":"^2.1.0","react-dom":"^19.0.0","storybook":"^8.4.0","typescript":"^5.7.0","@types/node":"^25.5.2","@types/react":"^19.0.0","vite-plugin-dts":"^4.3.0","@storybook/react":"^8.4.0","@types/react-dom":"^19.0.0","styled-components":"^6.1.0","@storybook/react-vite":"^8.4.0","@testing-library/react":"^16.1.0","@types/react-input-mask":"^3.0.6","@testing-library/jest-dom":"^6.6.0","@storybook/addon-essentials":"^8.4.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","styled-components":">=6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/calangoui_0.1.0_1775672773801_0.20634085606272445","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@by2-ai/calangoui","version":"0.1.2","description":"A dark-first, minimalist React design system with OLED aesthetics","repository":{"type":"git","url":"git+https://github.com/by2-studio/calangoui.git"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./tokens":{"import":{"types":"./dist/tokens/index.d.ts","default":"./dist/tokens.js"},"require":{"types":"./dist/tokens/index.d.ts","default":"./dist/tokens.cjs"}},"./theme":{"import":{"types":"./dist/theme/index.d.ts","default":"./dist/theme.js"},"require":{"types":"./dist/theme/index.d.ts","default":"./dist/theme.cjs"}}},"scripts":{"dev":"vite","build":"tsc --noEmit && vite build","test":"vitest run","test:watch":"vitest","storybook":"storybook dev -p 6006","build-storybook":"storybook build","lint":"tsc --noEmit"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0","styled-components":">=6.0.0"},"dependencies":{"@radix-ui/react-accordion":"^1.2.0","@radix-ui/react-alert-dialog":"^1.1.0","@radix-ui/react-aspect-ratio":"^1.1.0","@radix-ui/react-avatar":"^1.1.0","@radix-ui/react-checkbox":"^1.1.0","@radix-ui/react-collapsible":"^1.1.0","@radix-ui/react-context-menu":"^2.2.0","@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-dropdown-menu":"^2.1.0","@radix-ui/react-hover-card":"^1.1.0","@radix-ui/react-navigation-menu":"^1.2.0","@radix-ui/react-popover":"^1.1.0","@radix-ui/react-radio-group":"^1.2.0","@radix-ui/react-scroll-area":"^1.2.0","@radix-ui/react-select":"^2.1.0","@radix-ui/react-separator":"^1.1.0","@radix-ui/react-slider":"^1.2.0","@radix-ui/react-slot":"^1.1.0","@radix-ui/react-switch":"^1.1.0","@radix-ui/react-tabs":"^1.1.0","@radix-ui/react-toast":"^1.2.0","@radix-ui/react-tooltip":"^1.1.0","react-icons":"^5.6.0","react-input-mask":"^2.0.4","recharts":"^3.8.1"},"devDependencies":{"@storybook/addon-essentials":"^8.4.0","@storybook/react":"^8.4.0","@storybook/react-vite":"^8.4.0","@testing-library/jest-dom":"^6.6.0","@testing-library/react":"^16.1.0","@types/node":"^25.5.2","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","@types/react-input-mask":"^3.0.6","jsdom":"^25.0.0","react":"^19.0.0","react-dom":"^19.0.0","storybook":"^8.4.0","styled-components":"^6.1.0","typescript":"^5.7.0","vite":"^6.0.0","vite-plugin-dts":"^4.3.0","vitest":"^2.1.0"},"sideEffects":false,"license":"MIT","keywords":["react","design-system","ui","oled","dark-mode","styled-components","radix-ui","typescript"],"_id":"@by2-ai/calangoui@0.1.2","gitHead":"914f2fe0a80086abb6bf937f19f3a599a119cb2a","bugs":{"url":"https://github.com/by2-studio/calangoui/issues"},"homepage":"https://github.com/by2-studio/calangoui#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-+0PxTgQ9Ok1OA/LeR7cssSX5BI5Yg8+cjzuS3ZMXMYz1tcDI7OOrDjZ/bm09Emv99Ti3wUhLs8I7+5IOYbdfnw==","shasum":"d5cb98d3b6696ca78ffcf2197c060fd7047bd222","tarball":"https://registry.npmjs.org/@by2-ai/calangoui/-/calangoui-0.1.2.tgz","fileCount":21,"unpackedSize":726737,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@by2-ai%2fcalangoui@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDo8VsO6Do3NlFJWE5myJWbBy0usAqTd+Pypfhz/H09awIhAMlLhY3Mjd4DlX8ibJVmw0sPsLptgW4Pi7lxF+mGRXSa"}]},"_npmUser":{"name":"by2-studio","email":"by2.studio.ai@gmail.com"},"directories":{},"maintainers":[{"name":"by2-studio","email":"by2.studio.ai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/calangoui_0.1.2_1775675172291_0.73831129393033"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-08T18:26:13.666Z","modified":"2026-04-08T19:06:12.816Z","0.1.0":"2026-04-08T18:26:13.947Z","0.1.2":"2026-04-08T19:06:12.439Z"},"license":"MIT","keywords":["react","design-system","ui","oled","dark-mode","styled-components","radix-ui","typescript"],"description":"A dark-first, minimalist React design system with OLED aesthetics","maintainers":[{"name":"by2-studio","email":"by2.studio.ai@gmail.com"}],"readme":"# CalangoUI (SDK) — AI First Design System\n\nUm design system React feito para a era de IA: cada componente tem especificação “machine-readable”, então LLMs/agents conseguem gerar UI correta e on-brand a partir de linguagem natural. Construído com **styled-components**, **Radix UI** e **TypeScript** — com um **MCP server** nativo para consultar componentes, tokens e exemplos.\n\n- Docs (web): https://calangoui.by2.com.br\n- Referência para LLMs (markdown completo): https://calangoui.by2.com.br/llm\n- Repositório: https://github.com/by2-studio/calangoui\n\n---\n\n## Instalação\n\n```bash\nnpm i @by2-ai/calangoui styled-components\n```\n\n**Peer dependencies**\n- `react` >= 18\n- `react-dom` >= 18\n- `styled-components` >= 6\n\n> O SDK também inclui componentes de **charts** (via `recharts`) e **ícones** (via `react-icons`).\n\n---\n\n## Quickstart (React)\n\n```tsx\nimport { CalangoUIProvider, Button } from '@by2-ai/calangoui';\n\nexport function App() {\n  return (\n    <CalangoUIProvider defaultTheme=\"system\">\n      <Button>Olá, Calango</Button>\n    </CalangoUIProvider>\n  );\n}\n```\n\n### Tema e tokens\n\n- Troca de tema e leitura do estado: `useTheme()`\n- Criação/override de tema: `createTheme()`\n- Tokens: `@by2-ai/calangoui/tokens`\n\nExemplo (tokens):\n\n```ts\nimport { colors, spacing, typography } from '@by2-ai/calangoui/tokens';\n```\n\n---\n\n## AI-first: MCP e “/llm”\n\n### 1) Usar a referência `/llm`\n\nA página https://calangoui.by2.com.br/llm contém a referência completa (componentes, tokens e padrões) em Markdown, ideal para colar em prompts, RAG, ou ferramentas de indexação.\n\n### 2) Usar o MCP server (para agentes)\n\nEste repo inclui um servidor MCP em `mcp-server/` que expõe ferramentas como:\n- `list_components`\n- `get_component`\n- `get_tokens`\n- `search_components`\n\nRodar localmente (stdio transport):\n\n```bash\nmake mcp\n# ou\ncd mcp-server\nnpm install\nnpm run build\nnode dist/index.js\n```\n\nConfig rápido (ex.: Cursor em `.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"calangoui\": {\n      \"command\": \"node\",\n      \"args\": [\"/absolute/path/to/calangoui-sdk/mcp-server/dist/index.js\"]\n    }\n  }\n}\n```\n\n---\n\n## Desenvolvimento (este monorepo)\n\n### Scripts do SDK (raiz)\n\n```bash\nnpm run build       # build do pacote\nnpm test            # vitest (se houver testes)\nnpm run storybook   # storybook\n```\n\n### Docs app (Vite)\n\n```bash\nmake docs\n# ou\ncd docs-app\nnpm install\nnpm run dev\n```\n\n---\n\n## Estrutura do repositório\n\n- `src/`: o SDK (componentes, tokens, tema)\n- `docs-app/`: app de documentação (Vite)\n- `mcp-server/`: MCP server para agentes\n\n---\n\n## Nota sobre imports neste repo\n\n- **Para consumidores via npm:** importe do pacote publicado `@by2-ai/calangoui`.\n- **Dentro do `docs-app/`:** existe uma dependência local chamada `calangoui` (`\"calangoui\": \"file:..\"`), então alguns exemplos internos usam `import ... from 'calangoui'`.\n\n---\n\n## Release\n\nO workflow manual “Release & Publish” em `.github/workflows/publish.yml` faz:\n- `npm ci` → `npm test` (se houver arquivos `src/**/*.test.ts[x]`) → `npm run build`\n- bump de versão (`patch|minor|major`) + tag + GitHub Release\n- `npm publish --provenance --access public`\n\n---\n\n## Licença\n\nMIT\n","readmeFilename":"README.md","homepage":"https://github.com/by2-studio/calangoui#readme","repository":{"type":"git","url":"git+https://github.com/by2-studio/calangoui.git"},"bugs":{"url":"https://github.com/by2-studio/calangoui/issues"}}