Getting StartedOwnable model, workflow, and first local install 2
LayoutInstallable layout wrappers with local source ownership 6
OverlayInstallable overlay wrappers with local source ownership 3
FeedbackInstallable feedback wrappers with local source ownership 5
FormInstallable form components 11
UtilityInstallable utility wrappers with local source ownership 6
NavigationInstallable navigation components 6
ToolingCLI and registry contracts 2
ReleasePublishing and workflow structure for the ownable surface 1

Table

The ownable Table install gives your app local source for column rendering, empty states, density decisions, sticky cells, and product-specific row actions.

Why own Table locally

  • Keep column metadata, custom cell slots, and row action styling near your feature.
  • Adapt loading, empty, and error states to the surrounding workflow.
  • Version sticky columns, density, and sorting behavior beside the data model.

Ownable Install

Install Table from the TailNG registry with the shadcn-like flow. This copies source files into your app so your team can own and evolve the implementation locally.

Install from registry

Run from your Angular workspace root.

pnpm

bash
pnpm dlx tailng add table

Generated files

The command scaffolds local files under src/app/tailng-ui/table.

  • src/app/tailng-ui/table/tng-table-primitive.ts
  • src/app/tailng-ui/table/tng-table.ts
  • src/app/tailng-ui/table/tng-table.html
  • src/app/tailng-ui/table/tng-table.css
  • src/app/tailng-ui/table/index.ts

Import in your feature module/component

Imports

ts
import { TngTable, TngTablePrimitive } from './tailng-ui/table';

Usage

Template usage

html
<tng-table
  ariaLabel="Release services"
  [columns]="columns"
  [items]="rows"
  [stickyHeader]="true"
  (sortChange)="sortRows($event)"
/>