diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index e6d732264..000000000
--- a/.babelrc
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "presets": [
- ["es2015", {"modules": false}],
- "react"
- ],
- "plugins": [
- "transform-object-rest-spread"
- ],
- "env": {
- "dist-dir": {
- "plugins": ["transform-es2015-modules-commonjs"]
- },
- "webpack": {
- "plugins": ["transform-es2015-modules-commonjs"]
- },
- "test": {
- "plugins": ["transform-es2015-modules-commonjs"]
- }
- }
-}
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 2c57ced33..000000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,60 +0,0 @@
-var ecmaFeatures = {
- 'jsx': true,
- 'arrowFunctions': true,
- 'blockBindings': true,
- 'defaultParams': true,
- 'destructuring': true,
- 'forOf': true,
- 'generators': true,
- 'objectLiteralComputedProperties': true,
- 'objectLiteralShorthandMethods': true,
- 'objectLiteralShorthandProperties': true,
- 'experimentalObjectRestSpread': true,
- 'restParams': true,
- 'spread': true,
- 'templateStrings': true,
- 'modules': true,
- 'classes': true
-};
-
-var rules = {
- 'comma-dangle': 0,
- 'new-cap': 0,
- 'arrow-body-style': 0,
- 'prefer-template': 0,
- 'no-underscore-dangle': 0,
- 'object-shorthand': 0,
- 'func-names': 0,
- 'no-extra-parens': ['error', 'functions'],
- 'dot-notation': 0,
- 'max-len': 0,
- 'camelcase': 0,
- 'react/jsx-pascal-case': 0,
- 'prefer-const': 0,
- 'react/jsx-filename-extension': 0,
- 'linebreak-style': 0,
- 'react/require-extension': 0
-};
-
-module.exports = {
- 'extends': 'airbnb',
- 'env': {
- 'browser': true,
- 'node': true,
- 'es6': true
- },
- 'globals': {
- 'describe': true,
- 'it': true
- },
- 'plugins': [
- 'react'
- ],
- 'parserOptions': {
- 'sourceType': 'module',
- 'ecmaFeatures': ecmaFeatures
- },
- 'ecmaFeatures': ecmaFeatures,
- rules: rules,
- extensions: ['', '.js', '.jsx']
-};
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 000000000..0e1b9c08b
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,92 @@
+{
+ "root": true,
+ "extends": [
+ "airbnb",
+ "prettier",
+ "plugin:storybook/recommended"
+ ],
+ "parser": "@babel/eslint-parser",
+ "env": {
+ "browser": true,
+ "node": true,
+ "es6": true
+ },
+ "plugins": [
+ "react"
+ ],
+ "rules": {
+ "react/forbid-foreign-prop-types": 0,
+ "comma-dangle": 0,
+ "new-cap": 0,
+ "arrow-body-style": 0,
+ "prefer-template": 0,
+ "no-underscore-dangle": 0,
+ "object-shorthand": 0,
+ "func-names": 0,
+ "dot-notation": 0,
+ "max-len": 0,
+ "camelcase": 0,
+ "react/jsx-pascal-case": 0,
+ "prefer-const": 0,
+ "operator-linebreak": 0,
+ "react/jsx-filename-extension": 0,
+ "linebreak-style": 0,
+ "react/require-extension": 0,
+ "react/no-children-prop": 0,
+ "react/require-default-props": 0,
+ "react/forbid-prop-types": 0,
+ "jsx-a11y/no-noninteractive-element-interactions": 0,
+ "import/no-webpack-loader-syntax": 0,
+ "import/no-unresolved": 0,
+ "react/jsx-props-no-spreading": 0,
+ "react/destructuring-assignment": 0,
+ "jsx-a11y/click-events-have-key-events": 0,
+ "jsx-a11y/no-static-element-interactions": 0,
+ "react/jsx-no-constructed-context-values": 0,
+ "consistent-return": 0,
+ "no-restricted-globals": 0,
+ "no-nested-ternary": 0,
+ "import/prefer-default-export": 0,
+ "prefer-destructuring": [
+ "error",
+ {
+ "array": false,
+ "object": true
+ }
+ ],
+ "import/no-extraneous-dependencies": 0,
+ "no-param-reassign": 0,
+ "jsx-a11y/mouse-events-have-key-events": 0
+ },
+ "parserOptions": {
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "jsx": true,
+ "arrowFunctions": true,
+ "blockBindings": true,
+ "defaultParams": true,
+ "destructuring": true,
+ "forOf": true,
+ "generators": true,
+ "objectLiteralComputedProperties": true,
+ "objectLiteralShorthandMethods": true,
+ "objectLiteralShorthandProperties": true,
+ "experimentalObjectRestSpread": true,
+ "restParams": true,
+ "spread": true,
+ "templateStrings": true,
+ "modules": true,
+ "classes": true
+ }
+ },
+ "overrides": [
+ {
+ "files": [
+ "testUtils.js"
+ ],
+ "env": {
+ "jest": true
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 000000000..88552ce2c
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,2 @@
+tidelift: npm/reactstrap
+custom: https://www.paypal.me/evansharp
diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md
new file mode 100644
index 000000000..206c92516
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug-report.md
@@ -0,0 +1,39 @@
+---
+name: Bug report
+about: Create a report to help us improve
+
+---
+
+- components: `name`
+- reactstrap version `#x.x.x`
+- import method `umd/csj/es`
+- react version `#x.x.x`
+- bootstrap version `#x.x.x`
+
+### What is happening?
+
+
+
+### What should be happening?
+
+
+
+### Steps to reproduce issue
+
+1. ...
+2. ...
+
+### Error message in console
+
+```
+paste error message with stacktrack here
+```
+
+### Code
+
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..601dea123
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,101 @@
+version: 2
+updates:
+- package-ecosystem: npm
+ directory: "/"
+ schedule:
+ interval: daily
+ time: "13:00"
+ open-pull-requests-limit: 10
+ ignore:
+ - dependency-name: conventional-recommended-bump
+ versions:
+ - ">= 5.a, < 6"
+ - dependency-name: conventional-recommended-bump
+ versions:
+ - ">= 6.a, < 7"
+ - dependency-name: cross-env
+ versions:
+ - ">= 5.a, < 6"
+ - dependency-name: cross-env
+ versions:
+ - ">= 6.a, < 7"
+ - dependency-name: cross-env
+ versions:
+ - ">= 7.a, < 8"
+ - dependency-name: css-loader
+ versions:
+ - ">= 3.a, < 4"
+ - dependency-name: customize-cra
+ versions:
+ - ">= 1.a, < 2"
+ - dependency-name: ejs
+ versions:
+ - ">= 3.a, < 4"
+ - dependency-name: raw-loader
+ versions:
+ - ">= 4.a, < 5"
+ - dependency-name: react-helmet
+ versions:
+ - ">= 6.a, < 7"
+ - dependency-name: react-router
+ versions:
+ - ">= 4.a, < 5"
+ - dependency-name: react-router
+ versions:
+ - ">= 5.a, < 6"
+ - dependency-name: react-scripts
+ versions:
+ - "> 2.1.1"
+ - dependency-name: react-scripts
+ versions:
+ - ">= 3.a, < 4"
+ - dependency-name: react-transition-group
+ versions:
+ - ">= 4.a, < 5"
+ - dependency-name: rollup
+ versions:
+ - ">= 2.a, < 3"
+ - dependency-name: rollup-plugin-babel-minify
+ versions:
+ - ">= 10.a, < 11"
+ - dependency-name: rollup-plugin-babel-minify
+ versions:
+ - ">= 9.a, < 10"
+ - dependency-name: rollup-plugin-node-resolve
+ versions:
+ - ">= 5.a, < 6"
+ - dependency-name: style-loader
+ versions:
+ - ">= 1.a, < 2"
+ - dependency-name: css-loader
+ versions:
+ - 5.0.1
+ - 5.0.2
+ - 5.1.0
+ - 5.1.1
+ - 5.1.2
+ - 5.1.3
+ - 5.1.4
+ - 5.2.0
+ - 5.2.1
+ - 5.2.3
+ - dependency-name: "@types/react"
+ versions:
+ - 17.0.1
+ - 17.0.2
+ - 17.0.3
+ - dependency-name: mini-css-extract-plugin
+ versions:
+ - 1.3.5
+ - 1.3.6
+ - 1.3.7
+ - 1.3.8
+ - 1.3.9
+ - dependency-name: "@babel/plugin-proposal-object-rest-spread"
+ versions:
+ - 7.12.13
+ - 7.13.0
+ - dependency-name: webpack-cli
+ versions:
+ - 4.4.0
+ - 4.5.0
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
new file mode 100644
index 000000000..a7a230c82
--- /dev/null
+++ b/.github/workflows/coverage.yml
@@ -0,0 +1,30 @@
+name: Test Coverage
+
+on:
+ push:
+ branches: [ master, bootstrap5 ]
+ pull_request:
+ branches: [ master, bootstrap5 ]
+
+jobs:
+
+ build:
+ runs-on: ubuntu-latest
+ steps:
+
+ - uses: actions/checkout@v2
+
+ - name: Use Node.js 12.x
+ uses: actions/setup-node@v1
+ with:
+ node-version: 12.x
+ cache: 'yarn'
+
+ - run: rm -rf node_modules && yarn install --frozen-lockfile
+ - name: Run Coverage
+ run: |
+ npm run cover -- --runInBand
+ - name: Upload to Coveralls
+ uses: coverallsapp/github-action@master
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
new file mode 100644
index 000000000..49b49a86e
--- /dev/null
+++ b/.github/workflows/docs.yml
@@ -0,0 +1,18 @@
+name: Manually Publish Docs
+on: workflow_dispatch
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ # Setup .npmrc file to publish to npm
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '12.x'
+ registry-url: 'https://registry.npmjs.org'
+ - name: Install dependencies
+ run: rm -rf node_modules && yarn install --frozen-lockfile
+ - name: Publish Docs
+ env:
+ GITHUB_TOKEN: ${{ secrets.REACTSTRAP_DOCS_GITHUB_TOKEN }}
+ run: ./scripts/docs
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
new file mode 100644
index 000000000..10ffaedf7
--- /dev/null
+++ b/.github/workflows/release-please.yml
@@ -0,0 +1,46 @@
+on:
+ push:
+ branches:
+ - master
+name: Release Bot
+jobs:
+ release-pr:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: GoogleCloudPlatform/release-please-action@v3
+ id: release-please
+ with:
+ release-type: node
+ package-name: "reactstrap"
+ changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":true},{"type":"refactor","section":"Miscellaneous","hidden":false}]'
+ command: release-pr
+
+ release:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: GoogleCloudPlatform/release-please-action@v3
+ id: release
+ with:
+ release-type: node
+ package-name: "reactstrap"
+ command: github-release
+ - uses: actions/checkout@v2
+ if: ${{ steps.release.outputs.release_created }}
+ - uses: actions/setup-node@v2
+ with:
+ node-version: '16.x'
+ registry-url: 'https://registry.npmjs.org'
+ if: ${{ steps.release.outputs.release_created }}
+ - name: Install dependencies
+ run: rm -rf node_modules && yarn install --frozen-lockfile
+ if: ${{ steps.release.outputs.release_created }}
+ - name: Publish package
+ run: npm publish
+ env:
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
+ if: ${{ steps.release.outputs.release_created }}
+ - name: Publish Docs
+ env:
+ GITHUB_TOKEN: ${{ secrets.REACTSTRAP_TOKEN }}
+ run: ./scripts/docs
+ if: ${{ steps.release.outputs.release_created }}
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 000000000..5332c8cd8
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,32 @@
+# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
+# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
+
+name: Node.js CI
+
+on:
+ push:
+ branches: [ master, release-* ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ strategy:
+ matrix:
+ node-version: [12.x, 14.x, 16.x]
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v2
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: 'yarn'
+ - run: rm -rf node_modules && yarn install --frozen-lockfile
+ - run: npm run lint
+ - run: npm run build --if-present
+ - run: npm run test:ci
diff --git a/.gitignore b/.gitignore
index 6c17fd499..a296b70e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,5 +3,10 @@ node_modules
/dist
/build
/lib
+/esm
+/es
+.DS_Store
.idea
+.history
npm-debug.log
+package-lock.json
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 000000000..48082f72f
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+12
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1 @@
+{}
diff --git a/.storybook/main.cjs b/.storybook/main.cjs
new file mode 100644
index 000000000..3a41deab1
--- /dev/null
+++ b/.storybook/main.cjs
@@ -0,0 +1,11 @@
+module.exports = {
+ stories: [
+ '../stories/**/*.stories.mdx',
+ '../stories/**/*.stories.js'
+ ],
+ addons: [
+ '@storybook/addon-links',
+ '@storybook/addon-docs'
+ ],
+ staticDirs: ['../static']
+};
diff --git a/.storybook/manager-head.html b/.storybook/manager-head.html
new file mode 100644
index 000000000..3266b9c00
--- /dev/null
+++ b/.storybook/manager-head.html
@@ -0,0 +1 @@
+
diff --git a/.storybook/manager.cjs b/.storybook/manager.cjs
new file mode 100644
index 000000000..e5f450653
--- /dev/null
+++ b/.storybook/manager.cjs
@@ -0,0 +1,43 @@
+import { addons } from '@storybook/addons';
+import { STORY_RENDERED } from '@storybook/core-events'
+import { create } from '@storybook/theming';
+
+const theme = create({
+ base: 'light',
+ brandTitle: 'Reactstrap',
+ brandUrl: 'https://github.com/reactstrap/reactstrap',
+ brandImage: 'logo.svg',
+});
+
+addons.setConfig({
+ theme
+});
+
+addons.register('TitleAddon', api => {
+ const customTitle = 'Reactstrap';
+ let interval = null;
+ const setTitle = () => {
+ clearTimeout(interval);
+
+ let storyData = null;
+ try {
+ storyData = api.getCurrentStoryData();
+ } catch(e) {}
+
+ let title;
+ if (!storyData) {
+ title = customTitle;
+ } else {
+ title = `${storyData.kind} - ${storyData.name} ⋅ ${customTitle}`
+ }
+
+ if (document.title !== title) {
+ document.title = title;
+ }
+ interval = setTimeout(setTitle, 100);
+ };
+ setTitle();
+ api.on(STORY_RENDERED, story => {
+ setTitle();
+ })
+})
diff --git a/.storybook/preview-head.html b/.storybook/preview-head.html
new file mode 100644
index 000000000..adfb667a5
--- /dev/null
+++ b/.storybook/preview-head.html
@@ -0,0 +1,13 @@
+
+
+
\ No newline at end of file
diff --git a/.storybook/preview.cjs b/.storybook/preview.cjs
new file mode 100644
index 000000000..660fc6f52
--- /dev/null
+++ b/.storybook/preview.cjs
@@ -0,0 +1,18 @@
+export const parameters = {
+ actions: { argTypesRegex: "^on[A-Z].*" },
+ controls: {
+ hideNoControlsWarning: true,
+ matchers: {
+ date: /Date$/
+ },
+ },
+ options: {
+ storySort: {
+ order: ['Home', ['Installation', 'GitHub', 'Upgrading', 'Themes'], '*']
+ }
+ },
+ viewMode: 'docs',
+ previewTabs: {
+ canvas: { hidden: true },
+ },
+}
diff --git a/.storybook/webpack.config.cjs b/.storybook/webpack.config.cjs
new file mode 100644
index 000000000..21208aa9a
--- /dev/null
+++ b/.storybook/webpack.config.cjs
@@ -0,0 +1,11 @@
+const path = require('path');
+
+module.exports = async ({ config }) => {
+ config.resolve = {
+ alias: {
+ reactstrap: path.resolve(__dirname, '../src/')
+ },
+ };
+
+ return config;
+};
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 3f8f9784e..000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-sudo: false
-dist: trusty
-language: node_js
-node_js:
- - 6
-cache:
- directories:
- - node_modules
-before_script:
- - chmod +x scripts/docs
-script:
- - npm run lint
- - npm run cover -- --runInBand
-after_script:
- - npm run report-coverage
-after_success:
- - scripts/docs
-env:
- global:
- secure: GKu1vrkY7RWrrp0VOyxBjGSyTOGdU9jNT+oYR7P12PbCX4yzZ2mbsPpxWWs7Uh8ZXm5VEEfkrF80v/ccUEMvf1MD/q95nqLcQRoN/31yDhiJ66uW+mZk0C6OqUUZJlcSt1Ta6oLmLVmkJUu2euOo4ZTGQ1iwV9EOS+auPYUjXF7df8JE9sTof4YM3jUiQ+3ABIG8cOcsf81AyS9TOcpH6xPEs71Hz0uXta3TAAYpLgJSuuCciQn5Sr/9UIh9w10zAasSZBy27+A5mTf0C0xk3vN95cHfyS25r5x/zC3++YS//6MQASruT05Hf7STpF9Dy/6mdg6tMfGr+85zDqpMaF1dP5Rm9f8KHqZzYD52PtwLEkHpWwi/gqHY5vc+wHla5FEXiqawtBTRMj/hlvkvdN55qZnnFmsVEPrhHAIm1a8ECngzkZhG9QblszGgc55RtAtgGSlVsS5VWStsj29xLs2VJb6gYj69cMDSIND4e5VYzmrnaO/qRbzvRWJUIWFo/nmpSnAQbq5yV8K1+VukbxX/hF7+mE55ieeVww8tnC2bkxuQF1CbzTul5kPgAD7Hf8YdsSczvdZpSRHtN6OXGCotw4DRAiXZRb5TLFvEQFvbrNGciN5/Z1rXxlMr8WWwckAFxVW1EQd+kKg8abjCOLE+YY04a+h3W/+XOgDPUlA=
-branches:
- only:
- - master
- - v4
-before_deploy:
- - npm run build
-deploy:
- skip_cleanup: true
- provider: npm
- email: edward.d.hernandez@gmail.com
- api_key:
- secure: FFlZtXFtzHE0mnYlYPnv5g7CE3IYj4DdO28qxSLV1sa1UC/FJOAY6no5iiQ62aL0CH66B9sgXjvOvRDYoSfIWjOxYS49OcYQ1U6cW4x3azI34FTVCkjfsmoOrnsiBkNjYkKbz+XW7rsdN/u4CA9womdqHq4v4dNroB8mgrHKli5/CK7PhodRf9JYq758cc/cwZjnIQ3ioZ9vcsgsBcYO+705kh0x6HNEYQyhDMm++DMEupa7OtzZTeZbeDFxDCVlFWCxMJCbwkjqK4tqxXJglBbr2SPZ+LKi2EMHaILUoYwFsMimBFy+rYjCCe55zYnuYw2z+6lPeqbJ7pvhodTYcf/kUVpHzUKBMrCW4oJXlQ7MjaX9gaiiD8K+pnP7IF3N+j7iiroxsRa7floYTjDLstxNwrawfrIajL1C0wRTZ9g7CUX/Pbxjs818zOAloHqzlVQewIt3Jcj0CyXeVgZSQvcHvU1ROSJkN9qYyBXbb9rou4j+mgYvLLy+aql91dvmSjQIuDGqG9x+Acyz5Zl5N36JNjNAwJxF1NV1E/Vks8TPdgU3O6zylP+tg9HAzu7jG9gnIAusC7vkE/9RZ1TFQPAMTVrL+sqHmliDBHWBmMRibbkEsTl2vvV2ZSriHqQGqRFqv7jhON96RdzU6uxDtoRJb4ZGZrqEmt7l8n5USAU=
- on:
- tags: true
- repo: reactstrap/reactstrap
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81711735e..7bb91fe9d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,1130 @@
+# [9.0.0-8](https://github.com/reactstrap/reactstrap/compare/v9.0.0-7...v9.0.0-8) (2021-10-15)
+
+
+### Bug Fixes
+
+* **Button:** remove extra close icon in `btn-close` ([#2318](https://github.com/reactstrap/reactstrap/issues/2318)) ([f1289c7](https://github.com/reactstrap/reactstrap/commit/f1289c79cc4828cf84b0d6d842297b52dc1fe102))
+* **Label:** add `form-label` class for labels of vertical forms ([#2317](https://github.com/reactstrap/reactstrap/issues/2317)) ([43d0a37](https://github.com/reactstrap/reactstrap/commit/43d0a37e597f3081a3ebe633f6d041e4f62e111d))
+* **types:** add 'swtch' to `InputType` ([#2340](https://github.com/reactstrap/reactstrap/issues/2340)) ([f449c1c](https://github.com/reactstrap/reactstrap/commit/f449c1c10e38af03719aebb19534075b6b46f40c))
+
+
+
+# [9.0.0-7](https://github.com/reactstrap/reactstrap/compare/v9.0.0-6...v9.0.0-7) (2021-09-27)
+
+
+### Bug Fixes
+
+* **types:** remove duplicate types/lib/index.d.ts ([#2316](https://github.com/reactstrap/reactstrap/issues/2316)) ([38f8060](https://github.com/reactstrap/reactstrap/commit/38f80603f42d114915c22f88549a1d73d6fd545d))
+
+
+
+# [9.0.0-6](https://github.com/reactstrap/reactstrap/compare/v9.0.0-5...v9.0.0-6) (2021-09-24)
+
+
+### Bug Fixes
+
+* **build:** set --compress false for microbundle build ([#2314](https://github.com/reactstrap/reactstrap/issues/2314)) ([a119aae](https://github.com/reactstrap/reactstrap/commit/a119aaedd6e598cb9bd7d4b4e1cde68e21b58f9c))
+
+
+
+# [9.0.0-5](https://github.com/reactstrap/reactstrap/compare/v9.0.0-4...v9.0.0-5) (2021-09-23)
+
+
+### Bug Fixes
+
+* **types:** export UncontrolledAccordion types ([#2313](https://github.com/reactstrap/reactstrap/issues/2313)) ([600e5d4](https://github.com/reactstrap/reactstrap/commit/600e5d4ccc2140d3fd9c5221cc2d5355b57e3afe))
+
+
+
+# [9.0.0-4](https://github.com/reactstrap/reactstrap/compare/v9.0.0-3...v9.0.0-4) (2021-09-23)
+
+
+### Bug Fixes
+
+* **types:** export AccordionBody types ([#2312](https://github.com/reactstrap/reactstrap/issues/2312)) ([ef202b3](https://github.com/reactstrap/reactstrap/commit/ef202b39ada495bfdd25425a58635e3a633000a0))
+
+
+
+# [9.0.0-3](https://github.com/reactstrap/reactstrap/compare/v9.0.0-2...v9.0.0-3) (2021-09-23)
+
+
+### Bug Fixes
+
+* **popover:** add default popper offset for popover ([d49dc3f](https://github.com/reactstrap/reactstrap/commit/d49dc3f215bea461d325e95b735f4a2becd7fc91))
+* **types:** import React for UncontrolledAccordion type defs ([#2292](https://github.com/reactstrap/reactstrap/issues/2292)) ([6e5ebb7](https://github.com/reactstrap/reactstrap/commit/6e5ebb7276bf0432f108f6f45335638e4343b9fc))
+* **types:** use types from @popperjs/core ([55da7db](https://github.com/reactstrap/reactstrap/commit/55da7dbdb1197abc0e858ba67298cd530c068e78))
+
+
+### Features
+
+* **forms:** Add support for floating labels ([b9ad8cc](https://github.com/reactstrap/reactstrap/commit/b9ad8ccdf084deec8510289e806fd7e51aadbc89))
+* **Navbar:** add container options ([00b88f7](https://github.com/reactstrap/reactstrap/commit/00b88f7ac97d20d9230af6d1ea43cb40e99916ca))
+
+
+
+# [9.0.0-2](https://github.com/reactstrap/reactstrap/compare/v9.0.0-0...v9.0.0-2) (2021-09-22)
+
+
+### Features
+
+* **accordion:** add `flush` support and `stayOpen` support ([272b773](https://github.com/reactstrap/reactstrap/commit/272b773972a16f60d581a13a5807277884a1693f))
+* **bs5:** add Offcanvas ([df61c93](https://github.com/reactstrap/reactstrap/commit/df61c937f941a166538e9c7012d6b51c56ea6a41))
+* **carousel:** add Bootstrap5 updates ([1cca298](https://github.com/reactstrap/reactstrap/commit/1cca298f74f85599fa8e5b22fa73e15ebc76315d))
+* **collapse:** add horizontal collapse ([45d28fe](https://github.com/reactstrap/reactstrap/commit/45d28fec7becf71f0e57fe0612db6b9ff74fdb9a))
+* **ListGroup:** Add ListGroupNumbered ([ea4621e](https://github.com/reactstrap/reactstrap/commit/ea4621e5d90f717dcc84e295658767eed6fef486))
+* **Placeholder:** add component ([0b315ab](https://github.com/reactstrap/reactstrap/commit/0b315abc0428f9fa6096115a39e6697b7e61abd8))
+
+
+
+# [9.0.0-0](https://github.com/reactstrap/reactstrap/compare/8.9.0...9.0.0-0) (2021-03-03)
+
+
+### Bug Fixes
+
+* **InputGroup:** toggle if clicking dropdown input ([6915b7b](https://github.com/reactstrap/reactstrap/commit/6915b7b9ff463d84dd3064c1560018bd322ad175))
+
+
+### Code Refactoring
+
+* **PopperContent:** update positionedFix prop to strategy ([fa1f1ed](https://github.com/reactstrap/reactstrap/commit/fa1f1eddcab1d3a5b70ad8861aef128eafa19fc1))
+
+
+### Features
+
+* **bs5:** add accordion ([#2105](https://github.com/reactstrap/reactstrap/issues/2105)) ([115d204](https://github.com/reactstrap/reactstrap/commit/115d20476c1916106a35eb6e4010f488d99cffb9))
+* **bs5:** Convert Dropdown & DropdownMenu to RTL ([aa51131](https://github.com/reactstrap/reactstrap/commit/aa511319d30a109efb0245afe8b7b275ceff167e))
+* **bs5:** Update tooltip/popover arrow classes ([1c9c037](https://github.com/reactstrap/reactstrap/commit/1c9c037ad9129a68f99acbdda6779fa8ca23193d))
+* **Dropdown:** Add backwards compatible left & right ([61aca5d](https://github.com/reactstrap/reactstrap/commit/61aca5db428c05beb9a2c5f1631d1cf57e357b0a))
+* remove form-control-file class ([6ea074a](https://github.com/reactstrap/reactstrap/commit/6ea074aa0feecb19fe6a33524362eb8cae1fbb6b)), closes [/getbootstrap.com/docs/5.0/migration/#forms-2](https://github.com//getbootstrap.com/docs/5.0/migration//issues/forms-2)
+* remove InputGroupAddon ([706869f](https://github.com/reactstrap/reactstrap/commit/706869fa0b05019e38d78d8877afab7d3481a67a))
+* replace form-control-range with form-range ([bd8383d](https://github.com/reactstrap/reactstrap/commit/bd8383d5bb68f74c3a17e7bafe58196e41ae3992)), closes [/getbootstrap.com/docs/5.0/migration/#forms-2](https://github.com//getbootstrap.com/docs/5.0/migration//issues/forms-2)
+* support form switch ([87156f5](https://github.com/reactstrap/reactstrap/commit/87156f589eb585ddcc01a2120f757bbd38c0ab62))
+* use form-select class with native select ([1764eb3](https://github.com/reactstrap/reactstrap/commit/1764eb32a39ac4788086922aac55d3fbd72dea83)), closes [/getbootstrap.com/docs/5.0/migration/#forms-2](https://github.com//getbootstrap.com/docs/5.0/migration//issues/forms-2)
+* **bs5:** Rename margin utils ([407546c](https://github.com/reactstrap/reactstrap/commit/407546cb490ea7522b38bd0b9d81a54efde6f2f0))
+* **bs5:** Replace .btn-block with utility classes ([755ede1](https://github.com/reactstrap/reactstrap/commit/755ede18b943667a94e40875e7bc82b38c53cb70))
+* **bs5:** change .close to .btn-close ([#2116](https://github.com/reactstrap/reactstrap/issues/2116)) ([0cdc1ce](https://github.com/reactstrap/reactstrap/commit/0cdc1ced7ca505b9899b327a9cf39288acc1b6c8))
+* **bs5:** change no-gutters class to gx-0 in Row ([#2119](https://github.com/reactstrap/reactstrap/issues/2119)) ([884bc98](https://github.com/reactstrap/reactstrap/commit/884bc9841d53030de5fb1a33dc3cc58e7e3651c5))
+* **bs5:** convert .sr-only to .visually-hidden ([4b5b9e5](https://github.com/reactstrap/reactstrap/commit/4b5b9e57933c0321c94a1951a96d40c1f59e305a))
+* **bs5:** replace form-group class with mb-3 ([c807567](https://github.com/reactstrap/reactstrap/commit/c807567a6f9b460211f34f6d477eb24794a4cd11))
+* **bs5:** update badge classes ([#2117](https://github.com/reactstrap/reactstrap/issues/2117)) ([695f06b](https://github.com/reactstrap/reactstrap/commit/695f06b876eda563715e7619e32106cdea246084))
+* update input group to have type dropdown ([5ce2b49](https://github.com/reactstrap/reactstrap/commit/5ce2b492c607372863d5b8d81d6953a7435ef557))
+* **bs5:** Support xxl breakpoint ([13d5311](https://github.com/reactstrap/reactstrap/commit/13d5311d6a6d4eb1ef14bc5667bf1bbe83c07107))
+* **Carousel:** Add dark prop ([ba25aa0](https://github.com/reactstrap/reactstrap/commit/ba25aa0d9219b0441af3b1fe0c475596725821b6))
+* **DropdownMenu:** add-dark-prop ([5cc8c49](https://github.com/reactstrap/reactstrap/commit/5cc8c493565528b2cefd15882852eacf72bfa2f4))
+* **modal:** add fullscreen option to Modal component ([e6eb36e](https://github.com/reactstrap/reactstrap/commit/e6eb36e4e0e8ea7f329c969aaff60b6e807efbc9))
+
+
+### BREAKING CHANGES
+
+* **PopperContent:** to update the old `positionFixed` popper prop to the new `strategy` prop.
+
+# [8.10.0](https://github.com/reactstrap/reactstrap/compare/8.9.0...8.10.0) (2021-09-02)
+
+
+### Features
+
+* **Dropdown:** add support for listbox or menu role ([#2077](https://github.com/reactstrap/reactstrap/issues/2077)) ([fd9e988](https://github.com/reactstrap/reactstrap/commit/fd9e9888b7712905a85684f7822fc75fde38c069))
+
+
+
+# [8.9.0](https://github.com/reactstrap/reactstrap/compare/8.8.1...8.9.0) (2021-01-19)
+
+
+### Features
+
+* **Modal:** Add trapFocus prop ([#2073](https://github.com/reactstrap/reactstrap/issues/2073)) ([6e0fd56](https://github.com/reactstrap/reactstrap/commit/6e0fd565b66c9a16b3187adcb71d52d2d9db2902))
+* **Progress:** Add barStyle prop ([#2075](https://github.com/reactstrap/reactstrap/issues/2075)) ([27faa8e](https://github.com/reactstrap/reactstrap/commit/27faa8e5c575314070f1a35e1969c81e25b13942))
+
+
+
+## [9.2.3](https://github.com/reactstrap/reactstrap/compare/v9.2.2...v9.2.3) (2024-09-26)
+
+
+### Bug Fixes
+
+* **UncontrolledAccordion:** prevent setOpen to set undefined value for open ([#2814](https://github.com/reactstrap/reactstrap/issues/2814)) ([717a5e8](https://github.com/reactstrap/reactstrap/commit/717a5e84263da39eccbd18e88530395afe374d66))
+
+## [9.2.2](https://github.com/reactstrap/reactstrap/compare/v9.2.1...v9.2.2) (2024-01-19)
+
+
+### Bug Fixes
+
+* dropdown with inNavbar bug ([18cc094](https://github.com/reactstrap/reactstrap/commit/18cc094afa8d4e95785d823eb735e06c28547d19))
+
+## [9.2.1](https://github.com/reactstrap/reactstrap/compare/v9.2.0...v9.2.1) (2023-10-05)
+
+
+### Bug Fixes
+
+* **#1680:** arrowClass not applied to arrow ([#2772](https://github.com/reactstrap/reactstrap/issues/2772)) ([aeaf180](https://github.com/reactstrap/reactstrap/commit/aeaf180701511377ab6a00830ccac4fb96e84028))
+* **#2755:** make offcanvas example code readable ([#2768](https://github.com/reactstrap/reactstrap/issues/2768)) ([b932582](https://github.com/reactstrap/reactstrap/commit/b932582798911ebd57ad6735baf9f4fa21d8af7a))
+
+## [9.2.0](https://github.com/reactstrap/reactstrap/compare/v9.1.10...v9.2.0) (2023-06-09)
+
+
+### Features
+
+* **modal:** add 'aria-modal="true"' to modal ([2a43591](https://github.com/reactstrap/reactstrap/commit/2a43591f6d6f2fd6e1e5f7f3bd65caf9efd7f7ab))
+
+
+### Bug Fixes
+
+* **#2662:** remove many instances of default props ([#2752](https://github.com/reactstrap/reactstrap/issues/2752)) ([b7d571c](https://github.com/reactstrap/reactstrap/commit/b7d571c777de6169de01da5cc14f2eb28988071a))
+
+## [9.1.10](https://github.com/reactstrap/reactstrap/compare/v9.1.9...v9.1.10) (2023-05-13)
+
+
+### Bug Fixes
+
+* **#2427:** error building esm files ([#2748](https://github.com/reactstrap/reactstrap/issues/2748)) ([04d571d](https://github.com/reactstrap/reactstrap/commit/04d571dcaa630ccbc8b8363ad06dad436f11780e))
+* properly pass in `isOpen` in modal test ([#2745](https://github.com/reactstrap/reactstrap/issues/2745)) ([8cb0515](https://github.com/reactstrap/reactstrap/commit/8cb051522ddfad48c08651604744caea25b5e68e))
+
+## [9.1.9](https://github.com/reactstrap/reactstrap/compare/v9.1.8...v9.1.9) (2023-04-11)
+
+
+### Bug Fixes
+
+* **#2730:** import error ([#2733](https://github.com/reactstrap/reactstrap/issues/2733)) ([2547f3a](https://github.com/reactstrap/reactstrap/commit/2547f3acfd12299dc0f4e2a5863c5cf82a203ef4))
+
+## [9.1.8](https://github.com/reactstrap/reactstrap/compare/v9.1.7...v9.1.8) (2023-03-29)
+
+
+### Bug Fixes
+
+* esm and lib folder not included in release ([e974d0c](https://github.com/reactstrap/reactstrap/commit/e974d0c180ebece9e35614da595e9cab2d8684b6))
+
+## [9.1.7](https://github.com/reactstrap/reactstrap/compare/v9.1.6...v9.1.7) (2023-03-22)
+
+
+### Bug Fixes
+
+* **#1289:** prevent error in Strict Mode ([#2672](https://github.com/reactstrap/reactstrap/issues/2672)) ([2695bfa](https://github.com/reactstrap/reactstrap/commit/2695bfaca471f187abe2464621509d0b09e64b9f))
+* **#2660:** dropdown closes for complex children ([#2673](https://github.com/reactstrap/reactstrap/issues/2673)) ([fa1fcc8](https://github.com/reactstrap/reactstrap/commit/fa1fcc84511582f5e22d42c73c2ff1bb8c805f9b))
+* **#2664:** close offcanvas when fade is false ([#2677](https://github.com/reactstrap/reactstrap/issues/2677)) ([dac3587](https://github.com/reactstrap/reactstrap/commit/dac3587bc16006697008ed6f248be268f49de4e5))
+* **docs:** remove storybook errors ([#2675](https://github.com/reactstrap/reactstrap/issues/2675)) ([d0f188b](https://github.com/reactstrap/reactstrap/commit/d0f188b31bf9ccd5f262a46bb42ea87dd644049d))
+* issue where attributes could not be passed to the element ([19233ae](https://github.com/reactstrap/reactstrap/commit/19233ae45014045a6b103619b2b43fb4f386d02a))
+* treeshaking ([#2708](https://github.com/reactstrap/reactstrap/issues/2708)) ([fa46b94](https://github.com/reactstrap/reactstrap/commit/fa46b941004bfd37eb5bd2fcdce435d1ddac5066))
+
+## [9.1.6](https://github.com/reactstrap/reactstrap/compare/v9.1.5...v9.1.6) (2023-02-17)
+
+
+### ⚠ BREAKING CHANGES
+
+* add forwardRef to all components that contain innerRef
+
+### Features
+
+* add forwardRef to all components that contain innerRef ([17a141a](https://github.com/reactstrap/reactstrap/commit/17a141acbe9af558c1c3e7cb34fc051c1b1d8d0e))
+
+
+### Bug Fixes
+
+* convert functional components to be forwardRef components vs redefining them as such ([86578ab](https://github.com/reactstrap/reactstrap/commit/86578ab1f9e06653b03db06ed99263fba5e5e279))
+* **Label:** migrate label to rtl ([#2665](https://github.com/reactstrap/reactstrap/issues/2665)) ([8c5cc2b](https://github.com/reactstrap/reactstrap/commit/8c5cc2bac0c219275896657db21f5c2ea5ecdffe))
+* revert v10 merge ([3392ce9](https://github.com/reactstrap/reactstrap/commit/3392ce924ad304e97cede43ddef013a88ef84a6e))
+
+
+### Miscellaneous
+
+* release 9.1.6 ([f32f3d2](https://github.com/reactstrap/reactstrap/commit/f32f3d247b767592a80091e3f1733946b2f74ada))
+
+### [9.1.5](https://www.github.com/reactstrap/reactstrap/compare/v9.1.4...v9.1.5) (2022-10-27)
+
+
+### Bug Fixes
+
+* **accordion:** type error of open in uncontrolledAccordionProps ([#2611](https://www.github.com/reactstrap/reactstrap/issues/2611)) ([b46a23c](https://www.github.com/reactstrap/reactstrap/commit/b46a23c897cca1e8c53729c5e222411028be169d))
+* ensure initial overflow status is stored when opening multiple modals ([c0191ec](https://www.github.com/reactstrap/reactstrap/commit/c0191ecbbba96f3652e6359111a258a33771e2c1))
+
+### [9.1.4](https://www.github.com/reactstrap/reactstrap/compare/v9.1.3...v9.1.4) (2022-08-26)
+
+
+### Bug Fixes
+
+* **#2467:** keyboard support for dropdown listbox ([#2584](https://www.github.com/reactstrap/reactstrap/issues/2584)) ([f04d3a7](https://www.github.com/reactstrap/reactstrap/commit/f04d3a7976bb8623d7d7453d5195cb1d57f5a6dd))
+* **#2593:** fix key prop waring for dropdown ([#2594](https://www.github.com/reactstrap/reactstrap/issues/2594)) ([69526c1](https://www.github.com/reactstrap/reactstrap/commit/69526c1e1a24739fa5d6f13bc5aa4dfd49beeac5))
+
+### [9.1.3](https://www.github.com/reactstrap/reactstrap/compare/v9.1.2...v9.1.3) (2022-08-02)
+
+
+### Bug Fixes
+
+* Use the new `nodeRef` API for `Collapse` ([9527654](https://www.github.com/reactstrap/reactstrap/commit/9527654b74e5695efbb31dff0ebd29812cdef1ee))
+
+### [9.1.2](https://www.github.com/reactstrap/reactstrap/compare/v9.1.1...v9.1.2) (2022-07-13)
+
+
+### Bug Fixes
+
+* **#2545:** change proptype of Spinner size ([2175cbb](https://www.github.com/reactstrap/reactstrap/commit/2175cbb8f1df23b851a693a968021dfa8be15a7b))
+* **#2559:** Removed unused react import from stories ([a3ccab5](https://www.github.com/reactstrap/reactstrap/commit/a3ccab5fb737b6f3c3607ddee57f2fb0524448f5))
+* **exports:** Exports CloseButtom from index.d.ts ([ba815ee](https://www.github.com/reactstrap/reactstrap/commit/ba815eeb3999134ae5ae3e12a1dfdcbfaab00deb))
+
+### [9.1.1](https://www.github.com/reactstrap/reactstrap/compare/v9.1.0...v9.1.1) (2022-06-08)
+
+
+### Bug Fixes
+
+* **DropdownMenu:** add types to updateOnSelect ([e5cd524](https://www.github.com/reactstrap/reactstrap/commit/e5cd52445ee5247a6408c75a212009f345f7270e))
+
+## [9.1.0](https://www.github.com/reactstrap/reactstrap/compare/v9.0.4...v9.1.0) (2022-06-08)
+
+
+### Features
+
+* **CloseButton:** add close button ([9e656f5](https://www.github.com/reactstrap/reactstrap/commit/9e656f50c4d35cb8e32b826316f8761e80af9c3e))
+
+
+### Bug Fixes
+
+* **#2411:** remove scroll from body when modal open ([9d71faa](https://www.github.com/reactstrap/reactstrap/commit/9d71faada222f67683bf19acece3c20b3364a6df))
+* add a flag to DropdownMenu for Popper update ([74a9e4e](https://www.github.com/reactstrap/reactstrap/commit/74a9e4ef5ad8cfdf4e1ab2b9509a0e4ca52c8886))
+
+### [9.0.4](https://www.github.com/reactstrap/reactstrap/compare/v9.0.3...v9.0.4) (2022-06-02)
+
+
+### Bug Fixes
+
+* **#2393:** captions visible twice ([c20fa93](https://www.github.com/reactstrap/reactstrap/commit/c20fa9397ea09811ed2b4da33b136f2aa1e98957))
+* **#2515:** Add missing Typescript exports for Placeholders ([f9e0dfa](https://www.github.com/reactstrap/reactstrap/commit/f9e0dfab37ae0ae2c2183964fa78dc863af320f3))
+* **#2521:** fix `form-check-label`/`form-label` class on Label ([6aee08b](https://www.github.com/reactstrap/reactstrap/commit/6aee08b3bebdbdb1320c4f18382b28d5bc474dd7))
+* **Offcanvas:** make types match existing `direction` prop ([6e60f08](https://www.github.com/reactstrap/reactstrap/commit/6e60f08db14b0f7896c703f41fb6c4c2b7362fd6))
+
+
+### Miscellaneous
+
+* **Button:** convert button to use hooks ([19f85d3](https://www.github.com/reactstrap/reactstrap/commit/19f85d30d3c01f8f60762db55b123efddb4d152b))
+
+### [9.0.3](https://www.github.com/reactstrap/reactstrap/compare/v9.0.2...v9.0.3) (2022-05-26)
+
+
+### Bug Fixes
+
+* **#2501:** Since React 18, errors on Popover and Tooltip ([1110c9c](https://www.github.com/reactstrap/reactstrap/commit/1110c9c39f6018cc0289b419ba887adbe434e301))
+
+### [9.0.2](https://www.github.com/reactstrap/reactstrap/compare/v9.0.1...v9.0.2) (2022-04-13)
+
+
+### Bug Fixes
+
+* `form-row` was removed from Bootsttap 5 ([601845d](https://www.github.com/reactstrap/reactstrap/commit/601845d1c8b687d7c2a8494f5131c728ce1a532c))
+* **docs:** fixed naming in Accordion module ([29beb09](https://www.github.com/reactstrap/reactstrap/commit/29beb09ed4a353ebc2d77611a51cea4d34409bf6))
+* **FormGroup:** dont pass switch prop to tag [#2415](https://www.github.com/reactstrap/reactstrap/issues/2415) ([b63981e](https://www.github.com/reactstrap/reactstrap/commit/b63981eb54af34e1332dfb84c670e2cbca937ee8))
+
+### [9.0.1](https://www.github.com/reactstrap/reactstrap/compare/v9.0.0...v9.0.1) (2021-11-12)
+
+
+### Bug Fixes
+
+* add common js bundle to exports field ([#2386](https://www.github.com/reactstrap/reactstrap/issues/2386)) ([c5bc0fe](https://www.github.com/reactstrap/reactstrap/commit/c5bc0fe54ea27cedb1a43a8dfe37738d13bd4eb6))
+
+## [9.0.0](https://www.github.com/reactstrap/reactstrap/compare/v8.10.1...v9.0.0) (2021-10-27)
+
+
+### ⚠ BREAKING CHANGES
+
+* update positionedFix prop to strategy
+* upgrade to popper 2
+* remove CustomInput
+* remove old InputGroupButtonDropdown
+* remove InputGroupAddon
+* remove Jumbotron component (#2118)
+
+### Features
+
+* **accordion:** add `flush` support and `stayOpen` support ([a6050f5](https://www.github.com/reactstrap/reactstrap/commit/a6050f5ea6cc9ceba63db702663242b571e9f602))
+* **bs5:** add accordion ([#2105](https://www.github.com/reactstrap/reactstrap/issues/2105)) ([1c09448](https://www.github.com/reactstrap/reactstrap/commit/1c09448fdcfbe5db68e057911546ad2d036e805e))
+* **bs5:** add Offcanvas ([9a4bcca](https://www.github.com/reactstrap/reactstrap/commit/9a4bcca7b299f358bb3b953996a9d4afb2f7b602))
+* **bs5:** change .close to .btn-close ([#2116](https://www.github.com/reactstrap/reactstrap/issues/2116)) ([be4df60](https://www.github.com/reactstrap/reactstrap/commit/be4df609ac21cdcbb56c635600dce8eae6c819f1))
+* **bs5:** change no-gutters class to gx-0 in Row ([#2119](https://www.github.com/reactstrap/reactstrap/issues/2119)) ([85b8933](https://www.github.com/reactstrap/reactstrap/commit/85b8933304cb0ae529b6f5d24574b98a929a35bc))
+* **bs5:** convert .sr-only to .visually-hidden ([702ad55](https://www.github.com/reactstrap/reactstrap/commit/702ad553b37a25ab516fc147201622ad122c39d1))
+* **bs5:** Convert Dropdown & DropdownMenu to RTL ([7417984](https://www.github.com/reactstrap/reactstrap/commit/741798459178b825f53cedaa54c33326a81b8564))
+* **bs5:** Rename margin utils ([35a37ef](https://www.github.com/reactstrap/reactstrap/commit/35a37ef21d751207b4951aa5b6aca34b9efd4d5a))
+* **bs5:** Replace .btn-block with utility classes ([4dc1dcd](https://www.github.com/reactstrap/reactstrap/commit/4dc1dcd21bd51d7bd88b40a0b249e02b0edaf0b0))
+* **bs5:** replace form-group class with mb-3 ([cbcb2e3](https://www.github.com/reactstrap/reactstrap/commit/cbcb2e3abc240f64833967996cce4c4878529170))
+* **bs5:** Support xxl breakpoint ([4fb7cdd](https://www.github.com/reactstrap/reactstrap/commit/4fb7cdd7791d11071fdc473e990ca704e0374fc2))
+* **bs5:** update badge classes ([#2117](https://www.github.com/reactstrap/reactstrap/issues/2117)) ([7859900](https://www.github.com/reactstrap/reactstrap/commit/785990048f88699df5f31111c525fdaa7d34a640))
+* **bs5:** Update tooltip/popover arrow classes ([9ad870e](https://www.github.com/reactstrap/reactstrap/commit/9ad870ea3518a9a81716e945d46c06a7c341d7fe))
+* **carousel:** add Bootstrap5 updates ([a698814](https://www.github.com/reactstrap/reactstrap/commit/a69881437fe3d861c44e9493c1983c7c7d13ae34))
+* **Carousel:** Add dark prop ([01f64df](https://www.github.com/reactstrap/reactstrap/commit/01f64dfcf89a44e41754f7669d46830af942b826))
+* **collapse:** add horizontal collapse ([f780187](https://www.github.com/reactstrap/reactstrap/commit/f7801874dc5b8777c8624709f99d62feb19b3563))
+* **Dropdown:** Add backwards compatible left & right ([f8b415f](https://www.github.com/reactstrap/reactstrap/commit/f8b415f9a989b4363adc4ba79c190db9fb0d38f0))
+* **DropdownMenu:** add-dark-prop ([2e22d7b](https://www.github.com/reactstrap/reactstrap/commit/2e22d7bbfa3764399c41ae8d360346c255e4bc44))
+* **forms:** Add support for floating labels ([1cc8a14](https://www.github.com/reactstrap/reactstrap/commit/1cc8a14577b044d10fdea4f804996f49afca04d8))
+* **ListGroup:** Add ListGroupNumbered ([02b3b71](https://www.github.com/reactstrap/reactstrap/commit/02b3b71e62668493f61253a6a67919ec4c18ba97))
+* **modal:** add fullscreen option to Modal component ([a580f23](https://www.github.com/reactstrap/reactstrap/commit/a580f23a8eeefae21b0c6ba36b8da470ee925cd2))
+* **Navbar:** add container options ([f0054bf](https://www.github.com/reactstrap/reactstrap/commit/f0054bf6ef8945e591f79fe403ece3f33a5cef8a))
+* **Placeholder:** add component ([0c9294c](https://www.github.com/reactstrap/reactstrap/commit/0c9294c44108310a84c7f2518bfd9d631d51e835))
+* remove CustomInput ([c0e8a68](https://www.github.com/reactstrap/reactstrap/commit/c0e8a68348c52aaee55168d8601fb534597b6313))
+* remove form-control-file class ([f601576](https://www.github.com/reactstrap/reactstrap/commit/f6015765fb4988e484483b77b032ea00ebde59c2))
+* remove InputGroupAddon ([322d0ad](https://www.github.com/reactstrap/reactstrap/commit/322d0add23f42e917f50286ba796eea4af64c6ae))
+* remove Jumbotron component ([#2118](https://www.github.com/reactstrap/reactstrap/issues/2118)) ([2c912ab](https://www.github.com/reactstrap/reactstrap/commit/2c912abfb6027890d54ac091e18d515152cc395f))
+* remove old InputGroupButtonDropdown ([3df07f6](https://www.github.com/reactstrap/reactstrap/commit/3df07f62b62a2648e13f344cdc3a8c864b6a8b07))
+* replace form-control-range with form-range ([06868e2](https://www.github.com/reactstrap/reactstrap/commit/06868e28dd2a399297b5f9c9efc6b226487386b8))
+* support form switch ([f403595](https://www.github.com/reactstrap/reactstrap/commit/f40359558e083306e33cb0bdafba9ad615a6bbe3))
+* update input group to have type dropdown ([6c60226](https://www.github.com/reactstrap/reactstrap/commit/6c602261dd26f8eebf8a4ebd32e0bed8a08522ef))
+* update positionedFix prop to strategy ([65bf0f0](https://www.github.com/reactstrap/reactstrap/commit/65bf0f0dae5732dc4a7daef59717fa35c0a2a07d))
+* upgrade to popper 2 ([35840ef](https://www.github.com/reactstrap/reactstrap/commit/35840ef90ab6a3f5ae94a57cbde8331fc791870b))
+* use form-select class with native select ([1e6204b](https://www.github.com/reactstrap/reactstrap/commit/1e6204b925e23d97d38532265f4828964e0e1638))
+
+
+### Bug Fixes
+
+* **build:** set --compress false for microbundle build ([#2314](https://www.github.com/reactstrap/reactstrap/issues/2314)) ([26c85fb](https://www.github.com/reactstrap/reactstrap/commit/26c85fbdbf04399aab392565c3e6027023886538))
+* **Button:** remove extra close icon in `btn-close` ([#2318](https://www.github.com/reactstrap/reactstrap/issues/2318)) ([e4affb4](https://www.github.com/reactstrap/reactstrap/commit/e4affb41a15eb0e1d723b3f835cafb8959b4f5d9))
+* **InputGroup:** toggle if clicking dropdown input ([1adc147](https://www.github.com/reactstrap/reactstrap/commit/1adc147d600309705ad25116121b89ad65b6409d))
+* **Label:** add `form-label` class for labels of vertical forms ([#2317](https://www.github.com/reactstrap/reactstrap/issues/2317)) ([3bfce12](https://www.github.com/reactstrap/reactstrap/commit/3bfce12c4bdc9615399e8821629328f8a441d9b8))
+* **popover:** add default popper offset for popover ([cef32c6](https://www.github.com/reactstrap/reactstrap/commit/cef32c6a051fdfe532d6e3b1e86b8dcf60087558))
+* **ToastHeader:** Remove charCode default property. ([#2343](https://www.github.com/reactstrap/reactstrap/issues/2343)) ([03bbd15](https://www.github.com/reactstrap/reactstrap/commit/03bbd1508a2262a34a8960e1faa95585689fbaea)), closes [#2338](https://www.github.com/reactstrap/reactstrap/issues/2338)
+* **types:** add 'swtch' to `InputType` ([#2340](https://www.github.com/reactstrap/reactstrap/issues/2340)) ([302d41e](https://www.github.com/reactstrap/reactstrap/commit/302d41eb20054d5bf9c6fd1ddc651dbafcce46f1))
+* **types:** export AccordionBody types ([#2312](https://www.github.com/reactstrap/reactstrap/issues/2312)) ([d4c184b](https://www.github.com/reactstrap/reactstrap/commit/d4c184bd5c738b0905d02e56a6f2705e2cd9bb70))
+* **types:** export UncontrolledAccordion types ([#2313](https://www.github.com/reactstrap/reactstrap/issues/2313)) ([f7d5cd6](https://www.github.com/reactstrap/reactstrap/commit/f7d5cd664417cbbeb3e17f6ab0097ec024647c64))
+* **types:** import React for UncontrolledAccordion type defs ([#2292](https://www.github.com/reactstrap/reactstrap/issues/2292)) ([54df194](https://www.github.com/reactstrap/reactstrap/commit/54df194dd36205d782ec1985b383a1e18137186b))
+* **types:** remove duplicate types/lib/index.d.ts ([#2316](https://www.github.com/reactstrap/reactstrap/issues/2316)) ([52bd719](https://www.github.com/reactstrap/reactstrap/commit/52bd7192c453c5333c00603f6bc8555f4e10b5f6))
+* **types:** use types from @popperjs/core ([10fd0b2](https://www.github.com/reactstrap/reactstrap/commit/10fd0b28d661b368bead1006ea075435ad911d55))
+
+### [8.10.1](https://www.github.com/reactstrap/reactstrap/compare/v8.10.0...v8.10.1) (2021-10-26)
+
+
+### Bug Fixes
+
+* **UncontrolledDropdown:** Fix onToggle - a consistent isOpen value ([ee54164](https://www.github.com/reactstrap/reactstrap/commit/ee54164a142c9ae4d43a2a8db4f6a5c088b4eff9))
+
+## [8.8.1](https://github.com/reactstrap/reactstrap/compare/8.8.0...8.8.1) (2020-12-29)
+
+
+### Bug Fixes
+
+* Prevent popover/tooltip rendering if target not resolved ([#2059](https://github.com/reactstrap/reactstrap/issues/2059)) ([de06e9f](https://github.com/reactstrap/reactstrap/commit/de06e9ff12e954c92ba0964e615723e9a44f9269))
+
+
+
+# [8.8.0](https://github.com/reactstrap/reactstrap/compare/8.7.1...8.8.0) (2020-12-23)
+
+
+### Bug Fixes
+
+* **Modal:** Trap focus on opened modal ([#1941](https://github.com/reactstrap/reactstrap/issues/1941)) ([bf46484](https://github.com/reactstrap/reactstrap/commit/bf46484d2ee1e0d570170d59152fcd0346bfe434)), closes [#1497](https://github.com/reactstrap/reactstrap/issues/1497) [#1679](https://github.com/reactstrap/reactstrap/issues/1679)
+* Make tooltips fade out ([#2041](https://github.com/reactstrap/reactstrap/issues/2041)) ([3fb5476](https://github.com/reactstrap/reactstrap/commit/3fb5476515aa01e658426e72dfbe5e7bc517b460))
+* **Popover:** Select correct parent target when target children clicked ([#2038](https://github.com/reactstrap/reactstrap/issues/2038)) ([6740a57](https://github.com/reactstrap/reactstrap/commit/6740a57268dd87704c0215aa45a7e38babb5b426)), closes [#1990](https://github.com/reactstrap/reactstrap/issues/1990)
+
+
+### Features
+
+* add List and ListInlineItem components ([#2033](https://github.com/reactstrap/reactstrap/issues/2033)) ([a97a834](https://github.com/reactstrap/reactstrap/commit/a97a8345f3998e9388d42550b8e70aaa62a5be50))
+* add positionFixed prop to Tooltip and Popover ([#2039](https://github.com/reactstrap/reactstrap/issues/2039)) ([a330ce6](https://github.com/reactstrap/reactstrap/commit/a330ce65e1a38dd0a14e1bc0ca37f86740964df1))
+* **Dropdown:** Added container prop to DropdownMenu using React.portal ([#2016](https://github.com/reactstrap/reactstrap/issues/2016)) ([bd313c2](https://github.com/reactstrap/reactstrap/commit/bd313c23e5d1dee984e65e5fdc167fe83f3831a9))
+
+
+
+## [8.7.1](https://github.com/reactstrap/reactstrap/compare/8.7.0...8.7.1) (2020-11-03)
+
+
+### Bug Fixes
+
+* **types:** Fix Col and Input types ([#2008](https://github.com/reactstrap/reactstrap/issues/2008)) ([363dfbe](https://github.com/reactstrap/reactstrap/commit/363dfbe6a46ef04c61f0b249bd5c0a80ec1c1e3e))
+* **types:** Fix reference to CSSModule ([#2007](https://github.com/reactstrap/reactstrap/issues/2007)) ([54afca4](https://github.com/reactstrap/reactstrap/commit/54afca47879fbb8a2713b57ff452fa566e5255d1))
+
+
+
+# [8.7.0](https://github.com/reactstrap/reactstrap/compare/8.6.0...8.7.0) (2020-10-31)
+
+
+### Bug Fixes
+
+* **DropdownMenu:** Prevent manual styles from overriding popper styles ([#1984](https://github.com/reactstrap/reactstrap/issues/1984)) ([dc2401b](https://github.com/reactstrap/reactstrap/commit/dc2401b388777b011bc6c75426a86a78013a2b8c))
+* **Progress:** Fix parent element props being spread to children ([#1970](https://github.com/reactstrap/reactstrap/issues/1970)) ([c6a790c](https://github.com/reactstrap/reactstrap/commit/c6a790c7f4bdbfac0540d53896834638edf9c793))
+* **types:** Add missing innerRef typings ([#1994](https://github.com/reactstrap/reactstrap/issues/1994)) ([fe24f69](https://github.com/reactstrap/reactstrap/commit/fe24f69be2dc9953896c49be73254f7787ad34ff)), closes [#1993](https://github.com/reactstrap/reactstrap/issues/1993)
+
+
+### Features
+
+* Add typescript definitions ([#1976](https://github.com/reactstrap/reactstrap/issues/1976)) ([2a47626](https://github.com/reactstrap/reactstrap/commit/2a47626dc088f1983239f606c91f6294c7e756d7))
+* **DropdownItem:** Add support for .dropdown-item-text ([#1971](https://github.com/reactstrap/reactstrap/issues/1971)) ([c41b172](https://github.com/reactstrap/reactstrap/commit/c41b172180b92ba3f53444ca8f409c1cd10f895d))
+
+
+
+# [8.6.0](https://github.com/reactstrap/reactstrap/compare/8.5.1...8.6.0) (2020-09-18)
+
+
+### Bug Fixes
+
+* **Input:** Allow numbers for size prop ([#1948](https://github.com/reactstrap/reactstrap/issues/1948)) ([b4c45af](https://github.com/reactstrap/reactstrap/commit/b4c45afe658ee5008274fbf687b22d35dfe12c51))
+* **Progress:** pass attributes to nested Progress bar ([#1919](https://github.com/reactstrap/reactstrap/issues/1919)) ([f3c2586](https://github.com/reactstrap/reactstrap/commit/f3c2586bbf1cc86459b5c2fd4cb025512aead432)), closes [#1847](https://github.com/reactstrap/reactstrap/issues/1847) [#1847](https://github.com/reactstrap/reactstrap/issues/1847)
+
+
+### Features
+
+* **Button:** onClick of inner button returns value of props.onClick. ([f09cdd6](https://github.com/reactstrap/reactstrap/commit/f09cdd6c2fb496948760e962383b1fa657a2c5e0))
+
+
+
+## [8.5.1](https://github.com/reactstrap/reactstrap/compare/8.5.0...8.5.1) (2020-06-24)
+
+
+### Bug Fixes
+
+* **polyfill:** check that window exists before defining CustomEvent ([#1855](https://github.com/reactstrap/reactstrap/issues/1855)) ([74b6802](https://github.com/reactstrap/reactstrap/commit/74b6802))
+
+
+
+# [8.5.0](https://github.com/reactstrap/reactstrap/compare/8.4.1...8.5.0) (2020-06-23)
+
+
+### Bug Fixes
+
+* **Carousel:** ie11 compatibility changes([#799](https://github.com/reactstrap/reactstrap/issues/799)) ([#1585](https://github.com/reactstrap/reactstrap/issues/1585)) ([1fd2d22](https://github.com/reactstrap/reactstrap/commit/1fd2d22)), closes [/github.com/reactjs/react-transition-group/blob/9e3b2d3c09b78e755bdc837b7b38337812ede2c9/src/TransitionGroup.js#L11](https://github.com//github.com/reactjs/react-transition-group/blob/9e3b2d3c09b78e755bdc837b7b38337812ede2c9/src/TransitionGroup.js/issues/L11)
+* **CustomInput:** hidden attribute [#1741](https://github.com/reactstrap/reactstrap/issues/1741) ([#1777](https://github.com/reactstrap/reactstrap/issues/1777)) ([bb39b55](https://github.com/reactstrap/reactstrap/commit/bb39b55))
+* **DropdownToggle:** fix 0 value [#1496](https://github.com/reactstrap/reactstrap/issues/1496) ([#1780](https://github.com/reactstrap/reactstrap/issues/1780)) ([c4f86d5](https://github.com/reactstrap/reactstrap/commit/c4f86d5))
+* **Input:** Aria-invalid attribute ([#1782](https://github.com/reactstrap/reactstrap/issues/1782)) ([ca113f1](https://github.com/reactstrap/reactstrap/commit/ca113f1))
+* **Modal:** fix modal close immediately unmounted ([c8def29](https://github.com/reactstrap/reactstrap/commit/c8def29)), closes [#1323](https://github.com/reactstrap/reactstrap/issues/1323)
+* **TooltipPopoverWrapper:** replacing find with filter to preve… ([#1776](https://github.com/reactstrap/reactstrap/issues/1776)) ([54648b6](https://github.com/reactstrap/reactstrap/commit/54648b6)), closes [#1774](https://github.com/reactstrap/reactstrap/issues/1774)
+
+
+### Features
+
+* **Input:** Use form-control-range for range inputs ([#1772](https://github.com/reactstrap/reactstrap/issues/1772)) ([56c1d77](https://github.com/reactstrap/reactstrap/commit/56c1d77))
+* **Modal:** Allow passing in an element selector to append mod… ([#1817](https://github.com/reactstrap/reactstrap/issues/1817)) ([8f8cc98](https://github.com/reactstrap/reactstrap/commit/8f8cc98))
+* **Modal:** match container behaviour to targetPropType like of Popover and Tooltip ([#1844](https://github.com/reactstrap/reactstrap/issues/1844)) ([6ea2488](https://github.com/reactstrap/reactstrap/commit/6ea2488))
+* **PopoverContent:** add x-out-of-boundaries attribute ([607ce10](https://github.com/reactstrap/reactstrap/commit/607ce10)), closes [#1835](https://github.com/reactstrap/reactstrap/issues/1835)
+* **Progress:** add aria props ([#1681](https://github.com/reactstrap/reactstrap/issues/1681)) ([#1787](https://github.com/reactstrap/reactstrap/issues/1787)) ([93f171d](https://github.com/reactstrap/reactstrap/commit/93f171d))
+* **Progress:** Allow passing in custom style object ([#1771](https://github.com/reactstrap/reactstrap/issues/1771)) ([a79417a](https://github.com/reactstrap/reactstrap/commit/a79417a))
+* **TooltipPopoverWrapper:** scheduleUpdate as render prop ([#1792](https://github.com/reactstrap/reactstrap/issues/1792)) ([cda6fe9](https://github.com/reactstrap/reactstrap/commit/cda6fe9))
+
+
+
+## [8.4.1](https://github.com/reactstrap/reactstrap/compare/8.4.0...8.4.1) (2020-01-27)
+
+
+### Bug Fixes
+
+* **Modal:** Allow esc to close static backdrop modal when keybo… ([#1767](https://github.com/reactstrap/reactstrap/issues/1767)) ([49da7b5](https://github.com/reactstrap/reactstrap/commit/49da7b5)), closes [#1766](https://github.com/reactstrap/reactstrap/issues/1766)
+* **Tooltip,Popover:** account for shadowDOM target ([#1769](https://github.com/reactstrap/reactstrap/issues/1769)) ([10ccf12](https://github.com/reactstrap/reactstrap/commit/10ccf12)), closes [#1691](https://github.com/reactstrap/reactstrap/issues/1691)
+
+
+
+# [8.4.0](https://github.com/reactstrap/reactstrap/compare/8.3.2...8.4.0) (2020-01-17)
+
+
+### Bug Fixes
+
+* revert breaking change ([#1760](https://github.com/reactstrap/reactstrap/issues/1760)) ([eb37426](https://github.com/reactstrap/reactstrap/commit/eb37426))
+
+
+
+## [8.3.2](https://github.com/reactstrap/reactstrap/compare/8.3.1...8.3.2) (2020-01-16)
+
+
+### Bug Fixes
+
+* **Modal:** Prevent static backdrop animation when modal clicked ([#1755](https://github.com/reactstrap/reactstrap/issues/1755)) ([79efb4a](https://github.com/reactstrap/reactstrap/commit/79efb4a))
+
+
+
+## [8.3.1](https://github.com/reactstrap/reactstrap/compare/8.3.0...8.3.1) (2020-01-15)
+
+
+### Bug Fixes
+
+* **build:** fix DropdownContext import/export ([96188f4](https://github.com/reactstrap/reactstrap/commit/96188f4))
+
+
+
+# [8.3.0](https://github.com/reactstrap/reactstrap/compare/8.2.0...8.3.0) (2020-01-15)
+
+## NOT PUBLISHED TO NPM DUE TO RELEASE BUILD FAILURE, USE 8.3.1
+
+### Bug Fixes
+
+* remove aria-hidden attribute from tooltips and popovers ([#1747](https://github.com/reactstrap/reactstrap/issues/1747)) ([009a2bd](https://github.com/reactstrap/reactstrap/commit/009a2bd))
+* **Dropdown:** Avoid preventDefault for things like F5 ([#1464](https://github.com/reactstrap/reactstrap/issues/1464)) ([305d3f0](https://github.com/reactstrap/reactstrap/commit/305d3f0)), closes [#1453](https://github.com/reactstrap/reactstrap/issues/1453)
+* **DropdownContext:** wrap dropdown components to provide context prop ([64847df](https://github.com/reactstrap/reactstrap/commit/64847df)), closes [#1457](https://github.com/reactstrap/reactstrap/issues/1457) [#1462](https://github.com/reactstrap/reactstrap/issues/1462)
+* **DropdownToggle:** pass innerRef to popper ([c088c58](https://github.com/reactstrap/reactstrap/commit/c088c58)), closes [#1471](https://github.com/reactstrap/reactstrap/issues/1471)
+* **Modal:** run close based on prop, not state ([310b061](https://github.com/reactstrap/reactstrap/commit/310b061)), closes [#1626](https://github.com/reactstrap/reactstrap/issues/1626)
+* **Tooltip:** autohide broken since default delay was zero ([#1733](https://github.com/reactstrap/reactstrap/issues/1733)) ([87a6bda](https://github.com/reactstrap/reactstrap/commit/87a6bda)), closes [#1692](https://github.com/reactstrap/reactstrap/issues/1692)
+* **Tooltip:** fix nested elements within target ([#1746](https://github.com/reactstrap/reactstrap/issues/1746)) ([fed4bcf](https://github.com/reactstrap/reactstrap/commit/fed4bcf)), closes [#1736](https://github.com/reactstrap/reactstrap/issues/1736)
+* **Tooltip:** fix render failure if target ref is null ([#1734](https://github.com/reactstrap/reactstrap/issues/1734)) ([853b56e](https://github.com/reactstrap/reactstrap/commit/853b56e)), closes [#1686](https://github.com/reactstrap/reactstrap/issues/1686)
+
+
+### Features
+
+* **Carousel:** Add touch swipe support ([#1731](https://github.com/reactstrap/reactstrap/issues/1731)) ([8a12330](https://github.com/reactstrap/reactstrap/commit/8a12330))
+* **Modal:** Added static backdrop animation defined in Bootstr… ([#1750](https://github.com/reactstrap/reactstrap/issues/1750)) ([7d44f36](https://github.com/reactstrap/reactstrap/commit/7d44f36))
+
+
+
+# [8.2.0](https://github.com/reactstrap/reactstrap/compare/8.1.1...8.2.0) (2019-12-05)
+
+
+### Bug Fixes
+
+* **getTarget:** return array like when allElements parameter is true ([#1687](https://github.com/reactstrap/reactstrap/issues/1687)) ([0702c45](https://github.com/reactstrap/reactstrap/commit/0702c45))
+* **Tooltip:** default value of trigger changed ([#1695](https://github.com/reactstrap/reactstrap/issues/1695)) ([ae48d93](https://github.com/reactstrap/reactstrap/commit/ae48d93)), closes [#1676](https://github.com/reactstrap/reactstrap/issues/1676)
+
+
+### Features
+
+* **ButtonToggle:** add focus styling on button and toggle ([#1660](https://github.com/reactstrap/reactstrap/issues/1660)) ([8980713](https://github.com/reactstrap/reactstrap/commit/8980713)), closes [#1648](https://github.com/reactstrap/reactstrap/issues/1648)
+* **Container:** Added responsive container support ([#1724](https://github.com/reactstrap/reactstrap/issues/1724)) ([31bb211](https://github.com/reactstrap/reactstrap/commit/31bb211)), closes [#1721](https://github.com/reactstrap/reactstrap/issues/1721)
+* **ListGroup:** Add horizontal prop ([#1715](https://github.com/reactstrap/reactstrap/issues/1715)) ([284a543](https://github.com/reactstrap/reactstrap/commit/284a543))
+* **Navbar:** adds NavbarText component ([#1711](https://github.com/reactstrap/reactstrap/issues/1711)) ([6db1083](https://github.com/reactstrap/reactstrap/commit/6db1083)), closes [#1707](https://github.com/reactstrap/reactstrap/issues/1707)
+* **Popover/Tooltip:** add popperClassName property ([#1674](https://github.com/reactstrap/reactstrap/issues/1674)) ([44e85a8](https://github.com/reactstrap/reactstrap/commit/44e85a8)), closes [#1484](https://github.com/reactstrap/reactstrap/issues/1484)
+* **Row:** Add row columns support ([#1720](https://github.com/reactstrap/reactstrap/issues/1720)) ([1fb3c17](https://github.com/reactstrap/reactstrap/commit/1fb3c17))
+* **UncontrolledDropdown:** add onToggle callback ([#1705](https://github.com/reactstrap/reactstrap/issues/1705)) ([d9cae30](https://github.com/reactstrap/reactstrap/commit/d9cae30))
+
+
+
+## [8.1.1](https://github.com/reactstrap/reactstrap/compare/8.1.0...8.1.1) (2019-10-18)
+
+
+### Bug Fixes
+
+* **Carousel:** rename unsafe lifecycles ([940438f](https://github.com/reactstrap/reactstrap/commit/940438f))
+* **Dropdown:** fixed a11y property error message ([#1673](https://github.com/reactstrap/reactstrap/issues/1673))([87d28b6](https://github.com/reactstrap/reactstrap/commit/87d28b6)), closes [#1670](https://github.com/reactstrap/reactstrap/issues/1670)
+
+
+
+# [8.1.0](https://github.com/reactstrap/reactstrap/compare/8.0.1...8.1.0) (2019-10-18)
+
+
+### Bug Fixes
+
+* **ButtonDropdown:** add close event when Escape key is pressed ([#1634](https://github.com/reactstrap/reactstrap/issues/1634)) ([#1635](https://github.com/reactstrap/reactstrap/issues/1635)) ([911d779](https://github.com/reactstrap/reactstrap/commit/911d779))
+* **Carousel:** Add pointer on hover for controls ([#1654](https://github.com/reactstrap/reactstrap/issues/1654)) ([32f0c0d](https://github.com/reactstrap/reactstrap/commit/32f0c0d)), closes [#1631](https://github.com/reactstrap/reactstrap/issues/1631)
+* **Collapse:** add aria-expanded attribute ([#1657](https://github.com/reactstrap/reactstrap/issues/1657)) ([2fdf15a](https://github.com/reactstrap/reactstrap/commit/2fdf15a))
+* **CustomInput:** remove type prop from input node when type is select ([3e4c23f](https://github.com/reactstrap/reactstrap/commit/3e4c23f))
+* **CustomInput[type=file]:** add CustomFileInput component ([#1461](https://github.com/reactstrap/reactstrap/issues/1461)) ([25e2480](https://github.com/reactstrap/reactstrap/commit/25e2480)), closes [#1460](https://github.com/reactstrap/reactstrap/issues/1460)
+* **Dropdown:** disabled toggle ([#1571](https://github.com/reactstrap/reactstrap/issues/1571)) ([b4edeb8](https://github.com/reactstrap/reactstrap/commit/b4edeb8)), closes [#1542](https://github.com/reactstrap/reactstrap/issues/1542)
+* **Tooltip:** Support for multiple target elements ([#1465](https://github.com/reactstrap/reactstrap/issues/1465)) ([45775c0](https://github.com/reactstrap/reactstrap/commit/45775c0)), closes [#1185](https://github.com/reactstrap/reactstrap/issues/1185) [#1185](https://github.com/reactstrap/reactstrap/issues/1185) [#1185](https://github.com/reactstrap/reactstrap/issues/1185) [#1185](https://github.com/reactstrap/reactstrap/issues/1185)
+* **UncontrolledCarousel:** use item.key instead of item.src as… ([#1649](https://github.com/reactstrap/reactstrap/issues/1649)) ([5b9e758](https://github.com/reactstrap/reactstrap/commit/5b9e758)), closes [#1536](https://github.com/reactstrap/reactstrap/issues/1536)
+* **Popover:** PopperContent memory leak ([#1669](https://github.com/reactstrap/reactstrap/issues/1669)) ([54d459c](https://github.com/reactstrap/reactstrap/commit/5b9e758)), closes [#1482](https://github.com/reactstrap/reactstrap/issues/1482) [#1488](https://github.com/reactstrap/reactstrap/issues/1488) [#1664](https://github.com/reactstrap/reactstrap/issues/1664)
+
+
+### Features
+
+* **Dropdown:** add a11y prop to tab moves focus ([#1600](https://github.com/reactstrap/reactstrap/issues/1600)) ([1bd965f](https://github.com/reactstrap/reactstrap/commit/1bd965f)), closes [#1441](https://github.com/reactstrap/reactstrap/issues/1441)
+* **NavbarToggler:** add aria-label to NavbarToggler ([#1633](https://github.com/reactstrap/reactstrap/issues/1633)) ([dc0b8ae](https://github.com/reactstrap/reactstrap/commit/dc0b8ae)), closes [#1632](https://github.com/reactstrap/reactstrap/issues/1632)
+
+
+
+
+## [8.0.1](https://github.com/reactstrap/reactstrap/compare/8.0.0...8.0.1) (2019-07-10)
+
+
+### Bug Fixes
+
+* **DropdownMenu:** Allow positionFixed prop to be passed through ([#1538](https://github.com/reactstrap/reactstrap/issues/1538)) ([01466ae](https://github.com/reactstrap/reactstrap/commit/01466ae)), closes [#1473](https://github.com/reactstrap/reactstrap/issues/1473)
+* **FormGroup:** allow disable when tag is fieldset ([#1547](https://github.com/reactstrap/reactstrap/issues/1547)) ([0736f80](https://github.com/reactstrap/reactstrap/commit/0736f80)), closes [#1546](https://github.com/reactstrap/reactstrap/issues/1546)
+* **Modal:** handle init modal in SSR ([#1495](https://github.com/reactstrap/reactstrap/issues/1495)) ([c844ab1](https://github.com/reactstrap/reactstrap/commit/c844ab1))
+* **Modal:** update condition to call `setFocus` in case open mo… ([#1514](https://github.com/reactstrap/reactstrap/issues/1514)) ([ae6fe93](https://github.com/reactstrap/reactstrap/commit/ae6fe93))
+* **Tooltip:** clear timeouts on unmount ([#1562](https://github.com/reactstrap/reactstrap/issues/1562)) ([e85238b](https://github.com/reactstrap/reactstrap/commit/e85238b)), closes [#1255](https://github.com/reactstrap/reactstrap/issues/1255)
+
+
+
+
+# [8.0.0](https://github.com/reactstrap/reactstrap/compare/7.1.0...8.0.0) (2019-04-03)
+
+
+### Bug Fixes
+
+* **Carousel:** remove inappropriate role=listbox ([#1385](https://github.com/reactstrap/reactstrap/issues/1385)) ([32eb8ed](https://github.com/reactstrap/reactstrap/commit/32eb8ed))
+* **Modal:** fix exception in focus management ([#1382](https://github.com/reactstrap/reactstrap/issues/1382)) ([5cc9af5](https://github.com/reactstrap/reactstrap/commit/5cc9af5))
+* **Modal:** set Modal.openCount floor to 0 ([#1368](https://github.com/reactstrap/reactstrap/issues/1368)) ([71f9574](https://github.com/reactstrap/reactstrap/commit/71f9574))
+* **Popover:** touch not opening popover on mobile ([#1425](https://github.com/reactstrap/reactstrap/issues/1425)) ([#1426](https://github.com/reactstrap/reactstrap/issues/1426)) ([ad2a9a0](https://github.com/reactstrap/reactstrap/commit/ad2a9a0))
+* **Table:** add CSS Module support for responsive Table ([#1429](https://github.com/reactstrap/reactstrap/issues/1429)) ([#1430](https://github.com/reactstrap/reactstrap/issues/1430)) ([1e2dc5b](https://github.com/reactstrap/reactstrap/commit/1e2dc5b))
+* **utils:** Shim Element in non-DOM environments ([#1387](https://github.com/reactstrap/reactstrap/issues/1387)) ([eb4ee93](https://github.com/reactstrap/reactstrap/commit/eb4ee93))
+
+
+### Code Refactoring
+
+* **Modal, Dropdown{*}, PopperContent, Tabs:** go to React Async Rendering ([#1427](https://github.com/reactstrap/reactstrap/issues/1427)) ([1afb2c2](https://github.com/reactstrap/reactstrap/commit/1afb2c2))
+
+
+### Features
+
+* **CustomInput:** added htmlFor prop ([#1417](https://github.com/reactstrap/reactstrap/issues/1417)) ([a590880](https://github.com/reactstrap/reactstrap/commit/a590880))
+* **Modal:** add optional return focus after close ([#1424](https://github.com/reactstrap/reactstrap/issues/1424)) ([33cfce6](https://github.com/reactstrap/reactstrap/commit/33cfce6))
+* **Modal:** add scrollable prop ([#1435](https://github.com/reactstrap/reactstrap/issues/1435)) ([9f7dd45](https://github.com/reactstrap/reactstrap/commit/9f7dd45))
+* **pagination-links:** added props for first and last. changed carets… ([#1410](https://github.com/reactstrap/reactstrap/issues/1410)) ([70cfca2](https://github.com/reactstrap/reactstrap/commit/70cfca2))
+* **Popover:** add default toggleable fade support ([#1364](https://github.com/reactstrap/reactstrap/issues/1364)) ([#1364](https://github.com/reactstrap/reactstrap/issues/1364)) ([ee15c86](https://github.com/reactstrap/reactstrap/commit/ee15c86)), closes [#363](https://github.com/reactstrap/reactstrap/issues/363)
+* **Popover/Tooltip:** ability to pass through flip prop ([#1443](https://github.com/reactstrap/reactstrap/issues/1443)) ([4a5a8a3](https://github.com/reactstrap/reactstrap/commit/4a5a8a3))
+* **Toast:** add support for Toasts ([#1447](https://github.com/reactstrap/reactstrap/issues/1447)) ([7ea7610](https://github.com/reactstrap/reactstrap/commit/7ea7610)), closes [#1384](https://github.com/reactstrap/reactstrap/issues/1384) [#1346](https://github.com/reactstrap/reactstrap/issues/1346)
+
+
+### BREAKING CHANGES
+
+* **Modal, Dropdown{*}, PopperContent, Tabs:** using new Context API, react-popper v. '1.3.3'
+* **pagination-links:** Now the `next` and `previous` props are displaying single carets instead of double caret. To get the old style, use `first` and `last` props instead of `previous` and `next` respectfully and set `aria-label` to `Next` or `Previous`.
+* **Popover:** Popover and Tooltip will now fade in and out (like bootstrap's default). To get the previous behavior use fade={false}
+
+
+### Removed Deprecations
+
+* **`Card`'s `block` prop**: use `Card`s `body` prop.
+* **`Input`'s `static` prop**: use `Input`s `plaintext` prop.
+* **`Dropdown`'s `dropup` prop**: use `Dropdown`s `direction` prop with the value of `"up"`.
+* **`Navbar`'s `toggleable` prop**: use `Navbar`s `expand` prop (see docs)`.
+* **inverse prop**: use `dark` prop.
+* **CardBlock**: use `CardBody`.
+* **InputGroupButton**: use `InputGroupAddon`.
+* **NavDropdown**: use `Dropdown` with `nav` prop.
+* **PopoverContent**: use `PopoverBody`.
+* **PopoverTitle**: use `PopoverHeader`.
+* **UncontrolledNavDropdown**: use `UncontrolledDropdown` with `nav` prop.
+
+
+
+# [7.1.0](https://github.com/reactstrap/reactstrap/compare/7.0.2...7.1.0) (2019-01-15)
+
+
+### Bug Fixes
+
+* **NavLink:** console error while using [@reach](https://github.com/reach)/Router ([#1350](https://github.com/reactstrap/reactstrap/issues/1350)) ([477e1a8](https://github.com/reactstrap/reactstrap/commit/477e1a8)), closes [#1308](https://github.com/reactstrap/reactstrap/issues/1308)
+
+
+### Features
+
+* support forwardRef components as tag ([4cda8bf](https://github.com/reactstrap/reactstrap/commit/4cda8bf))
+* **Popover:** add legacy trigger, replacing unreleased isInteractive prop ([6b3c3ce](https://github.com/reactstrap/reactstrap/commit/6b3c3ce))
+* **Popover:** backward-compatible Popover behavior ([#1360](https://github.com/reactstrap/reactstrap/issues/1360)) ([1d5ce83](https://github.com/reactstrap/reactstrap/commit/1d5ce83)), closes [#1349](https://github.com/reactstrap/reactstrap/issues/1349)
+* **Spinner:** Add spinner component ([#1352](https://github.com/reactstrap/reactstrap/issues/1352)) ([45952e2](https://github.com/reactstrap/reactstrap/commit/45952e2)), closes [#1347](https://github.com/reactstrap/reactstrap/issues/1347)
+* **Switch:** Add support for CustomInput type='switch' ([#1353](https://github.com/reactstrap/reactstrap/issues/1353)) ([7c1e166](https://github.com/reactstrap/reactstrap/commit/7c1e166)), closes [#1348](https://github.com/reactstrap/reactstrap/issues/1348)
+
+
+
+
+## [7.0.2](https://github.com/reactstrap/reactstrap/compare/7.0.0...7.0.2) (2018-12-31)
+
+
+### Bug Fixes
+
+* fix release artifacts ([#1345](https://github.com/reactstrap/reactstrap/issues/1345)) ([b5710ef](https://github.com/reactstrap/reactstrap/commit/b5710ef))
+* **npm:** fix published files ([7eedbab](https://github.com/reactstrap/reactstrap/commit/7eedbab))
+
+
+
+
+## [7.0.1](https://github.com/reactstrap/reactstrap/compare/7.0.0...7.0.1) (2018-12-31)
+
+
+### Bug Fixes
+
+* fix release artifacts ([#1345](https://github.com/reactstrap/reactstrap/issues/1345)) ([b5710ef](https://github.com/reactstrap/reactstrap/commit/b5710ef))
+
+
+
+
+# [7.0.0](https://github.com/reactstrap/reactstrap/compare/6.5.0...7.0.0) (2018-12-29)
+
+
+### Bug Fixes
+
+* **CardTitle,CardSubtitle:** div as default tag ([#1298](https://github.com/reactstrap/reactstrap/issues/1298)) ([ea0f1f0](https://github.com/reactstrap/reactstrap/commit/ea0f1f0)), closes [#1297](https://github.com/reactstrap/reactstrap/issues/1297)
+* **CarouselIndicators:** li key generate from provided item values ([#1311](https://github.com/reactstrap/reactstrap/issues/1311)) ([fd7506d](https://github.com/reactstrap/reactstrap/commit/fd7506d)), closes [#1310](https://github.com/reactstrap/reactstrap/issues/1310)
+* **Dropdown:** enter key triggers onClick -- correction ([#1306](https://github.com/reactstrap/reactstrap/issues/1306)) ([6b50732](https://github.com/reactstrap/reactstrap/commit/6b50732))
+* **Dropdown:** improve keyboard ux, WAI-ARIA ([#1293](https://github.com/reactstrap/reactstrap/issues/1293)) ([506c46a](https://github.com/reactstrap/reactstrap/commit/506c46a))
+* **Dropdown:** Null check on children ([#1294](https://github.com/reactstrap/reactstrap/issues/1294)) ([#1295](https://github.com/reactstrap/reactstrap/issues/1295)) ([dcfde3b](https://github.com/reactstrap/reactstrap/commit/dcfde3b))
+* **FormGroup:** remove `.position-relative` ([#1270](https://github.com/reactstrap/reactstrap/issues/1270)) ([01eb5f9](https://github.com/reactstrap/reactstrap/commit/01eb5f9)), closes [#1269](https://github.com/reactstrap/reactstrap/issues/1269)
+* **Input:** make plaintext output input by default ([#1226](https://github.com/reactstrap/reactstrap/issues/1226)) ([ff64c76](https://github.com/reactstrap/reactstrap/commit/ff64c76)), closes [#1225](https://github.com/reactstrap/reactstrap/issues/1225)
+* **Modal:** don't propagate handled escape key event ([#1317](https://github.com/reactstrap/reactstrap/issues/1317)) ([5d45b26](https://github.com/reactstrap/reactstrap/commit/5d45b26))
+* **Modal:** only show backdrop when prop is true ([#1271](https://github.com/reactstrap/reactstrap/issues/1271)) ([07ec4b5](https://github.com/reactstrap/reactstrap/commit/07ec4b5)), closes [#1267](https://github.com/reactstrap/reactstrap/issues/1267)
+* **PopperContent:** Use create portal instead of unstable_renderSubtreeIntoContainer ([#1254](https://github.com/reactstrap/reactstrap/issues/1254)) ([81da8c5](https://github.com/reactstrap/reactstrap/commit/81da8c5)), closes [#1216](https://github.com/reactstrap/reactstrap/issues/1216)
+
+
+### Features
+
+* **Badge:** allow innerRef ([#1264](https://github.com/reactstrap/reactstrap/issues/1264)) ([2caaaa5](https://github.com/reactstrap/reactstrap/commit/2caaaa5))
+* **CardBody:** add innerRef to CardBody ([#1318](https://github.com/reactstrap/reactstrap/issues/1318)) ([4b0474f](https://github.com/reactstrap/reactstrap/commit/4b0474f)), closes [#1314](https://github.com/reactstrap/reactstrap/issues/1314)
+* **Table:** add innerRef prop ([#1296](https://github.com/reactstrap/reactstrap/issues/1296)) ([bb84c85](https://github.com/reactstrap/reactstrap/commit/bb84c85))
+* **Tooltip,Popover:** base component for Tooltip and Popover ([#1222](https://github.com/reactstrap/reactstrap/issues/1222)) ([b45907b](https://github.com/reactstrap/reactstrap/commit/b45907b)), closes [#1022](https://github.com/reactstrap/reactstrap/issues/1022) [#1181](https://github.com/reactstrap/reactstrap/issues/1181)
+
+
+### BREAKING CHANGES
+
+* **Input:** previously plaintext on Input would output a 'p' tag. To better line up with bootstrap it will not output an 'input' tag. If you need a 'p' tag, provide tag="p" prop
+* **Popover:** Popover will no longer dismiss when clicking away from it. To get this behaviour please use trigger="focus". In 7.1.0, trigger="legacy" has been added to get the exact previous behavior.
+
+
+
+
+# [6.5.0](https://github.com/reactstrap/reactstrap/compare/6.4.0...6.5.0) (2018-10-04)
+
+
+### Bug Fixes
+
+* **boundariesElement:** add DOMElement to allowed proptypes ([#1238](https://github.com/reactstrap/reactstrap/issues/1238)) ([cfe7318](https://github.com/reactstrap/reactstrap/commit/cfe7318))
+* **Dropdown:** enter key triggers onClick ([#1232](https://github.com/reactstrap/reactstrap/issues/1232)) ([f2528da](https://github.com/reactstrap/reactstrap/commit/f2528da)), closes [#1228](https://github.com/reactstrap/reactstrap/issues/1228)
+* **Modal:** do not trigger focus on SVG elements ([#1212](https://github.com/reactstrap/reactstrap/issues/1212)) ([c7e6ef5](https://github.com/reactstrap/reactstrap/commit/c7e6ef5)), closes [#1208](https://github.com/reactstrap/reactstrap/issues/1208)
+* **Modal:** use static openCount to become resilient to classList modification ([#1190](https://github.com/reactstrap/reactstrap/issues/1190)) ([c8ceeeb](https://github.com/reactstrap/reactstrap/commit/c8ceeeb)), closes [#1189](https://github.com/reactstrap/reactstrap/issues/1189)
+* **Tooltip:** clear timers on component unmount ([#1180](https://github.com/reactstrap/reactstrap/issues/1180)) ([9fea409](https://github.com/reactstrap/reactstrap/commit/9fea409))
+
+
+### Features
+
+* **Button:** add close icon support ([#1206](https://github.com/reactstrap/reactstrap/issues/1206)) ([02f5e9a](https://github.com/reactstrap/reactstrap/commit/02f5e9a)), closes [#1182](https://github.com/reactstrap/reactstrap/issues/1182)
+* **FormGrid:** Add form-row ([#1237](https://github.com/reactstrap/reactstrap/issues/1237)) ([205e80d](https://github.com/reactstrap/reactstrap/commit/205e80d)), closes [#1195](https://github.com/reactstrap/reactstrap/issues/1195)
+* **Modal:** add custom close button ([#1168](https://github.com/reactstrap/reactstrap/issues/1168)) ([5f33a1a](https://github.com/reactstrap/reactstrap/commit/5f33a1a))
+* **Popover/Tooltip:** Implented usage of react 16.3 RefObject as target ([#1200](https://github.com/reactstrap/reactstrap/issues/1200)) ([0eade39](https://github.com/reactstrap/reactstrap/commit/0eade39)), closes [#1198](https://github.com/reactstrap/reactstrap/issues/1198)
+
+
+
+
+# [6.4.0](https://github.com/reactstrap/reactstrap/compare/6.3.1...6.4.0) (2018-08-17)
+
+
+### Bug Fixes
+
+* **Modal:** don't fade backdrop if there is no transition ([#1172](https://github.com/reactstrap/reactstrap/issues/1172)) ([77e7beb](https://github.com/reactstrap/reactstrap/commit/77e7beb)), closes [#1100](https://github.com/reactstrap/reactstrap/issues/1100)
+* **Modal:** prevent scrollbar from closing ([#1165](https://github.com/reactstrap/reactstrap/issues/1165)) ([9d7948f](https://github.com/reactstrap/reactstrap/commit/9d7948f)), closes [#1097](https://github.com/reactstrap/reactstrap/issues/1097)
+
+
+### Features
+
+* **Dropdown:** Select first element matching pressed key ([#1160](https://github.com/reactstrap/reactstrap/issues/1160)) ([abbac56](https://github.com/reactstrap/reactstrap/commit/abbac56)), closes [#1156](https://github.com/reactstrap/reactstrap/issues/1156)
+* **Modal:** add charCode prop for custom icon ([#1162](https://github.com/reactstrap/reactstrap/issues/1162)) ([4d19b09](https://github.com/reactstrap/reactstrap/commit/4d19b09)), closes [#1155](https://github.com/reactstrap/reactstrap/issues/1155)
+* **Modal:** return focus after modal closes ([#1175](https://github.com/reactstrap/reactstrap/issues/1175)) ([1b27c49](https://github.com/reactstrap/reactstrap/commit/1b27c49)), closes [#1174](https://github.com/reactstrap/reactstrap/issues/1174)
+* **Modal:** trap focus in modal ([#1161](https://github.com/reactstrap/reactstrap/issues/1161)) ([e6781d7](https://github.com/reactstrap/reactstrap/commit/e6781d7)), closes [#310](https://github.com/reactstrap/reactstrap/issues/310)
+* **Popover/Tooltip:** add boundariesElement prop ([#1149](https://github.com/reactstrap/reactstrap/issues/1149)) ([02b4555](https://github.com/reactstrap/reactstrap/commit/02b4555)), closes [#1118](https://github.com/reactstrap/reactstrap/issues/1118)
+
+
+
+
+## [6.3.1](https://github.com/reactstrap/reactstrap/compare/6.3.0...6.3.1) (2018-07-27)
+
+
+### Bug Fixes
+
+* **Collapse:** add function and string to innerRef propType ([#1129](https://github.com/reactstrap/reactstrap/issues/1129)) ([f380b41](https://github.com/reactstrap/reactstrap/commit/f380b41)), closes [#1054](https://github.com/reactstrap/reactstrap/issues/1054)
+* **CustomInput:** allow any node for label ([#1095](https://github.com/reactstrap/reactstrap/issues/1095)) ([c1374b4](https://github.com/reactstrap/reactstrap/commit/c1374b4))
+
+
+
+
+# [6.3.0](https://github.com/reactstrap/reactstrap/compare/6.2.0...6.3.0) (2018-07-10)
+
+### Features
+
+* **CustomInput:** add innerRef to CustomInput ([#1123](https://github.com/reactstrap/reactstrap/issues/1123)) ([418fdf8](https://github.com/reactstrap/reactstrap/commit/418fdf8))
+
+* **Tooltip:** allow additional arrow classNames ([#1119](https://github.com/reactstrap/reactstrap/issues/1119)) ([9ffa55f](https://github.com/reactstrap/reactstrap/commit/9ffa55f)), closes [#1117](https://github.com/reactstrap/reactstrap/issues/1117)
+
+
+# [6.2.0](https://github.com/reactstrap/reactstrap/compare/6.1.0...6.2.0) (2018-06-28)
+
+
+### Bug Fixes
+
+* **Carousel:** allow true, false, undefined, null and children of Carousel ([#1064](https://github.com/reactstrap/reactstrap/issues/1064)) ([478870b](https://github.com/reactstrap/reactstrap/commit/478870b)), closes [#1063](https://github.com/reactstrap/reactstrap/issues/1063)
+* **Modal:** allow innerRef to be function or string ([#1091](https://github.com/reactstrap/reactstrap/issues/1091)) ([aceaf22](https://github.com/reactstrap/reactstrap/commit/aceaf22))
+* **tooltip:** fixed tooltip not disappearing on mobile ([#1083](https://github.com/reactstrap/reactstrap/issues/1083)) ([e6a1313](https://github.com/reactstrap/reactstrap/commit/e6a1313)), closes [#1004](https://github.com/reactstrap/reactstrap/issues/1004)
+* **Tooltip:** Pass down cssModule ([#1075](https://github.com/reactstrap/reactstrap/issues/1075)) ([#1076](https://github.com/reactstrap/reactstrap/issues/1076)) ([4fb05b2](https://github.com/reactstrap/reactstrap/commit/4fb05b2))
+
+
+### Features
+
+* **alert:** add ability to disable fade ([#1078](https://github.com/reactstrap/reactstrap/issues/1078)) ([c71f1d4](https://github.com/reactstrap/reactstrap/commit/c71f1d4)), closes [#824](https://github.com/reactstrap/reactstrap/issues/824)
+* **Collapse:** add ref to collapse component ([#1067](https://github.com/reactstrap/reactstrap/issues/1067)) ([9d3126c](https://github.com/reactstrap/reactstrap/commit/9d3126c)), closes [#1054](https://github.com/reactstrap/reactstrap/issues/1054)
+* **feedback-tooltip:** add feedback tooltip ([#1074](https://github.com/reactstrap/reactstrap/issues/1074)) ([baee9a4](https://github.com/reactstrap/reactstrap/commit/baee9a4)), closes [#1062](https://github.com/reactstrap/reactstrap/issues/1062)
+* **Modal:** add ref to Modal ([#1087](https://github.com/reactstrap/reactstrap/issues/1087)) ([015d16d](https://github.com/reactstrap/reactstrap/commit/015d16d)), closes [#1082](https://github.com/reactstrap/reactstrap/issues/1082)
+* **Tooltip:** add innerRef ([#1090](https://github.com/reactstrap/reactstrap/issues/1090)) ([214da8c](https://github.com/reactstrap/reactstrap/commit/214da8c)), closes [#1089](https://github.com/reactstrap/reactstrap/issues/1089)
+* **Tooltip:** pass event to toggle callback ([#1096](https://github.com/reactstrap/reactstrap/issues/1096)) ([9dad68b](https://github.com/reactstrap/reactstrap/commit/9dad68b)), closes [#1094](https://github.com/reactstrap/reactstrap/issues/1094) [#1072](https://github.com/reactstrap/reactstrap/issues/1072)
+
+
+
+
+# [6.1.0](https://github.com/reactstrap/reactstrap/compare/6.0.1...6.1.0) (2018-06-04)
+
+
+### Bug Fixes
+
+* **Input:** type attribute should not render for select and textarea ([#1041](https://github.com/reactstrap/reactstrap/issues/1041)) ([2e45d8a](https://github.com/reactstrap/reactstrap/commit/2e45d8a)), closes [#1038](https://github.com/reactstrap/reactstrap/issues/1038)
+* **Media:** fix default tags ([267dfe0](https://github.com/reactstrap/reactstrap/commit/267dfe0)), closes [#979](https://github.com/reactstrap/reactstrap/issues/979)
+* **Modal:** closes when dragging outside modal ([#1047](https://github.com/reactstrap/reactstrap/issues/1047)) ([cccd7af](https://github.com/reactstrap/reactstrap/commit/cccd7af)), closes [angular-ui/bootstrap#5810](https://github.com/angular-ui/bootstrap/issues/5810)
+* **PaginationLink:** do not render invalid anchor tags ([7266214](https://github.com/reactstrap/reactstrap/commit/7266214))
+* **UncontrolledCollapse:** collapsing on mobile ([#1043](https://github.com/reactstrap/reactstrap/issues/1043)) ([dcc1dda](https://github.com/reactstrap/reactstrap/commit/dcc1dda)), closes [#1034](https://github.com/reactstrap/reactstrap/issues/1034)
+
+
+### Features
+
+* **addMultipleEventListeners:** handle singles ([d124b27](https://github.com/reactstrap/reactstrap/commit/d124b27))
+* **exports:** mark reactstrap as sideEffects free ([#1005](https://github.com/reactstrap/reactstrap/issues/1005)) ([b68826d](https://github.com/reactstrap/reactstrap/commit/b68826d))
+* **Form:** add submit to component ([4e10dd9](https://github.com/reactstrap/reactstrap/commit/4e10dd9))
+* **Input:** make it easier to focus ([e3124af](https://github.com/reactstrap/reactstrap/commit/e3124af))
+* **Tooltip:** add tooltip accessibility ([#1025](https://github.com/reactstrap/reactstrap/issues/1025)) ([a2138a8](https://github.com/reactstrap/reactstrap/commit/a2138a8)), closes [#1012](https://github.com/reactstrap/reactstrap/issues/1012)
+* **Tooltip,Popover:** add offset prop ([#1018](https://github.com/reactstrap/reactstrap/issues/1018)) ([3561e3c](https://github.com/reactstrap/reactstrap/commit/3561e3c))
+* **UncontrolledCollapse:** add UncontrolledCollapse ([#1009](https://github.com/reactstrap/reactstrap/issues/1009)) ([355d2b8](https://github.com/reactstrap/reactstrap/commit/355d2b8))
+
+
+
+
+## [6.0.1](https://github.com/reactstrap/reactstrap/compare/6.0.0...6.0.1) (2018-05-02)
+
+
+### Bug Fixes
+
+* **CustomInput:** fix Invalid propType. ([#994](https://github.com/reactstrap/reactstrap/issues/994)) ([35ca0a8](https://github.com/reactstrap/reactstrap/commit/35ca0a8)), closes [#993](https://github.com/reactstrap/reactstrap/issues/993)
+
+
+
+
+# [6.0.0](https://github.com/reactstrap/reactstrap/compare/5.0.0...6.0.0) (2018-05-01)
+
+
+* chore(Input): remove support for children content in (#927) ([4dea4a6](https://github.com/reactstrap/reactstrap/commit/4dea4a6)), closes [#927](https://github.com/reactstrap/reactstrap/issues/927) [#871](https://github.com/reactstrap/reactstrap/issues/871)
+
+
+### Bug Fixes
+
+* **DropdownMenu:** add x-placement attribute ([#966](https://github.com/reactstrap/reactstrap/issues/966)) ([0f4a4cb](https://github.com/reactstrap/reactstrap/commit/0f4a4cb)), closes [#962](https://github.com/reactstrap/reactstrap/issues/962)
+* **innerRef:** allow createRef as a ref ([a5795b8](https://github.com/reactstrap/reactstrap/commit/a5795b8))
+* **Modal:** update zindex when prop is changed ([#937](https://github.com/reactstrap/reactstrap/issues/937)) ([01667c1](https://github.com/reactstrap/reactstrap/commit/01667c1))
+* **UncontrolledCarousel:** add bootstrap classes to img to make it responsive ([#934](https://github.com/reactstrap/reactstrap/issues/934)) ([9f7b741](https://github.com/reactstrap/reactstrap/commit/9f7b741))
+* **UncontrolledCarousel:** added header item prop ([#964](https://github.com/reactstrap/reactstrap/issues/964)) ([62b79fb](https://github.com/reactstrap/reactstrap/commit/62b79fb)), closes [#943](https://github.com/reactstrap/reactstrap/issues/943)
+
+
+### Features
+
+* **CustomInput:** add custom checkboxes/radios ([#985](https://github.com/reactstrap/reactstrap/issues/985)) ([312e729](https://github.com/reactstrap/reactstrap/commit/312e729))
+* **CustomInput:** add more custom inputs ([#991](https://github.com/reactstrap/reactstrap/issues/991)) ([ccdb7f2](https://github.com/reactstrap/reactstrap/commit/ccdb7f2)), closes [#534](https://github.com/reactstrap/reactstrap/issues/534)
+* **Dropdown:** setActiveFromChild prop ([#977](https://github.com/reactstrap/reactstrap/issues/977)) ([1b47757](https://github.com/reactstrap/reactstrap/commit/1b47757))
+* **DropdownMenu:** add Popper modifiers ([#929](https://github.com/reactstrap/reactstrap/issues/929)) ([f28ef8a](https://github.com/reactstrap/reactstrap/commit/f28ef8a)), closes [#811](https://github.com/reactstrap/reactstrap/issues/811)
+* **DropdownMenu:** allow menu to persist ([840adb2](https://github.com/reactstrap/reactstrap/commit/840adb2)), closes [#779](https://github.com/reactstrap/reactstrap/issues/779)
+* **Table:** add `borderless` option ([#956](https://github.com/reactstrap/reactstrap/issues/956)) ([210b53f](https://github.com/reactstrap/reactstrap/commit/210b53f))
+
+
+### BREAKING CHANGES
+
+* `Input` with type="textarea" can no longer have children. To set the value of the textarea please use `value`/`defaultValue` the same as you would for input type="text".
+
+
+
+
+# [5.0.0](https://github.com/reactstrap/reactstrap/compare/5.0.0-beta.3...5.0.0) (2018-03-23)
+
+
+### Bug Fixes
+
+* **Modal:** don't add or remove multi body classes ([6ec3174](https://github.com/reactstrap/reactstrap/commit/6ec3174))
+* **Modal:** Ensure that `this._element` exists before removing it. ([#916](https://github.com/reactstrap/reactstrap/issues/916)) ([7faa32a](https://github.com/reactstrap/reactstrap/commit/7faa32a)), closes [#918](https://github.com/reactstrap/reactstrap/issues/918)
+
+
+### BREAKING CHANGES
+
+* **Modal:** reactstrap now requires a minimum react version of 16. Please update your version of react to 16 (from 15 to 16 is very seamless).
+
+
+
+
+# [5.0.0-beta.3](https://github.com/reactstrap/reactstrap/compare/5.0.0-beta.2...5.0.0-beta.3) (2018-03-19)
+
+
+### Bug Fixes
+
+* **popper:** pass event object to toggle prop ([#907](https://github.com/reactstrap/reactstrap/issues/907)) ([b1f6005](https://github.com/reactstrap/reactstrap/commit/b1f6005))
+
+
+### Features
+
+* **Dropdown:** Add active prop to Dropdown ([#895](https://github.com/reactstrap/reactstrap/issues/895)) ([45de5c5](https://github.com/reactstrap/reactstrap/commit/45de5c5)), closes [#827](https://github.com/reactstrap/reactstrap/issues/827)
+* **Modal:** pass event object to toggle prop ([#903](https://github.com/reactstrap/reactstrap/issues/903)) ([f6aacfa](https://github.com/reactstrap/reactstrap/commit/f6aacfa))
+
+
+
+
+# [5.0.0-beta.2](https://github.com/reactstrap/reactstrap/compare/5.0.0-beta...5.0.0-beta.2) (2018-02-27)
+
+
+### Bug Fixes
+
+* **Col:** pass cssModule to mapToCSSModules not push ([#857](https://github.com/reactstrap/reactstrap/issues/857)) ([7887364](https://github.com/reactstrap/reactstrap/commit/7887364)), closes [#856](https://github.com/reactstrap/reactstrap/issues/856)
+* **Modal:** map body class name before removing ([#817](https://github.com/reactstrap/reactstrap/issues/817)) ([f099d31](https://github.com/reactstrap/reactstrap/commit/f099d31)), closes [#665](https://github.com/reactstrap/reactstrap/issues/665) [#763](https://github.com/reactstrap/reactstrap/issues/763)
+* **UncontrolledNavDropdown:** add missing props param ([#812](https://github.com/reactstrap/reactstrap/issues/812)) ([b35cdcb](https://github.com/reactstrap/reactstrap/commit/b35cdcb))
+
+
+### Features
+
+* **Col:** Set col class only if no other cols are specified ([#842](https://github.com/reactstrap/reactstrap/issues/842)) ([5a9aa63](https://github.com/reactstrap/reactstrap/commit/5a9aa63)), closes [#750](https://github.com/reactstrap/reactstrap/issues/750)
+* **Dropdown:** Add support for dropleft and dropright ([#813](https://github.com/reactstrap/reactstrap/issues/813)) ([2b71fd6](https://github.com/reactstrap/reactstrap/commit/2b71fd6)), closes [#785](https://github.com/reactstrap/reactstrap/issues/785)
+* **FormFeedback:** Support valid feedback. ([#840](https://github.com/reactstrap/reactstrap/issues/840)) ([9b49091](https://github.com/reactstrap/reactstrap/commit/9b49091))
+* **Input:** add invalid prop ([#858](https://github.com/reactstrap/reactstrap/issues/858)) ([ba8fc39](https://github.com/reactstrap/reactstrap/commit/ba8fc39)), closes [#850](https://github.com/reactstrap/reactstrap/issues/850)
+* **Modal:** add ability to have external content ([#854](https://github.com/reactstrap/reactstrap/issues/854)) ([9c1b71a](https://github.com/reactstrap/reactstrap/commit/9c1b71a)), closes [#853](https://github.com/reactstrap/reactstrap/issues/853)
+* **Modal:** added support for React Portal ([#796](https://github.com/reactstrap/reactstrap/issues/796)) ([49a7f99](https://github.com/reactstrap/reactstrap/commit/49a7f99)), closes [#601](https://github.com/reactstrap/reactstrap/issues/601) [#761](https://github.com/reactstrap/reactstrap/issues/761) [#645](https://github.com/reactstrap/reactstrap/issues/645)
+* **Popover/Tooltip:** add ability to hide arrow ([#814](https://github.com/reactstrap/reactstrap/issues/814)) ([#815](https://github.com/reactstrap/reactstrap/issues/815)) ([43efe8b](https://github.com/reactstrap/reactstrap/commit/43efe8b))
+
+
+### BREAKING CHANGES
+
+* **Col:** Col no longer adds .col class by default when you have other columns specified. To get this class back, simply add the prop xs.
+* **Input:** the valid prop no longer applies the is-invalid class when false. Use the new invalid prop to apply that class.
+
+
+
+
+# [5.0.0-beta](https://github.com/reactstrap/reactstrap/compare/5.0.0-alpha.4...5.0.0-beta) (2018-01-31)
+
+
+### Bug Fixes
+
+* **CardTitle:** default tag to h5 ([#794](https://github.com/reactstrap/reactstrap/issues/794)) ([65194c1](https://github.com/reactstrap/reactstrap/commit/65194c1))
+* **CarouselIndicators`:** fix class name when using `cssModule` ([#726](https://github.com/reactstrap/reactstrap/issues/726)) ([57d07e3](https://github.com/reactstrap/reactstrap/commit/57d07e3))
+* **Input:** honor Tag prop ([#795](https://github.com/reactstrap/reactstrap/issues/795)) ([bcefdaa](https://github.com/reactstrap/reactstrap/commit/bcefdaa)), closes [#783](https://github.com/reactstrap/reactstrap/issues/783)
+* **Label:** remove unused `form-control-label` class ([#695](https://github.com/reactstrap/reactstrap/issues/695)) ([b7567c7](https://github.com/reactstrap/reactstrap/commit/b7567c7))
+* **Modal:** check this.props.toggle exists before using it ([#700](https://github.com/reactstrap/reactstrap/issues/700)) ([80c0cde](https://github.com/reactstrap/reactstrap/commit/80c0cde))
+* **ModalHeader:** default tag to h5 ([#793](https://github.com/reactstrap/reactstrap/issues/793)) ([6a5fe7e](https://github.com/reactstrap/reactstrap/commit/6a5fe7e))
+* **Util:** window.getComputedStyle can return null in Firefox ([#782](https://github.com/reactstrap/reactstrap/issues/782)) ([6914f73](https://github.com/reactstrap/reactstrap/commit/6914f73))
+
+
+### Features
+
+* **CarouselItem:** Make CarouselItem accept children of any type ([#735](https://github.com/reactstrap/reactstrap/issues/735)) ([eea7d1b](https://github.com/reactstrap/reactstrap/commit/eea7d1b)), closes [#641](https://github.com/reactstrap/reactstrap/issues/641) [#719](https://github.com/reactstrap/reactstrap/issues/719)
+* **Col/Label:** Removed pull/push and added order ([#696](https://github.com/reactstrap/reactstrap/issues/696)) ([7c5e690](https://github.com/reactstrap/reactstrap/commit/7c5e690))
+* **cssModule:** expose global cssModule setter ([#729](https://github.com/reactstrap/reactstrap/issues/729)) ([adc8736](https://github.com/reactstrap/reactstrap/commit/adc8736))
+* **Dropdown:** disable popper when inNavbar ([#692](https://github.com/reactstrap/reactstrap/issues/692)) ([b5c7612](https://github.com/reactstrap/reactstrap/commit/b5c7612)), closes [#637](https://github.com/reactstrap/reactstrap/issues/637)
+* **InputGroup:** Deprecate InputGroupButton ([#769](https://github.com/reactstrap/reactstrap/issues/769)) ([5c5c205](https://github.com/reactstrap/reactstrap/commit/5c5c205))
+* **InputGroup:** Update for BS 4-beta.3 ([#762](https://github.com/reactstrap/reactstrap/issues/762)) ([fa3555f](https://github.com/reactstrap/reactstrap/commit/fa3555f)), closes [#759](https://github.com/reactstrap/reactstrap/issues/759)
+* **ListGroup*:** Added missing cssModule support ([#784](https://github.com/reactstrap/reactstrap/issues/784)) ([df264a8](https://github.com/reactstrap/reactstrap/commit/df264a8))
+* **Popover/Tooltip:** add ability to pass modifiers to Popper.js ([#710](https://github.com/reactstrap/reactstrap/issues/710)) ([bc6518e](https://github.com/reactstrap/reactstrap/commit/bc6518e)), closes [#709](https://github.com/reactstrap/reactstrap/issues/709)
+* **Table:** BS4 beta 2 updates for Table ([#694](https://github.com/reactstrap/reactstrap/issues/694)) ([3377cdc](https://github.com/reactstrap/reactstrap/commit/3377cdc))
+* **Table:** BS4 beta 3 revert responsive table ([#757](https://github.com/reactstrap/reactstrap/issues/757)) ([ee08d21](https://github.com/reactstrap/reactstrap/commit/ee08d21))
+
+
+### BREAKING CHANGES
+
+* **CardTitle:** CardTitle now defaults to h5 instead of h4. If you still need h4 add tag="h4"
+* **ModalHeader:** ModalHeader now defaults to h5 instead of h4. If you still need h4 add tag="h4"
+
+
+
+
+# [5.0.0-alpha.4](https://github.com/reactstrap/reactstrap/compare/5.0.0-alpha.3...5.0.0-alpha.4) (2017-11-16)
+
+
+### Bug Fixes
+
+* **FormGroup,Label:** Fix inline radio- and checkboxes ([#624](https://github.com/reactstrap/reactstrap/issues/624)) ([e9b7803](https://github.com/reactstrap/reactstrap/commit/e9b7803))
+* **getTarget:** do not return null; throw ([#623](https://github.com/reactstrap/reactstrap/issues/623)) ([e1d3b5f](https://github.com/reactstrap/reactstrap/commit/e1d3b5f))
+* **Input:** fix size prop ([#662](https://github.com/reactstrap/reactstrap/issues/662)) ([cc2bd13](https://github.com/reactstrap/reactstrap/commit/cc2bd13)), closes [#660](https://github.com/reactstrap/reactstrap/issues/660)
+* **Label:** remove disabled prop ([#626](https://github.com/reactstrap/reactstrap/issues/626)) ([25c1e38](https://github.com/reactstrap/reactstrap/commit/25c1e38))
+* **ModalHeader:** Use css modules in close button ([#629](https://github.com/reactstrap/reactstrap/issues/629)) ([2cd6f21](https://github.com/reactstrap/reactstrap/commit/2cd6f21)), closes [#628](https://github.com/reactstrap/reactstrap/issues/628)
+* **UncontrolledCarousel:** fix autoPlay={false} ([#654](https://github.com/reactstrap/reactstrap/issues/654)) ([839419e](https://github.com/reactstrap/reactstrap/commit/839419e)), closes [#653](https://github.com/reactstrap/reactstrap/issues/653)
+
+
+### Features
+
+* **Carousel:** add className to carousel components ([#682](https://github.com/reactstrap/reactstrap/issues/682)) ([d23b28a](https://github.com/reactstrap/reactstrap/commit/d23b28a)), closes [#669](https://github.com/reactstrap/reactstrap/issues/669)
+* **CarouselItem:** support tag prop on carousel item ([#681](https://github.com/reactstrap/reactstrap/issues/681)) ([1e70e64](https://github.com/reactstrap/reactstrap/commit/1e70e64))
+* **Dropdown:** Add nav prop to Dropdown ([#636](https://github.com/reactstrap/reactstrap/issues/636)) ([48edd6b](https://github.com/reactstrap/reactstrap/commit/48edd6b))
+* **getTarget:** throw when string not in DOM ([#622](https://github.com/reactstrap/reactstrap/issues/622)) ([e71c427](https://github.com/reactstrap/reactstrap/commit/e71c427)), closes [#620](https://github.com/reactstrap/reactstrap/issues/620)
+* **NavItem:** add active prop to NavItem ([#688](https://github.com/reactstrap/reactstrap/issues/688)) ([2a8bffb](https://github.com/reactstrap/reactstrap/commit/2a8bffb)), closes [#678](https://github.com/reactstrap/reactstrap/issues/678)
+
+
+
+
+# [5.0.0-alpha.3](https://github.com/reactstrap/reactstrap/compare/5.0.0-alpha.2...5.0.0-alpha.3) (2017-10-03)
+
+
+### Bug Fixes
+
+* **Build:** Cross-platform postbuild support, improved Readme documentation, updated dependencies. ([#608](https://github.com/reactstrap/reactstrap/issues/608)) ([681738c](https://github.com/reactstrap/reactstrap/commit/681738c))
+* **Collapse,Fade:** Ensuring props don't leak to child ([#598](https://github.com/reactstrap/reactstrap/issues/598)) ([1a94b0f](https://github.com/reactstrap/reactstrap/commit/1a94b0f)), closes [#597](https://github.com/reactstrap/reactstrap/issues/597)
+* **Modal:** Update classes for fixed content detection ([#600](https://github.com/reactstrap/reactstrap/issues/600)) ([9b41e13](https://github.com/reactstrap/reactstrap/commit/9b41e13))
+* **PaginationLink:** handle empty children array correctly ([#511](https://github.com/reactstrap/reactstrap/issues/511)) ([#604](https://github.com/reactstrap/reactstrap/issues/604)) ([c090ea7](https://github.com/reactstrap/reactstrap/commit/c090ea7))
+
+
+
+
+# [5.0.0-alpha.2](https://github.com/reactstrap/reactstrap/compare/5.0.0-alpha.1...5.0.0-alpha.2) (2017-09-28)
+
+
+### Bug Fixes
+
+* **Popover:** do not trigger toggle on popover click ([50a8fd4](https://github.com/reactstrap/reactstrap/commit/50a8fd4)), closes [#594](https://github.com/reactstrap/reactstrap/issues/594)
+
+
+
+
+# [5.0.0-alpha.1](https://github.com/reactstrap/reactstrap/compare/5.0.0-alpha.0...5.0.0-alpha.1) (2017-09-23)
+
+
+### Bug Fixes
+
+* **Dropdown:** fix perf issue ([e4479aa](https://github.com/reactstrap/reactstrap/commit/e4479aa)), closes [#584](https://github.com/reactstrap/reactstrap/issues/584)
+
+
+### Features
+
+* **Dropdown:** keyboard control/navigation ([ac90f51](https://github.com/reactstrap/reactstrap/commit/ac90f51)), closes [#580](https://github.com/reactstrap/reactstrap/issues/580)
+* **Input:** add plaintext prop ([d0c6e82](https://github.com/reactstrap/reactstrap/commit/d0c6e82)), closes [#485](https://github.com/reactstrap/reactstrap/issues/485)
+
+
+
+
+# [5.0.0-alpha.0](https://github.com/reactstrap/reactstrap/compare/4.8.0...5.0.0-alpha.0) (2017-09-21)
+
+
+### Bug Fixes
+
+* Add container to Popover and Tooltip ([759934b](https://github.com/reactstrap/reactstrap/commit/759934b))
+* **Carousel:** use prop-types in carousel ([#503](https://github.com/reactstrap/reactstrap/issues/503)) ([e1bdadb](https://github.com/reactstrap/reactstrap/commit/e1bdadb))
+* **CSSModules:** pass modules to child components ([#483](https://github.com/reactstrap/reactstrap/issues/483)) ([12270d0](https://github.com/reactstrap/reactstrap/commit/12270d0))
+* **Label:** fix xs col class ([#512](https://github.com/reactstrap/reactstrap/issues/512)) ([683dbdb](https://github.com/reactstrap/reactstrap/commit/683dbdb)), closes [#510](https://github.com/reactstrap/reactstrap/issues/510)
+* **Modal:** add workaround for Modal auto focus ([f12057d](https://github.com/reactstrap/reactstrap/commit/f12057d))
+* **Navbar:** better backwards compatibility ([aefbdd7](https://github.com/reactstrap/reactstrap/commit/aefbdd7))
+* **NavbarToggler:** fix syntax error ([a460912](https://github.com/reactstrap/reactstrap/commit/a460912))
+* **PaginationLink:** handle empty children array ([#511](https://github.com/reactstrap/reactstrap/issues/511)) ([72d82a3](https://github.com/reactstrap/reactstrap/commit/72d82a3)), closes [#494](https://github.com/reactstrap/reactstrap/issues/494)
+* **popper:** account for touchstart ([9b80d11](https://github.com/reactstrap/reactstrap/commit/9b80d11)), closes [#456](https://github.com/reactstrap/reactstrap/issues/456) [#458](https://github.com/reactstrap/reactstrap/issues/458)
+* **popperjs:** fixed error in build ([#571](https://github.com/reactstrap/reactstrap/issues/571)) ([0a9394d](https://github.com/reactstrap/reactstrap/commit/0a9394d))
+* **Tooltip/Popover:** fix className/add innerClassName ([a2a33e3](https://github.com/reactstrap/reactstrap/commit/a2a33e3))
+
+
+### Features
+
+* **aria:** add closeAriaLabel ([#525](https://github.com/reactstrap/reactstrap/issues/525)) ([3b4c0e6](https://github.com/reactstrap/reactstrap/commit/3b4c0e6)), closes [#524](https://github.com/reactstrap/reactstrap/issues/524)
+* **Badge:** handle links ([9b32cee](https://github.com/reactstrap/reactstrap/commit/9b32cee))
+* **Card:** update Card for bs v4 beta ([c4609e2](https://github.com/reactstrap/reactstrap/commit/c4609e2))
+* **Dropdown:** update Dropdown for bs v4 beta ([53687fa](https://github.com/reactstrap/reactstrap/commit/53687fa))
+* **Modal:** onOpened and onClosed callbacks for modals ([#434](https://github.com/reactstrap/reactstrap/issues/434)) ([87c6c4e](https://github.com/reactstrap/reactstrap/commit/87c6c4e)), closes [#306](https://github.com/reactstrap/reactstrap/issues/306)
+* **Nav/Navbar:** update to bs v4 beta ([5395e8d](https://github.com/reactstrap/reactstrap/commit/5395e8d))
+* **Popover:** update popovers to bs v4 beta ([bb00f4c](https://github.com/reactstrap/reactstrap/commit/bb00f4c))
+* **popper:** add container prop to popper ([fd59d37](https://github.com/reactstrap/reactstrap/commit/fd59d37))
+* **popperjs:** use popperjs instead of tether ([#561](https://github.com/reactstrap/reactstrap/issues/561)) ([5413022](https://github.com/reactstrap/reactstrap/commit/5413022))
+* **UncontrolledCarousel:** add UncontrolledCarousel ([627a73e](https://github.com/reactstrap/reactstrap/commit/627a73e))
+* **util:** add warnOnce and deprecated fns ([5faa94d](https://github.com/reactstrap/reactstrap/commit/5faa94d))
+* **validation:** add/update form validation ([8b2386f](https://github.com/reactstrap/reactstrap/commit/8b2386f))
+
+
+### BREAKING CHANGES
+
+* **validation:** The color prop has been removed from FromGroup, see the valid prop on Input.
+* **popperjs:** getRef has been renamed to innerRef to line up with other libraries.
+* **popperjs:** tether props have been removed.
+
+
+
+
+# [4.8.0](https://github.com/reactstrap/reactstrap/compare/4.7.0...4.8.0) (2017-06-28)
+
+
+### Features
+
+* **DropdownItem:** support the "active" property for dropdown items ([#469](https://github.com/reactstrap/reactstrap/issues/469)) ([83df86e](https://github.com/reactstrap/reactstrap/commit/83df86e))
+
+
+
+
+# [4.7.0](https://github.com/reactstrap/reactstrap/compare/4.6.2...4.7.0) (2017-06-27)
+
+
+### Bug Fixes
+
+* **Alert:** map close class css modules ([#471](https://github.com/reactstrap/reactstrap/issues/471)) ([2e3c687](https://github.com/reactstrap/reactstrap/commit/2e3c687)), closes [#470](https://github.com/reactstrap/reactstrap/issues/470)
+* **DropdownToggle:** ensures color attribute is not leaked ([d1448e0](https://github.com/reactstrap/reactstrap/commit/d1448e0)), closes [#461](https://github.com/reactstrap/reactstrap/issues/461) [PR#402](https://github.com/PR/issues/402)
+* **Label:** add form-control-label to appropriate Label components ([#452](https://github.com/reactstrap/reactstrap/issues/452)) ([2e86132](https://github.com/reactstrap/reactstrap/commit/2e86132))
+* **Modal:** add back attribute passthrough ([#444](https://github.com/reactstrap/reactstrap/issues/444)) ([b598a40](https://github.com/reactstrap/reactstrap/commit/b598a40)), closes [#443](https://github.com/reactstrap/reactstrap/issues/443)
+* **Navbar:** remove default navigation role ([f607b2c](https://github.com/reactstrap/reactstrap/commit/f607b2c)), closes [#463](https://github.com/reactstrap/reactstrap/issues/463)
+
+
+
## [4.6.2](https://github.com/reactstrap/reactstrap/compare/4.6.1...4.6.2) (2017-05-16)
@@ -909,4 +2036,3 @@ custom elements should render their html “tags”.
* **Buttons:** support block level buttons ([f9cf8db](https://github.com/reactstrap/reactstrap/commit/f9cf8db))
* **Dropdowns:** add examples ([3d48e8c](https://github.com/reactstrap/reactstrap/commit/3d48e8c))
* **Dropdowns:** basic dropdown, toggle, menu & menu items ([750aaf9](https://github.com/reactstrap/reactstrap/commit/750aaf9))
-
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 000000000..2680b24b8
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,76 @@
+# Contributor Covenant Code of Conduct
+
+## Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, sex characteristics, gender identity and expression,
+level of experience, education, socio-economic status, nationality, personal
+appearance, race, religion, or sexual identity and orientation.
+
+## Our Standards
+
+Examples of behavior that contributes to creating a positive environment
+include:
+
+* Using welcoming and inclusive language
+* Being respectful of differing viewpoints and experiences
+* Gracefully accepting constructive criticism
+* Focusing on what is best for the community
+* Showing empathy towards other community members
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery and unwelcome sexual attention or
+ advances
+* Trolling, insulting/derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or electronic
+ address, without explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable
+behavior and are expected to take appropriate and fair corrective action in
+response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or
+reject comments, commits, code, wiki edits, issues, and other contributions
+that are not aligned to this Code of Conduct, or to ban temporarily or
+permanently any contributor for other behaviors that they deem inappropriate,
+threatening, offensive, or harmful.
+
+## Scope
+
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported by contacting the project team at me@thesharpieone.com. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.
+
+Project maintainers who do not follow or enforce the Code of Conduct in good
+faith may face temporary or permanent repercussions as determined by other
+members of the project's leadership.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see
+https://www.contributor-covenant.org/faq
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index fe2bda538..ea5d8a41b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,6 +3,7 @@
If you have found an issue or would like to request a new feature, simply create a new issue detailing the request. We also welcome pull requests. See below for information on getting started with development and submitting pull requests.
## Found an Issue?
+
If you find a bug in the source code or a mistake in the documentation, you can help us by
submitting an issue to our [GitHub Repository](https://github.com/reactstrap/reactstrap/issues/new). Even better you can submit a Pull Request
with a fix.
@@ -14,10 +15,10 @@ with a fix.
You can request a new feature by submitting an issue to our [GitHub Repository](https://github.com/reactstrap/reactstrap/issues/new). If you
would like to implement a new feature then consider what kind of change it is:
-* **Major Changes** that you wish to contribute to the project should be discussed first in a [GitHub Issue](https://github.com/reactstrap/reactstrap/issues/new) or [Slack](https://reactstrap.slack.com) so that we can better coordinate our efforts, prevent
-duplication of work, and help you to craft the change so that it is successfully accepted into the
-project. Slack invites can be obtained [here](https://reactstrap.herokuapp.com/).
-* **Small Changes** can be crafted and submitted to the [GitHub Repository](https://github.com/reactstrap/reactstrap) as a Pull Request.
+- **Major Changes** that you wish to contribute to the project should be discussed first in a [GitHub Issue](https://github.com/reactstrap/reactstrap/issues/new) or [Slack](https://reactstrap.slack.com) so that we can better coordinate our efforts, prevent
+ duplication of work, and help you to craft the change so that it is successfully accepted into the
+ project. Slack invites can be obtained [here](https://reactstrap.herokuapp.com/).
+- **Small Changes** can be crafted and submitted to the [GitHub Repository](https://github.com/reactstrap/reactstrap) as a Pull Request.
### Submitting a Pull Request
@@ -29,7 +30,9 @@ If you wish to submit a pull request for a new feature or issue, you should star
- All changes from every developer must go through code review before they will be merged.
- All changes must pass the CI build. Travis CI will automatically update your PR with the build status.
- All changes must have unit tests.
+- All changes must have Typescript types in the [`types`](./types) directory.
- All components must have a demo implementation in the `docs/lib/examples` directory.
+- Make sure to run `yarn lint` and `yarn prettier` on your work before submitting the PR
## Resources
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index f0975bb2a..2fd9890a4 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -1,11 +1,41 @@
### Issue description
-- version `#x.x.x`
- components: `name`
+- reactstrap version `#x.x.x`
+- import method `umd/csj/es`
+- react version `#x.x.x`
+- bootstrap version `#x.x.x`
+
+### What is happening?
+
+
+
+### What should be happening?
+
+
### Steps to reproduce issue
-- ...
+1. ...
+2. ...
+
+### Error message in console
+
+```
+paste error message with stacktrack here
+```
+
+### Code
+
+
-
diff --git a/LICENSE b/LICENSE
index 5655106cc..f0da33c54 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
The MIT License (MIT)
-Copyright (c) 2016 Eddy Hernandez, Chris Burrell
+Copyright (c) 2016-Present Eddy Hernandez, Chris Burrell, Evan Sharp
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 000000000..79377934e
--- /dev/null
+++ b/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,25 @@
+
+
+- [ ] Bug fix
+- [ ] New feature
+- [ ] Chore
+- [ ] Breaking change
+- [ ] There is an open issue which this change addresses
+- [ ] I have read the **[CONTRIBUTING](./CONTRIBUTING.md)** document.
+- [ ] My commits follow the [Git Commit Guidelines](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#commits)
+- [ ] My code follows the code style of this project.
+- [ ] My change requires a change to the documentation.
+ - [ ] I have updated the documentation accordingly.
+- [ ] My change requires a change to [Typescript typings](./types/lib).
+ - [ ] I have updated the typings accordingly.
+- [ ] I have added tests to cover my changes.
+- [ ] All new and existing tests passed.
+
+
+
+
diff --git a/README.md b/README.md
index 889eebe18..de3b95b0d 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,33 @@
[](https://reactstrap.github.io)
-[](https://travis-ci.org/reactstrap/reactstrap) [](https://coveralls.io/github/reactstrap/reactstrap?branch=master)
+[](https://www.npmjs.com/package/reactstrap) [](https://github.com/reactstrap/reactstrap) [](https://coveralls.io/github/reactstrap/reactstrap?branch=master) [](https://github.com/reactstrap/reactstrap/blob/master/LICENSE)
# reactstrap
-Stateless React Components for Bootstrap 4.
+Stateless React Components for Bootstrap 5.
+
+If you're using Bootstrap 4, you'll need to use [Reactstrap v8](https://deploy-preview-2356--reactstrap.netlify.app/)
## Getting Started
-Follow the [create-react-app instructions](https://github.com/facebookincubator/create-react-app#getting-started) up to the `Adding Bootstrap` section and instead follow the reactstrap version of [adding bootstrap](#adding-bootstrap).
+Follow the [create-react-app instructions](https://create-react-app.dev/docs/getting-started) to get started and then follow the reactstrap version of [adding bootstrap](#adding-bootstrap).
### tl;dr
+ ```
+npx create-react-app my-app
+cd my-app/
+npm start
+```
+or, if npx (Node >= 6 and npm >= 5.2 ) not available
+
```
npm install -g create-react-app
create-react-app my-app
cd my-app/
npm start
-```
+```
Then open [http://localhost:3000/](http://localhost:3000/) to see your app. The initial structure of your app is setup. Next, let's [add reactstrap and bootstrap](#adding-bootstrap).
@@ -27,8 +36,8 @@ Then open [http://localhost:3000/](http://localhost:3000/) to see your app. The
Install reactstrap and Bootstrap from NPM. Reactstrap does not include Bootstrap CSS so this needs to be installed as well:
```
-npm install bootstrap@4.0.0-alpha.6 --save
-npm install --save reactstrap react-transition-group react react-dom
+npm i bootstrap
+npm i reactstrap react react-dom
```
Import Bootstrap CSS in the ```src/index.js``` file:
@@ -43,11 +52,22 @@ Import required reactstrap components within ```src/App.js``` file or your custo
import { Button } from 'reactstrap';
```
-Now you are ready to use the imported reactstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.github.com/eddywashere/e13033c0e655ab7cda995f8bc77ce40d) redone using reactstrap.
+Now you are ready to use the imported reactstrap components within your component hierarchy defined in the render
+method. Here is an example [`App.js`](https://gist.github.com/Thomas-Smyth/006fd507a7295f17a8473451938f9935) redone
+using reactstrap.
+
+### Dependencies
+
+##### Required Peer Dependencies
+
+These libraries are not bundled with Reactstrap and required at runtime:
+
+ * [**react**](https://www.npmjs.com/package/react)
+ * [**react-dom**](https://www.npmjs.com/package/react-dom)
## About the Project
-This library contains React Bootstrap 4 components that favor composition and control. The library does not depend on jQuery or Bootstrap javascript. However, [Tether](http://tether.io/) is relied upon for advanced positioning of content like Tooltips, Popovers, and auto-flipping Dropdowns.
+This library contains React Bootstrap components that favor composition and control. The library does not depend on jQuery or Bootstrap javascript. However, [Poppers.js](https://popper.js.org/) via [react-popper](https://github.com/popperjs/react-popper) is relied upon for advanced positioning of content like Tooltips, Popovers, and auto-flipping Dropdowns.
There are a few core concepts to understand in order to make the most out of this library.
@@ -83,13 +103,21 @@ There are a few core concepts to understand in order to make the most out of thi
- `color` - applies color classes, ex: ``
- `size` - for controlling size classes. ex: ``
- `tag` - customize component output by passing in an element name or Component
- - boolean based props (attributes) when possible for alternative style classes or `sr-only` content
+ - boolean based props (attributes) when possible for alternative style classes or `visually-hidden` content
## [Documentation](https://reactstrap.github.io)
https://reactstrap.github.io
+Documentation search is powered by [Algolia's DocSearch](https://community.algolia.com/docsearch/).
+
+## [CodeSandbox Examples](https://github.com/reactstrap/code-sandbox-examples)
+
+Here are some ready-to-go examples for [CodeSandbox](https://codesandbox.io/) that you can experiment with.
+
+https://github.com/reactstrap/code-sandbox-examples
+
## [Contributing](CONTRIBUTING.md)
## Development
@@ -97,35 +125,45 @@ https://reactstrap.github.io
Install dependencies:
```sh
-npm install
+yarn install
```
Run examples at [http://localhost:8080/](http://localhost:8080/) with webpack dev server:
```sh
-npm start
+yarn start
```
Run tests & coverage report:
```sh
-npm test
+yarn cover
```
Watch tests:
```sh
-npm run test-watch
+yarn test
```
+## Releasing
+
+Release branches/versioning/notes will be automatically created and maintained by the [release-please](https://github.com/googleapis/release-please) github action. When you're ready to publish the release, just merge the release branch. The release will be created, the new package will be published, and the updated docs will be deployed to https://reactstrap.github.io/.
+
## In the wild
Organizations and projects using `reactstrap`
-- [availity-reactstrap-validation](https://availity.github.io/availity-reactstrap-validation/)
+- [airframe-react](https://github.com/0wczar/airframe-react) - [demo](http://dashboards.webkom.co/react/airframe/) - Airframe provides all the components a developer needs to build data-intensive web apps using React.
- [component-template](https://reactstrap.github.io/component-template/)
- [video-react](https://video-react.github.io/)
- [CoreUI-Free-Bootstrap-Admin-Template](https://github.com/mrholek/CoreUI-Free-Bootstrap-Admin-Template) - [demo](http://coreui.io/demo/React_Demo/#/)
+- [Admin dashboard example app built with reactstrap](https://github.com/reduction-admin/react-reduction) - [demo](https://reduction-admin.firebaseapp.com/)
+- [DevExtreme React Grid](https://devexpress.github.io/devextreme-reactive/react/grid/) - It's a stateless data grid built on top of `reactstrap` with paging, sorting, filtering, grouping, selection, editing and virtual scrolling features.
+- [DevExtreme React Chart](https://devexpress.github.io/devextreme-reactive/react/chart/) - A chart built on top of `reactstrap` that visualizes data using a variety of series types, including bar, line, area, scatter, pie, and more.
+- [reactstrap-scrollspy](https://github.com/keidrun/reactstrap-scrollspy/) - [demo](https://keidrun.github.io/reactstrap-scrollspy/)
+- [formstrap](https://github.com/pedox/formstrap/) - [demo](https://pedox.github.io/formstrap/) - Let your `reactstrap` input component integrate seamlessly using `Formik`
+- [Jimu UI](https://developers.arcgis.com/experience-builder/api-reference/jimu-ui/) - [demo](https://developers.arcgis.com/experience-builder/storybook/?path=/story/welcome--page) - The UI library for [ArcGIS Experience Builder](https://developers.arcgis.com/experience-builder/) mapping platform.
Submit a PR to add to this list!
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 000000000..870e14b13
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,13 @@
+# Security Policy
+
+## Supported Versions
+
+Currently, only the latest version is supported.
+
+## Reporting a Vulnerability
+
+### Security contact information
+
+To report a security vulnerability, please use the
+[Tidelift security contact](https://tidelift.com/security).
+Tidelift will coordinate the fix and disclosure.
diff --git a/__mocks__/.eslintrc b/__mocks__/.eslintrc
new file mode 100644
index 000000000..55f121d15
--- /dev/null
+++ b/__mocks__/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "env": {
+ "jest": true
+ }
+}
diff --git a/__mocks__/react-popper.js b/__mocks__/react-popper.js
new file mode 100644
index 000000000..8b9950ee9
--- /dev/null
+++ b/__mocks__/react-popper.js
@@ -0,0 +1,16 @@
+
+export function Manager({ children }) {
+ return (children);
+}
+
+export const Popper = jest.fn(({ children, placement }) => {
+ return children({
+ ref: () => {},
+ placement,
+ style: {},
+ arrowProps: { ref: () => {}, style: {} } });
+})
+
+export function Reference({ children }) {
+ return children({ ref: () => {} });
+}
diff --git a/babel.build.config.cjs b/babel.build.config.cjs
new file mode 100644
index 000000000..a5670030f
--- /dev/null
+++ b/babel.build.config.cjs
@@ -0,0 +1,6 @@
+
+module.exports = {
+ extends: './babel.config.cjs',
+ ignore: [/\.d.ts/, /\.(stories|spec|test)\.(js|ts|jsx|tsx?)$/],
+ plugins: ["@babel/plugin-transform-modules-commonjs"]
+};
\ No newline at end of file
diff --git a/babel.config.cjs b/babel.config.cjs
new file mode 100644
index 000000000..947f24250
--- /dev/null
+++ b/babel.config.cjs
@@ -0,0 +1,14 @@
+module.exports = api => {
+ const isTest = api.env('test');
+ // TODO: Maybe use babel-preset env with browser targets and get rid of plugins
+ return {
+ "presets": isTest
+ ? [['@babel/preset-env', {targets: {node: 'current'}}], "@babel/preset-react"]
+ : ["@babel/preset-react"],
+ "plugins": [
+ "@babel/plugin-proposal-export-default-from",
+ "@babel/plugin-proposal-export-namespace-from",
+ "@babel/plugin-proposal-object-rest-spread"
+ ]
+ };
+};
diff --git a/babel.esm.config.cjs b/babel.esm.config.cjs
new file mode 100644
index 000000000..4706ffb90
--- /dev/null
+++ b/babel.esm.config.cjs
@@ -0,0 +1,7 @@
+module.exports = {
+ extends: './babel.config.cjs',
+ presets: [
+ // Dont transform modules for the esm build
+ ['@babel/preset-env', { modules: false }],
+ ],
+};
diff --git a/config-overrides/index.cjs b/config-overrides/index.cjs
new file mode 100644
index 000000000..728270796
--- /dev/null
+++ b/config-overrides/index.cjs
@@ -0,0 +1,3 @@
+const { override, addBabelPlugins } = require('customize-cra');
+
+module.exports = override(...addBabelPlugins('@babel/plugin-proposal-export-default-from', '@babel/plugin-proposal-export-namespace-from'));
\ No newline at end of file
diff --git a/config-overrides/package.json b/config-overrides/package.json
new file mode 100644
index 000000000..9602418ae
--- /dev/null
+++ b/config-overrides/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "config-overrides",
+ "version": "1.0.0",
+ "main": "./index.cjs"
+}
diff --git a/docs/lib/Components/AlertsPage.js b/docs/lib/Components/AlertsPage.js
deleted file mode 100644
index dfe9e4be8..000000000
--- a/docs/lib/Components/AlertsPage.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/* eslint react/no-multi-comp: 0, react/prop-types: 0 */
-import React from 'react';
-import { PrismCode } from 'react-prism';
-import { Alert } from 'reactstrap';
-import Helmet from 'react-helmet';
-
-import AlertExample from '../examples/Alert';
-const AlertExampleSource = require('!!raw!../examples/Alert');
-
-import AlertDismissExample from '../examples/AlertDismiss';
-const AlertDismissExampleSource = require('!!raw!../examples/AlertDismiss');
-
-import AlertUncontrolledDismissExample from '../examples/AlertUncontrolledDismiss';
-const AlertUncontrolledDismissExampleSource = require('!!raw!../examples/AlertUncontrolledDismiss');
-
-export default class AlertsPage extends React.Component {
- render() {
- return (
-
-
-
-
Alerts
-
-
-
-
-
- {AlertExampleSource}
-
-
-
-
Properties
-
-
-{`Alert.propTypes = {
- className: PropTypes.string,
- color: PropTypes.string, // default: 'success'
- isOpen: PropTypes.bool, // default: true
- toggle: PropTypes.func,
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
-
- // Set any of the timeouts to 0 to disable animation
- transitionAppearTimeout: PropTypes.number,
- transitionEnterTimeout: PropTypes.number,
- transitionLeaveTimeout: PropTypes.number
-}`}
-
-
-
-
Dismissing
-
-
-
-
-
- {AlertDismissExampleSource}
-
-
-
-
Uncontrolled [disable] Alerts
-
- For the most basic use-case an uncontrolled component can provide the functionality wanted without the need to manage/control the state of the component. UncontrolledAlert does not require isOpen nor toggle props to work.
-
- In order to have checkbox and radio buttons, your component needs to manage the state of which button(s) are active/select. It is not in the opinion of this library to manage state within it's components so it is left up to you. Below is a simple example showcasing how this could be done uses the components which already exist in this library.
-
-
-
-
-
-
- {ButtonStatefulSource}
-
-
-
- );
- }
-}
diff --git a/docs/lib/Components/CardPage.js b/docs/lib/Components/CardPage.js
deleted file mode 100644
index 83cde9099..000000000
--- a/docs/lib/Components/CardPage.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/* eslint react/no-multi-comp: 0, react/prop-types: 0 */
-import React from 'react';
-import { PrismCode } from 'react-prism';
-import Helmet from 'react-helmet';
-
-import CardExample from '../examples/Card';
-import CardContentExample from '../examples/CardContentTypes';
-import CardSizingExample from '../examples/CardSizing';
-import CardAlignmentExample from '../examples/CardAlignment';
-import CardHeaderFooterExample from '../examples/CardHeaderFooter';
-import CardImageCapsExample from '../examples/CardImageCaps';
-import CardImageOverlayExample from '../examples/CardImageOverlay';
-import CardBackgroundsExample from '../examples/CardBackgrounds';
-import CardOutlineExample from '../examples/CardOutline';
-import CardGroupsExample from '../examples/CardGroups';
-import CardDecksExample from '../examples/CardDecks';
-import CardColumnsExample from '../examples/CardColumns';
-
-const CardExampleSource = require('!!raw!../examples/Card');
-const CardContentExampleSource = require('!!raw!../examples/CardContentTypes');
-const CardSizingExampleSource = require('!!raw!../examples/CardSizing');
-const CardAlignmentExampleSource = require('!!raw!../examples/CardAlignment');
-const CardHeaderFooterExampleSource = require('!!raw!../examples/CardHeaderFooter');
-const CardImageCapsExampleSource = require('!!raw!../examples/CardImageCaps');
-const CardImageOverlayExampleSource = require('!!raw!../examples/CardImageOverlay');
-const CardBackgroundsExampleSource = require('!!raw!../examples/CardBackgrounds');
-const CardOutlineExampleSource = require('!!raw!../examples/CardOutline');
-const CardGroupsExampleSource = require('!!raw!../examples/CardGroups');
-const CardDecksExampleSource = require('!!raw!../examples/CardDecks');
-const CardColumnsExampleSource = require('!!raw!../examples/CardColumns');
-
-export default class CardPage extends React.Component {
- render() {
- return (
-
-
-
Card
-
-
-
-
-
-
- {CardExampleSource}
-
-
-
Properties
-
-
-{`Card.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- inverse: PropTypes.bool,
- color: PropTypes.string,
- block: PropTypes.bool,
- className: PropTypes.string
-};
-
-CardBlock.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardColumns.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardDeck.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardFooter.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardGroup.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardHeader.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardImg.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string,
- // Use top or bottom to position image via "card-img-top" or "card-img-bottom"
- top: PropTypes.bool,
- bottom: PropTypes.bool
-};
-
-CardImgOverlay.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardLink.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardSubtitle.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardText.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-CardTitle.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};`}
-
-
- The Dropdown component is used to pass the isOpen & toggle props via context to the following components: DropdownToggle, DropdownMenu. The DropdownToggle uses the Button component internally, meaning it also accepts all the props the Button component accepts.
-
-
Advanced Positioning
-
- The DropdownMenu can automatically be flipped (dropup vs dropdown) according to space available in the viewport by passing the tether prop to Dropdown {``}. For full customization, an object with Tether options can be used instead.
-
- For the most basic use-case an uncontrolled component can provide the functionality wanted without the need to manage/control the state of the component. UncontrolledDropdown does not require isOpen nor toggle props to work. For the other Dropdown flavors, ButtonDropdown, NavDropdown, uncontrolled components have been made as well; UncontrolledButtonDropdown, UncontrolledNavDropdown respectfully.
-
-
-{`InputGroup.propTypes = {
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- size: PropTypes.string,
- className: PropTypes.string
-};
-
-InputGroupAddOn.propTypes = {
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- className: PropTypes.string
-};
-
-InputGroupButton.propTypes = {
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- children: PropTypes.node,
- groupClassName: PropTypes.string, // only used in shorthand
- groupAttributes: PropTypes.object, // only used in shorthand
- className: PropTypes.string
-};`}
-
-
-
Addons
-
-
-
-
-
-
-
- {AddonExampleSource}
-
-
-
-
Addon Sizing
-
-
-
-
-
-
-
- {AddonSizingExampleSource}
-
-
-
-
Buttons / Dropdowns
-
-
-
-
-
-
-
- {ButtonExampleSource}
-
-
-
-
Button Shorthand
-
- Button shorthand is a convenience method for adding just a button. It is triggered when only a single string
- is the child. A Button will be created and all of the props will be passed to it with the exception of
- groupClassName and groupAttributes, which are used to added classes and attributes
- to the wrapping container. This means you can add your onClick and other handlers directly to
- InputGroupButton. If you want your string to not be wrapped in a button, then you really want to
- use InputGroupAddon (see Addons above for that).
-
-
-
-
-
-
-
-
- {ButtonShorthandExampleSource}
-
-
-
- );
- }
-}
diff --git a/docs/lib/Components/JumbotronPage.js b/docs/lib/Components/JumbotronPage.js
deleted file mode 100644
index 7c784bd76..000000000
--- a/docs/lib/Components/JumbotronPage.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import React from 'react';
-import { PrismCode } from 'react-prism';
-import Helmet from 'react-helmet';
-
-import JumbotronExample from '../examples/Jumbotron';
-import JumbotronFluidExample from "../examples/JumbotronFluid";
-
-const JumbotronExampleSource = require('!!raw!../examples/Jumbotron');
-const JumbotronFluidExampleSource = require('!!raw!../examples/JumbotronFluid');
-
-export default class JumbotronPage extends React.Component {
- render() {
- return (
-
-
-
Jumbotron
-
-
-
-
-
-
- {JumbotronExampleSource}
-
-
-
Properties
-
-
-{`Jumbotron.propTypes = {
- // Pass in a Component to override default element
- tag: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
- fluid: PropTypes.bool,
- className: PropTypes.string
-};`}
-
-
-
-{`Modal.propTypes = {
- isOpen: PropTypes.bool,
- // boolean to control the state of the popover
- toggle: PropTypes.func,
- // callback for toggling isOpen in the controlling component
- size: PropTypes.string,
- // control backdrop, see http://v4-alpha.getbootstrap.com/components/modal/#options
- backdrop: PropTypes.oneOfType([
- PropTypes.bool,
- PropTypes.oneOf(['static'])
- ]),
- keyboard: PropTypes.bool,
- // zIndex defaults to 1000.
- zIndex: PropTypes.oneOfType([
- PropTypes.number,
- PropTypes.string,
- ]),
- className: PropTypes.string,
- wrapClassName: PropTypes.string,
- modalClassName: PropTypes.string,
- backdropClassName: PropTypes.string,
- contentClassName: PropTypes.string,
- // boolean to control whether the fade transition occurs (default: true)
- fade: PropTypes.bool,
- // modalTransitionTimeout - controls appear, enter, and leave (default: 300)
- // If you need different values for appear v. enter v. leave, use the more
- // specific props like modalTransitionAppearTimeout.
- modalTransitionTimeout: PropTypes.number,
- modalTransitionAppearTimeout: PropTypes.number,
- modalTransitionEnterTimeout: PropTypes.number,
- modalTransitionLeaveTimeout: PropTypes.number,
- // backdropTransitionTimeout - controls appear, enter, and leave (default: 150)
- // If you need different values for appear v. enter v. leave, use the more
- // specific props like backdropTransitionAppearTimeout.
- backdropTransitionTimeout: PropTypes.number
- backdropTransitionAppearTimeout: PropTypes.number,
- backdropTransitionEnterTimeout: PropTypes.number,
- backdropTransitionLeaveTimeout: PropTypes.number,
-}`}
-
-
-
-
Backdrop
-
-
-
-
-
-
-
-
-
- {ModalBackdropExampleSource}
-
-
-
-
Nested Modals
-
-
-
-
-
-
-
-
-
- {ModalNestedExampleSource}
-
-
-
-
Modals with Custom Transition Timeouts
-
-
-
-
-
-
-
-
-
- {ModalCustomTimeoutExampleSource}
-
-
-
-
Modals without Fade Effect
-
-
-
-
-
-
-
-
-
- {ModalFadelessExampleSource}
-
-
-
- );
- }
-}
diff --git a/docs/lib/Components/NavbarPage.js b/docs/lib/Components/NavbarPage.js
deleted file mode 100644
index b85d5b518..000000000
--- a/docs/lib/Components/NavbarPage.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/* eslint react/no-multi-comp: 0, react/prop-types: 0 */
-import React from 'react';
-import { Link } from 'react-router';
-import { PrismCode } from 'react-prism';
-import Helmet from 'react-helmet';
-import NavbarExample from '../examples/Navbar';
-const NavbarExampleSource = require('!!raw!../examples/Navbar');
-import NavbarTogglerExample from '../examples/NavbarToggler';
-const NavbarTogglerExampleSource = require('!!raw!../examples/NavbarToggler');
-
-export default class NavsPage extends React.Component {
- render() {
- return (
-
-
-
Navbar
-
-
-
-
-
- {NavbarExampleSource}
-
-
-
Navbar Properties
-
See also Navs for additional components and PropTypes.
-
-{`Tooltip.propTypes = {
- isOpen: PropTypes.bool,
- // boolean to control the state of the tooltip
- toggle: PropTypes.func,
- // callback for toggling isOpen in the controlling component
- target: PropTypes.oneOfType([
- PropTypes.string,
- PropTypes.object
- ]).isRequired,
- // target element or element ID, popover is attached to this element
- tether: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
- // optionally overide tether config http://tether.io/#options
- tetherRef: PropType.function,
- // function which is passed a reference to the instance of tether for manually \`position()\`ing
- delay: PropTypes.oneOfType([
- PropTypes.shape({ show: PropTypes.number, hide: PropTypes.number }),
- PropTypes.number
- ]),
- // optionally override show/hide delays - default { show: 0, hide: 250 }
- autohide: PropTypes.bool,
- // optionally hide tooltip when hovering over tooltip content - default true
- placement: PropTypes.oneOf([
- 'top',
- 'bottom',
- 'left',
- 'right',
- 'top left',
- 'top center',
- 'top right',
- 'right top',
- 'right middle',
- 'right bottom',
- 'bottom right',
- 'bottom center',
- 'bottom left',
- 'left top',
- 'left middle',
- 'left bottom'
- ])
- // convenience attachments for popover
- // examples http://github.hubspot.com/tooltip/docs/welcome/
-}`}
-
-
-
Tooltip Disable Autohide
-
-
-
-
-
- {TooltipExampleAutoHideSource}
-
-
-
Tooltips List
-
-
-
-
-
- {TooltipExampleMultiSource}
-
-
-
Uncontrolled Tooltip
-
- For the most basic use-case an uncontrolled component can provide the functionality wanted without the need to manage/control the state of the component. UncontrolledTooltip does not require isOpen nor toggle props to work.
-
Import required reactstrap components within src/App.js file or your custom component files:
-
-
- {`import { Button } from 'reactstrap';`}
-
-
-
Now you are ready to use the imported reactstrap components within your component hierarchy defined in the render method. Here is an example App.js redone using reactstrap.
This library contains React Bootstrap 4 components that favor composition and control. The library does not depend on jQuery or Bootstrap javascript. However, Tether is relied upon for advanced positioning of content like Tooltips, Popovers, and auto-flipping Dropdowns.
-
There are a few core concepts to understand in order to make the most out of this library.
-
1) Your content is expected to be composed via props.children rather than using named props to pass in Components.
-
-
-{`// Content passed in via props
-const Example = (props) => {
- return (
-
This is a tooltip example!
- );
-}
-
-// Content passed in as children (Preferred)
-const PreferredExample = (props) => {
- return (
-
- 2) Attributes in this library are used to pass in state, conveniently apply modifier classes, enable advanced functionality (like tether), or automatically include non-content based elements.
-
-
Examples:
-
-
isOpen - current state for items like dropdown, popover, tooltip
-
toggle - callback for toggling isOpen in the controlling component
-
color - applies color classes, ex: {''}
-
size for controlling size classes. ex: {''}
-
tag - customize component output by passing in an element name or Component
-
boolean based props (attributes) when possible for alternative style classes or sr-only content
-
-
-
-
-
- );
-};
diff --git a/docs/lib/NotFound/index.js b/docs/lib/NotFound/index.js
deleted file mode 100644
index fca4e373b..000000000
--- a/docs/lib/NotFound/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from 'react';
-import { Button, Container, Row, Col } from 'reactstrap';
-import { Link } from 'react-router';
-import Helmet from 'react-helmet';
-
-export default () => {
- return (
-
-
-
-
-
-
-
-
-
-
404 - Not Found
-
- Can't find what you're looking for? Open up an issue.
-
Easily clear floats by adding
- .clearfix
- to the parent element.
- Utilizes
- the micro clearfix as popularized by Nicolas Gallagher.
- Can also be used as a mixin.
-
- Convey meaning through color with a handful of emphasis utility
- classes. These may also be applied to links and will darken on hover
- just like our default link styles.
-
-
- Well done! You successfully read this important alert message.
-
-
- Heads up! This alert needs your attention, but it's not super important.
-
-
- Warning! Better check yourself, you're not looking too good.
-
-
- Oh snap! Change a few things up and try submitting again.
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/AlertDismiss.js b/docs/lib/examples/AlertDismiss.js
deleted file mode 100644
index f9ffa3a5f..000000000
--- a/docs/lib/examples/AlertDismiss.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import React from 'react';
-import { Alert } from 'reactstrap';
-
-class AlertExample extends React.Component {
- constructor(props) {
- super(props);
-
- this.state = {
- visible: true
- };
-
- this.onDismiss = this.onDismiss.bind(this);
- }
-
- onDismiss() {
- this.setState({ visible: false });
- }
-
- render() {
- return (
-
- I am an alert and I can be dismissed!
-
- );
- }
-}
-
-export default AlertExample;
diff --git a/docs/lib/examples/AlertUncontrolledDismiss.js b/docs/lib/examples/AlertUncontrolledDismiss.js
deleted file mode 100644
index 1f596ba57..000000000
--- a/docs/lib/examples/AlertUncontrolledDismiss.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import React from 'react';
-import { UncontrolledAlert } from 'reactstrap';
-
-function AlertExample() {
- return (
-
- I am an alert and I can be dismissed!
-
- );
-}
-
-export default AlertExample;
diff --git a/docs/lib/examples/Badge.js b/docs/lib/examples/Badge.js
deleted file mode 100644
index 4ca43030d..000000000
--- a/docs/lib/examples/Badge.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from 'react';
-import { Badge } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
-
Heading New
-
Heading New
-
Heading New
-
Heading New
-
Heading New
-
Heading New
-
- );
- }
-}
diff --git a/docs/lib/examples/BadgePills.js b/docs/lib/examples/BadgePills.js
deleted file mode 100644
index f1b0deec5..000000000
--- a/docs/lib/examples/BadgePills.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import React from 'react';
-import { Badge } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/CardColumns.js b/docs/lib/examples/CardColumns.js
deleted file mode 100644
index cdb2cefa3..000000000
--- a/docs/lib/examples/CardColumns.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import React from 'react';
-import { Card, Button, CardImg, CardTitle, CardText, CardColumns,
- CardSubtitle, CardBlock } from 'reactstrap';
-
-const Example = (props) => {
- return (
-
-
-
-
- Card title
- Card subtitle
- This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-
-
-
-
-
-
-
-
- Card title
- Card subtitle
- This card has supporting text below as a natural lead-in to additional content.
-
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
-
-
- Card title
- Card subtitle
- This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
-
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/CardContentTypes.js b/docs/lib/examples/CardContentTypes.js
deleted file mode 100644
index 9d3fc1939..000000000
--- a/docs/lib/examples/CardContentTypes.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import React from 'react';
-import { Card, CardImg, CardText, CardBlock, CardLink,
- CardTitle, CardSubtitle } from 'reactstrap';
-
-const Example = (props) => {
- return (
-
-
-
- Card title
- Card subtitle
-
-
-
- Some quick example text to build on the card title and make up the bulk of the card's content.
- Card Link
- Another Link
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/CardDecks.js b/docs/lib/examples/CardDecks.js
deleted file mode 100644
index a2e330572..000000000
--- a/docs/lib/examples/CardDecks.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import React from 'react';
-import { Card, Button, CardImg, CardTitle, CardText, CardDeck,
- CardSubtitle, CardBlock } from 'reactstrap';
-
-const Example = (props) => {
- return (
-
-
-
-
- Card title
- Card subtitle
- This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-
-
-
-
-
-
- Card title
- Card subtitle
- This card has supporting text below as a natural lead-in to additional content.
-
-
-
-
-
-
- Card title
- Card subtitle
- This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
-
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/CardGroups.js b/docs/lib/examples/CardGroups.js
deleted file mode 100644
index 48e70fb2d..000000000
--- a/docs/lib/examples/CardGroups.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import React from 'react';
-import { Card, Button, CardImg, CardTitle, CardText, CardGroup,
- CardSubtitle, CardBlock } from 'reactstrap';
-
-const Example = (props) => {
- return (
-
-
-
-
- Card title
- Card subtitle
- This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-
-
-
-
-
-
- Card title
- Card subtitle
- This card has supporting text below as a natural lead-in to additional content.
-
-
-
-
-
-
- Card title
- Card subtitle
- This is a wider card with supporting text below as a natural lead-in to additional content. This card has even longer content than the first to show that equal height action.
-
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/CardHeaderFooter.js b/docs/lib/examples/CardHeaderFooter.js
deleted file mode 100644
index 12465883e..000000000
--- a/docs/lib/examples/CardHeaderFooter.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from 'react';
-import { Card, Button, CardHeader, CardFooter, CardBlock,
- CardTitle, CardText } from 'reactstrap';
-
-const Example = (props) => {
- return (
-
-
- Header
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
- Footer
-
-
-
- Featured
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
- Footer
-
-
-
-
-
- Card Title
- This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-
- Last updated 3 mins ago
-
-
-
-
-
- Card Title
- This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-
- Last updated 3 mins ago
-
-
-
-
-
-
-
-
- Card Title
- This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
-
- Last updated 3 mins ago
-
-
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
- Special Title Treatment
- With supporting text below as a natural lead-in to additional content.
-
-
-
-
-
-
-
- Anim pariatur cliche reprehenderit,
- enim eiusmod high life accusamus terry richardson ad squid. Nihil
- anim keffiyeh helvetica, craft beer labore wes anderson cred
- nesciunt sapiente ea proident.
-
-
-
-
-
-
-
- Anim pariatur cliche reprehenderit,
- enim eiusmod high life accusamus terry richardson ad squid. Nihil
- anim keffiyeh helvetica, craft beer labore wes anderson cred
- nesciunt sapiente ea proident.
-
-
-
-
.col .col-sm .col-sm-offset-1
-
-
- );
- }
-}
diff --git a/docs/lib/examples/ListGroup.js b/docs/lib/examples/ListGroup.js
deleted file mode 100644
index 0777f5b47..000000000
--- a/docs/lib/examples/ListGroup.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from 'react';
-import { ListGroup, ListGroupItem } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
-
- );
- }
-}
diff --git a/docs/lib/examples/ListGroupAnchorsAndButtons.js b/docs/lib/examples/ListGroupAnchorsAndButtons.js
deleted file mode 100644
index 6c7cb3cc6..000000000
--- a/docs/lib/examples/ListGroupAnchorsAndButtons.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import React from 'react';
-import { ListGroup, ListGroupItem } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
-
Anchors
-
Be sure to not use the standard .btn classes here.
-
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
-
-
-
Buttons
-
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
-
-
- );
- }
-}
diff --git a/docs/lib/examples/ListGroupBadge.js b/docs/lib/examples/ListGroupBadge.js
deleted file mode 100644
index 64b6bc999..000000000
--- a/docs/lib/examples/ListGroupBadge.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import React from 'react';
-import { ListGroup, ListGroupItem, Badge } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
- Cras justo odio 14
- Dapibus ac facilisis in 2
- Morbi leo risus 1
-
- );
- }
-}
diff --git a/docs/lib/examples/ListGroupContextualClasses.js b/docs/lib/examples/ListGroupContextualClasses.js
deleted file mode 100644
index 33d1847f2..000000000
--- a/docs/lib/examples/ListGroupContextualClasses.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from 'react';
-import { ListGroup, ListGroupItem } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
-
- );
- }
-}
diff --git a/docs/lib/examples/ListGroupCustomContent.js b/docs/lib/examples/ListGroupCustomContent.js
deleted file mode 100644
index 6986ac8bf..000000000
--- a/docs/lib/examples/ListGroupCustomContent.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import React from 'react';
-import { ListGroup, ListGroupItem, ListGroupItemHeading, ListGroupItemText } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
-
- List group item heading
-
- Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
-
-
-
- List group item heading
-
- Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
-
-
-
- List group item heading
-
- Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus varius blandit.
-
-
-
- );
- }
-}
diff --git a/docs/lib/examples/ListGroupDisabledItems.js b/docs/lib/examples/ListGroupDisabledItems.js
deleted file mode 100644
index 5fdd2ba70..000000000
--- a/docs/lib/examples/ListGroupDisabledItems.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from 'react';
-import { ListGroup, ListGroupItem } from 'reactstrap';
-
-export default class Example extends React.Component {
- render() {
- return (
-
- Cras justo odio
- Dapibus ac facilisis in
- Morbi leo risus
- Porta ac consectetur ac
- Vestibulum at eros
-
- );
- }
-}
diff --git a/docs/lib/examples/Media.js b/docs/lib/examples/Media.js
deleted file mode 100644
index 54bcc046f..000000000
--- a/docs/lib/examples/Media.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import React from 'react';
-import { Media } from 'reactstrap';
-
-const Example = () => {
- return (
-
-
-
-
-
-
- Media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/MediaAlignment.js b/docs/lib/examples/MediaAlignment.js
deleted file mode 100644
index 413b933e1..000000000
--- a/docs/lib/examples/MediaAlignment.js
+++ /dev/null
@@ -1,44 +0,0 @@
-import React from 'react';
-import { Media } from 'reactstrap';
-
-const Example = () => {
- return (
-
-
-
-
-
-
-
- Top aligned media
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
-
-
- Middle aligned media
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
-
-
- Bottom aligned media
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/MediaList.js b/docs/lib/examples/MediaList.js
deleted file mode 100644
index 6df37a2e2..000000000
--- a/docs/lib/examples/MediaList.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from 'react';
-import { Media } from 'reactstrap';
-
-const Example = () => {
- return (
-
-
-
-
-
-
-
- Media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
- Nested media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
- Nested media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
-
-
-
-
- Nested media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
-
- Media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/MediaNested.js b/docs/lib/examples/MediaNested.js
deleted file mode 100644
index 5c41c6b41..000000000
--- a/docs/lib/examples/MediaNested.js
+++ /dev/null
@@ -1,31 +0,0 @@
-import React from 'react';
-import { Media } from 'reactstrap';
-
-const Example = () => {
- return (
-
-
-
-
-
-
- Media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
-
-
- Nested media heading
-
- Cras sit amet nibh libero, in gravida nulla. Nulla vel metus scelerisque ante sollicitudin commodo. Cras purus odio, vestibulum in vulputate at, tempus viverra turpis. Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.
-
-
-
-
- );
-};
-
-export default Example;
diff --git a/docs/lib/examples/Modal.js b/docs/lib/examples/Modal.js
deleted file mode 100644
index c3ed892bb..000000000
--- a/docs/lib/examples/Modal.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/* eslint react/no-multi-comp: 0, react/prop-types: 0 */
-
-import React from 'react';
-import { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';
-
-class ModalExample extends React.Component {
- constructor(props) {
- super(props);
- this.state = {
- modal: false
- };
-
- this.toggle = this.toggle.bind(this);
- }
-
- toggle() {
- this.setState({
- modal: !this.state.modal
- });
- }
-
- render() {
- return (
-
-
-
- Modal title
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- {' '}
-
-
-
-
-
-
- Modal title
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- {' '}
-
-
-
-
-
-
- Modal title
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- {' '}
-
-
-
-
-
-
- Modal title
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
- {' '}
-
-
-
-
-
-
- Modal title
-
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-
-
-
- Nested Modal title
- Stuff and things
-
- {' '}
-
-
-
-
-
- {' '}
-
-
-
-
- );
-}
diff --git a/docs/lib/examples/import-basic.js b/docs/lib/examples/import-basic.js
deleted file mode 100644
index 6f91ac6eb..000000000
--- a/docs/lib/examples/import-basic.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import React from 'react';
-import { Button } from 'reactstrap';
-
-export default (props) => {
- return (
-
- );
-};
diff --git a/docs/lib/routes.js b/docs/lib/routes.js
deleted file mode 100644
index 1b1af6ead..000000000
--- a/docs/lib/routes.js
+++ /dev/null
@@ -1,74 +0,0 @@
-import React from 'react';
-import { Route, IndexRoute, IndexRedirect } from 'react-router';
-import Home from './Home';
-import LayoutPage from './Components/LayoutPage';
-import NavsPage from './Components/NavsPage';
-import NavbarPage from './Components/NavbarPage';
-import BreadcrumbsPage from './Components/BreadcrumbsPage';
-import ButtonsPage from './Components/ButtonsPage';
-import ButtonGroupPage from './Components/ButtonGroupPage';
-import ButtonDropdownPage from './Components/ButtonDropdownPage';
-import DropdownsPage from './Components/DropdownsPage';
-import FormPage from './Components/FormPage';
-import InputGroupPage from './Components/InputGroupPage';
-import PopoversPage from './Components/PopoversPage';
-import ProgressPage from './Components/ProgressPage';
-import TooltipsPage from './Components/TooltipsPage';
-import BadgePage from './Components/BadgePage';
-import MediaPage from './Components/MediaPage';
-import ModalsPage from './Components/ModalsPage';
-import CardPage from './Components/CardPage';
-import TablesPage from './Components/TablesPage';
-import PaginationPage from './Components/PaginationPage';
-import TabsPage from './Components/TabsPage';
-import JumbotronPage from './Components/JumbotronPage';
-import AlertsPage from './Components/AlertsPage';
-import CollapsePage from './Components/CollapsePage';
-import ListGroupPage from './Components/ListGroupPage';
-import ClearfixPage from './Utilities/ClearfixPage';
-import ColorsPage from './Utilities/ColorsPage';
-import NotFound from './NotFound';
-import Components from './Components';
-import Utilities from './Utilities';
-import UI from './UI';
-
-const routes = (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-);
-
-export default routes;
diff --git a/docs/static/docs.css b/docs/static/docs.css
deleted file mode 100644
index 2b7bae679..000000000
--- a/docs/static/docs.css
+++ /dev/null
@@ -1,319 +0,0 @@
-.container-fluid {
- max-width: 1200px;
-}
-
-@media (max-width: 575px) {
- .navbar-toggleable > .container {
- width: 100%;
- padding-right: 15px;
- padding-left: 15px;
- }
-}
-
-.jumbotron-header, .jumbotron-header p:last-child, .navbar {
- margin-bottom: 0
-}
-
-.jumbotron-header .btn {
- margin-right: 1rem;
-}
-
-.jumbotron-header .btn + .btn {
- margin-right: 0;
-}
-
-@media (max-width: 543px) {
- .jumbotron-header .btn {
- display: block;
- margin: 0 0 1rem 0;
- }
-}
-
-.content {
- margin-top: 2rem;
-}
-
-.header .navbar-nav .nav-link.active {
- color: #333;
-}
-
-.header.navbar {
- padding-left: 0;
- padding-right: 0;
-}
-
-.footer {
- margin-top: 2rem;
- padding: 2rem 0;
- border-top: 1px solid #e7e7e7;
-}
-
-.footer .social {
- margin-bottom: 0;
-}
-
-.footer .social a {
- display: inline-block;
-}
-
-.footer .social img {
- display: block;
-}
-
-.navbar-collapse .container-fluid {
- padding: 2rem 2.5rem;
- border-bottom: 1px solid #55595c
-}
-.navbar-collapse .text-muted, .navbar-collapse h4 {
- color: #818a91
-}
-.about {
- float: left;
- max-width: 30rem;
- margin-right: 3rem
-}
-.social a {
- font-weight: 500;
- color: #eceeef
-}
-.social a:hover {
- color: #fff
-}
-.jumbotron-header {
- padding-top: 2rem;
- padding-bottom: 2rem;
- background-color: #fff
-}
-.jumbotron-heading {
- font-weight: 300
-}
-
-footer {
- padding-top: 3rem;
- padding-bottom: 3rem
-}
-footer p {
- margin-bottom: .25rem
-}
-
-h1,h2,h3,h4,h5,h6,strong,b {
- font-weight: 300;
-}
-
-h1,h2,h3 {
- margin-bottom: 1rem;
-}
-
-.docs-example {
- position: relative;
- padding: 3em 1em 1em;
- border: 1px solid #d8d8d8;
- margin: 1.5rem 0 0;
-}
-
-.docs-example::before {
- position: absolute;
- left: 0;
- top: 0;
- padding: 1em;
- color: #aaa;
- font-size: smaller;
- font-weight: 500;
- content: 'EXAMPLE';
-}
-
-.docs-example::after {
- clear: both;
- content: " ";
- display: table;
-}
-
-.docs-example .card {
- max-width: 320px;
-}
-
-pre, code {
- background: #f5f5f5;
- border-radius: 0;
- border-color: #d8d8d8;
- margin: 0;
-}
-
-.docs-example + pre {
- border: 1px solid #d8d8d8;
- border-top: none;
- padding: 1em;
- margin-top: 0 !important;
- clear: both;
-}
-
-.docs-sidebar .nav-item {
- padding: .2rem 0 .2rem 0;
-}
-
-.docs-sidebar .nav-link {
- color: #888;
- padding: .3rem .5rem .3rem 1rem;
- border-left: 2px solid transparent;
-}
-
-.docs-sidebar .nav-link:hover {
- color: #777
-}
-
-.docs-sidebar .nav-link.active {
- color: #666;
- border-left: 2px solid #d9534f;
-}
-
-.docs-example > .container .row {
- margin-bottom: 1rem;
-}
-
-.docs-example > .container .row > [class^="col"] {
- padding-top: .75rem;
- padding-bottom: .75rem;
- background-color: #E5EDF5;
- border: 1px solid #C9C1D5;
- color: #5F5F5F;
-}
-
-.docs-example .form-control + .form-control {
- margin-top: .5rem;
-}
-
-.docs-example .nav-tabs {
- margin-bottom: 1rem;
-}
-
-.docs-example .progress {
- margin-bottom: 1rem;
-}
-
-
-/* http://prismjs.com/download.html?themes=prism-okaidia&languages=markup+css+clike+javascript+bash+jsx */
-/**
- * okaidia theme for JavaScript, CSS and HTML
- * Loosely based on Monokai textmate theme by http://www.monokai.nl/
- * @author ocodia
- */
-
-code[class*="language-"],
-pre[class*="language-"] {
- color: #f8f8f2;
- background: none;
- text-shadow: 0 1px rgba(0, 0, 0, 0.3);
- text-align: left;
- white-space: pre;
- word-spacing: normal;
- word-break: normal;
- word-wrap: normal;
- line-height: 1.5;
-
- -moz-tab-size: 4;
- -o-tab-size: 4;
- tab-size: 4;
-
- -webkit-hyphens: none;
- -moz-hyphens: none;
- -ms-hyphens: none;
- hyphens: none;
-}
-
-/* Code blocks */
-pre[class*="language-"] {
- padding: 1em;
- margin: 1.5em 0;
- overflow: auto;
-}
-
-:not(pre) > code[class*="language-"],
-pre[class*="language-"] {
- background: #272822;
-}
-
-/* Inline code */
-:not(pre) > code[class*="language-"] {
- padding: .1em;
- border-radius: .3em;
- white-space: normal;
-}
-
-.token.comment,
-.token.prolog,
-.token.doctype,
-.token.cdata {
- color: slategray;
-}
-
-.token.punctuation {
- color: #f8f8f2;
-}
-
-.namespace {
- opacity: .7;
-}
-
-.token.property,
-.token.tag,
-.token.constant,
-.token.symbol,
-.token.deleted {
- color: #f92672;
-}
-
-.token.boolean,
-.token.number {
- color: #ae81ff;
-}
-
-.token.selector,
-.token.attr-name,
-.token.string,
-.token.char,
-.token.builtin,
-.token.inserted {
- color: #a6e22e;
-}
-
-.token.operator,
-.token.entity,
-.token.url,
-.language-css .token.string,
-.style .token.string,
-.token.variable {
- color: #f8f8f2;
-}
-
-.token.atrule,
-.token.attr-value,
-.token.function {
- color: #e6db74;
-}
-
-.token.keyword {
- color: #66d9ef;
-}
-
-.token.regex,
-.token.important {
- color: #fd971f;
-}
-
-.token.important,
-.token.bold {
- font-weight: bold;
-}
-.token.italic {
- font-style: italic;
-}
-
-.token.entity {
- cursor: help;
-}
-
-code .tag {
- font-size: inherit;
- padding: 0;
- display: inherit;
-}
diff --git a/docs/static/favicon.ico b/docs/static/favicon.ico
deleted file mode 100644
index a117a65ae..000000000
Binary files a/docs/static/favicon.ico and /dev/null differ
diff --git a/docs/static/logo.png b/docs/static/logo.png
deleted file mode 100644
index b507429db..000000000
Binary files a/docs/static/logo.png and /dev/null differ
diff --git a/docs/static/prism.js b/docs/static/prism.js
deleted file mode 100644
index d44b10683..000000000
--- a/docs/static/prism.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/* http://prismjs.com/download.html?themes=prism-okaidia&languages=markup+css+clike+javascript+bash+jsx */
-var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={util:{encode:function(e){return e instanceof a?new a(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(m instanceof a)){u.lastIndex=0;var y=u.exec(m),v=1;if(!y&&h&&p!=r.length-1){var b=r[p+1].matchedStr||r[p+1],k=m+b;if(p=m.length)continue;var _=y.index+y[0].length,P=m.length+b.length;if(v=3,P>=_){if(r[p+1].greedy)continue;v=2,k=k.slice(0,P)}m=k}if(y){g&&(f=y[1].length);var w=y.index+f,y=y[0].slice(f),_=w+y.length,S=m.slice(0,w),O=m.slice(_),j=[p,v];S&&j.push(S);var A=new a(i,c?n.tokenize(y,c):y,d,y,h);j.push(A),O&&j.push(O),Array.prototype.splice.apply(r,j)}}}}}return r},hooks:{all:{},add:function(e,t){var a=n.hooks.all;a[e]=a[e]||[],a[e].push(t)},run:function(e,t){var a=n.hooks.all[e];if(a&&a.length)for(var r,l=0;r=a[l++];)r(t)}}},a=n.Token=function(e,t,n,a,r){this.type=e,this.content=t,this.alias=n,this.matchedStr=a||null,this.greedy=!!r};if(a.stringify=function(e,t,r){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return a.stringify(n,t,e)}).join("");var l={type:e.type,content:a.stringify(e.content,t,r),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:r};if("comment"==l.type&&(l.attributes.spellcheck="true"),e.alias){var i="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run("wrap",l);var o="";for(var s in l.attributes)o+=(o?" ":"")+s+'="'+(l.attributes[s]||"")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'" '+o+">"+l.content+""+l.tag+">"},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var t=JSON.parse(e.data),a=t.language,r=t.code,l=t.immediateClose;_self.postMessage(n.highlight(r,n.languages[a],a)),l&&_self.close()},!1),_self.Prism):_self.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return r&&(n.filename=r.src,document.addEventListener&&!r.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",n.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
-Prism.languages.markup={comment://,prolog:/<\?[\w\W]+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;
-Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/(
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/static/logo.svg b/static/logo.svg
new file mode 100644
index 000000000..00572bb4d
--- /dev/null
+++ b/static/logo.svg
@@ -0,0 +1,78 @@
+
\ No newline at end of file
diff --git a/static/themes/bamburgh-react-admin-dashboard-reactstrap-pro.jpg b/static/themes/bamburgh-react-admin-dashboard-reactstrap-pro.jpg
new file mode 100644
index 000000000..fad6e644b
Binary files /dev/null and b/static/themes/bamburgh-react-admin-dashboard-reactstrap-pro.jpg differ
diff --git a/stories/.eslintrc.json b/stories/.eslintrc.json
new file mode 100644
index 000000000..8d343ab86
--- /dev/null
+++ b/stories/.eslintrc.json
@@ -0,0 +1,5 @@
+{
+ "rules": {
+ "no-unused-vars": ["error", { "args": "none" }]
+ }
+}
diff --git a/stories/Accordion.stories.js b/stories/Accordion.stories.js
new file mode 100644
index 000000000..b33f8f19e
--- /dev/null
+++ b/stories/Accordion.stories.js
@@ -0,0 +1,20 @@
+export default {
+ title: 'Components/Accordion',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Accordion](https://getbootstrap.com/docs/5.1/components/accordion/)
+
+Used to build vertically collapsing accordions.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Accordion } from './examples/Accordion/Accordion';
+export { default as Flush } from './examples/Accordion/AccordionFlush';
+export { default as Uncontrolled } from './examples/Accordion/AccordionUncontrolled';
+export { default as StayOpen } from './examples/Accordion/AccordionStayOpen';
+export { default as Props } from './examples/Accordion/AccordionProps';
diff --git a/stories/Alert.stories.js b/stories/Alert.stories.js
new file mode 100644
index 000000000..c83b3bb1c
--- /dev/null
+++ b/stories/Alert.stories.js
@@ -0,0 +1,22 @@
+export default {
+ title: 'Components/Alert',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Alert](https://getbootstrap.com/docs/5.1/components/alerts/)
+
+Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Alert } from './examples/Alert/Alert';
+export { default as Colors } from './examples/Alert/Colors';
+export { default as Content } from './examples/Alert/Content';
+export { default as AlertLink } from './examples/Alert/Link';
+export { default as Dismiss } from './examples/Alert/Dismiss';
+export { default as UncontrolledDismiss } from './examples/Alert/UncontrolledDismiss';
+export { default as Props } from './examples/Alert/Props';
diff --git a/stories/Badge.stories.js b/stories/Badge.stories.js
new file mode 100644
index 000000000..9e13048ed
--- /dev/null
+++ b/stories/Badge.stories.js
@@ -0,0 +1,22 @@
+export default {
+ title: 'Components/Badge',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Badge](https://getbootstrap.com/docs/5.1/components/badge/)
+
+A small count and labeling component.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Badge } from './examples/Badge/Badge';
+export { default as Headings } from './examples/Badge/Headings';
+export { default as Buttons } from './examples/Badge/Button';
+export { default as BackgroundColors } from './examples/Badge/Variations';
+export { default as Links } from './examples/Badge/Links';
+export { default as PillBadges } from './examples/Badge/Pills';
+export { default as Props } from './examples/Badge/Props';
diff --git a/stories/Breadcrumb.stories.js b/stories/Breadcrumb.stories.js
new file mode 100644
index 000000000..b87d125b7
--- /dev/null
+++ b/stories/Breadcrumb.stories.js
@@ -0,0 +1,18 @@
+export default {
+ title: 'Components/Breadcrumb',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Breadcrumb](https://getbootstrap.com/docs/5.1/components/breadcrumb/)
+
+Indicate the current page’s location within a navigational hierarchy that automatically adds separators.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Breadcrumb } from './examples/Breadcrump/Breadcrumb';
+export { default as NoList } from './examples/Breadcrump/NoList';
+export { default as Props } from './examples/Breadcrump/Props';
diff --git a/stories/Button.stories.js b/stories/Button.stories.js
new file mode 100644
index 000000000..b4bb0f1a4
--- /dev/null
+++ b/stories/Button.stories.js
@@ -0,0 +1,22 @@
+export default {
+ title: 'Components/Button',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Buttons](https://getbootstrap.com/docs/5.1/components/buttons/)
+
+Custom Buttons for actions in forms, dialogs, and more with support for multiple sizes, states, and more.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Button } from './examples/Button/Button';
+export { default as Variants } from './examples/Button/Colors';
+export { default as CustomTags } from './examples/Button/Tags';
+export { default as Outline } from './examples/Button/Outline';
+export { default as Sizes } from './examples/Button/Size';
+export { default as Disabled } from './examples/Button/Disabled';
+export { default as Props } from './examples/Button/Props';
diff --git a/stories/ButtonGroup.stories.js b/stories/ButtonGroup.stories.js
new file mode 100644
index 000000000..9e371a2e1
--- /dev/null
+++ b/stories/ButtonGroup.stories.js
@@ -0,0 +1,23 @@
+export default {
+ title: 'Components/ButtonGroup',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Buttons](https://getbootstrap.com/docs/5.1/components/buttons/)
+
+Group a series of buttons together on a single line or stack them in a vertical column.
+ `,
+ },
+ },
+ },
+};
+
+export { default as ButtonGroup } from './examples/ButtonGroup/ButtonGroup';
+export { default as MixedStyles } from './examples/ButtonGroup/MixedStyles';
+export { default as CheckboxAndRadio } from './examples/ButtonGroup/Stateful';
+export { default as ButtonToolbar } from './examples/ButtonGroup/Toolbar';
+export { default as Sizing } from './examples/ButtonGroup/Sizing';
+export { default as Nesting } from './examples/ButtonGroup/Nesting';
+export { default as Vertical } from './examples/ButtonGroup/Vertical';
+export { default as Props } from './examples/ButtonGroup/Props';
diff --git a/stories/Card.stories.js b/stories/Card.stories.js
new file mode 100644
index 000000000..bca8df6a6
--- /dev/null
+++ b/stories/Card.stories.js
@@ -0,0 +1,29 @@
+export default {
+ title: 'Components/Card',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+[Bootstrap Card](https://getbootstrap.com/docs/5.1/components/card/)
+
+Cards provide a flexible and extensible content container with multiple variants and options.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Card } from './examples/Card/Card';
+export { default as ContentTypes } from './examples/Card/ContentTypes';
+export { default as ListGroups } from './examples/Card/ListGroup';
+export { default as KitchenSink } from './examples/Card/KitchenSInk';
+export { default as HeadersAndFooters } from './examples/Card/HeaderFooter';
+export { default as Sizing } from './examples/Card/Sizing';
+export { default as TextAlignment } from './examples/Card/Alignment';
+export { default as ImageCaps } from './examples/Card/ImageCaps';
+export { default as ImageOverlay } from './examples/Card/ImageOverlay';
+export { default as Backgrounds } from './examples/Card/Backgrounds';
+export { default as Border } from './examples/Card/Outline';
+export { default as CardGroups } from './examples/Card/Groups';
+export { default as CardColumns } from './examples/Card/Columns';
+export { default as Props } from './examples/Card/Props';
diff --git a/stories/Carousel.stories.js b/stories/Carousel.stories.js
new file mode 100644
index 000000000..b20a7897a
--- /dev/null
+++ b/stories/Carousel.stories.js
@@ -0,0 +1,19 @@
+export default {
+ title: 'Components/Carousel',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Carousel](https://getbootstrap.com/docs/5.1/components/carousel/)
+
+ A slideshow component for cycling through elements, images, or slides of text — like a carousel.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Carousel } from './examples/Carousel/Carousel';
+export { default as CustomTag } from './examples/Carousel/CustomTag';
+export { default as Uncontrolled } from './examples/Carousel/Uncontrolled';
+export { default as Props } from './examples/Carousel/Props';
diff --git a/stories/CloseButton.stories.js b/stories/CloseButton.stories.js
new file mode 100644
index 000000000..9e0e3cf06
--- /dev/null
+++ b/stories/CloseButton.stories.js
@@ -0,0 +1,19 @@
+export default {
+ title: 'Components/CloseButton',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap CloseButton](https://getbootstrap.com/docs/5.2/components/close-button/)
+
+ A generic close button for dismissing content like modals and alerts.
+ `,
+ },
+ },
+ },
+};
+
+export { default as CloseButton } from './examples/CloseButton/CloseButton';
+export { default as CloseButtonDisabled } from './examples/CloseButton/Disabled';
+export { default as CloseButtonWhite } from './examples/CloseButton/White';
+export { default as Props } from './examples/CloseButton/Props';
diff --git a/stories/Collapse.stories.js b/stories/Collapse.stories.js
new file mode 100644
index 000000000..bcda9b66f
--- /dev/null
+++ b/stories/Collapse.stories.js
@@ -0,0 +1,20 @@
+export default {
+ title: 'Components/Collapse',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Collapse](https://getbootstrap.com/docs/5.1/components/collapse/)
+
+ Toggle the visibility of content across your project with Collapse.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Collapse } from './examples/Collapse/Collapse';
+export { default as CollapseEvents } from './examples/Collapse/Events';
+export { default as CollapseHorizontal } from './examples/Collapse/Horizontal';
+export { default as CollapseUncontrolled } from './examples/Collapse/Uncontrolled';
+export { default as Props } from './examples/Collapse/Props';
diff --git a/stories/Dropdown.stories.js b/stories/Dropdown.stories.js
new file mode 100644
index 000000000..52eb3eb7a
--- /dev/null
+++ b/stories/Dropdown.stories.js
@@ -0,0 +1,26 @@
+export default {
+ title: 'Components/Dropdown',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Dropdowns](https://getbootstrap.com/docs/5.1/components/dropdowns/)
+
+ Toggle contextual overlays for displaying lists of links and more with Dropdowns.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Dropdown } from './examples/Dropdown/Dropdown';
+export { default as SplitButton } from './examples/Dropdown/Split';
+export { default as Sizing } from './examples/Dropdown/Sizing';
+export { default as DarkDropdown } from './examples/Dropdown/Dark';
+export { default as Directions } from './examples/Dropdown/DirectionKitchen';
+export { default as SetActiveFromChild } from './examples/Dropdown/SetActiveFromChild';
+
+export { default as Container } from './examples/Dropdown/Container';
+export { default as Uncontrolled } from './examples/Dropdown/Uncontrolled';
+export { default as CustomDropdown } from './examples/Dropdown/Custom';
+export { default as Props } from './examples/Dropdown/Props';
diff --git a/stories/Fade.stories.js b/stories/Fade.stories.js
new file mode 100644
index 000000000..a4eecf8de
--- /dev/null
+++ b/stories/Fade.stories.js
@@ -0,0 +1,6 @@
+export default {
+ title: 'Components/Fade',
+};
+
+export { default as Fade } from './examples/Fade';
+export { default as Props } from './examples/FadeProps';
diff --git a/stories/Forms.stories.js b/stories/Forms.stories.js
new file mode 100644
index 000000000..0c49342ce
--- /dev/null
+++ b/stories/Forms.stories.js
@@ -0,0 +1,29 @@
+export default {
+ title: 'Components/Forms',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Forms](https://getbootstrap.com/docs/5.1/forms/overview/)
+
+ Form controls, layout options, and custom components for creating a wide variety of forms.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Input } from './examples/Form/Input';
+export { default as Form } from './examples/Form/Form';
+export { default as FormFeedback } from './examples/Form/FormFeedback';
+export { default as FormGrid } from './examples/Form/FormGrid';
+export { default as FormGridFormRow } from './examples/Form/FormGridFormRow';
+export { default as FormInline } from './examples/Form/FormInline';
+export { default as FloatingLabels } from './examples/Form/LabelFloating';
+export { default as HiddenLabels } from './examples/Form/LabelHidden';
+export { default as InlineCheckboxes } from './examples/Form/InlineCheckboxes';
+export { default as InputGridSizing } from './examples/Form/InputGridSizing';
+export { default as InputSizing } from './examples/Form/InputSizing';
+export { default as InputType } from './examples/Form/InputType';
+export { default as Switches } from './examples/Form/Switches';
+export { default as Props } from './examples/Form/FormProps';
diff --git a/stories/GitHub.stories.mdx b/stories/GitHub.stories.mdx
new file mode 100644
index 000000000..10b7ccdc5
--- /dev/null
+++ b/stories/GitHub.stories.mdx
@@ -0,0 +1,10 @@
+import { Meta } from '@storybook/addon-docs';
+import { Button } from 'reactstrap';
+
+
+
+### Reactstrap is hosted on GitHub:
+
+[https://github.com/reactstrap/reactstrap](https://github.com/reactstrap/reactstrap)
+
+For support, please create [an issue](https://github.com/reactstrap/reactstrap/issues).
diff --git a/stories/Index.stories.mdx b/stories/Index.stories.mdx
new file mode 100644
index 000000000..626d44605
--- /dev/null
+++ b/stories/Index.stories.mdx
@@ -0,0 +1,129 @@
+import { Meta } from '@storybook/addon-docs';
+import { Button } from 'reactstrap';
+
+
+
+
+
+### Reactstrap is a [React](https://reactjs.org) component library for [Bootstrap](https://getbootstrap.com)
+
+Reactstrap is currently compatible with Bootstrap 5.1. If you are using Bootstrap 4, you'll need to use [Reactstrap v8](https://deploy-preview-2356--reactstrap.netlify.app/)
+
+## Getting Started
+
+### Install Reactstrap:
+
+```sh
+npm install reactstrap react react-dom
+```
+
+Reactstrap currently requires React 16.8 or higher.
+
+### Include Bootstrap
+
+Either:
+
+1. Import Bootstrap in your application code:
+
+```sh
+npm install --save bootstrap
+```
+
+```javascript
+import 'bootstrap/dist/css/bootstrap.min.css';
+```
+
+2. or include Bootstrap from a CDN URL in your HTML layout:
+
+```html
+
+
+
+```
+
+### Import components:
+
+```jsx
+import React from 'react';
+import { Button } from 'reactstrap';
+
+export default (props) => {
+ return ;
+};
+```
+
+## About
+
+Unlike some component libraries, Reactstrap does not embed its own styles, and instead depends on the Bootstrap CSS framework for its styles and theme.
+This allows you to have consistent styles across your React-based components and static parts of your site, and allows you to include your own custom Bootstrap theme when needed.
+
+Unlike using Bootstrap in HTML, Reactstrap exports all the correct Bootstrap classes automatically, and don't need to use or include Bootstrap's JavaScript files or add data attributes to trigger functionality. Instead, components are defined in React-friendly components with appropriate props for you to control.
+
+So instead of:
+
+```html
+
+
+
+
+
+
Modal title
+
+
+
+
Modal body text goes here.
+
+
+
+
+```
+
+You can use:
+
+```jsx
+// React
+import { Modal, ModalBody, ModalHeader } from 'reactstrap';
+...
+ setOpen(false)}>
+
+ Modal title
+
+
+ Modal body text goes here.
+
+
+
+```
+
+#### CSSModule
+
+You can use `cssModule` to change the underlying component's default CSS className. This is an escape hatch
+if you do not want to use the default bootstrap class.
+
+For example Button renders with a default class `.btn`. You can use
+
+```jsx
+
+```
+
+so that Button renders with `.hyperspeed-btn` instead of `.btn`.
+
+You can use `setGlobalCssModule` function to set custom classes globally.
+
+```jsx
+import { Util } from 'reactstrap';
+
+Util.setGlobalCssModule({
+ btn: 'hyperspeed-btn',
+});
+```
diff --git a/stories/InputGroup.stories.js b/stories/InputGroup.stories.js
new file mode 100644
index 000000000..7b0707c04
--- /dev/null
+++ b/stories/InputGroup.stories.js
@@ -0,0 +1,21 @@
+export default {
+ title: 'Components/InputGroup',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap InputGroup](https://getbootstrap.com/docs/5.1/forms/input-group/)
+
+ Extend form controls by adding text, buttons, or button groups on either side of textual inputs, custom selects, and custom file inputs.
+ `,
+ },
+ },
+ },
+};
+
+export { default as InputGroup } from './examples/InputGroup/Overview';
+export { default as Sizing } from './examples/InputGroup/Sizing';
+export { default as MultipleAddons } from './examples/InputGroup/Addon';
+export { default as ButtonAddons } from './examples/InputGroup/Button';
+export { default as ButtonShorthand } from './examples/InputGroup/ButtonShorthand';
+export { default as Props } from './examples/InputGroup/Props';
diff --git a/stories/Layout.stories.js b/stories/Layout.stories.js
new file mode 100644
index 000000000..e6d644b81
--- /dev/null
+++ b/stories/Layout.stories.js
@@ -0,0 +1,19 @@
+export default {
+ title: 'Components/Layout',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Layout](https://getbootstrap.com/docs/5.1/layout/grid/)
+
+ Powerful mobile-first flexbox grid to build layouts of all shapes and sizes thanks to a twelve column system, six default responsive tiers.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Layout } from './examples/Layout';
+export { default as LayoutRowCols } from './examples/LayoutRowCols';
+export { default as ContainerResponsive } from './examples/ContainerResponsive';
+export { default as Props } from './examples/LayoutProps';
diff --git a/stories/List.stories.js b/stories/List.stories.js
new file mode 100644
index 000000000..8901d668d
--- /dev/null
+++ b/stories/List.stories.js
@@ -0,0 +1,16 @@
+export default {
+ title: 'Components/List',
+ parameters: {
+ docs: {
+ description: {
+ component:
+ '[Bootstrap Lists](https://getbootstrap.com/docs/5.1/content/typography/#lists)',
+ },
+ },
+ },
+};
+
+export { default as List } from './examples/List/List';
+export { default as Inline } from './examples/List/Inline';
+export { default as Unstyled } from './examples/List/Unstyled';
+export { default as Props } from './examples/List/Props';
diff --git a/stories/ListGroup.stories.js b/stories/ListGroup.stories.js
new file mode 100644
index 000000000..ebce31b44
--- /dev/null
+++ b/stories/ListGroup.stories.js
@@ -0,0 +1,26 @@
+export default {
+ title: 'Components/ListGroup',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap ListGroup](https://getbootstrap.com/docs/5.1/components/list-group/)
+
+ A flexible and powerful component for displaying a series of content.
+ `,
+ },
+ },
+ },
+};
+
+export { default as ListGroup } from './examples/ListGroup/ListGroup';
+export { default as Active } from './examples/ListGroup/Active';
+export { default as DisabledItems } from './examples/ListGroup/DisabledItems';
+export { default as LinksAndButtons } from './examples/ListGroup/LinksAndButtons';
+export { default as Flush } from './examples/ListGroup/Flush';
+export { default as Numbered } from './examples/ListGroup/Numbered';
+export { default as Horizontal } from './examples/ListGroup/Horizontal';
+export { default as ContextualClasses } from './examples/ListGroup/ContextualClasses';
+export { default as Badge } from './examples/ListGroup/Badge';
+export { default as CustomContent } from './examples/ListGroup/CustomContent';
+export { default as Props } from './examples/ListGroup/Props';
diff --git a/stories/Modal.stories.js b/stories/Modal.stories.js
new file mode 100644
index 000000000..0f8be1f7b
--- /dev/null
+++ b/stories/Modal.stories.js
@@ -0,0 +1,26 @@
+export default {
+ title: 'Components/Modal',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Modal](https://getbootstrap.com/docs/5.1/components/modal/)
+
+ Add dialogs to your site for lightboxes, user notifications, or completely custom content.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Modal } from './examples/Modal/Modal';
+export { default as Backdrop } from './examples/Modal/Backdrop';
+export { default as CustomCloseButton } from './examples/Modal/CustomCloseButton';
+export { default as CustomTimeout } from './examples/Modal/CustomTimeout';
+export { default as Destructuring } from './examples/Modal/Destructuring';
+export { default as External } from './examples/Modal/External';
+export { default as Fadeless } from './examples/Modal/Fadeless';
+export { default as FocusAfterClose } from './examples/Modal/FocusAfterClose';
+export { default as Fullscreen } from './examples/Modal/Fullscreen';
+export { default as Nested } from './examples/Modal/Nested';
+export { default as Props } from './examples/Modal/Props';
diff --git a/stories/Nav.stories.js b/stories/Nav.stories.js
new file mode 100644
index 000000000..e18644966
--- /dev/null
+++ b/stories/Nav.stories.js
@@ -0,0 +1,23 @@
+export default {
+ title: 'Components/Nav',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Navs](https://getbootstrap.com/docs/5.1/components/navs-tabs/)
+
+ Bootstrap’s navigation components.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Navs } from './examples/Nav/Navs';
+export { default as Vertical } from './examples/Nav/Vertical';
+export { default as Tabs } from './examples/Nav/Tabs';
+export { default as Pills } from './examples/Nav/Pills';
+export { default as Fill } from './examples/Nav/Fill';
+export { default as Justify } from './examples/Nav/Justify';
+export { default as TabPane } from './examples/Nav/TabPane';
+export { default as Props } from './examples/Nav/Props';
diff --git a/stories/Navbar.stories.js b/stories/Navbar.stories.js
new file mode 100644
index 000000000..a9399dbc2
--- /dev/null
+++ b/stories/Navbar.stories.js
@@ -0,0 +1,19 @@
+export default {
+ title: 'Components/Navbar',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Navbar](https://getbootstrap.com/docs/5.1/components/navbar/)
+
+ Bootstrap’s powerful, responsive navigation header. Includes support for branding, navigation, and more.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Navbar } from './examples/Navbar/Navbar';
+export { default as Brand } from './examples/Navbar/Brand';
+export { default as NavbarToggler } from './examples/Navbar/Toggler';
+export { default as Props } from './examples/Navbar/Props';
diff --git a/stories/Offcanvas.stories.js b/stories/Offcanvas.stories.js
new file mode 100644
index 000000000..08d24e928
--- /dev/null
+++ b/stories/Offcanvas.stories.js
@@ -0,0 +1,17 @@
+export default {
+ title: 'Components/Offcanvas',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Offcanvas](https://getbootstrap.com/docs/5.1/components/offcanvas/)
+
+ Add hidden sidebars into your project for navigation, shopping carts, and more.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Offcanvas } from './examples/Offcanvas/Offcanvas';
+export { default as Props } from './examples/Offcanvas/OffcanvasProps';
diff --git a/stories/Pagination.stories.js b/stories/Pagination.stories.js
new file mode 100644
index 000000000..41beeaf83
--- /dev/null
+++ b/stories/Pagination.stories.js
@@ -0,0 +1,20 @@
+export default {
+ title: 'Components/Pagination',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Pagination](https://getbootstrap.com/docs/5.1/components/pagination/)
+
+ Use Pagination to indicate that a series of related content exists across multiple pages.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Pagination } from './examples/Pagination/Pagination';
+export { default as Large } from './examples/Pagination/SizingLarge';
+export { default as Small } from './examples/Pagination/SizingSmall';
+export { default as State } from './examples/Pagination/State';
+export { default as Props } from './examples/Pagination/Props';
diff --git a/stories/Placeholder.stories.js b/stories/Placeholder.stories.js
new file mode 100644
index 000000000..6e546988c
--- /dev/null
+++ b/stories/Placeholder.stories.js
@@ -0,0 +1,20 @@
+export default {
+ title: 'Components/Placeholder',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Placeholder](https://getbootstrap.com/docs/5.2/components/placeholders/)
+
+ Use loading placeholders for your components or pages to indicate something may still be loading.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Placeholder } from './examples/Placeholder/Placeholder';
+export { default as Color } from './examples/Placeholder/Color';
+export { default as Sizing } from './examples/Placeholder/Size';
+export { default as Animation } from './examples/Placeholder/Animation';
+export { default as Props } from './examples/Placeholder/Props';
diff --git a/stories/Popover.stories.js b/stories/Popover.stories.js
new file mode 100644
index 000000000..cb2dc24cb
--- /dev/null
+++ b/stories/Popover.stories.js
@@ -0,0 +1,18 @@
+export default {
+ title: 'Components/Popover',
+ parameters: {
+ docs: {
+ description: {
+ component:
+ '[Bootstrap Popovers](https://getbootstrap.com/docs/5.1/components/popovers/)',
+ },
+ },
+ },
+};
+
+export { default as Popover } from './examples/Popover/Popover';
+export { default as Focus } from './examples/Popover/Focus';
+export { default as FourDirections } from './examples/Popover/Multi';
+export { default as Uncontrolled } from './examples/Popover/Uncontrolled';
+export { default as Update } from './examples/Popover/Update';
+export { default as Props } from './examples/Popover/Props';
diff --git a/stories/Progress.stories.js b/stories/Progress.stories.js
new file mode 100644
index 000000000..bf2ee17fc
--- /dev/null
+++ b/stories/Progress.stories.js
@@ -0,0 +1,21 @@
+export default {
+ title: 'Components/Progress',
+ parameters: {
+ docs: {
+ description: {
+ component:
+ '[Bootstrap Progress](https://getbootstrap.com/docs/5.1/components/progress/)',
+ },
+ },
+ },
+};
+
+export { default as Progress } from './examples/Progress/Progress';
+export { default as Labels } from './examples/Progress/Labels';
+export { default as Height } from './examples/Progress/Height';
+export { default as Color } from './examples/Progress/Color';
+export { default as Multi } from './examples/Progress/Multi';
+export { default as Striped } from './examples/Progress/Striped';
+export { default as Animated } from './examples/Progress/Animated';
+export { default as Max } from './examples/Progress/Max';
+export { default as Props } from './examples/Progress/Props';
diff --git a/stories/Spinner.stories.js b/stories/Spinner.stories.js
new file mode 100644
index 000000000..3bd3ff085
--- /dev/null
+++ b/stories/Spinner.stories.js
@@ -0,0 +1,23 @@
+export default {
+ title: 'Components/Spinner',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Spinners](https://getbootstrap.com/docs/5.1/components/spinners/)
+
+ Indicate the loading state of a component or page with Spinners.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Spinner } from './examples/Spinner/Spinner';
+export { default as Colors } from './examples/Spinner/Colors';
+export { default as GrowingSpinner } from './examples/Spinner/Grower';
+export { default as Alignment } from './examples/Spinner/Alignment';
+export { default as Size } from './examples/Spinner/Size';
+export { default as CustomSize } from './examples/Spinner/CustomSize';
+export { default as Buttons } from './examples/Spinner/Button';
+export { default as Props } from './examples/Spinner/Props';
diff --git a/stories/Table.stories.js b/stories/Table.stories.js
new file mode 100644
index 000000000..381b239b3
--- /dev/null
+++ b/stories/Table.stories.js
@@ -0,0 +1,22 @@
+export default {
+ title: 'Components/Table',
+ parameters: {
+ docs: {
+ description: {
+ component:
+ '[Bootstrap Tables](https://getbootstrap.com/docs/5.1/content/tables/)',
+ },
+ },
+ },
+};
+
+export { default as Table } from './examples/Table/Table';
+export { default as Variants } from './examples/Table/Variants';
+export { default as Striped } from './examples/Table/Striped';
+export { default as HoverableRows } from './examples/Table/Hover';
+export { default as Bordered } from './examples/Table/Bordered';
+export { default as Borderless } from './examples/Table/Borderless';
+export { default as SmallTable } from './examples/Table/Sizing';
+export { default as Dark } from './examples/Table/Dark';
+export { default as Responsive } from './examples/Table/Responsive';
+export { default as Props } from './examples/Table/Props';
diff --git a/stories/Toast.stories.js b/stories/Toast.stories.js
new file mode 100644
index 000000000..e92c069bb
--- /dev/null
+++ b/stories/Toast.stories.js
@@ -0,0 +1,19 @@
+export default {
+ title: 'Components/Toast',
+ parameters: {
+ docs: {
+ description: {
+ component: `
+ [Bootstrap Toasts](https://getbootstrap.com/docs/5.1/components/toasts/)
+
+ Push notifications to your visitors with a Toast, a lightweight and easily customizable alert message.
+ `,
+ },
+ },
+ },
+};
+
+export { default as Toast } from './examples/Toast';
+export { default as ToastDismiss } from './examples/ToastDismiss';
+export { default as ToastHeaderIcon } from './examples/ToastHeaderIcon';
+export { default as Props } from './examples/ToastProps';
diff --git a/stories/Tooltip.stories.js b/stories/Tooltip.stories.js
new file mode 100644
index 000000000..160253592
--- /dev/null
+++ b/stories/Tooltip.stories.js
@@ -0,0 +1,18 @@
+export default {
+ title: 'Components/Tooltip',
+ parameters: {
+ docs: {
+ description: {
+ component:
+ '[Bootstrap Tooltips](https://getbootstrap.com/docs/5.1/components/tooltips/)',
+ },
+ },
+ },
+};
+
+export { default as Tooltip } from './examples/Tooltip/Tooltip';
+export { default as Directions } from './examples/Tooltip/Directions';
+export { default as AutoHide } from './examples/Tooltip/AutoHide';
+export { default as Uncontrolled } from './examples/Tooltip/Uncontrolled';
+export { default as Update } from './examples/Tooltip/Update';
+export { default as Props } from './examples/Tooltip/Props';
diff --git a/stories/Upgrading.stories.mdx b/stories/Upgrading.stories.mdx
new file mode 100644
index 000000000..ea8ec4d6d
--- /dev/null
+++ b/stories/Upgrading.stories.mdx
@@ -0,0 +1,34 @@
+import { Meta } from '@storybook/addon-docs';
+
+
+
+# Upgrading to Reactstrap 9
+
+Reactstrap 9+ now requires on [Bootstrap 5.1+](https://getbootstrap.com/docs/5.1/getting-started/introduction/).
+Do not upgrade to Reactstrap v9 if you are using Bootstrap version 4.
+
+Please see the Bootstrap [Migration Guide](https://getbootstrap.com/docs/5.1/migration/#components) for more details.
+
+### Removed components
+
+- InputGroupAddon -
+ This in no longer needed in Bootstrap 5, you can now add Buttons, Inputs directly to InputGroups in the order you wish.
+- InputGroupButtonDropdown -
+ This can now be replaced with a regular Dropdown component.
+- CustomInput -
+ These are no longer needed in Bootstrap 5, since all form inputs will be styled by Bootstrap instead of browser default.
+ The existing Input component now supports file, select, switch, and range types.
+- Jumbotron -
+ Jumbotrons have been removed from Bootstrap 5, can be replaced with `
`.
+ Jumbotron fluid can be replaced with `
`
+
+### Components with breaking changes:
+
+- Tooltip/Popover/DropdownMenu -
+ The `modifiers` prop will now conform to the new popper2 modifiers, which take an array instead of an object.
+ `offset` prop is now an array of 2 numbers that represent skidding and distance. See [popper docs](https://popper.js.org/docs/v2/modifiers/) for more details.
+- ModalHeader/ToastHeader -
+ Bootstrap 5 no longer supports custom close icons, so this feature was removed from ModalHeader and ToastHeader.
+- Dropdown/DropdownMenu -
+ The `left` and `right` properties are deprecated, but still supported for backwards compatibility.
+ Now replaced with `start` and `end` in Bootstrap 5.
diff --git a/stories/examples/Accordion/Accordion.js b/stories/examples/Accordion/Accordion.js
new file mode 100644
index 000000000..7ffdeb6e5
--- /dev/null
+++ b/stories/examples/Accordion/Accordion.js
@@ -0,0 +1,15 @@
+import Example from './AccordionExample';
+// eslint-disable-next-line import/extensions
+import AccordionCode from '!!raw-loader!./AccordionExample';
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ source: {
+ code: AccordionCode,
+ language: 'jsx',
+ type: 'auto',
+ },
+ },
+};
diff --git a/stories/examples/Accordion/AccordionExample.js b/stories/examples/Accordion/AccordionExample.js
new file mode 100644
index 000000000..4c1e8be92
--- /dev/null
+++ b/stories/examples/Accordion/AccordionExample.js
@@ -0,0 +1,57 @@
+import React, { useState } from 'react';
+import {
+ Accordion,
+ AccordionBody,
+ AccordionHeader,
+ AccordionItem,
+} from 'reactstrap';
+
+function Example(props) {
+ const [open, setOpen] = useState('1');
+ const toggle = (id) => {
+ if (open === id) {
+ setOpen('');
+ } else {
+ setOpen(id);
+ }
+ };
+
+ return (
+
+
+
+ Accordion Item 1
+
+ This is the first item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+ Accordion Item 2
+
+ This is the second item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+ Accordion Item 3
+
+ This is the third item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+
+ );
+}
+
+export default Example;
diff --git a/stories/examples/Accordion/AccordionFlush.js b/stories/examples/Accordion/AccordionFlush.js
new file mode 100644
index 000000000..fdbc2a746
--- /dev/null
+++ b/stories/examples/Accordion/AccordionFlush.js
@@ -0,0 +1,19 @@
+import Example from './AccordionFlushExample';
+// eslint-disable-next-line import/extensions
+import AccordionCode from '!!raw-loader!./AccordionFlushExample';
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'Add `flush` to remove the default background-color, some borders, and some rounded corners to render accordions edge-to-edge with their parent container.',
+ },
+ source: {
+ code: AccordionCode,
+ language: 'jsx',
+ type: 'auto',
+ },
+ },
+};
diff --git a/stories/examples/Accordion/AccordionFlushExample.js b/stories/examples/Accordion/AccordionFlushExample.js
new file mode 100644
index 000000000..42d9f4f8d
--- /dev/null
+++ b/stories/examples/Accordion/AccordionFlushExample.js
@@ -0,0 +1,57 @@
+import React, { useState } from 'react';
+import {
+ Accordion,
+ AccordionBody,
+ AccordionHeader,
+ AccordionItem,
+} from 'reactstrap';
+
+function Example(props) {
+ const [open, setOpen] = useState('');
+ const toggle = (id) => {
+ if (open === id) {
+ setOpen('');
+ } else {
+ setOpen(id);
+ }
+ };
+
+ return (
+
+
+
+ Accordion Item 1
+
+ This is the first item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+ Accordion Item 2
+
+ This is the second item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+ Accordion Item 3
+
+ This is the third item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+
+ );
+}
+
+export default Example;
diff --git a/stories/examples/Accordion/AccordionProps.js b/stories/examples/Accordion/AccordionProps.js
new file mode 100644
index 000000000..2a1d8190b
--- /dev/null
+++ b/stories/examples/Accordion/AccordionProps.js
@@ -0,0 +1,18 @@
+import React from 'react';
+import {
+ Accordion,
+ AccordionBody,
+ AccordionHeader,
+ AccordionItem,
+} from 'reactstrap';
+import Props from '../Props';
+
+function Example() {
+ return (
+
+ );
+}
+
+export default Example;
diff --git a/stories/examples/Accordion/AccordionStayOpen.js b/stories/examples/Accordion/AccordionStayOpen.js
new file mode 100644
index 000000000..258f7638d
--- /dev/null
+++ b/stories/examples/Accordion/AccordionStayOpen.js
@@ -0,0 +1,55 @@
+import React from 'react';
+import {
+ UncontrolledAccordion,
+ AccordionBody,
+ AccordionHeader,
+ AccordionItem,
+} from 'reactstrap';
+
+function Example(props) {
+ return (
+
+
+ Accordion Item 1
+
+ This is the first item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can go
+ within the .accordion-body, though the transition does
+ limit overflow.
+
+
+
+ Accordion Item 2
+
+ This is the second item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can go
+ within the .accordion-body, though the transition does
+ limit overflow.
+
+
+
+ Accordion Item 3
+
+ This is the third item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can go
+ within the .accordion-body, though the transition does
+ limit overflow.
+
+
+
+ );
+}
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'Add `stayOpen` to make accordion items stay open when another item is opened.',
+ },
+ },
+};
+
+export default Example;
diff --git a/stories/examples/Accordion/AccordionUncontrolled.js b/stories/examples/Accordion/AccordionUncontrolled.js
new file mode 100644
index 000000000..ab9674268
--- /dev/null
+++ b/stories/examples/Accordion/AccordionUncontrolled.js
@@ -0,0 +1,55 @@
+import React from 'react';
+import {
+ UncontrolledAccordion,
+ AccordionBody,
+ AccordionHeader,
+ AccordionItem,
+} from 'reactstrap';
+
+function Example(props) {
+ return (
+
+
+ Accordion Item 1
+
+ This is the first item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can go
+ within the .accordion-body, though the transition does
+ limit overflow.
+
+
+
+ Accordion Item 2
+
+ This is the second item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can go
+ within the .accordion-body, though the transition does
+ limit overflow.
+
+
+
+ Accordion Item 3
+
+ This is the third item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can go
+ within the .accordion-body, though the transition does
+ limit overflow.
+
+
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'Or if you hate messing with states, you can always use an `UncontrolledAccordion`',
+ },
+ },
+};
diff --git a/stories/examples/Accordion/AccordionUncontrolledExample.js b/stories/examples/Accordion/AccordionUncontrolledExample.js
new file mode 100644
index 000000000..e9f5c10b0
--- /dev/null
+++ b/stories/examples/Accordion/AccordionUncontrolledExample.js
@@ -0,0 +1,48 @@
+import React from 'react';
+import {
+ UncontrolledAccordion,
+ AccordionBody,
+ AccordionHeader,
+ AccordionItem,
+} from 'reactstrap';
+
+function Example(props) {
+ return (
+
+
+
+ Accordion Item 1
+
+ This is the first item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+ Accordion Item 2
+
+ This is the second item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+ Accordion Item 3
+
+ This is the third item's accordion body.
+ You can modify any of this with custom CSS or overriding our default
+ variables. It's also worth noting that just about any HTML can
+ go within the .accordion-body, though the transition
+ does limit overflow.
+
+
+
+
+ Aww yeah, you successfully read this important alert message. This
+ example text is going to run a bit longer so that you can see how
+ spacing within an alert works with this kind of content.
+
+
+
+ Whenever you need to, be sure to use margin utilities to keep things
+ nice and tidy.
+
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'Alerts can also contain additional HTML elements like headings, paragraphs and dividers.',
+ },
+ },
+};
diff --git a/stories/examples/Alert/Dismiss.js b/stories/examples/Alert/Dismiss.js
new file mode 100644
index 000000000..2cdc55fc8
--- /dev/null
+++ b/stories/examples/Alert/Dismiss.js
@@ -0,0 +1,18 @@
+import Example from './DismissExample';
+// eslint-disable-next-line import/extensions
+import AlertDismiss from '!!raw-loader!./DismissExample';
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story: 'Alerts can also be dismissed.',
+ },
+ source: {
+ code: AlertDismiss,
+ language: 'jsx',
+ type: 'auto',
+ },
+ },
+};
diff --git a/stories/examples/Alert/DismissExample.js b/stories/examples/Alert/DismissExample.js
new file mode 100644
index 000000000..15a5c63d5
--- /dev/null
+++ b/stories/examples/Alert/DismissExample.js
@@ -0,0 +1,16 @@
+import React, { useState } from 'react';
+import { Alert } from 'reactstrap';
+
+function AlertExample(props) {
+ const [visible, setVisible] = useState(true);
+
+ const onDismiss = () => setVisible(false);
+
+ return (
+
+ I am an alert and I can be dismissed!
+
+ );
+}
+
+export default AlertExample;
diff --git a/stories/examples/Alert/Fadeless.js b/stories/examples/Alert/Fadeless.js
new file mode 100644
index 000000000..0e4bf39a7
--- /dev/null
+++ b/stories/examples/Alert/Fadeless.js
@@ -0,0 +1,27 @@
+import React, { useState } from 'react';
+import { UncontrolledAlert } from 'reactstrap';
+import Alert from '../../../src/Alert';
+
+export function AlertFadelessExample(props) {
+ const [visible, setVisible] = useState(true);
+
+ const onDismiss = () => setVisible(false);
+
+ return (
+
+
+ I am a primary alert and I can be dismissed without animating!
+
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'There are several predefined button styles, each serving its own semantic purpose, with a few extras thrown in for more control.',
+ },
+ },
+};
diff --git a/stories/examples/Button/Disabled.js b/stories/examples/Button/Disabled.js
new file mode 100644
index 000000000..fe6aa7b67
--- /dev/null
+++ b/stories/examples/Button/Disabled.js
@@ -0,0 +1,23 @@
+import React from 'react';
+import { Button } from 'reactstrap';
+
+function Example(props) {
+ return (
+
+ {' '}
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'Make buttons look inactive by adding the disabled prop to `Button`. Disabled buttons have `pointer-events: none` applied to, preventing hover and active states from triggering.',
+ },
+ },
+};
diff --git a/stories/examples/Button/Outline.js b/stories/examples/Button/Outline.js
new file mode 100644
index 000000000..a8cc79e69
--- /dev/null
+++ b/stories/examples/Button/Outline.js
@@ -0,0 +1,38 @@
+import React from 'react';
+import { Button } from 'reactstrap';
+
+function Example(props) {
+ return (
+
+ {' '}
+ {' '}
+ {' '}
+ {' '}
+ {' '}
+
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'In need of a button, but not the hefty background colors they bring? Add `outline` prop to remove all background images and colors on any button.',
+ },
+ },
+};
diff --git a/stories/examples/Button/Props.js b/stories/examples/Button/Props.js
new file mode 100644
index 000000000..d80589ae9
--- /dev/null
+++ b/stories/examples/Button/Props.js
@@ -0,0 +1,9 @@
+import React from 'react';
+import { Button } from 'reactstrap';
+import Props from '../Props';
+
+function Example() {
+ return ;
+}
+
+export default Example;
diff --git a/stories/examples/Button/Size.js b/stories/examples/Button/Size.js
new file mode 100644
index 000000000..302e39bba
--- /dev/null
+++ b/stories/examples/Button/Size.js
@@ -0,0 +1,27 @@
+import React from 'react';
+import { Button } from 'reactstrap';
+
+function Example(props) {
+ return (
+
+ {' '}
+ {' '}
+ {' '}
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'Fancy larger or smaller buttons? Add `size` prop with `lg` or `sm` values to make button bigger or smaller.',
+ },
+ },
+};
diff --git a/stories/examples/Button/Tags.js b/stories/examples/Button/Tags.js
new file mode 100644
index 000000000..b6e49bc0a
--- /dev/null
+++ b/stories/examples/Button/Tags.js
@@ -0,0 +1,25 @@
+import React from 'react';
+import { Button } from 'reactstrap';
+
+function Example(props) {
+ return (
+
+ {' '}
+ {' '}
+ {' '}
+
+ );
+}
+
+export default Example;
+
+Example.parameters = {
+ docs: {
+ description: {
+ story:
+ 'The button classes are designed to be used with the `