- Use
plain-cssin user-facing names/docs (playground-plain-css).
accordioncoversexpansion-paneldrawercoverssidenav,sidebar,sheetswitchcoversslide-toggleprogress-spinnercoversspinnertoastwill coversnackbarandsonner
| Component | Unstyled (npm) | Styled (npm) | Registry CLI |
|---|---|---|---|
| Accordion | @tailng-ui/primitives (TngAccordion, TngAccordionItem, TngAccordionTrigger, TngAccordionContent) |
@tailng-ui/components (same names) |
npx tailng add accordion |
| Autocomplete | @tailng-ui/primitives (TngAutocomplete, TngAutocompleteInput, TngAutocompletePanel, TngAutocompleteOption) |
@tailng-ui/components |
npx tailng add autocomplete |
| Combobox | @tailng-ui/primitives (TngCombobox, TngComboboxInput, TngComboboxPanel, TngComboboxOption) |
@tailng-ui/components |
npx tailng add combobox |
| Grid | @tailng-ui/primitives (TngGrid, TngGridRow, TngGridCell) |
@tailng-ui/components |
npx tailng add grid |
| Listbox | @tailng-ui/primitives (TngListbox, TngListboxOption) |
@tailng-ui/components |
npx tailng add listbox |
| Menu | @tailng-ui/primitives (TngMenu, TngMenuTrigger, TngMenuItem) |
@tailng-ui/components |
npx tailng add menu |
| Menubar | @tailng-ui/primitives (TngMenubar, TngMenubarItem, TngMenubarTrigger) |
@tailng-ui/components |
npx tailng add menubar |
| Multiselect | @tailng-ui/primitives (TngMultiselect, TngMultiselectOption) |
@tailng-ui/components |
npx tailng add multiselect |
| Select | @tailng-ui/primitives (TngSelect, TngSelectTrigger, TngSelectOption) |
@tailng-ui/components |
npx tailng add select |
| Tabs | @tailng-ui/primitives (TngTabs, TngTabList, TngTab, TngTabPanel) |
@tailng-ui/components |
npx tailng add tabs |
| Toolbar | @tailng-ui/primitives (TngToolbar, TngToolbarItem) |
@tailng-ui/components |
npx tailng add toolbar |
| Tree | @tailng-ui/primitives (TngTree, TngTreeItem) |
@tailng-ui/components |
npx tailng add tree |
- Primitives source:
/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng-ui/primitives/src/lib/<component>/ - Components source:
/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng-ui/components/src/lib/<category>/<component>/(categories: navigation, form, layout, overlay, feedback, utility) - Registry source templates:
/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng-ui/registry/src/lib/<component>/ - CLI wiring:
/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng/cli/src/ - Barrel exports:
/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng-ui/primitives/src/index.ts/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng-ui/components/src/index.ts/Users/prince/Tociva/Projects/tailng/tailng3/tailng3/libs/tailng-ui/registry/src/index.ts
- Each primitive gets one adapter file:
aria-adapter.ts. - Only
aria-adapter.tsimports@angular/aria(exact subpaths finalized from package exports). - Wrapper components never implement keyboard/focus/role logic directly.
- Accordion
- Tabs
- Menu
- Toolbar
- Menubar
- Listbox
- Select
- Combobox
- Autocomplete
- Multiselect
- Grid
- Tree
- Primitive wrapper complete (ARIA delegated, no custom a11y engine).
- Styled component complete (theme hooks + variants only).
- Registry templates added (
npx tailng add <component>works). - Playground pages added in tailwind + plain-css apps.
- Tests added for primitives, components, registry, CLI generation.
pnpm lintandpnpm testpass with zero warnings.