API Reference — TypeScript
A curated per-package reference (TypeScript 5.6+ strict). Each page documents types, hooks, components, and utilities.
Recent note:
@arqel-dev/uiwas migrated to shadcn/ui (variantnew-york) with primitives based on Radix UI (theradix-uipackage). The shadcn components are copied to the app via@arqel-dev/uire-export; CSS tokens follow the shadcn convention (--background,--foreground,--primary,--radius, etc.).
Packages
| Package | Contents | Page |
|---|---|---|
@arqel-dev/types | Discriminated unions for FieldType/ColumnType/FilterType, FormSchema, ResourceMeta, SharedProps | Types → |
@arqel-dev/react | createArqelApp, <ArqelProvider>, contexts, utilities | React → |
@arqel-dev/hooks | 10+ hooks (useResource, useArqelForm, useTable, useNavigation, useFlash, useCanAccess, etc.) | Hooks → |
@arqel-dev/ui | Shell, Table, Form, Action, Flash, Utility components + shadcn (Radix) primitives + FieldRegistry | UI → |
@arqel-dev/auth | Inertia pages (Login, Register, ForgotPassword, ResetPassword, VerifyEmail) + form helpers | (stub) |
@arqel-dev/fields | 21 rich inputs registered via FieldRegistry + slugify helper | Fields → |
@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: truein every tsconfig (extendstsconfig.base.json)- Subpath exports declared in
package.json→ tree-shake friendly. Never import fromdist/directly peerDependenciesfor React 19+ and@inertiajs/react2+ — apps control the version- Build via
tsup— ESM only,.d.tsgenerated, sourcemaps included - Side-effects:
falsein every package except@arqel-dev/fields(which declaressideEffects: ['./dist/register.js']for automatic registration) - Tests via Vitest + jsdom +
@testing-library/react— type-level viaexpect-type
Auto-generation (TODO)
As with the PHP reference, this documentation is manually curated. Auto-generation via TypeDoc ships as a follow-up:
# .github/workflows/docs-deploy.yml (future)
- name: Generate TypeDoc
run: typedoc --out apps/docs/reference/typescript/_generated packages-js/*/src/index.tsThe DOCS-006 criteria ("Types/interfaces/hooks/components documented via TSDoc", "integrated search") covered by auto-generation remain pending until that PR.
Related
- PHP: API Reference PHP
- Source:
packages-js/