Getting StartedInstallation and setup guides 5
LayoutWorkflow and structural layout components 7
OverlayModal and floating layer surfaces 3
FeedbackStatus, empty, progress, and loading placeholder patterns 5
FormInput and selection components 17
UtilityGeneral-purpose interface utilities 7
NavigationMenu surfaces and hierarchical actions 7

API reference

<tng-chips> is a lightweight wrapper around the headless chips primitive. The wrapper owns the root shell; you still project tngChip and tngChipRemove for each pill.

tng-chips

Wrapper attachment

html
<tng-chips
  [values]="selectedTopics()"
  (valuesChange)="onSelectedTopicsChange($event)"
  [ariaLabel]="'Selected topics'"
>
  <div class="topic-chip-row">
    @for (topic of selectedTopics(); track topic) {
      <span tngChip [tngChipValue]="topic" [tngChipLabel]="topic">
        <span>{{ topic }}</span>
        <button tngChipRemove type="button">&times;</button>
      </span>
    }
  </div>
</tng-chips>
PropertyTypeDetails
ariaLabelstring | nullSets the accessible label on the projected chips list root.
disabledbooleanDisables the whole list and blocks projected remove actions.
valuesreadonly unknown[] | undefinedControlled values array used when the wrapper should emit a next array after remove actions.
defaultValuesreadonly unknown[]Seeds the primitive root for uncontrolled setups, though most wrapper usage stays controlled.
chipRemoveoutput<unknown>Emits the removed chip value whenever a projected chip successfully removes itself.
valuesChangeoutput<readonly unknown[]>Emits the next controlled value array after a successful remove action.

Projected chip parts

The wrapper stays small on purpose. Project the chip item and remove control primitives directly so the pill body remains yours.

Projected chip parts

html
<span
  tngChip
  [tngChipValue]="topic"
  [tngChipLabel]="topic"
  [tngChipDisabled]="topic === 'Locked'"
>
  <span>{{ topic }}</span>
  <button tngChipRemove type="button">&times;</button>
</span>
Primitive inputTypeDetails
tngChipValueunknownIdentity for the chip item and the value emitted when it is removed.
tngChipLabelstring | nullAccessible label used for the auto-generated remove button label.
tngChipDisabledbooleanMarks the chip disabled and blocks pointer or keyboard removal.
tngChipRemovablebooleanOpts a projected chip out of removal without disabling the whole row.

Remove control

CapabilityTypeDetails
tngChipRemoveAriaLabelstring | nullOverrides the default “Remove <label>” aria-label when you need custom copy.
Keyboard behaviorEnter / SpacePressing Enter or Space on the remove control removes the owning chip when removal is allowed.
Focus hookdata-focusedApplied while the remove control is focused so you can draw a ring without extra JS.

Primitive foundation

CapabilityAvailabilityGuidance
Root shellWrapper-ownedThe wrapper only owns the outer chips container and forwards the primitive state inputs.
Chip markupProjected primitivesYou still provide the chip body and the remove button markup through projected content.
Headless escape hatchAvailableDrop to headless when you need to own the root element or coordinate chip removal with surrounding inputs.