# Janus Particles - Changelog

- 💎 **new** (minor +1)
- ✨ **improvement** (revision +1 if small / minor +1 if significant)
- 🐞 **bugfix** (revision +1)
- 📉 **deprecation** (minor +1 must include deprecation warning logs)
- 💣 **breaking change** (major +1 if not previously announced / minor +1 if previously announced/deprecated)
- 🚮 **removal** (major +1 if not previously announced / minor +1 if previously announced/deprecated)

## v6.0.9 - 2022-04-20

- 💎 Updates @janus.team/janus-copilot to version 3.1.1
## v6.0.8 - 2021-04-29

- 🐞 Updates tippy.js/react to version 3.1.1

## v6.0.7 - 2021-04-26

- 💎 Add helix svg icon set to package

## v6.0.6 - 2021-04-23

- ✨`<Tabset.Tab />` Style tweaks to be more in line with https://manage.rackspace.com/rackspace-fabric-design-system/components/tab

## v6.0.5 - 2021-04-9

- 🐞`<AlertBar/>` No longer broken spacing between text content and close button when alert is dismissible
and no action is provided.

## v6.0.4 - 2021-03-15

- ✨`<AlertBar/>` Documentation improvement, added an example useage.


## v6.0.3 - 2021-03-05

- 🐞 `<AlertBar/>` No longer has broken spacing when placed inside a `<Page.MainHeader />`
- 🐞 `<Button/>` no longer forces the `text-transform: capitalize`.
  - This can be a semi-breaking change if you relied on this bug. Solutions:
    - Option 1: Make sure text in your buttons is properly capitalized
    - Option 2: Add this CSS rule: `.particles-button { text-transform: capitalize; }`

## v6.0.2 - 2021-02-17

- Modal close button fix

## v6.0.1 - 2021-02-17

- Modal header is updated from <H3> to <H4> with css changes of color and bottom spacing

## v6.0.0 - 2021-01-26

- ⚠ `<Chart>` will be removed in the next major release.
- 💣💎 anything that has a `particles...` css class will be set to the base font family, this is the only global-ish effect of using particles (still only applies to elements with a specific class, or children of those).
- 💣💎 rackspace.com style now instead of the helix look.
- 💣🚮 helix css is no longer imported at all.
- ✨ `<Navigation>` Family of components now propagates `primary`, `context`, and `utility` flags using react context. So you don't need to pass `primary` to every single menu and item inside a primary navigation anymore.
- ✨ `<ChoiceTiles>`, `<TabSet>`, and `<Button>` style reworked to not rely on helix css.
- 💎 `global.PARTICLES_CONFIGURATION = {}` can be set to configure particles defaults outside of react lifecycle.


## v5.5.0 - 2020-09-11

- Dependency upgrade: `storybook`: 5 -> 6
- Dependency upgrade: `react-intl`: 3 -> 5
- Dependency upgrade: `@tippy.js/react`: 2 -> 3

## v5.4.0 - 2020-09-10

### for janus-particles consumers

- 🐞 Fixes `<Modal />` bug where position appears off-centre when there is not much content.

## v5.3.0 - 2020-08-18

### for janus-particles contributors

