What Changed
In brief, a complete rework of all components for stronger TypeScript or improved JavaScript consistency, as well as new features.
Potentially Breaking Changes
- Target elements no longer host the initialization object (EG:
myAlertElement.Alert
), you now need to use the build in static methods (EG:BSN.Alert.getInstance(myAlertElement)
which is on par with the original library. - Utilities are now split between V4 and V5, V4 will use those versions with legacy browsers fallback while V5 only uses modern browsers utilities only, which means our V5 is completely and definitely free from legacy browsers fallback.
- Our
shorter-js
library has suffered an entire sweep of changes to file and folder structure, your de-duped builds may need some updates.
New Features
- Added TypeScript "strong type" definitions. This effort was possible thanks to @fmasa.
- Added the new EventListener to handle component event listeners even more efficient.
- Added a new Timer to replace various properties added to component targets (EG.
myCollapse.isAnimating
) the result is: execution must never bubble or break in any case. The following components benefit: Carousel, Collapse, Modal, Tooltip, Popover, Tab and Toast. - Added full RTL support for Carousel, Dropdown, Popover & Tooltip, and the demo has been updated to reflect the changes.
- Carousel can work with multiple controls as long as they match the DATA API to point to the target
.carousel
element. - Tooltip now supports trigger event options just like Popover and the original library.
Improvements
- Tooltip and Popover now fully implement floating-ui (featured with Popper) to better determine the tooltip / popover position in any configuration or context.
- Popover is now extending Tooltip, similar to how the original library Popover works, it makes the
dist/components.popover.js
slightly larger in size, but BSN is overall smaller. - Dropdown dynamic positioning is improved to work with RTL languages, but also better handle position in general.
Most Notable Commits
Thanks to all who tested and participated in #430 @midzer @jcorporation @lekoala