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

@jsarc/native-mda-svgicons

v0.0.1-beta.1.0

Published

NATIVE MDA-SVGICONS fournit les icônes MDA sous forme de composants react-native-svg (variantes solid et outline), avec import par sous-chemin et une taille (size) pouvant être responsive.

Readme

@jsarc/native-mda-svgicons

License TypeScript React Native Expo

@jsarc/native-mda-svgicons est un jeu d'icônes SVG React Native (react-native-svg) optimisé et tree-shakeable, généré depuis mda-icons/icons.json. Jumeau natif de mda-svgicons — mêmes données, mêmes noms. Publié selon la convention des plugins @jsarc/* : source TypeScript à la racine (main: index.ts) + miroir compilé js/.

📦 Installation

Via npm/yarn/pnpm

npm install @jsarc/native-mda-svgicons react react-native react-native-svg
# ou
yarn add @jsarc/native-mda-svgicons react react-native react-native-svg
# ou
pnpm add @jsarc/native-mda-svgicons react react-native react-native-svg

Projet Expo

npm install @jsarc/native-mda-svgicons
npx expo install react-native-svg

Dépendances requises

  • React 18+
  • React Native 0.7+ (Expo 50+ compatible)
  • react-native-svg 13+ (déjà présent dans native-arcjs-app)
  • TypeScript 5.0+ (recommandé)

🚀 Démarrage rapide

import { SvgIcon, IconStyle } from '@jsarc/native-mda-svgicons';
import home from '@jsarc/native-mda-svgicons/icons/home';   // importer seulement l'utile

export function Demo() {
  return (
    <>
      <SvgIcon icon={home} size={13} color="#1976d2" />
      <SvgIcon icon={home} variant="outline" />

      {/* Hérite couleur + taille du contexte (≈ currentColor + font-size) */}
      <IconStyle color="#1976d2" size={28}>
        <SvgIcon icon={home} />
      </IconStyle>
    </>
  );
}

Par nom (tire le registre complet)

Metro n'a pas d'import.meta.glob, donc ceci embarque toutes les icônes — réservé aux sélecteurs / icônes data-driven :

import { DynamicIcon } from '@jsarc/native-mda-svgicons/dynamic';

<DynamicIcon name="home" />
<DynamicIcon name="st-home" />     {/* préfixe st- → variant outline */}

import { getIcon } from '@jsarc/native-mda-svgicons/all';
import { ICON_NAMES } from '@jsarc/native-mda-svgicons/names';

Props de SvgIcon

| Prop | Type | Défaut | Description | |------|------|--------|-------------| | icon | IconData | — | Données importées (import home from '@jsarc/native-mda-svgicons/icons/home') | | size | number | hérité IconStyle (15) | Hauteur visuelle (largeur au ratio du glyphe) | | color | string | hérité IconStyle | Couleur de remplissage / trait | | variant | 'solid' \| 'outline' | 'solid' | Plein ou contour (reproduit les jumelles st-*) | | strokeWidth | number | 32 | Épaisseur du trait en unités viewBox (outline) |

✨ Pourquoi c'est optimisé

  • Un module de données par icône (icons/<name>.ts) : sous Metro (sans tree-shaking), importer un glyphe directement est le seul moyen d'éviter d'embarquer les 2583.
  • Solid + outline = une seule entrée : la jumelle contour (st-*) est reproduite au rendu via variant (fill:none; stroke; stroke-width:32; round).
  • Contexte IconStyle remplaçant currentColor + font-size : couleur et taille héritent du plus proche <IconStyle>.

🛠️ (Re)génération

npm run build     # node ../mda-icons/build-svgicons.mjs (écrit les deux packages)

📁 Structure (plugin npm)

@jsarc/native-mda-svgicons/
  package.json        # main: index.ts, publishConfig.access: public, MIT
  index.ts            # API publique (SvgIcon, IconStyle, types, noms)
  SvgIcon.tsx  DynamicIcon.tsx  dynamic.ts  types.ts
  names.ts  all.ts    # générés
  icons/<name>.ts     # 2583 modules de données générés
  js/                 # miroir compilé (esbuild)
  README.md  tsconfig.json

📄 Licence

MIT © INICODE