Skip to content

API Reference — TypeScript

A curated per-package reference (TypeScript 5.6+ strict). Each page documents types, hooks, components, and utilities.

Recent note: @arqel-dev/ui was migrated to shadcn/ui (variant new-york) with primitives based on Radix UI (the radix-ui package). The shadcn components are copied to the app via @arqel-dev/ui re-export; CSS tokens follow the shadcn convention (--background, --foreground, --primary, --radius, etc.).

Packages

PackageContentsPage
@arqel-dev/typesDiscriminated unions for 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 + shadcn (Radix) primitives + FieldRegistryUI →
@arqel-dev/authInertia pages (Login, Register, ForgotPassword, ResetPassword, VerifyEmail) + form helpers(stub)
@arqel-dev/fields21 rich inputs registered via FieldRegistry + slugify helperFields →
@arqel-dev/theme<ThemeProvider>, useTheme(), shadcn tokens (light/dark/system)(stub)

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

General conventions

  • strict: true + noUncheckedIndexedAccess: true + exactOptionalPropertyTypes: true in every tsconfig (extends tsconfig.base.json)
  • Subpath exports declared in package.json → tree-shake friendly. Never import from dist/ directly
  • peerDependencies for React 19+ and @inertiajs/react 2+ — apps control the version
  • Build via tsup — ESM only, .d.ts generated, sourcemaps included
  • Side-effects: false in every package except @arqel-dev/fields (which declares sideEffects: ['./dist/register.js'] for automatic registration)
  • Tests via Vitest + jsdom + @testing-library/react — type-level via expect-type

Auto-generation (TODO)

As with the PHP reference, this documentation is manually curated. Auto-generation via TypeDoc ships as a follow-up:

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

The DOCS-006 criteria ("Types/interfaces/hooks/components documented via TSDoc", "integrated search") covered by auto-generation remain pending until that PR.

MIT License — built with Inertia + React + Laravel.