- 📉 usage of the legacy context API in components has been deprecated since the react 16 release and is due to be completely removed soon. Use the [new context api](https://reactjs.org/docs/context.html) instead.

## v5.2.1 - 2020-07-25

### for janus-particles consumers

- 🐞 Fixes `<ChoiceTiles />` bug in which de-selecting items in `multi` would not remove items from and/or duplicate items in `selected`.

## v5.2.0 - 2020-07-22

### for janus-particles consumers

- 💎 `<PaginationControls />` displays information about the current page of paginated data.
- 💎 Additional components support `PaginationControls`:
  - `<PaginationControls.ItemsShown />` for displaying the item indices on the current page.
  - `<PaginationControls.PageSelector />` for navigating to other pages.
  - `<PaginationControls.ItemsPerPage />` for choosing the number of data to display per page.

## v5.1.1 - 2020-07-22

### for janus-particles consumers

- 🐞 Fixed crash when children of `<Tabset.List />` or `<Tabset.Content />` were `null`, which prevented any conditional rendering of tabs or panels by consumers.

## v5.1.0 - 2020-07-07

### for janus-particles consumers

- 💎 `<Tabset />` Tabsets enable users to easily switch between multiple sections of a page without losing context. Tabs help organize content at a high level, such as switching between views, data sets, or the functional aspects of an application.
- 💎 Additional components for supporting `Tabset`:
  - `<Tabset.List />` for listing the available tabs.
  - `<Tabset.Tab />` for displaying the actual tabs.
  - `<Tabset.Content />` for containing the actual content.
  - `<Tabset.Panel />` a panel for holding the content of each tab.

## v5.0.3 - 2020-07-06

### for janus-particles consumers

- ✨ `<AlertBar>` now supports `action`, `dismissible` and `dismissed` props.

## v5.0.2 - 2020-02-28

### for janus-particles consumers

- ✨ Allows `PropTypes.elementType` on props that are rendered as Components

## v5.0.1 - 2020-02-06

### for janus-particles consumers

- Step by Step docs about building forms, including examples of testing with `@testing-library/react`

## v5.0.0 - 2020-02-04

### for janus-particles consumers

- 💎 **component maturity level** components will be marked according to the maturity level as follows from now on:
  - (notification: fatal) pre: component is not released, use at your own risk, it might be completely changed and/or removed without warning in future releases
  - (notification: error) deprecated: component will soon no longer be supported
  - (notification: error) initial: no polish, rough initial cut, might not match helix correctly, might require some heavy consumer work to consume properly
  - (notification: warning) unstable: low levels of polish, component partially matches helix but some details/cases might be missing, component API might still be subject to change
  - (notification: info) feedback: component close to fully matches helix and API should be close to final, changes from this point ownwards are expected mostly due to feedback from consumers
  - (notification: none) stable: we consider the component very close to done, it is consumed in production by at least one application and API changes are unlikely, maybe some styling fixes here and there
  - (notification: none) proven: component has been in use for a while in more than one application, API is pretty much set in stone, only helix compliance styling changes are expected
- 💎 `<configuration.ConfigurationProvider componentMaturity={{ level: {}, component: {} }}>` settings to enable/disable warnings and errors depending on the maturity of components being used.
- 💎 `<configuration.ConfigurationProvider console={{ warn: true, error: true, info: true, debug: false }}>` settings to enable/disable console messages generated from components within janus-particles.
- ✨ overall bundle should be smaller due to removing `Victory` from the main particles dependencies (through the removal of `Chart`).
- 🐞 added missing peer dependency declaration for `@formatjs/intl-pluralrules`.
- 💣🚮 `CardWall` is gone.
- 💣🚮 `Chart` is no longer part of the main particles bundle. We are considering completely removing charts from particles, but as of now they are still available as a separate import:
  - 💎 ESM `Chart` can be imported via `import { Chart } from '@janus.team/janus-particles/dist/esm/janus-particles-charts.js'`.
  - 💎 CJS `Chart` can be imported via `import { Chart } from '@janus.team/janus-particles/dist/cjs/janus-particles-charts.js'`.
- 💣 `esm` and `cjs` builds are now located in `dist/esm` and `dist/cjs`.
- 📉 explicit support for `redux-form` via `<Form.ReduxForm>` (and input equivalents) will be completely dropped in a future release, for now it is still there but should be assumed to be unmanaged/unsupported - if you are relying on it, either add your own adapter or be aware that changes will have to be made.
- 🚮 Prop tables and full story source (via the info tab) are removed from docs for now, we will be eventually moving to a new format for those. We encourage you to [read the source](https://github.com/racker/janus-particles) both for prop explanation and for examples of stories.

### for janus-particles contributors

- 💎 `/consumers` folder now contains examples of types of consumers for `janus-particles`. We can use it to see how production builds of `janus-particles` would interact with something like a standard `create-react-app` setup or a `janus-ui` setup. We might want to consider even deploying those builds to an `S3` bucket and run smoke browser tests (e.g.: with `puppeteer` or `playwright`) against it as part of the deploy/release process at some point.
- 🚮 `@storybook/addon-storyshots` is removed, snapshots are gone and will not come back for the foreseeable future.
- 🚮 `@storybook/addon-info` is removed, we will eventually use `mdx` to show prop tables.
- ✨ storybook is up to date to the latest version (5.3):
  - we can now use [component story format](https://storybook.js.org/docs/formats/component-story-format/) instead of relying on the [old `storiesOf` API](https://storybook.js.org/docs/formats/storiesof-api/).
  - we can now use [the mdx docs format](https://github.com/storybookjs/storybook/blob/next/addons/docs/docs/mdx.md) instead of relying on the [old `storiesOf` API](https://storybook.js.org/docs/formats/storiesof-api/).
- 📉 usage of the `storiesOf` API for writing stories is no longer what we want moving forward, use CSF instead.
- 📉 usage of the `testsOf` API from the `support` folder in this repository is no longer what we want moving forward, just use CSF instead.
- 📉 usage of the `<Story>`/`<Scenario>`/`<Example>` components from the `support` folder in this repository is no longer what we want moving forward, we will use the parts from `mdx` instead.
- ✨ `janus-particles` is now compiled via `rollup`, exactly the same way as `janus-copilot`.
- ✨ the webpack setup for storybook has been vastly simplified and mostly uses `create-react-app` underneath.
- ✨ tests are ran now completely through `jest`, no wonky running as a side effect of the snapshots addon for storybook.

## v4.17.0 - 2020-01-15

- ✨ `translations` no longer requires the `translateJP` feature flag, it is removed and considered on from now on

## v4.16.0 - 2019-12-11

- ✨ `<DataGrid>` supports uses `t` function for strings, it can be indirectly overriden via the `messages` configuration. Relevant strings are:
  - `Showing {from, number}-{to, number} of {total, number}`
  - `Show (items per page)`
  - `…`

## v4.15.1 - 2019-11-21

- ✨ `<DateTime>` now supports all builtin custom Intl date formats as presets. See 4.13.0 for builtins.

## v4.15.0 - 2019-11-19

- 💎 `<DateTimePicker />` now supports Intl (see changes from 4.11.0 for more details)
- 💎 `<DateTimePicker />` exposes additional labels for customization.
  - `utcTimeLabel`: a label for the "UTC" timezone button.
  - `localTimeLabel`: a label for the "Local" timezone button.
  - `formatLabel`: a label describing the format required for time input (`HH:mm:ss`).

## v4.14.0 - 2019-11-18

- ✨ `<DateTimePicker />` refactored to be a functional component
  - The object passed to the `onApply` callback was reduced to simply the `selectedPreset`, `start`, and `end` times.

## v4.13.0 - 2019-11-04

- 💎 `import { translations } from '@janus.team/janus-particles';` exposes the translations mechanism from particles itself (this is a _zero configuration_ setup for particles builtin messages)
  - `const t = translations.useT()` can be used to get a translation function from a hook (preferred)
  - `translations.withT(({ t, ...props }) => {...})` can be used as a HoC (prefer the hook version instead when possible)
  - `translations.t()` is yet another option in case we need to use messages outside of component lifecycle (prefer the options above)
  - particles builtin messages for date/time `t(messageFromTheListBelow, { date: new Date() })`:
    - `particlesYear`
    - `particlesYearUtc`
    - `particlesShortMonthYear`
    - `particlesShortMonthYearUtc`
    - `particlesShortMonth`
    - `particlesShortMonthUtc`
    - `particlesLongMonthYear`
    - `particlesLongMonthYearUtc`
    - `particlesDateTimeUtc`
    - `particlesDateTime`
    - `particlesDateTimeShortUtc`
    - `particlesDateTimeShort`
    - `particlesDateUtc`
    - `particlesDate`
    - `particlesDateShortUtc`
    - `particlesDateShort`
    - `particlesTimeUtc`
    - `particlesTime`
- 💎 `import { configuration } from '@janus.team/janus-particles';` allows consumers to add their own messages and custom formats
  - `<configuration.ConfigurationProvider messages={...} customFormats={...}>` a top level configuration provider can be used so that the particles mechanism also supports app specifc messages (instead of only particles builtins)

## v4.12.0 - 2019-11-01

- 💎 `<DateTime>` now supports Intl (see changes from 4.11.0 for more details)
- 💎 `<DateTime.FromNow>` now supports Intl (see changes from 4.11.0 for more details)
- 💣 `<DateTime.FromNow>` will no longer include mixed units. This only affects the case where it was given a delta between 1h and 1 day. Previously a delta of 70 minutes would be represented as "in 1 hour 10 minutes", now it will be "in 70 minutes".
- 💣 `<DateTime>` includes an extra comma in certain cases (after the year and before the time): "November 26, 2018 10:05:10 AM" (before) => "November 26, 2018, 10:05:10 AM" (after)

## v4.11.0 - 2019-10-23

- 💎 support for translations in particles (using [formatjs](https://github.com/formatjs/formatjs)).
- 💎 `import { configuration } from '@janus.team/janus-particles'; ... <ConfigurationProvider locale="en-US|ja-JP">...` is now supported to provide a locale setting to anything inside of it. You can set it up at the top level of your app.
- 💎 `<MonthPicker />` respects locale configuration (next releases will include other components, this is the first and is intended to validate that the current approach is appropriate). Alternatively, it also supports the `translateJp=true` + `forceLocale=ja-JP` query string flags.


## v4.10.0 - 2019-10-16

- 💎 support for japanese characters using the Noto font instead of Roboto (since roboto does not support it).

## v4.9.2 - 2019-08-29

- ✨ `<Modal closeDisabled="..." />` closeDisabled prop introduced to disable close actions during processing.
- ✨ `<Modal />` added esc key handler.
- ✨ `<Modal.Header />` changed close icon to a button.
- 🐞 `<Modal.Header title="..." />` prop changed to node instead of an object.

## v4.9.1 - 2019-08-21

- ✨ `<ChoiceTiles ...props />` props from choice tiles are passed down to container components (grid or collection).
- ✨ `<Modal.Header title="..." />` new prop introduced to make it easier to style simple modals with a title.
- ✨ `<Modal.Header />` larger close icon.

## v4.9.0 - 2019-08-21

- 💎 `<Modal />` component introduced.

## v4.8.0 - 2019-08-13

- 💎 `<Popover />` component introduced, powered by [tippy.js](https://github.com/atomiks/tippy.js-react).

## v4.7.0 - 2019-08-06

- 💎 `<Tooltip />` component introduced, powered by [tippy.js](https://github.com/atomiks/tippy.js-react).

## v4.6.0 - 2019-08-01

- 💎 `<Dropdown />` component introduced, powered by [Downshift](https://github.com/downshift-js/downshift).

## v4.5.0 - 2019-07-23

- ✨ Downshift upgraded to version 3+. Deemed to not be a breaking change since there's no exposed functionality of downshift as of now.

## v4.4.0 - 2019-07-15

- 💎 Introduced docs for Page Archetypes - Details View

## v4.3.0 - 2019-07-12

- 💎 Introduced docs for Page Archetypes - List View with Cards

## v4.2.2 - 2019-06-05

- 🐞 `<Button primary/secondary/tertiary>`: button `weight` was being ignored, always rendering as secondary.

## v4.2.1 - 2019-05-14

- 🐞 `<Collection>` of `<Button as="a" href="...">` was rendering incorrectly due to helix style leaks. Collections of buttons now render consistently, regardless of them being an `a` tag with an `href` or not.

## v4.2.0 - 2019-04-12

- ✨ Uses helix styles directly for buttons (as much as possible). The most notable change is that tertiary buttons no longer have a border.
- 🚮 `<Button inverse>` inverse styles for buttons is no longer supported. Not considered breaking because there is nothing consuming this style.

## v4.1.0 - 2019-04-09

- 💎 `ChoiceTiles` - selection pattern component, based on the [helix-ui reference](https://rackerlabs.github.io/helix-ui/components/choice-tiles/), [helix reference](http://helix.rax.io/components/option-tiles.html)
- 💎 `Link` - opt-in styles for links [helix reference](http://helix.rax.io/style/typography.html)
- 💎 `AlertBar noIcon` - `noIcon` prop lets alert bars be rendered without an icon
- 🐞 `helix-ui` was _erroneously_ being listed in `dependencies`, instead of `devDependencies` in `package.json`. This fix should stop making consumers having to also install `helix-ui` as part of `yarn install`

## v4.0.0 - 2019-03-23

- 🚮 `react` 15 is no longer supported
- ⏫ `react` 15  -> `react` 16
- ⏫ `storybook` 3 -> `storybook` 5
- ⏫ `enzyme` 2 -> `enzyme` 3
- ⏫ `react-scripts` 1 -> `react-scripts` 2
- ⏫ `webpack` 3 -> `webpack` 4

## v3.7.0 - 2019-03-12

- ✨ `Navigation.Utility` looks more like the customer version of pilot
- 💎 `Navigation.Separator` - separation for navigation bars
- 💎 `Navigation.Dropdown.Group` - groups for navigation dropdowns
- 💎 `Navigation.Dropdown.Group.Header` - headers for navigation dropdown groups
- 💎 `Navigation.Dropdown.Item` - item for navigation dropdowns
- 💎 `Navigation.Dropdown.Item.Label` - item label for navigation dropdown items
- 💎 `Navigation.Dropdown.Item.Value` - item value for navigation dropdown values

## v3.6.0 - 2018-12-11
- 🐞 Navigation.Link prevent component from always rendering a disabled link.
- 💎 Navigation.Link adds css for disabled primary navigation link.

## v3.5.0 - 2018-11-26
- 💎 Breadcrumbs

## v3.4.0 - 2018-10-29
- ✨ upgrades to node 8

## v3.3.0 - 2018-10-29
- 💎 `Pill` pill to display in tables and details view

## v3.2.0 - 2018-10-26
- 💎 `DateTime` formatting for date and time
- 💎 `DateTime.FromNow` formatting for date and time from now

## v3.1.3 - 2018-07-10
- 🐞 `Form.Error` fix propTypes assignment

## v3.1.2 - 2018-06-26

### Dependencies
- ✨ Add `cross-env` development dependency for cross platform development

### Components

- ✨ Update `Form.Input` to pass `list` property to child `input`

## v3.1.1 - 2018-06-12

### Components

- ✨ Also allow peer dep versions `^16.0.0` for `react` and `react-dom`

## v3.1.0 - 2018-05-09

### Components

- 💎 `Table`, `Table.Wrapper`, `Table.Overlay`, `Table.Header`, `Table.Body`, `Table.Row`, and `Table.Cell`

## v3.0.0 - 2018-05-08

### Components

- 💣 `Table`, `TableBody`, `TableHeader` renamed to  `Datagrid`, `DatagridBody`, `DatagridHeader`. Prop API and CSS remain the same.

## v2.18.0 - 2018-05-08

### Dependencies

- ✨ `react` and `react-dom` are now peer dependencies.

## v2.17.0 - 2018-04-13

### Components

- 💎 `AlertBar` adds basic alert bar component.

## v2.16.0 - 2018-04-03

### Style

- 💎 Add helix caption typography class

## v2.15.0 - 2018-01-15

### Build

- 💎 Publish with public access to npm

## v2.14.0 - 2018-01-15

### Components

- 💎 `DateTimePicker` allows a range of date and time to be selected.
- 💎 `ButtonGroup` allows for buttons to be shown connected as a group.

## v2.13.1 - 2018-01-05

### Components

- 🐞  `Navigation.Dropdown` fix issue where Dropdown menu child is null. Add default `itemToString` prop for Downshift integration.

## v2.13.0 - 2018-01-03

### Components

- ✨  `Navigation.Dropdown` updated Navigation dropdown component to support context styling.

## v2.12.0 - 2017-12-18

### Components

- 💎  `Navigation.Dropdown` added Navigation dropdown component for utility nav.

## v2.11.2 - 2017-12-15

### Components

- ✨  `Page.MainBodySection` updated spacing between this component and Page.MainHeader when not using withSections.

## v2.11.1 - 2017-12-15

### Components

- ✨  `Form.Input` now allows the `pattern` attribute to be provided for HTML validation.

## v2.11.0 - 2017-12-14

### Components

- 💎 `Navigation.Text` added component for text based content inside Navigation components.

## v2.10.0 - 2017-12-14

### Components

- ✨ `Form`, `Form.Action`, and `Form.Actions` no longer depend on being immediate children to each other to pass down a form state
- 🐞 `Form.Input type=checkbox required` visual bug: the `*` marker and the label to be shifted to the right more than it should on mandatory checkboxes
- 🐞 `Form.Input type=checkbox` was over validating the `value` prop, reduced specificity to `any`
- 🐞 `Form.Input type=text` was over validating the `value` prop, reduced specificity to `any`
- 🐞 `Form.Label` was over validating the `value` prop, reduced specificity to `any`

## v2.9.4 - 2017-12-13

### Components

- 🐞 `Page.MainBodySection` `title` prop now allows any `node` rather than only `string`
- 🐞 `Page.MainHeader` `category` and `title` props now allow any `node` rather than only `string`

## v2.9.3 - 2017-12-13

### Components

- 🐞 `Page.MainBodySection` add default margin top to `.particles-page__main-body-section-content` when `.particles-page__main-body-section-meta` is not present.

## v2.9.2 - 2017-12-13

### Components

- 🐞 `Form.Input` help text is now only indented for `checkbox` and `radio`.  The change to indent in v2.9.1 was mistakenly applied to help text for all types of input.

## v2.9.1 - 2017-12-13

### Components

- 🐞 `Form.Input` with `type` `checkbox` or `radio` with long labels will now wrap properly. Also increased the size of the boxes and indented help text.

## v2.9.0 - 2017-12-13

### Components

- ✨ `Form.Input` supports `type` `textarea`

## v2.8.2 - 2017-12-12

### Components

- ✨ `Navigation.Logo` add Rackspace logo local to css and assets
- ✨ `Navigation` update link spacing for click area, focus area and visual alignment

## v2.8.1 - 2017-12-12

### Components

- 🐞 `Form` will pass through `onChange` to the `<form>` element

## v2.8.0 - 2017-12-11

### Components

- ✨ `Form.Input` can accept a `Button` as a child to show an input with button
- ✨ `KeyValuePair` accepts a `size` property to determine how much space to allocate for the key

## v2.7.4 - 2017-12-07

### Components

- 🐞 `Button` add focus state styles

## v2.7.3 - 2017-12-07

### Components

- 🐞 `Form.Input` stop blacklisting the `autoFocus` prop.
- 🐞 `Form.Input` stop blacklisting the `style` prop.

## v2.7.2 - 2017-12-06

### Components

- 🐞 `Page.MainHeader` restores top margin to the meta section so actions align properly.

## v2.7.1 - 2017-12-06

### Components

- 🐞 `Button` now prevents inherited line-height from affecting the height of the button.
- ✨ `Page.MainBodySection` has no top margin
- ✨ `Page.MainHeader` has no top margin and has no bottom border unless `withSections` is true.

## v2.7.0 - 2017-12-04

### Components

- ✨ `Card` remove borders from Card header and footer
- ✨ `Form.Input` add placeholder support to `Selectable`
- ✨ `Form` update height for text and selectable inputs
- ✨ `Form` update margins on checkboxes and radios.

## v2.6.3 - 2017-12-04

### Build

- 🐞 `Object.assign` polyfill was missing, breaks everything on ie < edge

## v2.6.2 - 2017-11-29

### Components

- ✨ `Form.Input` invalid `select`s are rendered with italicized and grey text. The `Form.Input` must be `required`


## v2.6.1 - 2017-11-29

### Build

- 🐞 Fix es module build to remove non js import statements

## v2.6.0 - 2017-11-28

### Components

- ✨ `Form.Actions` remove styles for layout and use `Collection` instead

### Build

- ✨ Particles is now also available as an ES6 Module

## v2.5.0 - 2017-11-21

### Components

- 🐞 `Button` do not require onClick events to have a preventDefault function (useful in tests)
- 💎 `Card` simple bordered container
- 💎 `Card.Body` general formatting of card content
- 💎 `Card.Header` displays at the top of a card
- 💎 `Card.Footer` displays at the bottom of a card
- 💎 `Collection` provides spacing between and surrounding a set of components

## v2.4.0 - 2017-11-16

### Components

- 💎 `Button` all purpose button component
- 💎 `Form` form component that can show errors
- 💎 `Form.ReduxForm` adapter for usage with `{ reduxForm } from redux-form`
- 💎 `Form.Action` form action button (e.g.: submit/reset/cancel)
- 💎 `Form.Actions` form action collection
- 💎 `Form.Error` form level errors (e.g.: server errors on submit)
- 💎 `Form.Group` groups of inputs (e.g.: grouping multiple checkboxes/radios)
- 💎 `Form.Group.ReduxForm` adapter for usage with `{ Field } from redux-form`
- 💎 `Form.Input` all purpose field, can show help and inline errors
- 💎 `Form.Input.Help` help text for fields
- 💎 `Form.Input.Error` inline errors for fields
- 💎 `Form.Input.Label` label for fields
- 💎 `Form.Input.ReduxForm` adapter for usage with `{ Field } from redux-form`

For more details please refer to https://particles.janus.team.

## v2.3.1 - 2017-11-13

### Components

- 🐞 Fix issue where `StackedArea` X Axis was not updating when data inside tickFormat changed. Updated to set tickValues directly.

## v2.3.0 - 2017-11-13

### Components

- ✨`Table` can optionally show the headers and pagination in loading, error, and empty states

## v2.2.1 - 2017-11-13

### Components

- 🐞`MonthPicker` prettier drop down layout

## v2.2.0 - 2017-11-08

### Components

- ✨`Table` supports options `loading` and `error`
- ✨`Table` renders custom HTML in loading, error, and empty states (`whenLoading`, `whenError`)
- ✨`Table` renders custom HTML when no data is present (`whenEmpty`)

## v2.1.2 - 2017-11-07

### Components

- 🐞 Update `Page.Container` `max-width` to match canon/canon-bootstrap containers.

## v2.1.1 - 2017-11-07

### Build

- 🐞 Missed rerunning the postcss processing on canon and canon-bootstrap, correctly adds `:not([class*="particles"])`.

## v2.1.0 - 2017-11-07

### Build

- 💣💎 Pushes external css to `dist/canon`, `dist/canon-bootstrap` on build. Updates wrapped css suffix to `:not([class*="particles"])`.

## v2.0.0 - 2017-11-07

### Build

- 💣💎 `particles.css` includes boostrap v4 grid (unprefixed)

### Chores

- 💎 `yarn run update-bootstrap-grid` is available to update the contents of `src/css/external/bootstrap-v4-grid.css`

## v1.9.0 - 2017-11-06

### Build

- 💎 Added `src/css/external` to provide the `:not(.particles)` wrapped css for canon and canon-bootstrap. This can help eject from global styles and common class names in these libraries.

## v1.8.1 - 2017-11-06

### Build

- ✨ Compare tag version vs `package.json` version to avoid publishing by mistake

## v1.8.0 - 2017-11-06

### Components

- ✨ `Table` supports different `pageSizes`
- ✨ `Table` uses a pagination bar on top model to avoid layout being jumpy when paginating

## v1.7.1 - 2017-11-02

### Components

- 🐞 `MonthPicker` overlays correctly with sibling components

## v1.7.0 - 2017-11-02

### Components

- 💎 `Table` supports pagination and ordering

## v1.6.0 - 2017-09-07

### Components

- ✨ `Chart.Donut` supports option `disableAutoSorting` (defaults to false) to skip sorting values
- ✨ `Chart.Donut` supports option `format.others` as a custom formatter for "others"

## v1.5.0 - 2017-09-06

### Components

- ✨ `Chart.Bar` accepts a custom padding for axii labels
- ✨ `Chart.StackedArea` accepts a custom padding for axii labels
- ✨ `Chart.StackedArea` accepts a custom value for point width/size and line width

## v1.4.0 - 2017-09-06

### Components

- ✨ `Chart.Bar` accepts a custom formatter function for the values on the y axis
- ✨ `Chart.StackedArea` accepts a custom formatter function for the values on the y axis
- ✨ `Chart.Donut` accepts a custom formatter function for the total value

### Chore

- ✨ Stories (`....story.js`) now live together with components, making component folders self contained

## v1.3.0 - 2017-09-05

### Components

- ✨ All charts are controlled by a `size` property, options are `small`, `medium`, `large`

## v1.2.0 - 2017-09-05

### Components

- 💎 `Chart.StackedArea` similar to waypoint stacked area charts
- 💎 `Chart.Bar` similar to waypoint bar charts

### Build

- ✨ npm package no longer includes: storybook configuration, stories, tests, nor snapshots

## v1.1.0 - 2017-08-30

### Components

- 💎 `MonthPicker` similar to waypoint month picker.
- 💎 `Page` a set of layout related components for creating common pages
- 💎 `Chart.Donut` similar to waypoint donut charts

### Chore

- ✨ Adds font-awesome and basic styling to storybook.

## v1.0.4 - 2017-08-22

### Style

- 🐞 Fix body font leak. Roboto was being leaked as the main body font everywhere.

## v1.0.3 - 2017-08-21

### Build

- 🐞 Fix webpack config entry point

## v1.0.2 - 2017-08-21

### Build

- 🐞 Update build scripts to publish a single js and css file.
  - NOTE: css will need to be required separately `import '@janus.team/janus-particles/dist/particles.css';`

## v1.0.1 - 2017-08-21

### Build

- 🐞 Includes the lib folder when publishing the package to npm.

## v1.0.0 - 2017-08-21

### Components

- 💎 `CardWall` supports layouts similar to waypoint AWS Inventory.
- 💎 `Card` can be used inside a `CardWall` (for now) to produce layouts similar to the waypoint AWS Inventory.
- 💎 `KeyValuePair` supports showing key/value pairs aligned horizonally or vertically.

### Build

- 💣💎 Adds less support. Requires `less` & `less-loader` from consumers.

### Docs

- ✨ Adds JSX plugin for storybook (`storybook-addon-jsx`), docs now include source code for what's being rendered.

### Chores

- 🚮 Removes `react-storybook-addon-props-combinations`, `@storybook/addon-info`, and `storybook-addon-smart-knobs` due to issues with snapshots.
- 💎 Includes a [contributing guide](/racker/janus-particles/tree/master/CONTRIBUTING.md)
