/Componentes

API Reference

Componentes

Os componentes ficam em apps/web/src/components/ e são organizados por feature — cada pasta agrupa tudo relacionado a um contexto específico da aplicação.

components/
auth/formulários de login e registro
base/wrappers reutilizáveis (Dialog, Dropdown, Table...)
breadcrumb/navegação em migalhas
categories/CRUD de categorias + tabela
chat/painel de IA — mensagens, input, seletor de modelo
collections/formulário de criação de coleções
dashboard/grid de recursos, cards, dialogs de CRUD
docs/componentes exclusivos da documentação
kibo-ui/biblioteca de componentes avançados
calendar/
code-block/
dropzone/
gantt/
image-zoom/
kanban/
list/
tree/
landing/seções da landing page (Hero, FAQ, CTA...)
notes/lista de notas, cards, editor, icon picker
shared/providers globais (Theme, QueryClient) e utilitários
sidebar/sidebar do workspace — nav, user, workspace switcher
tiptap-icons/ícones SVG do editor rich-text
tiptap-ui/UI do editor Tiptap (toolbar, menus)
tiptap-ui-primitive/primitivos baixo nível do editor
tiptap-ui-utils/utilitários do editor
ui/componentes shadcn/ui — base de toda a UI
button.tsx
dialog.tsx
sheet.tsx
drawer.tsx
input.tsx
table.tsx
select.tsx
... e outros
workspace/features específicas do workspace
WorkspaceNavigationMenu.tsx
overview/dashboard e estatísticas
config/configurações de membros e workspace

Regras de organização

Componentes de feature ficam na pasta da feature — notes/, categories/, dashboard/. Cada pasta pode ter uma subpasta hook/ para hooks locais que não precisam ser globais.

Hooks globais ficam em src/hook/ (fora de components/) — são os hooks de TanStack Query compartilhados por múltiplos componentes.

ui/ contém apenas os componentes do shadcn/ui. Não se cria componentes do zero aqui — se o shadcn/ui tem um equivalente, ele é usado.

kibo-ui/ é uma coleção de componentes mais complexos (árvore, kanban, gantt, code block) que complementam o shadcn/ui.

shared/ guarda os providers globais (ThemeProvider, QueryClient) e componentes verdadeiramente reutilizáveis em contextos diferentes como Icon, Logo e Container.