Skip to content

API Reference — TypeScript

Referência curada por pacote (TypeScript 5.6+ strict). Cada página documenta types, hooks, components e utilities.

Nota recente: @arqel-dev/ui foi migrado para shadcn/ui (variante new-york) com primitivas baseadas em Radix UI (radix-ui package). Os componentes shadcn são copiados ao app via @arqel-dev/ui re-export; tokens CSS seguem a convenção shadcn (--background, --foreground, --primary, --radius, etc.).

Pacotes

PacoteConteúdoPágina
@arqel-dev/typesDiscriminated unions de FieldType/ColumnType/FilterType, FormSchema, ResourceMeta, SharedPropsTypes →
@arqel-dev/reactcreateArqelApp, <ArqelProvider>, contexts, utilitiesReact →
@arqel-dev/hooks10+ hooks (useResource, useArqelForm, useTable, useNavigation, useFlash, useCanAccess, etc.)Hooks →
@arqel-dev/uiShell, Table, Form, Action, Flash, Utility components + primitivas shadcn (Radix) + FieldRegistryUI →
@arqel-dev/authPages Inertia (Login, Register, ForgotPassword, ResetPassword, VerifyEmail) + form helpers(stub)
@arqel-dev/fields21 rich inputs registrados via FieldRegistry + helper slugifyFields →
@arqel-dev/theme<ThemeProvider>, useTheme(), tokens shadcn (light/dark/system)(stub)

Total: 7 pacotes JS (types, react, hooks, ui, auth, fields, theme).

Convenções gerais

  • strict: true + noUncheckedIndexedAccess: true + exactOptionalPropertyTypes: true em todos os tsconfigs (extends tsconfig.base.json)
  • Subpath exports declarados em package.json → tree-shake friendly. Nunca importar de dist/ directamente
  • peerDependencies para React 19+ e @inertiajs/react 2+ — apps controlam a versão
  • Build via tsup — ESM only, .d.ts gerado, sourcemaps incluídos
  • Side-effects: false em todos os pacotes excepto @arqel-dev/fields (que declara sideEffects: ['./dist/register.js'] para o registo automático)
  • Testes via Vitest + jsdom + @testing-library/react — type-level via expect-type

Geração automática (TODO)

Como na referência PHP, esta documentação é curada manualmente. Auto-geração via TypeDoc chega como follow-up:

yaml
# .github/workflows/docs-deploy.yml (futuro)
- name: Generate TypeDoc
  run: typedoc --out apps/docs/reference/typescript/_generated packages-js/*/src/index.ts

Os critérios de DOCS-006 ("Types/interfaces/hooks/components documentados via TSDoc", "search integrado") cobertos pela auto-geração ficam pendentes até esse PR.

Licença MIT — construído com Inertia + React + Laravel.