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 🙏

© 2024 – Pkg Stats / Ryan Hefner

falcon-heavy-button

v0.0.2

Published

There are some packages you need to install first to get started: > `npm install --save @webcomponents/webcomponentsjs text-button-wc` (package name can differ in the current state of our project)

Downloads

1

Readme

Consumer documentation - TextButtonWC webcomponent

How to use this web component

There are some packages you need to install first to get started:

npm install --save @webcomponents/webcomponentsjs text-button-wc (package name can differ in the current state of our project)

After successful installation, you need to include the following items in your index.html:

<script src="node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>

<script src="node_modules/@webcomponents/webcomponentsjs/custom-elements-es5-adapter.js"></script>

<script src="node_modules/text-button-wc/index.js"></script> (again, package path can differ in the current state of our project)

Use it in your HTML pages as a custom web component:

<text-button-wc data-theme="belfius" label="primary" type="primary"></text-button-wc>

Developer documentation - TextButtonWC webcomponent

Getting Started

The only thing you need to do before you can start, is to run the npm script npm run init-build and you're good to go.
This will install all necessary node_modules and will transpile/compile everything in the dist/ folder.
For the full overview, go to the package.json.

  • dev-win: run parallel serve-win, open-localhost, watch-file
  • dev-mac: run parallel serve-mac, open-localhost, watch-file
  • serve-win: runs a python web server on root-level on port 8000 (only for Windows)
  • serve-mac: runs a python web server on root-level on port 8000 (only for Mac)
  • open-localhost: open the localhost (port 8000) on which the http server is running
  • watch-file: init the file watcher in the src directory => will execute the update-build npm script when it detects a change in the src directory
  • init-build: install the necessary dependencies & compile/transpile/build for the first time (first command you should run before you start developing!!)
  • update-build: perform some pre-build cleanup & run the src-build npm script
  • src-build: compile the CSS of our ES6 component, transpile (babel-es5 + babel-es5-ie) our ES6 component to an ES5 version, perform some post-build cleanup
  • clean-dist: create dist folder if absent, and clean it if necessary
  • copy-index: copy the index.js from the src folder to the dist folder
  • copy-readme: copy the README.md file from the src folder to the dist folder
  • babel-es5: transpile our ES6 component to an ES5 version for packaging/serving
  • babel-es5-ie: transpile our ES6 component to an ES5 version, specific for IE, for packaging/serving
  • compile-css: Scan the CSS of our component for CSS variables, :host()- & :host-selectors, theming, ... will copy our ES6 component to the dist folder for further use
  • post-build-cleanup: remove the unnecessary ES6 file from the dist folder (we won't be using the ES6 version of our component for packaging/serving, we only need it for development)
  • pre-build-cleanup: remove the transpiled babel component files (*-es5.js + *-es5-ie.js) before (re)building
  • test: runs unit test via intern.js this will start a server, tests are at http://localhost:9000/__intern/
  • jsdoc: generate component documentation => output will be placed in the out folder
  • path-replace: replace the path (/dist/) in the index.js file with the node_modules path (/node_modules/package_name)
  • pre-package: update jsdocs, update dist folder with the latest changes of our component, copy contents of the dist folder to the package folder & replace the path in the index.js to the package path (node_modules/package_name)
  • init-package: Create package folder, run the pre-package script (the one above), init our npm package (will create a package.json in the packagefolder) and publish it to npm
  • patch-update-package: Run the pre-package script, increase our version (0.0.1 => 0.0.2) and publish it to npm
  • minor-update-package: Run the pre-package script, increase our version (0.1.1 => 0.2.0) and publish it to npm
  • major-update-package: Run the pre-package script, increase our version (0.0.1 => 1.0.0) and publish it to npm
  • update-package: Use one of our utils to update our package dynamically (combines all of the three npm scripts above) - will accept patch/minor/major as custom npm argument (npm run update-package -- patch, npm run update-package -- minor, ...)

After the init-build you can start the server with npm run dev-mac || npm run dev-win and you can start developing ;-)

Components Name

  • Classname: TextButtonWC
  • HTML element: text-button-wc

Screenshot

N.A.

Interactive example

N.A.

Framework Developer docs link

Component properties/attributes

  • disabled
    • Boolean value
    • It's there or it's not there (when the attribute is missing, the button will be enabled)
    • Changeable
  • label
    • String value (required)
  • type
    • String value (optional)
    • Possible values: primary/secondary/tertiary/quarternary
  • theme
    • String value (optional)
    • What theme do you want to put on the component? Belfius, DVV?

Component events

  • ButtonClick
    • triggered when clicking on the button
    • dispatched to whoever/whatever is listening to the "textbuttonclick" event

Component functions

  • getters & setters
    • set label() => set value of "label" attribute
    • get label() => return value of "label" attribute
    • get disabled() => return value of "disabled" attribute
    • set disabled() => set value of "disabled" attribute
    • get theme() => return the value of "theme" attribute
    • set theme() => set value of "theme" attribute
    • get type() => return the value of "type" attribute
    • set type() => set value of "type" attribute
  • static get observedAttributes() => whitelist all attributes that the component needs to watch for changes (disabled)
  • get template() => standard button HTML
  • connectedCallback() => attach event listener and set "disabled" attribute value
  • disconnectedCallback() => remove event listener
  • onButtonClick() => function that will execute on the button click event
  • attributeChangedCallback() => watch changes in the observed attributes (only disabled for now)
  • private functions
    • getStyling() => return the styling of the component in a string

Unit Testing

The unit testing will be running on the browser it uses mocha, chai and a BDD style of asserions with expect().
Run npm run test|| npm test.

Changelog

Bitbucket link

Issues link(s)

Technical Design link

N.A.

Styleguide link

https://company-52798.frontify.com/document/86788#/input/buttons

Impact Analysis link

N.A.

DIAML Developer Docs link

N.A.

Version link

N.A.