---
package: "@webjsdev/ui"
version: 0.2.0
date: 2026-05-20T20:56:37+05:30
commit_count: 6
---
## Features

- **add tier classifier for registry items** [`f263510`](https://github.com/webjsdev/webjs/commit/f263510)
  New _lib/tier.ts module exports TIER_2_NAMES (the 12 stateful custom
  elements), tierOf(item), and splitByTier(items). Kept outside the
  *.server.ts RPC-stub rewrite path so the helper can be imported from
  any context.
- **split homepage component grid by tier** [`7a7fc2b`](https://github.com/webjsdev/webjs/commit/7a7fc2b)
  The 'All components' section now renders two grouped grids — Tier 1
  class helpers (20) above Tier 2 custom elements (12) — with intro
  copy clarifying the composition model and a hint to pick Tier 1 by
  default. Uses splitByTier() from the helper added in f2ba5c4.
- **split docs sidenav components list by tier** [`542e638`](https://github.com/webjsdev/webjs/commit/542e638)
  Sidenav now renders two grouped sections — 'Tier 1 · Class helpers'
  (20 components) and 'Tier 2 · Custom elements' (12 components) —
  with per-section counts. Each section's items are alphabetical
  within the tier. Uses the splitByTier() helper from f2ba5c4.
- **native-HTML rewrite of stateful primitives + shadcn-API sweep** ([#5](https://github.com/webjsdev/webjs/pull/5)) [`f6a9dbf`](https://github.com/webjsdev/webjs/commit/f6a9dbf)
  Eight registry components now lean on native HTML primitives instead of
  hand-rolled JS. Three drop their custom elements entirely; five keep a
  thin custom-element wrapper around the platform feature.
- **Tier-2 components -> WebComponent + render() + <slot> (rebased)** ([#28](https://github.com/webjsdev/webjs/pull/28)) [`09a296e`](https://github.com/webjsdev/webjs/commit/09a296e)
  * refactor(ui): toggle.ts -> WebComponent + render() + <slot>
  
  First Tier-2 component converted from extends Base to extends
  WebComponent. This is the pattern-locking conversion; remaining

## Fixes

- **rewrite registry '../lib/utils.ts' imports on add** [`aed0f53`](https://github.com/webjsdev/webjs/commit/aed0f53)
  Registry components import cn from '../lib/utils.ts' (matching the
  registry's own layout, where components live one level beside the
  utils file). When 'webjs ui add <name>' fetches a component over
  HTTP and writes it to the user's components/ui/<name>.ts, the
