npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@mahiraltinkaya/me-ui

v0.2.0

Published

Copy React + Tailwind form components into any project — they become your files, not a dependency.

Readme

me-ui

Copies the design system's components into your project. They land as your files — edit them, restyle them, delete the parts you do not need. Nothing is imported from node_modules at runtime, so there is no version to keep in step and no wrapper to fight when a screen needs something slightly different.

npx @mahiraltinkaya/me-ui add input

Commands

npx @mahiraltinkaya/me-ui add <item…>     # copy items and everything they depend on
npx @mahiraltinkaya/me-ui list            # show every item

| Option | | | ------------------ | ---------------------------------------------------- | | -c, --cwd <path> | project to install into (default: current directory) | | -o, --overwrite | replace files that already exist | | --dry-run | show what would happen, write nothing | | --skip-install | do not run the package manager |

Existing files are never replaced silently. A file you have edited is reported and left alone until you pass --overwrite, so re-running add to pick up a dependency cannot cost you local changes.

Items

| Item | What it is | | ------------------ | ------------------------------------------------------------------ | | utils | cn — clsx piped through tailwind-merge. | | brand-theme | The --brand token the fields paint focus and error states with. | | field-hint | Focus-driven explanatory panel anchored to a field. | | input | Text field with optional leading icon and hint. | | select | Dropdown over a string list, matching input's affordances. | | button | Button with cva variant and size sets. | | tooltip | Tooltip provider, root, trigger and content. | | stepper | Progress rail for multi-step flows. | | stepper-provider | Step state, next/back guards and the useStepper hook. | | step-field | Label, control and validation message. | | form-fields | FormInput and FormSelect, bound to react-hook-form. | | normalize | digits — strips everything that is not a digit. | | tckn | T.C. kimlik no validation, check digits included. | | quote-schema | Zod schemas for the quote flow, plus per-step fields and defaults. |

Dependencies resolve on their own — me-ui add form-fields also brings input, select, step-field, cn, the npm packages and the --brand token.

Where files land

A components.json is honoured when the project has one, so files follow the aliases the rest of its UI already uses. Otherwise the CLI reads tsconfig.json paths, falling back to the src/ convention:

| Registry path | Default destination | | ----------------- | --------------------- | | components/ui/… | src/components/ui/… | | components/… | src/components/… | | lib/… | src/lib/… |

Imports inside the copied files are rewritten to match, whatever the aliases are.

What the project needs first

  • React 19 and Tailwind CSS v4.
  • A shadcn base theme. The components style against --border, --input, --muted-foreground and friends. add warns about any that are missing — npx shadcn@latest init is the quickest way to get them.

Publishing

Public package on npmjs.com — anyone can run npx @mahiraltinkaya/me-ui without an account or a token.

bun run ui:sync                 # from the repo root, after changing any component
cd packages/me-ui
npm version patch               # npm refuses to overwrite a published version
npm publish

prepublishOnly re-checks that registry/ still matches the app it was copied from, so a stale component cannot ship.

Copied files do not update themselves — that is the point of copying rather than importing. To take a newer version of a component:

npx @mahiraltinkaya/me-ui@latest add input --overwrite

@latest matters because npx will otherwise happily reuse a cached older build, and --overwrite matters because add protects existing files by default. Run it with --dry-run first if the file has local edits worth keeping.