Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@edx/paragon

openedx61.4kApache-2.021.5.6TypeScript support: included

Accessible, responsive UI component library based on Bootstrap.

readme

Paragon

Warning: Package Moved

While the Paragon design system will continue to receive updates, these updates will no longer be published at the @edx/paragon NPM package. Instead, the latest versions can be found with @openedx/paragon instead.

Build Status npm_version status license codecov NPM downloads

Purpose

Paragon is a pattern library containing accessible React components and a SCSS foundation built on Twitter Bootstrap. Paragon is developed for the Open edX platform.

Documentation lives at https://paragon-openedx.netlify.app/.

Getting Started

React Components

Paragon components require React 16 or higher. To install Paragon into your project:

In terminal:

npm i --save @edx/paragon

In your React project:

import { ComponentName } from '@edx/paragon';

SCSS Foundation

Usage for Open edX and others:

index.scss

// ... Any custom SCSS variables should be defined here
@import '~@edx/paragon/scss/core/core.scss';

Usage on with @edx/brand:

index.scss

@import '~@edx/brand/paragon/fonts.scss';
@import '~@edx/brand/paragon/variables.scss';
@import '~@edx/paragon/scss/core/core.scss';
@import '~@edx/brand/paragon/overrides.scss';

Note that including fonts will affect performance. In some applications may choose not to load the custom font to keep it highly performant.

Paragon CLI

The Paragon CLI (Command Line Interface) is a tool that provides various utility commands to automate actions within the Open edX environment.

Available Commands

  • paragon install-theme [theme]: Installs the specific @edx/brand package.

Use paragon help to see more information.

Getting Help

Please reach out to the Paragon Working Group (PWG):

Internationalization

Paragon supports internationalization for its components out of the box with the support of react-intl. You may view translated strings for each component on the documentation website by switching languages in the settings.

Due to Paragon's dependence on react-intl, that means that your whole app needs to be wrapped in its provider, e.g.:

  import { IntlProvider } from 'react-intl';
  import { messages as paragonMessages } from '@edx/paragon';

  ReactDOM.render(
    <IntlProvider locale={usersLocale} messages={paragonMessages[usersLocale]}>
      <App />
    </IntlProvider>,
    document.getElementById('root')
  )

Note that if you are using @edx/frontend-platform's AppProvider component, you don't need a separate context as IntlProvider is already included; you would only need to add Paragon's i18n messages like this:

  import { APP_READY, subscribe, initialize } from '@edx/frontend-platform';
  import { AppProvider } from '@edx/frontend-platform/react';
  import { messages as paragonMessages } from '@edx/paragon';
  import App from './App';
  // this is your app's i18n messages
  import appMessages from './i18n';

  subscribe(APP_READY, () => {
    ReactDOM.render(
      <AppProvider>
        <App />
      </AppProvider>,
      document.getElementById('root')
    )
  })

  initialize({
    // this will add your app's messages as well as Paragon's messages to your app
    messages: [
      appMessages,
      paragonMessages,
    ],
    // here you will typically provide other configurations for you app
    ...
  });

Contributing

Please refer to the "How to Contribute" documentation and Code of Conduct from Open edX.

The Paragon Working Group accepts bug fixes, new features, documentation, and security patches. You may find open issues here or by visiting the Paragon Working Group project board.

If you'd like to contribute a new component or update an existing component, please consider reaching out to the Paragon Working Group via the channels described above to propose your changes.

The Paragon Working Group looks forward to your contributions! 💎

Development

Developing locally against a micro-frontend (MFE)

If you want to test the changes with local MFE setup, you need to create a "module.config.js" file in your MFE's directory containing local module overrides. After that the webpack build for your application will automatically pick your local version of Paragon and use it. The example of module.config.js file looks like this (for more details about module.config.js, refer to the frontend-build documentation.):

module.exports = {
  /*
  Modules you want to use from local source code. Adding a module here means that when 
  your MFE runs its build, it'll resolve the source from peer directories of the app.

  moduleName: the name you use to import code from the module.
  dir: The relative path to the module's source code.
  dist: The sub-directory of the source code where it puts its build artifact. Often "dist".
  */
  localModules: [
    { moduleName: '@edx/paragon/scss/core', dir: '../src/paragon', dist: 'scss/core' },
    { moduleName: '@edx/paragon/icons', dir: '../src/paragon', dist: 'icons' },
    // Note that using dist: 'dist' will require you to run 'npm build' in Paragon
    // to add local changes to the 'dist' directory, so that they can be picked up by the MFE.
    // To avoid doing that you can use dist: 'src' to get any local changes hot reloaded on save in the MFE.
    { moduleName: '@edx/paragon', dir: '../src/paragon', dist: 'dist' },
  ],
};

Then, when importing Paragon's core SCSS in your MFE the import needs to begin with a tilde ~ so that path to your local Paragon repository gets resolved correctly: @import "~@edx/paragon/scss/core";

Internationalization

