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

billy-layout

v0.1.0

Published

Layout + design system BILLy : shell applicatif (topbar, sidebar, notifications, barre de navigation mobile), tokens & mixins SCSS, champs de formulaire, panneaux, dialogues et composants de feedback.

Readme

billy-layout

Layout + design system BILLy : shell applicatif (topbar, sidebar, notifications, barre de navigation mobile), tokens & mixins SCSS, champs de formulaire, panneaux, dialogues et composants de feedback.

Extraite de billy-client sans dépendance Bootstrap ni dépendance au code métier — voir library-migration.md à la racine du workspace pour l'historique et les décisions.

📚 Documentation développeur : docs/README.md — une fiche par composant (API, exemples, theming, pièges). 🧭 Guidelines UX : docs/ux-guidelines.md — conventions d'assemblage des écrans (boutons de header, listes, consult-card, save-bar).

La documentation est embarquée dans le paquet publié : une fois la librairie installée, tout est lisible dans node_modules/billy-layout/docs/ (assistants IA compris — commencez par docs/README.md puis docs/ux-guidelines.md).

Arborescence

src/lib/ est organisé par catégories (miroir de docs/) :

| Dossier | Contenu | |---|---| | core/ | briques transverses : billy-icon, click-outside, autofocus, utils TVA/IBAN/email | | layout/ | shell applicatif (topbar/sidebar/notifications) + action-bar mobile | | inputs/ | champs de saisie CVA : datepicker, dropdown, code-field, input-emails, input-password, button-switch, attachment-button | | forms/ | structure de formulaires : form-creation, default-form-signal, save-bar, form-side-panel | | buttons/ | tuiles d'action : button-ajout, button-upload | | dialogs/ | moteur Dialog, dialog-form, delete-dialog | | feedback/ | toastr, snackbar, loaders, empty-state | | display/ | billy-panel, consult-card, page-header, header-action-bar, tabs, filter-toggle-buttons | | viewers/ | visionneuses de fichiers (pdf/image/xml) | | styles/ | SCSS partagés : tokens, reboot, mixins (assets publiés sous styles/) |

Consommation dans le workspace

  • TypeScript : import { … } from 'billy-layout' — le tsconfig.json racine mappe le paquet sur projects/billy-layout/src/public-api.ts (compilation par les sources, pas besoin de builder la lib en dev).

  • SCSS : les feuilles partagées vivent dans src/lib/styles/ et sont résolues par stylePreprocessorOptions.includePaths (angular.json) :

    @use 'billy-forms' as forms;   // mixins des champs/boutons
    @use 'billy-cards' as cards;   // mixins des cartes/sections
    @use 'billy-code-field' as code;
    @use 'billy-tokens';           // variables CSS --billy-* (:root + dark)
    @use 'billy-dialog';           // coque modale .billy-modal*
    @use 'billy-reboot';           // normalisation globale (box-sizing…)

    À la publication, ces fichiers sont expédiés dans billy-layout/styles/ (assets ng-packagr) : un consommateur externe ajoute ce dossier à ses includePaths.

Prérequis côté application

  • Fonts (chargées par l'application, cf. src/index.html) : « Plus Jakarta Sans » (shell + design system). « Source Sans Pro » n'est requise que par la couche de compat legacy de billy-client (billy-reboot l'utilise comme police de base des pages métier).
  • Tokens & thème : charger billy-tokens dans les styles globaux ; le mode sombre repose sur la classe body.dark-mode, gérée par BillyDarkModeService (clé localStorage billy_dark_mode).
  • Providers (voir app.config.ts de billy-client pour l'exemple complet) :
    • BILLY_SHELL_CONFIG — liens du menu, version, homeLink, logout, badges, synchro des notifications ;
    • BILLY_DIALOG_ROUTER (optionnel) — fermeture des overlays routés pour billy-dialog-form ;
    • BILLY_FILE_SOURCE — source de contenu des viewers app-file-viewer-*.

Shell : slots

<billy-shell> projette trois zones métier vers la topbar :

<billy-shell>
  <app-billy-search shell-search />
  <billy-notifications shell-notifications>
    <!-- catégories : composants qui étendent BillyNotifCategory -->
  </billy-notifications>
  <app-billy-account-menu shell-account />
  <router-outlet />
</billy-shell>

Build & publication

ng build billy-layout   # ng-packagr → dist/billy-layout (FESM + DTS + styles/)
cd dist/billy-layout && npm publish