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 🙏

© 2025 – Pkg Stats / Ryan Hefner

iceflow-ui

v0.2.3

Published

Basic React form components

Readme

iceflow-ui

Basic React Form Components. The dependencies are React and Lodash. By default the components use Material icons however this can be changed by requiring components/config and changing the references. Examples for inputs and buttons can be seen by setting up the Iceflow Server example https://github.com/mikehoren/iceflow-server-example

Button

The button component has two states, default and active. When active it will be disabled and show text + a spinner or just a spinner.

####Properties

  • className [String] Classes you would like added to the button.
  • defaultText [String] The default text to display for the button.
  • activeText [String] The text to display when the button is in an active state.
  • active [Boolean] Forces the button to be active if set to true.
  • onClick [Function] A callback to be called when the button is clicked. Arguments [Event [Event], setActive [Function], setDefault [Function]].
  • deferActive [Boolean] Defers the active state until the onClick callback has been completed. Useful for validation.

Checkbox

The checkbox has two states, checked and not checked.

####Properties

  • className [String] Classes you would like added to the checkbox.
  • checked [Boolean] Sets the component to a checked state.
  • onChange [Function] A callback to call when the checkbox changes values. Arguments [checked [Boolean]].
  • name [String] The name value for the input.

Radio Group

A group of radio buttons.

####Properties

  • className [String] Classes you would like added to the radio group.
  • name [String] The name value for the radio group.
  • radios [Array] An array of radio objects to generate the group with. Each object should have the form {label: string, value: any}.
  • onChange [Function] A callback to call when a radio button is clicked. Arguments [Event [Event], value [String]].

Input

An input that supports error, success and loading states as well as validation and deferring validation for xhr support.

####Properties

  • className [String] Classes you would like added to the input.
  • type [String] The type of input, defaults to "text".
  • name [String] The name to pass to the input.
  • placeholder [String] The placeholder value for the input.
  • value [String] The value of the input, the means for the value you change you must also pass in an onChange input and render it with the new passed in value.
  • defaultValue [String] the value of the input, this means an initial value is set then the input controls it's internal state.
  • onChange [Function] A callback to call when the input changes. Arguments [Event [Event], value [String]].
  • validator [Function] A validation function to run depending on the value of validateOn. Arguments [value [String], callback [Function]]. The callback expects a boolean value depending on if the value is valid or not.
  • validateOn [String] The context for when to validate. Possible values are "change", "stop", "blur". Change happens on every input change. Stop happens after a set amount of milleseconds have passed since the last typed character. Blur happens on input blur.
  • disallowEmpty [Boolean] If set to true the input will consider an empty value as an error after the initial change.
  • icons [Boolean] If set to true show icons for error, success, and loading states.
  • defer [Boolean] When set to true will show validation spinner until the validation callback has resolved.
  • timeout [Number] The number of milleseconds to wait before validation, used with the "stop" option for validateOn.
  • error [Boolean] If set to true show an error state.
  • success [Boolean] If set to true show a success state.
  • loading [Boolean] If set to true show a loading state.
  • noEdit [Boolean] The input cannot be editted

Select

A select picker that supports all of the above input states, and shows either the passed in options or options based on the response to a callback.

####Properties

  • className [String] Classes you would like added to the input.
  • options [Array] An array of options used to populate the select menu. An option should take the form {label: string, value: any, selected: boolean}.
  • name [String] The name of the select picker input. The label is suffixed with -label so both values can be retrieved seperately.
  • value [String] the value to populate the select input with
  • onChange [Function] The function to run select picker's value has changed by typing. Arguments [Event [Event], Callback [Function]. The callback expects an array of options.
  • onSelect [Function] The function to run when an option is selected. Arguments [Data [Object]]. Data takes the form {value: string, label: string}.
  • onCreate [Function] the function to run when an option is created
  • icons [Boolean] If icons should show or not. This is overrided as an arrow if options are passed in.
  • defer [Boolean] If the select picker should defer showing options until the callback is called.
  • emptyMessage [String] A message to show if there are no options found. Defaults to "No matches found.".
  • option [Function] A function to generate custom options. Arguments [Option [Object], index [Number]]. Option takes the form {value: string, label: string}. Option expects jsx markup to be returned.
  • noEdit [Boolean] The input cannot be editted, useful for emulating select inputs
  • eventMode [Boolean] when an option is selected or created wipe the value in the text input
  • autoSelect [Boolean] if false will not autoselect the first option in the menu (useful for creating new options by hitting enter).

Menu

A menu component for rendering dropdown menus.

####Properties

  • className [String] Classes you would like added to the input.
  • Open [Boolean] is the menu open
  • html [String] an html string to use in the place of text for the title
  • title [String] the string to use for the title
  • options [Array] An array of Objects used to populate the dropdown. Each object takes the form {url [String] the url to link to, name [String] the name to render, attr [Object] an array of attributes for the item, callback [Function] a callback to call when the item is clicked}

Modal

A super simple modal

####Properties

  • className [String] Classes you would like added to the input.
  • Open [Boolean] is the menu open
  • onClose [Function] A function to call on modal close, note the modal operates entirely by passed in params meaning you're likely setting a state prop that's then passed in as a prop to the modal to close it.
  • noPosition [Boolean] should the modal position itself or not