# @pulse-libs/core > Biblioteca universal componentizada — React · Vue · Hooks · Utils · Validators > Um único pacote. Todos os projetos. --- ## 📐 Estrutura atômica ``` @pulse-libs/core ├── types/ Tipos TypeScript compartilhados (zero deps) ├── utils/ Funções puras — date, str, num, classnames, debounce, throttle ├── validators/ Schemas Zod reutilizáveis (email, password, uuid, phone) ├── hooks/ React hooks — useToggle, useAsync, useDebounce, useLocalStorage ├── components/ Componentes atômicos React — Button, Input, Alert, Card, Spinner ├── composable-vue/ Composables Vue 3 ├── composables/ Composables genéricos (agnósticos de framework) ├── lib/ Helpers third-party (sem duplicar lógica) └── constants/ Constantes comuns (status codes, mensagens, etc) ``` ## 🚀 Instalação ```bash npm install @pulse-libs/core zod react vue ``` ```tsx // React — utilitários + componentes import { Button, Input, useAsync, date, cn } from '@pulse-libs/core'; // Validadores import { emailSchema, passwordSchema, safeParse } from '@pulse-libs/core/validators'; // Vue — composables import { useToggle, useLocalStorage } from '@pulse-libs/core/vue'; ``` ## 📦 Sub-exports ```ts import { Button } from '@pulse-libs/core/react'; import { useFetch } from '@pulse-libs/core/hooks'; import { cn, date } from '@pulse-libs/core/utils'; ``` ## 🏗️ Filosofia atômica | Camada | Exemplo | Depende de | |--------|---------|------------| | **Utils** | `cn()`, `debounce()`, `date.format()` | zero | | **Types** | `Result`, `AsyncState` | zero | | **Validators** | `emailSchema`, `uuidSchema` | utils, types, zod | | **Hooks** | `useAsync()`, `useDebounce()` | utils, types, react | | **Components** | `Button`, `Input`, `Alert` | utils, validators | > **Regra de ouro**: uma camada nunca importa de uma camada de nível inferior. > Utils não sabe que Hooks existem. Hooks não sabe que Components existem. ## 🔄 Versionamento - `1.0.0-beta.x` — desenvolvimento, API pode mudar - `1.0.0` — primeiro release estável, API congelada ## 🤝 Contribuir Ver [CONTRIBUTING.md](CONTRIBUTING.md).