When developing a new component you should generally follow three rules:

  1. The component should not have any hardcoded strings as it would be impossible for consumers to translate it
  2. Internationalize all default values of props that expect strings, i.e.

    • For places where you need to display a string, and it's okay if it is a React element use FormattedMessage, e.g. (see Alert component for a full example)

       import { FormattedMessage } from 'react-intl';
      
       <FormattedMessage 
         id="pgn.Alert.closeLabel"
         defaultMessage="Dismiss"
         description="Label of a close button on Alert component"
       />
    • For places where the display string has to be a plain JavaScript string use formatMessage, this would require access to intl object from react-intl, e.g.

      • For class components use injectIntl HOC

          import { injectIntl } from 'react-intl';
        
          class MyClassComponent extends React.Component {
            render() {
              const { altText, intl } = this.props;
              const intlAltText = altText || intl.formatMessage({
                id: 'pgn.MyComponent.altText',
                defaultMessage: 'Close',
                description: 'Close label for Toast component',
              });
        
              return (
                <IconButton
                  alt={intlCloseLabel}
                  onClick={() => {}}
                  variant="primary"
                />
              )
            }
          }
        
          export default injectIntl(MyClassComponent);
      • For functional components use useIntl hook

          import { useIntl } from 'react-intl';
        
          const MyFunctionComponent = ({ altText }) => {
            const intls = useIntl();
            const intlAltText = altText || intl.formatMessage({
              id: 'pgn.MyComponent.altText',
              defaultMessage: 'Close',
              description: 'Close label for Toast component',
            });
        
            return (
              <IconButton
                alt={intlCloseLabel}
                onClick={() => {}}
                variant="primary"
              />
            )
        
          export default MyFunctionComponent;

    Notes on the format above:

    • id is required and must be a dot-separated string of the format pgn.<componentName>.<subcomponentName>.<propName>
    • The defaultMessage is required, and should be the English display string.
    • The description is optional, but highly recommended, this text gives context to translators about the string.
  1. If your component expects a string as a prop, allow the prop to also be an element since consumers may want to also pass instance of their own translated string, for example you might define a string prop like this:
    MyComponent.PropTypes = {
      myProp: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
    };

Adding a new component

1. Start the documentation site development server

The Paragon documentation site serves both as documentation and as a workbench to create your component within. To see your component in action, you need to run the documentation site locally.

npm install
npm start
2. Create new component

To create new component run

npm run generate-component MyComponent

where MyComponent is your new component's name.

This will create a directory in /src/ that will contain templates for all necessary files to start developing the component:

MyComponent
├── index.jsx
├── README.md
├── MyComponent.scss
├── _variables.scss
└── MyComponent.test.jsx

The script will also automatically export your component from Paragon.

3. Start developing

/src/MyComponent/index.jsx is where your component lives, the file is created with the following template, edit it to implement your own component.

import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';

const MyComponent = React.forwardRef(({ className, children }, ref) => (
  <div ref={ref} className={classNames('png__MyComponent', className)}>
    {children}
  </div>
));

MyComponent.defaultProps = {
  className: undefined,
};

MyComponent.propTypes = {
  /** A class name to append to the base element. */
  className: PropTypes.string,
  /** Specifies contents of the component. */
  children: PropTypes.node.isRequired,
};

export default MyComponent;
4. (Optional) Add styles to your component.

If your component requires additional styling (which most likely is the case), edit created SCSS style sheet in your component's directory /src/MyComponent/MyComponent.scss which by default contains an empty class for your component.

If you wish to use SASS variables (which is the preferred way of styling the components since values can be easily overridden and customized by the consumers of Paragon), add them in /src/MyComponent/_variables.scss (this file should contain all variables specific to your component). This way the variables will also get automatically picked up by documentation site and displayed on your component's page.

Please note that you need to follow Paragon's CSS styling conventions.

5. Document your component

The documentation for your component lives in src/MyComponent/README.md. The documentation site scans this directory for markdown or mdx files to create pages. By default, the file is created with following content:

---
title: 'MyComponent'
type: 'component'
components:
- MyComponent
status: 'New'
designStatus: 'Done'
devStatus: 'Done'
notes: |
  Something special about this component
---

Describe your component here and give usage examples.

### Basic Usage

```jsx live
<MyComponent>
  Hello!
</MyComponent>
```

Some notes on the format above:

The top part of the markdown file is known as frontmatter. This metadata with consumed by the documentation site to control the title of the page and the doc site navigation.

  • title controls the page title of the generated page
  • components is a list of react components by displayName. This usually matches the name you define the component as in code. (In our example so far it is MyComponent). Components added to this list will be scanned by react-docgen for code comments and a props api table will be rendered at the bottom of the page.
  • categories is a list of categories where this page will appear the documentation site menu.
  • status, designStatus, devStatus, and notes appear in the http://localhost:8000/status page.

JSX code blocks in the markdown file can be made interactive with the live attribute. All paragon components and icons are in scope. (Note: the scope of this code block is controlled by www/components/CodeBlock.jsx).

6. Navigate to your component on the doc site and start building

Visit the documentation at http://localhost:8000 and navigate to see your README.md powered page and workbench. Changes to the README.md file will auto refresh the page.

ESLint

Paragon runs ESLint as a pre-commit hook. If your code fails linting, you will not be able to commit. To avoid hitting a giant-wall-of-linter-failures when you try to commit, we recommend configuring your editor to run ESLint. To run ESLint in the console at any time, run the following:

$ npm run lint

Paragon's ESLint config is based off eslint-config-edx, which itself is based off eslint-config-airbnb. Paragon uses ESLint 3 (and will upgrade to v4 as soon as eslint-config-airbnb releases a supported version), which itself comes with a number of built-in rules. This configuration is highly opinionated and may contain some rules with which you aren't yet familiar, like comma-dangle, but rest assured, you're writing modern, best-practice JS 💅

One of the most powerful features of this ESLint config is its inclusion of eslint-plugin-jsx-a11y. This plugin actually enforces accessibility best practices at the linter level. It will catch things reviewers might not notice, like event handlers bound to noninteractive elements. Of course, it won't catch all accessibility violations, but it's a pretty good low-pass filter.

Testing

Paragon uses Jest with Enzyme for tests and coverage. Both libraries are full-featured and very well supported.

Unit Testing

Jest is an all-in-one test runner and assertion library created for use with React components. Jest's API is similar to Jasmine's and comes with functionality for mocking and spying as well. Check out the docs for more details -- they are very comprehensive.

Paragon also uses Airbnb's Enzyme library to help render our components within unit tests. Enzyme comes with a number of utilities for shallow rendering, mounting components, querying the DOM, simulating DOM events, and querying React components themselves. Read the docs for more details.

To run the unit tests, run:

npm run test

To add unit tests for a component, create a file in your component's directory named <ComponentName>.test.js. Jest will automatically pick up this file and run the tests as part of the suite. Take a look at Dropdown.test.jsx or CheckBox.test.jsx for examples of good component unit tests.

Run Unit Tests in Chrome DevTools Inspector

To run the unit tests in the Chrome DevTools inspector, run:

npm run debug-test

Then, open chrome://inspect in your Chrome browser and select the "node_modules/.bin/jest" target to open the Chrome DevTools. You can set breakpoints in Chrome DevTools or insert a debugger; statement into the code to pause execution at that point.

Screenshot of Chrome on the chrome://inspect page

Snapshot Testing

Jest has built-in snapshot testing functionality which serves as a good means of smoketesting components to ensure they render in a predictable way.

When you modify components or stories (or add new components or stories), make sure to update the snapshots or else the snapshot tests will fail. It's easy to do -- just run:

$ npm run snapshot

If the snapshot tests fail, it's generally pretty easy to tell whether it's happening because of a bug or because the snapshots need to be updated. Don't be afraid to inspect the test output for clues!

Coverage

Paragon measures code coverage using Jest's built-in --coverage flag and report it via Codecov. Shoot for 100% test coverage on your PRs, but use your best judgment if you're really struggling to cover those last few lines. At the very least, don't reduce total coverage. Codecov will fail your build if your PR reduces coverage.

Example app

Paragon components can have different behavior in the MFE environment. example app in the project root allows you to test new changes inside the MFE environment.

Steps to install the example app.

  1. npm install to install dependencies.
  2. Launch any devstack. It is required for MFE to login into the system and set up configs.
  3. npm run start-example-mfe to start the app.
  4. Go to the example/src/MyComponent.jsx and use Paragon components inside the MFE environment.

Semantic Release

Paragon uses the semantic-release package to automate its release process (creating Git tags, creating GitHub releases, and publishing to NPM).

Preview next release version from Pull Requests


As a convenience, the "Node.js CI / build (push)" check on Pull Requests includes a step to analyze the commit(s) and outputs a preview of what version semantic-release will publish if a PR gets merged. This is done using the "--dry-run" option for the semantic-release CLI, which will skip the publish/release steps. Look for a message in this CI step along the lines of "The next release version is <NEXT_RELEASE_VERSION>".

Commit Messages

semantic-release analyzes commit messages to determine whether to create a major, minor, or patch release (or to skip a release). Paragon currently uses the default conventional Angular changelog rules which means that there are 3 commit types that will trigger a release:

  1. feat (minor release)
  2. fix (patch release)
  3. perf (patch release)

There are other commit types that will not trigger a release that you can use at your own discretion. Suggested prefixes are docs, chore, style, refactor, and test for non-changelog related tasks.

Breaking Changes

Any of the previous 3 commit types combined with BREAKING CHANGE in the commit message body will trigger a major version release.

Example Breaking Change commit message
perf(pencil): remove graphiteWidth option

BREAKING CHANGE: The graphiteWidth option has been removed. The default graphite width of 10mm is always used for performance reason.

Treeshaking

Paragon is distributed on npm as ES6 modules. This means that webpack can use treeshaking on any Paragon components that a consuming app is not using, resulting in greatly reduced bundle sizes.

To get treeshaking to work, your app may require some updates - most notably, Babel 7. See this PR for an example of the changes necessary to update an app to take advantage of treeshaking with Paragon: https://github.com/openedx/frontend-app-payment/pull/48

People

The assigned maintainers for this component and other project details may be found in Backstage. Backstage pulls this data from the catalog-info.yml file in this repository.

Reporting Security Issues

Please do not report security issues in public. Please email security@openedx.org.

We tend to prioritize security issues which impact the published @edx/paragon NPM library more so than the documentation website or example React application.

changelog

20.18.1 (2022-11-10)

Bug Fixes

  • added translations English strings in FormAutosuggest component (#1711) (782cfb8)
  • fixed close button positioning in modal components (#1733) (9d24187)
  • fixed onToggle prop (#1719) (fe21655)
  • hooks are displayed in production (#1715) (d726ad1)

20.18.0 (2022-10-26)

Features

20.17.0 (2022-10-21)

Features

20.16.0 (2022-10-21)

Features

20.15.0 (2022-10-19)

Features

  • added accentB background for page banner (#1688) (0942daa)

20.14.0 (2022-10-19)

Features

  • Added fallback image src props to Card component (#1682) (c0a1f6c)

20.13.0 (2022-10-07)

Bug Fixes

Features

20.12.1 (2022-09-30)

Bug Fixes

20.12.0 (2022-09-21)

Features

20.11.1 (2022-09-07)

Bug Fixes

20.11.0 (2022-09-02)

Features

20.10.2 (2022-09-02)

Bug Fixes

  • fixed MarketingModal/AlertModal/ModalDialog scroll (#1594) (952c1de)

20.10.1 (2022-08-26)

Bug Fixes

  • release es-419 Spanish language translations (#1589) (f7cf489)

20.10.0 (2022-08-19)

Features

20.9.3 (2022-08-18)

Bug Fixes

20.9.2 (2022-08-16)

Bug Fixes

  • bootstrap update with additional variable (#1562) (ae1f06f)

20.9.1 (2022-08-12)

Bug Fixes

  • added support for making Card a hyperlink (#1478) (f0a0768)

20.9.0 (2022-08-12)

Bug Fixes

Features

20.8.0 (2022-08-05)

Bug Fixes

Features

20.7.0 (2022-08-05)

Features

20.6.1 (2022-08-01)

Bug Fixes

  • filter break style is not align correctly (f719510)

20.6.0 (2022-07-29)

Bug Fixes

  • incorrect display of responsive tables in the DataTable component (#1332) (d112c31)
  • update dependencies and fix vulnerabilities (#1431) (c442bb0)

Features

  • add message about file restrictions to default state of Dropzone (#1470) (a4027b8)
  • muted prop for card to give light gray background (#1455) (5f1645d)

20.5.0 (2022-07-15)

Bug Fixes

  • update script for copying mui-icons and add additional docs (#1449) (0a8ce7f)

Features

  • add autoResize for textarea Form.Control [BD-46] (#1461) (6bc5320)
  • add box shadow variables for all levels and sides (#1443) (90d0316)

20.4.2 (2022-07-15)

Bug Fixes

  • added role=status for Bubble notification in Tabs (#1477) (f491acb)

20.4.1 (2022-07-08)

Bug Fixes

  • export default export from react-loading-skeleton as Skeleton (#1462) (d0f6dea)

20.4.0 (2022-07-08)

Features

  • support automatic loading skeleton states on Card with isLoading prop (#1379) (38bbde1)

20.3.2 (2022-07-08)

Bug Fixes

20.3.1 (2022-07-07)

Bug Fixes

  • TextFilter component Header prop usage only handles string, not components (functions) (#1441) (a241c8b)

20.3.0 (2022-07-01)

Features

20.2.0 (2022-06-24)

Features

20.1.3 (2022-06-24)

Bug Fixes

  • [BD-46] refactoring Card component on the mobile page styles #1314 (#1381) (5177354)

20.1.2 (2022-06-23)

Bug Fixes

  • update linting to support paver sass compile (e7704c0)

20.1.1 (2022-06-22)

Bug Fixes

  • flip sort direction icons in TableHeaderCell and add white bg color (#1404) (957bd0a)

20.1.0 (2022-06-22)

Features

  • [BD-46] adding optional arrow for ModalPopup component (#1363) (ab0b164)

20.0.1 (2022-06-17)

Bug Fixes

  • added/updated focus state styling in some components (#1202) (74f9ce9)

20.0.0 (2022-06-17)

  • feat!: implement i18n in Paragon components and in docs site (#1100) (53e0ac6), closes #1100

BREAKING CHANGES

  • By adding i18n support to the Paragon design system, we are introducing a peer dependency on `react-intl@5.25.0` or greater. This may be a breaking change for some consumers, if your repository:
  • Uses v1 of @edx/frontend-platform
  • Uses older version of react-intl than v5.25.0 directly.
  • Does not use react-intl.

19.25.3 (2022-06-15)

Bug Fixes

  • [BD-46] added default elevation on Card component per Figma spec (#1364) (0765840)

19.25.2 (2022-06-14)

Bug Fixes

  • remove prop type warning and use only CSS for threshold dot in ProgressBar (#1380) (81cae2e)

19.25.1 (2022-06-02)

Bug Fixes

  • useWindowSize to use useLayoutEffect instead of useEffect (#1343) (80481ba)

19.25.0 (2022-05-27)

Features

19.24.0 (2022-05-27)

Features

  • [BD-46] exports useIndexOfLastVisibleChild, responsive tabs (#1287) (75311f6)

19.23.1 (2022-05-20)

Bug Fixes

19.23.0 (2022-05-20)

Features

  • installation, setting up @axe-core/react module, Paragon components accessibility refactoring (#1218) (68d2f82)

19.22.2 (2022-05-20)

Bug Fixes

19.22.1 (2022-05-13)

Bug Fixes

19.22.0 (2022-05-11)

Features

19.21.2 (2022-05-10)

Bug Fixes

19.21.1 (2022-05-10)

Bug Fixes

19.21.0 (2022-05-10)

Bug Fixes

Features

v19.20.0 (2022-04-29)

Features

  • [BD-46] generate component track via Netlify function (#1233) (045897c71)

v19.19.1 (2022-04-27)

Bug Fixes

v19.19.0 (2022-04-22)

Features

v19.18.4 (2022-04-22)

Bug Fixes

v19.18.3 (2022-04-20)

Bug Fixes

  • use React.cloneElement vs. React.createElement to prevent extra re-rendering and remove "key" warning. (#1245) (a5bafa315)

v19.18.2 (2022-04-20)

Bug Fixes

v19.18.1 (2022-04-19)

v19.18.0 (2022-04-15)

Features

  • export default strings as constants for use in consumer tests (#1154) (56ec789f2)

v19.17.0 (2022-04-15)

Features

v19.16.1 (2022-04-15)

Bug Fixes

v19.16.0 (2022-04-15)

Features

v19.15.1 (2022-04-13)

Bug Fixes

  • add background-color and fix spacing for Card.ImageCap and Card.Header (#1229) (35571c268)

v19.15.0 (2022-04-08)

Features

  • force release to NPM for autoClose (32fcfffba)

v19.14.1 (2022-04-08)

Bug Fixes

v19.14.0 (2022-04-05)

Features

v19.13.6 (2022-03-29)

Bug Fixes

  • simplify DataTable action component to no longer depend on as prop (#1163) (ab9f628df)

v19.13.5 (2022-03-29)

Bug Fixes

v19.13.4 (2022-03-29)

Bug Fixes

v19.13.3 (2022-03-29)

Bug Fixes

  • rename box-shadow-control SCSS mixin to pgn-box-shadow (#1195) (10b7a0639)

v19.13.2 (2022-03-26)

Bug Fixes

v19.13.1 (2022-03-26)

Bug Fixes

v19.13.0 (2022-03-25)

Features

v19.12.0 (2022-03-25)

Features

v19.11.0 (2022-03-25)

Features

v19.10.2 (2022-03-21)

Bug Fixes

v19.10.1 (2022-03-17)

Bug Fixes

  • hide EmptyTable when DataTable is passed isLoading=true (#1151) (519d86b7d)

v19.10.0 (2022-03-17)

Features

v19.9.0 (2022-03-11)

Features

  • add horizontal variant of more icon, and "issue" and "bookmark" icons (#1142) (6338846fd)
  • add icons for "question" and "people" (#1141) (72f898d83)
  • add outline variants of "edit", "post", "queston answer", and "school" icons (#1140) (ae335c6af)
  • add "report" and "report outline" icons (#1139) (564056aae)
  • add outline variant of verified icon, rename previous icon (#1138) (7d7d51d3a)

v19.8.0 (2022-03-11)

Features

v19.7.0 (2022-03-10)

Features

v19.6.0 (2022-03-02)

Features

v19.5.0 (2022-02-25)

Features

  • [BD-46] implement rtl for components from Collapsible to Dropdown (#1082) (78a96b2f4)

Bug Fixes

  • [BD-46] implement rtl for components from MailtoLink to Spinner (#1090) (11ef0a045)
  • [BD-46] implement rtl for components from Figure to Input Group (#1084) (4bdc40a67)

v19.4.3 (2022-02-25)

Bug Fixes

  • do not override react-bootstrap's defaultProps for Nav component (#1107) (b0c2bee00)

v19.4.2 (2022-02-24)

Bug Fixes

  • adjust card subcomponent widths and update Pagination (#1113) (98c2d2c9e)

v19.4.1 (2022-02-24)

Bug Fixes

  • address Pagination prop type warning and resolve eslint errors (#1112) (f18f14af4)

v19.4.0 (2022-02-18)

Features

v19.3.0 (2022-02-18)

Features

Bug Fixes

  • [BD-46] implement rtl for components from Breadcrumbs to Chip (#1079) (e15945d70)
  • [BD-46] implement rtl for components from StandardModal to useWindowSize and ProductTour (#1092) (b5152129e)

v19.2.1 (2022-02-18)

Bug Fixes

  • [BD-46] implement rtl for components from ActionRow to AvatarButton (#1078) (e2d784eac)

v19.2.0 (2022-02-18)

Features

v19.1.1 (2022-02-15)

Bug Fixes

v19.1.0 (2022-02-11)

Features

v19.0.7 (2022-02-10)

Bug Fixes

v19.0.6 (2022-02-08)

Bug Fixes

v19.0.5 (2022-02-04)

Bug Fixes

  • remove aria-label from span and move alt text to icon (#1071) (bd9aa1e05)

v19.0.4 (2022-02-04)

Bug Fixes

v19.0.3 (2022-02-04)

Bug Fixes

  • [BD-46] styles of data table's table control bar component (#1051) (38b145965)

v19.0.2 (2022-01-31)

Bug Fixes

  • use correct max-width for Card's ImageCap component (#1063) (4ae4b12c6)

v19.0.1 (2022-01-28)

Bug Fixes

  • [BD-46] components which are using deprecated lifecycle methods (#1048) (6575ededb)

v19.0.0 (2022-01-28)

Features

BREAKING CHANGES

Card component has been reworked to match new Figma spec. The following subcomponents have been added / reworked:

  • Footer
  • ImageCap
  • Header
  • Section
  • Body
  • Divider

  • style: minor improvements of Card subcomponents

  • fix: update image sizing according to figma design

Co-authored-by: vlasovmichael mykhailo.vlasov@raccoongang.com Co-authored-by: vzadorozhnii vladyslav.zadorozhnii@raccoongang.com

v18.0.0 (2022-01-26)

Features

Bug Fixes

BREAKING CHANGES

Refactors to make the configuration of bulk and table actions in DataTable more flexible to support additional use cases. Rather than passing array of objects to configure these actions, you may pass an array of custom component nodes. These custom components will receive props from DataTable (e.g., selected rows, the tableInstance, etc.)

v17.6.0 (2022-01-26)

Features

v17.5.3 (2022-01-25)

Bug Fixes

v17.5.2 (2022-01-21)

Bug Fixes

v17.5.1 (2022-01-21)

Bug Fixes

v17.5.0 (2022-01-13)

Features

v17.4.2 (2022-01-11)

Bug Fixes

  • improve spacing a bit with IconButtonToggle in DataTable (#1020) (9ffb2688b)

v17.4.1 (2022-01-11)

Bug Fixes

  • test updates to reduce prop type warnings and reduces size of expand/collapse IconButton in DataTable (#1008) (d5bca9436)

v17.4.0 (2022-01-11)

Features

v17.3.2 (2022-01-10)

Bug Fixes

  • no longer pass extra attrs to IconComponent in IconButton (#1016) (6a8731b95)

v17.3.1 (2022-01-06)

Bug Fixes

v17.3.0 (2022-01-05)

Features

v17.2.1 (2022-01-04)

Bug Fixes

v17.2.0 (2021-12-20)

Features

v17.1.3 (2021-12-17)

Bug Fixes

  • run npm audit to resolve some security vulnerabilities (#977) (eafd1ba3b)

v17.1.2 (2021-12-17)

Bug Fixes

  • native a11y support for Spinner and improve docs (#976) (f609f9ead)

v17.1.1 (2021-12-17)

Bug Fixes

  • remove default outline on btn-icon-variant mixin (#972) (5b0eed768)

v17.1.0 (2021-12-17)

Features

  • allow using IconButton as base element for Dropdown.Toggle (#939) (a4bda38a8)

v17.0.0 (2021-12-16)

Features

  • pass through functionality from react-responsive (#942) (cc01f218d)

v16.24.0 (2021-12-16)

Features

v16.23.0 (2021-12-16)

Features

  • update TableFooter to match design spec and export react-table hooks (#941) (978431495)

v16.22.0 (2021-12-10)

Features

  • breadcrumb dark variant and mobile orientation (#926) (2ece7c824)

v16.21.0 (2021-12-08)

Features

v16.20.2 (2021-12-08)

Bug Fixes

v16.20.1 (2021-12-01)

Bug Fixes

  • Change ModalPopup positionRef Proptype to prevent error before ref is hydrated (#915) (c3f867300)

v16.20.0 (2021-11-29)

Features

v16.19.0 (2021-11-19)

Features

v16.18.0 (2021-11-16)

Features

v16.17.0 (2021-11-05)

Features

  • forward isBlocking to Alert and Marketing modals (#871) (b20a8545b)

v16.16.1 (2021-11-04)

Bug Fixes

  • make onClick prop optional on IconButton component (#872) (2fef5ae49)

v16.16.0 (2021-10-28)

Features

v16.15.1 (2021-10-22)

Bug Fixes

v16.15.0 (2021-10-18)

Features

v16.14.9 (2021-10-15)

Bug Fixes

v16.14.8 (2021-10-15)

Bug Fixes

  • style fix for shadow on modal dialog scroll top (#802) (37019e575)

v16.14.7 (2021-10-13)

Bug Fixes

  • remove leading and trailing spaces on StatefulButton label (#835) (0e2e4acd0)

v16.14.6 (2021-10-08)

Bug Fixes

v16.14.5 (2021-10-06)

Bug Fixes

  • adds proper arguments to DataTable bulkActions (#828) (a9fd08c51)

v16.14.4 (2021-09-28)

Bug Fixes

v16.14.3 (2021-09-27)

Bug Fixes

v16.14.2 (2021-09-21)

Bug Fixes

  • date-time input fields on blur issue (#815) (46fe40d80)
  • filtercheckbox filterchoices properly renders number 0 (628b3cde1)

v16.14.1 (2021-09-16)

Bug Fixes

v16.14.0 (2021-09-15)

Features

  • change the default icons for the Collapsible element (#814) (80ed43919)

v16.13.3 (2021-09-14)

Bug Fixes

  • resolve PropType warning for indeterminate prop in DataTable (#812) (8bcd89671)

v16.13.2 (2021-09-10)

Bug Fixes

v16.13.1 (2021-09-09)

Bug Fixes

v16.13.0 (2021-09-08)

Features

v16.12.0 (2021-09-02)

Features

v16.11.0 (2021-08-31)

Features

v16.10.0 (2021-08-27)

Features

v16.9.1 (2021-08-26)

Bug Fixes

  • [VAN-685] Failed to execute removeChild on Node (#806) (0748b13ca)

v16.9.0 (2021-08-19)

Features

  • create page banner and add icon button black variant (#803) (4ad4e6329)

v16.8.0 (2021-08-17)

Features

v16.7.0 (2021-08-03)

Features

v16.6.4 (2021-08-02)

Bug Fixes

  • set launch icon and external text alignment to vertical center (#798) (43138fa9a)

v16.6.3 (2021-07-29)

Bug Fixes

  • remove modal dialog body before z-index for non scrollable modal (#794) (ac24b84b0)
  • mobile view breakpoint resolution in useMediaQuery (#796) (e23f88734)

v16.6.2 (2021-07-26)

Bug Fixes

v16.6.1 (2021-07-26)

Bug Fixes

v16.6.0 (2021-07-23)

Features

v16.5.0 (2021-07-21)

Features

v16.4.0 (2021-07-20)

Features

  • update Alert component to support dismiss and alert action buttons in Figma spec (#787) (592e54ee5)

v16.3.2 (2021-07-19)

Bug Fixes

v16.3.1 (2021-07-14)

Bug Fixes

v16.3.0 (2021-07-14)

Features

v16.2.0 (2021-07-13)

Features

v16.1.0 (2021-07-09)

Features

v16.0.3 (2021-07-08)

Bug Fixes

v16.0.2 (2021-07-08)

Bug Fixes

v16.0.1 (2021-07-07)

Bug Fixes

v16.0.0 (2021-07-02)

Bug Fixes

  • remove support for component labels in Pagination (#775) (2ffba6e02)

BREAKING CHANGES

This commit removes support for passing React components as buttonLabels in the Pagination component. buttonLabels must now be strings. If you were using FormattedMessage to pass a label into Pagination, then you must use intl.formatMessage instead so that the return value is a string.

This removes our dependency on sanitize-html, which is a package we were using to turn component-based labels back into plain strings. sanitize-html v2.x is compatible with PostCSS 8, a requirement for our upgrade to webpack 5. Unfortunately v2.x also drops ES5 support, which we also need. So the dependency needed to go.

To upgrade your components, pass plain string labels to buttonLabels instead of components or JSX. There are no known places where people are doing this, so it should be a no-op for known MFEs.

v15.2.2 (2021-07-01)

Bug Fixes

  • downgrade sanitize-html to 1.x for es5 support (#773) (a8af4c33a)

v15.2.1 (2021-07-01)

Bug Fixes

v15.2.0 (2021-07-01)

Features

v15.1.1 (2021-06-29)

Bug Fixes

v15.1.0 (2021-06-29)

Features

v15.0.1 (2021-06-28)

Bug Fixes

v15.0.0 (2021-06-25)

Features

  • support controlled table selections for server side pagination (#756) (ee2bc18a1)

BREAKING CHANGES

modifies onClick callback function arguments for DataTable bulk actions and table actions to differentiate between individually selected rows or selecting an entire table in the case of a table using server-side pagination.

v14.16.10 (2021-06-25)

Bug Fixes

v14.16.9 (2021-06-23)

Bug Fixes

  • top shadow fix for showing above page content (#760) (9678b4787)

v14.16.8 (2021-06-22)

Bug Fixes

v14.16.7 (2021-06-22)

Bug Fixes

v14.16.6 (2021-06-21)

v14.16.5 (2021-06-21)

Bug Fixes

  • iconbutton size issue when using Paragon Icons (#755) (630e3b7cc)

v14.16.4 (2021-06-16)

Bug Fixes

v14.16.3 (2021-06-16)

Bug Fixes

v14.16.2 (2021-06-15)

Bug Fixes

  • downgrade mailtolink to a version published as es5 (#750) (b918b7a03)

v14.16.1 (2021-06-15)

Bug Fixes

v14.16.0 (2021-06-14)

Features

v14.15.0 (2021-06-11)

Features

v14.14.2 (2021-06-10)

v14.14.1 (2021-06-08)

Bug Fixes

  • let users pass props when using advanced SearchField (#742) (7724af30e)

v14.14.0 (2021-06-09)

Features

v14.13.0 (2021-06-08)

Features

v14.12.5 (2021-06-01)

Bug Fixes

v14.12.4 (2021-05-25)

Bug Fixes

v14.12.3 (2021-05-24)

Bug Fixes

  • improve button icon css so it works with avatar button (#733) (eda9bf11a)

v14.12.2 (2021-05-21)

Bug Fixes

  • prevent Pagination exceeding call stack size with 5000+ pages (#732) (e6ad9d45c)

v14.12.1 (2021-05-20)

Bug Fixes

v14.12.0 (2021-05-20)

Features

Bug Fixes

v14.11.5 (2021-05-18)

Bug Fixes

v14.11.4 (2021-05-18)

Bug Fixes

v14.11.3 (2021-05-18)

Bug Fixes

v14.11.2 (2021-05-18)

Bug Fixes

v14.11.1 (2021-05-17)

Bug Fixes

v14.11.0 (2021-05-17)

Features

Bug Fixes

v14.10.2 (2021-05-07)

Bug Fixes

v14.10.1 (2021-05-07)

Bug Fixes

v14.10.0 (2021-04-30)

Features

v14.9.0 (2021-04-30)

Features

  • added modalBodyClassName prop in FullScreenModal (#704) (2dc5226e9)

v14.8.0 (2021-04-29)

Features

v14.7.0 (2021-04-16)

Features

v14.6.1 (2021-04-13)

Bug Fixes

  • resolve console error during testing with react-testing-renderer (#689) (c70b44b9e)

v14.6.0 (2021-04-12)

Features

v14.5.0 (2021-04-08)

Features

v14.4.0 (2021-04-07)

Features

  • export CheckboxControl, RadioControl, and SwitchControl (#684) (5b814e6eb)

v14.3.0 (2021-04-06)

Features

v14.2.0 (2021-04-06)

Features

v14.1.1 (2021-04-06)

Bug Fixes

  • change popover component according to new design (#662) (4129d3a4c)

v14.1.0 (2021-04-02)

Features

v14.0.0 (2021-03-31)

Features

BREAKING CHANGES

hanged font-sizes and line-heights of display-1,-2,-3,-4

v13.17.5 (2021-03-30)

Bug Fixes

  • change alert component according to new design (#663) (dda66da4f)

v13.17.4 (2021-03-30)

Bug Fixes

v13.17.3 (2021-03-24)

Bug Fixes

v13.17.2 (2021-03-24)

Bug Fixes

v13.17.1 (2021-03-23)

Bug Fixes

v13.17.0 (2021-03-19)

Features

v13.16.4 (2021-03-15)

Bug Fixes

  • change collapsible component according to new design (#658) (d5db6b3e7)

v13.16.3 (2021-03-15)

Bug Fixes

  • change styles according to new dropdown component design (#656) (da8b9f29a)

v13.16.2 (2021-03-10)

Bug Fixes

v13.16.1 (2021-03-08)

Bug Fixes

v13.16.0 (2021-03-04)

v13.15.1 (2021-03-04)

Bug Fixes

  • vertically align breadcrumb spacer with text (#653) (3d1849039)

v13.15.0 (2021-03-04)

Features

  • make default styles more similar to the edx.org brand (#650) (9680e0ba9)

v13.14.1 (2021-03-03)

Bug Fixes

  • change breadcrumb component according to new design (#651) (b643e4728)

v13.14.0 (2021-03-03)

Features

  • change styles according to new badge component design (#652) (4ca4db6db)

v13.13.5 (2021-03-02)

v13.13.4 (2021-03-02)

Bug Fixes

  • force container sizes to obey max width (#644) (556c024b3)
  • change styles according to new toast component design (#648) (d8f0b1fec)

v13.13.3 (2021-03-01)

Bug Fixes

v13.13.2 (2021-02-26)

v13.13.1 (2021-02-26)

v13.13.0 (2021-02-26)

Features

v13.12.1 (2021-02-24)

Bug Fixes

v13.12.0 (2021-02-18)

Features

v13.11.1 (2021-02-17)

Bug Fixes

v13.11.0 (2021-02-16)

Features

v13.10.0 (2021-02-12)

Features

v13.9.0 (2021-02-12)

Features

  • change modal close icon from font awesome to paragon close icon (#631) (7791eb9ed)

v13.8.1 (2021-02-10)

Bug Fixes

v13.8.0 (2021-02-09)

Features

v13.7.0 (2021-02-09)

Features

v13.6.2 (2021-02-06)

v13.6.1 (2021-02-05)

v13.6.0 (2021-02-05)

Features

v13.5.0 (2021-02-05)

Features

v13.4.0 (2021-02-05)

Features

v13.3.1 (2021-02-04)

Bug Fixes

v13.3.0 (2021-02-03)

Features

  • CardGrid to organize collection of cards in responsive grid (#614) (b2cfe53ae)

v13.2.1 (2021-02-01)

Bug Fixes

v13.2.0 (2021-02-01)

Features

v13.1.2 (2021-01-26)

Bug Fixes

v13.1.1 (2021-01-26)

Bug Fixes

v13.1.0 (2021-01-26)

Features

v13.0.0 (2021-01-25)

Features

BREAKING CHANGES

Delete outdated edx/ and example-theme theme directories

v12.8.0 (2021-01-21)

Features

v12.7.1 (2021-01-15)

Bug Fixes

v12.7.0 (2021-01-15)

Features

v12.6.1 (2021-01-14)

Bug Fixes

v12.6.0 (2021-01-11)

Features

v12.5.0 (2021-01-08)

Features

v12.4.1 (2020-12-09)

Bug Fixes

v12.4.0 (2020-12-09)

Features

v12.3.1 (2020-12-04)

Bug Fixes

v12.3.0 (2020-12-03)

Features

v12.2.1 (2020-12-03)

Bug Fixes

  • no longer override theme color level definitions (#590) (18326ce3b)

v12.2.0 (2020-11-20)

Features

v12.1.0 (2020-11-20)

Features

  • add definitions for color variables in Paragon core scss (#586) (2dfa52493)

v12.0.5 (2020-10-23)

Bug Fixes

v12.0.4 (2020-10-07)

v12.0.3 (2020-10-07)

v12.0.2 (2020-10-01)

v12.0.1 (2020-09-28)

v12.0.0 (2020-09-15)

Bug Fixes

BREAKING CHANGES

The tooltip has been removed from IconButton.

v11.1.0 (2020-09-09)

Features

v11.0.0 (2020-09-08)

Features

BREAKING CHANGES

Toast default styling and props API has changed.

v10.1.1 (2020-08-27)

Bug Fixes

v10.1.0 (2020-08-21)

Features

  • adding className pass-through to .modal-dialog element (#559) (36061549b)

v10.0.1 (2020-08-07)

Bug Fixes

  • update the usage of button internal to Table (#554) (82205cf6c)

v10.0.0 (2020-08-04)

Features

  • add button, dropdown, and tabs from react-bootstrap (#553) (a7f0e663d)

BREAKING CHANGES

Tabshas been replaced by the react-bootstrap Tabs. The old implementation is available at Tabs.Deprecated. The old implementation matched the order of labels with the order of children. The new implementation uses the Tab child component's title prop to create labels dynamically.

v9.1.1 (2020-07-31)

Bug Fixes

v9.1.0 (2020-07-17)

Features

v9.0.2 (2020-06-30)

v9.0.1 (2020-05-01)

v9.0.0 (2020-05-01)

BREAKING CHANGES

refactoring the SearchField component to add support for additional flexibility (e.g., optional clear button, no label displayed, etc.).

v8.2.0 (2020-04-09)

Features

  • set max width to 1140px plus padding (a3d0b0716)

v8.1.2 (2020-04-09)

Bug Fixes

v8.1.1 (2020-04-08)

Bug Fixes

  • moved pagination icons into separate prop (b43fff002)

v8.1.0 (2020-04-07)

Features

  • allowing pagination component to take in custom chevron, adjusting max width to be inclusive of padding (8cad54d1a)

v8.0.0 (2020-04-06)

Features

  • set max-width of containers to 1140px (04cfa84d7)

BREAKING CHANGES

The max width of container and container-fluid is significantly contracted. Though it's unlikely to cause issues, it's possible that layouts that relied on containers ability to be wider than 1140px could need to rework some css rules.

v7.2.1 (2020-03-24)

Bug Fixes

  • ignore deprecation warnings for bootstrap v5 (#532) (d7d631a73)

v7.2.0 (2019-11-07)

Features

v7.1.5 (2019-10-02)

v7.1.4 (2019-09-27)

Bug Fixes

v7.1.3 (2019-09-16)

Bug Fixes

  • remove react from dependencies. Addback to peer/dev dependencies (#519) (42e25ebca)

v7.1.2 (2019-08-28)

Bug Fixes

v7.1.1 (2019-08-26)

Bug Fixes

v7.1.0 (2019-08-26)

Features

v7.0.1 (2019-08-23)

Bug Fixes

  • onToggle send the new state to callback instead of dirty state (#508) (9573f4c4c)

v7.0.0 (2019-08-20)

Features

Bug Fixes

BREAKING CHANGES

Related styles are included in paragon scss and no longer exist as a sibling to the component.

v6.2.4 (2019-08-07)

Bug Fixes

  • modal can accept any react component for buttons (#503) (e4f08bd6d)

v6.2.3 (2019-08-01)

v6.2.2 (2019-07-31)

v6.2.1 (2019-07-30)

v6.2.0 (2019-07-24)

Features

v6.1.2 (2019-07-23)

Bug Fixes

  • modal to not close when mouse drag from in modal to out (#497) (229b6279c)

v6.1.1 (2019-07-18)

Bug Fixes

v6.1.0 (2019-07-03)

Features

v6.0.2 (2019-07-02)

Bug Fixes

v6.0.1 (2019-07-01)

Bug Fixes

v6.0.0 (2019-06-28)

BREAKING CHANGES

This changes the build artifact to individual files with es6 imports/exports in them.

v5.0.0 (2019-06-28)

BREAKING CHANGES

This potentially requires consuming apps to update their webpack config to take advantage of treeshaking, and it hasn’t yet been tested with gatsby.

v4.4.0 (2019-06-28)

Features

v4.3.1 (2019-06-21)

Bug Fixes

v4.3.0 (2019-06-20)

Features

v4.2.7 (2019-06-06)

Bug Fixes

v4.2.6 (2019-05-24)

Bug Fixes

  • update invalid feedback to be strong (0a8309a14)

v4.2.5 (2019-05-22)

v4.2.4 (2019-05-15)

Bug Fixes

  • remove deprecated props from stories and components (#440) (186a52837)

v4.2.3 (2019-05-15)

Bug Fixes

v4.2.2 (2019-05-03)

Bug Fixes

v4.2.1 (2019-05-02)

Bug Fixes

v4.2.0 (2019-04-30)

Features

v4.1.4 (2019-04-19)

Bug Fixes

  • move prop shuffling into asInput (6ee85ac42)
  • use withDeprecatedProps on Checkbox (398531fdd)
  • pull unused vars out of props to prevent adding them to html tag (77f803b1c)
  • pass through unknown props for asInput components (6f2d30d8c)

v4.1.3 (2019-04-11)

Bug Fixes

v4.1.2 (2019-04-09)

Bug Fixes

v4.1.1 (2019-04-08)

v4.1.0 (2019-04-05)

Features

v4.0.5 (2019-04-03)

Bug Fixes

v4.0.4 (2019-04-02)

v4.0.3 (2019-04-01)

Bug Fixes

  • add rel="noopener" for new window Hyperlinks (#407) (619450d3a)

v4.0.2 (2019-03-28)

Bug Fixes

v4.0.1 (2019-03-26)

Bug Fixes

  • ADR for Prop Naming and change classNames to strings (#405) (1443429cd)

v4.0.0 (2019-03-22)

Features

  • publish major upgrades of many packages and configuration (6ed1bbe5d)

BREAKING CHANGES

This removes the static build of Paragon. CSS Modules have been removed. The way to include Paragon SCSS has changed. You will see minor changes in your snapshot tests.

v3.10.1 (2019-03-22)

Bug Fixes

  • revert major upgrades of many packages and configuration (#394) (#400) (3f9bc60c6)

v3.10.0 (2019-03-22)

Features

  • major upgrades of many packages and configuration (#394) (#400) (0274806f8)

BREAKING CHANGES

  • update storybook, webpack, and other supporting packages
  • upgrade node version in travis
  • fix: clean up commonly repeated storybook configuration
  • fix: update dependencies
  • fix: misc config changes
  • fix: height of fieldset

long term the .form-control class should not be used on fieldset. It now explicitly sets a height and was probably not intended to be used the way it is in paragon's fieldset.

  • fix: remove css module import for font awesome in Icon story
  • fix: update storyshot config to have no decorators
  • fix: use whitelist for npm publishing
  • fix: remove source maps from build. hopefully using less memory
  • fix: update notifications to paragon@edx.org

feat: remove static build output (#398)

Removes a the static build output. Sets the stage to remove css modules and simplify JSX elsewhere.

feat: remove css module and namespace support (#399)

This changes the way scss should be imported with components. Rather than a SCSS file for each module, this prefers that consumers import the scss file (src/index.scss). It must be included after bootstrap variables are set. It's also up to the consumer to include font-awesome if needed.

See ADR for removal of CSS Modules.

  • fix: remove usage of css module styles object
  • feat: remove css modules and consolidate scss inclusion pattern
  • fix: build scss separately
  • fix: remove array around className prop for raw html nodes

v3.9.4 (2019-03-08)

v3.9.3 (2019-03-06)

v3.9.2 (2019-03-06)

v3.9.1 (2019-02-22)

v3.9.0 (2019-02-06)

v3.8.3 (2019-01-15)

v3.8.2 (2019-01-11)

v3.8.1 (2019-01-10)

v3.8.0 (2018-12-11)

v3.7.4 (2018-12-05)

v3.7.3 (2018-11-30)

v3.7.2 (2018-11-26)

v3.7.1 (2018-11-14)

v3.7.0 (2018-11-02)

v3.6.0 (2018-10-29)

v3.5.2 (2018-10-15)

v3.5.1 (2018-10-12)

v3.5.0 (2018-10-10)

v3.4.10 (2018-09-27)

v3.4.9 (2018-09-26)

v3.4.8 (2018-09-19)

v3.4.7 (2018-08-30)

v3.4.6 (2018-08-24)

v3.4.5 (2018-08-23)

v3.4.4 (2018-08-23)

v3.4.3 (2018-08-23)

v3.4.2 (2018-08-22)

v3.4.1 (2018-08-22)

v3.4.0 (2018-08-17)

v3.3.6 (2018-08-08)

v3.3.5 (2018-08-06)

v3.3.4 (2018-08-03)

v3.3.3 (2018-07-25)

v3.3.2 (2018-07-11)

v3.3.1 (2018-07-11)

v3.3.0 (2018-06-13)

v3.2.1 (2018-06-20)

v3.2.0 (2018-06-20)

v3.1.2 (2018-06-11)

v3.1.1 (2018-05-21)

v3.1.0 (2018-05-08)

v3.0.5 (2018-05-14)

v3.0.4 (2018-05-11)

v3.0.3 (2018-05-10)

v3.0.2 (2018-05-09)

v3.0.1 (2018-05-07)

v3.0.0 (2018-04-27)

BREAKING CHANGES

Modal now renders through a Portal, this may cause failures in tests or styling rules that expect the modal in specific places in the dom tree

v2.7.0 (2018-04-24)

v2.6.4 (2018-04-20)

v2.6.3 (2018-04-19)

v2.6.2 (2018-04-12)

v2.6.1 (2018-04-11)

v2.6.0 (2018-04-06)

v2.5.6 (2018-04-04)

v2.5.5 (2018-04-04)

v2.5.4 (2018-04-04)

v2.5.3 (2018-04-04)

v2.5.2 (2018-04-02)

v2.5.1 (2018-04-02)

v2.5.0 (2018-03-30)

v2.4.3 (2018-03-28)

v2.4.2 (2018-03-28)

v2.4.1 (2018-03-20)

v2.4.0 (2018-03-20)

v2.3.0 (2018-03-16)

v2.2.3 (2018-03-16)

v2.2.2 (2018-03-15)

v2.2.1 (2018-02-20)

v2.2.0 (2018-02-20)

v2.1.0 (2018-02-04)

v2.0.1 (2018-01-29)

v2.0.0 (2018-01-25)

v1.7.2 (2018-01-17)

v1.7.1 (2018-01-08)

v1.7.0 (2018-01-08)

v1.6.1 (2018-01-05)

v1.6.0 (2017-12-29)

v1.5.1 (2017-12-27)

v1.5.0 (2017-12-22)

v1.4.11 (2017-12-20)

v1.4.10 (2017-12-18)

v1.4.9 (2017-12-18)

v1.4.8 (2017-12-13)

v1.4.6 (2017-12-08)

v1.4.5 (2017-12-07)

v1.4.4 (2017-12-06)

v1.4.3 (2017-12-06)

v1.4.2 (2017-12-04)

v1.4.1 (2017-12-04)

v1.4.0 (2017-12-04)

v1.3.3 (2017-11-21)

v1.3.2 (2017-11-21)

v1.3.1 (2017-11-20)

v1.3.0 (2017-11-16)

v1.2.0 (2017-11-16)

v1.1.3 (2017-11-06)

v1.1.1 (2017-11-03)

v1.1.0 (2017-11-01)

v1.0.0 (2017-10-26)

v0.2.0 (2017-10-24)

v0.1.0 (2017-10-16)