JaleelB/emblor
JaleelB/emblor has 1,214 GitHub stars and 51 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 07:42 UTC. Last push 2026-09-23.
A fully-featured tag input component built with shadcn/ui
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalEmblor
Emblor v2 is a headless tag-input primitive. It owns tag and draft state, keyboard behavior, validation, focus coordination, native forms, and accessible announcements. Consumers own markup and styling.
import {
EmblorClear,
EmblorInput,
EmblorLabel,
EmblorRoot,
EmblorTag,
EmblorTagList,
EmblorTagRemove,
EmblorTagText,
} from 'emblor';
<EmblorRoot defaultValue={['react']} name="skills">
<EmblorLabel>Skills</EmblorLabel>
<EmblorTagList>
{(tag, index) => (
<EmblorTag key={tag} index={index}>
<EmblorTagText />
<EmblorTagRemove />
</EmblorTag>
)}
</EmblorTagList>
<EmblorInput placeholder="Add a skill" />
<EmblorClear>Clear</EmblorClear>
</EmblorRoot>;
Import all supported parts from the package root. The compound API requires exactly one EmblorInput; EmblorTagList is optional. Use value/onValueChange or defaultValue for string[] tags. Draft control, when needed, lives on Root through inputValue, defaultInputValue, and onInputValueChange.
Enter commits, literal delimiters default to [','], addOnTab opts into Tab commits, addOnPaste defaults to true, and blurBehavior defaults to 'noop'. transform runs before length, duplicate, capacity, and boolean validate checks. onReject receives structured rejection details; pasted values are evaluated left-to-right and accepted in one batch transition.
With name, committed tags submit as ordered repeated native form values. required means at least one committed tag. Labels associate automatically, actions remain accessible under as polymorphism, and every part forwards applicable DOM/ARIA/data/style/event props. Consumers own React keys and optional tag IDs. The example uses the value as its key because duplicates are disabled; consumers enabling duplicates should maintain stable occurrence IDs alongside their string[].
The package intentionally excludes autocomplete, cmdk, popovers, sorting, drag-and-drop, Tailwind, CVA, and styling runtimes. See packages/emblor/README.md for the full contract and packages/emblor/MIGRATION.md for v1 migration.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,398 starspublic-apis/public-apis
A collective list of free APIs
497,679 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
447,495 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,261 stars