# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog][Keep a Changelog] and this project adheres to [Semantic Versioning][Semantic Versioning].

## [2.2.2] - *Mar 26 2021*

### Fixed

- Removed a wrongly placed brace in the class value of the navigation buttons, that caused them to not be hidden by default. (@8BitAron)

## [2.2.1] - *Feb 26, 2021*

### Added

1. Added `index.d.ts` explanation for `IndicatorIcon` prop. (@learus)

### Fixed

1. Fixed `index.d.ts` 2.2.0 new props to be optional, from mandatory. (@learus)

## [2.2.0] - *Feb 23, 2021*

### Added

1. Added `boolean` prop `cycleNavigation` that allows the developer to choose whether they want the carousel to cycle when it reaches the first or last slide. (@learus)
2. Added customizability to button icons. Using the `NextIcon`, `PrevIcon`, and `IndicatorIcon` one can customize the icon part of the navigation buttons and indicators. Those props are of type `ReactNode`, meaning they can be whatever one wants them to be, without breaking important carousel functionality. (@learus & @cansin)
3. Added even more customizability to buttons. Using the `NavButton` prop, you get full control of the navigation buttons. The prop should be a function that takes the specified parameters and returns a ReactNode. It's advised to return a `<Button/>` using the given `onClick` parameter for the next and prev functions to work properly. It works in tandem with all other customization options: `navButtonsProps`, `navButtonsWrapperProps`, `navButtonsAlwaysVisible`, `navButtonsAlwaysInvisible`, `fullHeightHover`, ...). (@learus)
4. Added the Customizability section to the [README.md](README.md) (@learus)
5. Added 3rd example regarding customizability in the demo (TODO) (@learus)

### Changed (Breaking)

1. Changed indicator rendering implementation to support customization, and introduce consistency with next and prev buttons. Now, working with MUI `IconButton`. (@learus) 
2. Changed `indicatorProps` to `indicatorIconButtonProps` and `activeIndicatorProps` to `activeIndicatorIconButtonProps` (@learus)
3. Changed `indicatorIconButtonProps` to style **all** indicators rather than only the **non-active** ones (@learus)
4. Changed `buttonVisible` class' `opacity` to `1` from `0.6`.

### Fixed

1. Added `Button` import in the example code in [README.md](README.md) (@learus)

## [2.1.2] - *Jan 11, 2021*

### Added

1. Added CHANGELOG.md (@learus)
2. Added `boolean` prop `swipe` that implements ability to toggle swipe behaviour. Default: `true`. (@learus)
3. Added `boolean` prop `stopAutoPlayOnHover` that implements ability to stop autoPlay (auto-scroll slides) when mousing over the carousel. Default: `true`. (@learus)

### Changed

1. Pressing the Next Button while being on the last slide, triggers the "Back" animation when going cycling back to the first slide. Fixes bug #1. (@learus)
2. Changed timeout explanation on README, to refer to Material UI Documentation. (@learus)

### Deprecated

1. Removed `timer` prop from Demo code, since it was obsolete and not used. A relic of early development. (@learus)

### Fixed

1. Fixed a bug, where pressing the first indicator, while being on the last slide (and backwards) would trigger the wrong/unexpected animation. Fixed by change #1. (@learus)
2. Fixed a bug, where exit animation would not play if `timeout` prop was not a `number`. (@learus)



<!-- Links -->
[Keep a Changelog]: https://keepachangelog.com/
[Semantic Versioning]: https://semver.org/

<!-- Versions -->
[0.0.2]: https://github.com/Author/Repository/compare/v0.0.1..v0.0.2
[0.0.1]: https://github.com/Author/Repository/releases/v0.0.1