Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jul 27, 2025

This PR contains the following updates:

Package Change Age Confidence
bootstrap.native (source) ^1.0.2^5.0.0 age confidence

Release Notes

thednp/bootstrap.native (bootstrap.native)

v5.1.0

What changed

  • 🔋 added a new PositionObserver for Tooltip, Popover, Dropdown and ScrollSpy to replace the legacy scroll and/or resize event listeners, for top notch performance;
  • 📟 Modal and Offcanvas now make use of ResizeObserver with the same effect;
  • 🗺️ Tooltip and Popover use a different positioning system based on position: absolute;
  • 🚇 improved accessibility for Modal and Offcanvas by implementing a focus trap, if at least one focusable element is inside your modal/offcanvas, users cannot focus outside of it;
  • 💯 replaced Cypress tests with Vitest, it's not just better but it works perfect on my Linux machine;
  • ⛑️ removed many tools like eslint and prettier with Deno 2.0 powered tools; we only update dependencies that actually matter;
  • 🚄 performance improvements: early returns instead of long ifs, improved logic, code cleanup;
  • 🔑 updated Types, in some cases more strict in others more flexible;
  • 🕺 all interaction event listeners now check for target disabled status;
  • ✔️ fixed Tab event listener for the cases where currentTarget is a child element of the event target (possibly a result of incorrect code mergers in the past);

v5.0.9

Compare Source

v5.0.8

Compare Source

v5.0.7

Compare Source

v5.0.6

Compare Source

v5.0.5

Compare Source

v5.0.4

Compare Source

v5.0.3

Compare Source

v5.0.2

Compare Source

v5.0.1

Compare Source

v5.0.0

Compare Source

v4.2.0: Important update

Compare Source

What's changed

  • removed V4 version of our sources and polyfill, all legacy code is moved to a separate branch
  • Carousel no longer use touch events but a standardized pointer event listener setup
  • Modal and Offcanvas will use a callback for dispose() method combined with specific hide() / close() method
  • Updated Popover / Tooltip for Bootstrap 5.2.x

What's new

  • Added Cypress testing suite for all components
  • Added codeQL
  • Various improvements for Tooltip / Popover, now you can set all content items (Popover title, content and btnClose as HTMLElement or string, Tooltip title) as well as the template option
  • added triggers and isShown property to Toast component
  • Offcanvas also has 'static' backdrop option

What's fixed

  • Fixing Tab issue #​444
  • Minor fix for Button.isActive property
  • Minor fixes to allow working with iframes, bugs revealed by Cypress testing
  • Dropdown improvements for automatic positioning

For a complete and detailed view of the changes, check out the commits log

v4.1.2

Compare Source

v4.1.1

Compare Source

v4.1.0: BSN 4.1.0 stable release

Compare Source

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

v4.0.7

Compare Source

v4.0.6

Compare Source

v4.0.0: Major Version Release 4.0 for Bootstrap 5

Compare Source

Changes:

  • BSN V5 is now the official build (bootstrap.native.js), BSN V4 is now the legacy version (bootstrap-native.v4.js)
  • Major version bump 4.0.0 as discussed here
  • Complete changelog #​400

v3.0.15: First Bootstrap 5 version available

This is an important release, that's why I'm adding here a RELEASE TAG. BSN for Bootstrap 5 is probably close to what I'd call great.

For full changelog, please check #​400

Please test and report back.

v3.0.10: BSN now works in HEAD

Compare Source

Updated shorter-js to make BSN work in the site <head> section.

v3.0.9: Fixed components not exported to cdn

v3.0.7: Better and dedicated build tools for components modules

Compare Source

v3.0.6: Components as modules now available, other improvements

Compare Source

Changes:

  • changed all util and imports structure for more accurate bundles
  • addressing #​381, added more build scripts, now dist/components/ folder holds UMD and ESM modules for all components, thanks @​lpar
  • removed dependency on shorter-js for events handling, class manipulation, and more, see commit file changes
  • removed the tryWrapper due to some inconsistency error reporting, despite the benefit it brings
  • Code cleanup

v3.0.5: Minor improvements

Changes:

  • removed the tryWrapper from components themselves, it's now optional because it's included with the initCallback() and removeDataApi() callbacks
  • now the library is sporting a new custom feature: build polyfill with minifill and rollup
  • code cleanup

v3.0.3: Fixed package.json

Compare Source

v3.0.2: Fixes and improvements

Compare Source

Changes:

  • Fixed some positioning with Modal and overflow
  • Simplified the Modal scripting
  • Added option for Carousel to set touch
  • Simplified Carousel initialization script
  • Code cleanup

Documentation updates

  • Tooltip template feature
  • Updates regarding components' original events
  • Updates for Carousel touch options

v3.0.1: Minor fixes

Compare Source

Changes:

  • Modal click handlers fixed to work properly with child targets
  • Documentation fixes

v3.0.0: ES6/ES7 Version

Compare Source

Changes:

  • removed V3 completely, we now continue development for V4 only
  • major reworks for all components with many fixes and improvements, with modern ES6/ES7 sourced scripting
  • all components receive the dispose() instance method and the ability to re-initialize on the fly
  • support for "default prevented" for select event types like show, hide, slide, etc
  • exported most utils to shorter.js
  • removed manual tokenization for better gzip compression
  • reworked polyfills for IE10+ compatibility
  • added rollup build scripts and removed old build scripts
  • removed bower
  • library documentation and wiki guideline updates

Important Notes

  • all components are not exported directly to global anymore because the new rollup build based tools
  • your custom scripting will need updates to use this version, EG: new Carousel('#target') becomes new BSN.Carousel('#target')

More details at #​306

v2.0.27: Various fixes and new features

Compare Source

Changelog

  • Resolve error thrown in Dropdown dismissHandler, #​278
  • NEW Set touch event listeners to passive #​280
  • Modal fade auto option #​287
  • Improvements to Modal execution timings #​281
  • Dropdown fixes in regards to keyboard navigation 6ba2aa9
  • Solving some Modal related issue in regards to content #​233
  • V4 - The position of the tooltip element is not centered when the body scrollbar is displayed. #​215 thanks @​Gruven
  • Updated V4 styleTip utility to properly style the Popover arrow
  • Button - Radio buttons focus not working (v4) #​296 thanks to @​Prid13
  • Fixed inconsistent tabindex code, usage, demo and guides for Button component in V3/V4
  • Fixed Button handling radio/checkbox inputs with icons inside, V3/V4
  • Demo fixes and improvements

v2.0.26: New features and various fixes

Compare Source

Changelog:

  • NEW: added swipe feature for Carousel in both V3 and V4 versions
  • moved build scripts to /lib folder and created an unified build script for both V3/V4, check updated WIKI pages
  • fixed Popover not working with options.title and options.content #​277
  • fixed ScrollSpy to use options.target first before going after data-target
  • improved the Collapse component to work better with JavaScript init #​276
  • Improved emulateTransitionEnd utility, details here and here
  • various demos fixes, updates and improvements

v2.0.25: Further improvements

Compare Source

Changes

  • Fixing #​250, V3/V4 the Carousel component will invalidate instances when only ONE carousel-item is found
  • Fix clicks on child elements of a tab #​253 & #​254
  • Closing modal with escape key prevents it from showing again #​256
  • Added new component for V4 ; TOAST #​260
  • Fixed inconsistent modal positioning #​261
  • Fixed Carousel auto-slide transition breaks #​263
  • Fixing #​265, now Modal component will store the init object in the modal element when no triggering button was initialized
  • Further fixes for emulateTransitionEnd utility #​266
  • Improvements for module builder scripts commit 1 and commit 2

v2.0.24: Minor fixes

Compare Source

Changelog

  • Minor demo fixes 41a024b
  • fixing #​227, V3/V4 Carousel cannot use slideTo to jump to the current active item
  • documentation updates regarding #​227
  • Carousel ignoring data-interval #​241c6e261e
  • Fix isNaN ReferenceError in V3 #​243
  • Fix infinite loop if user calls carousel.cycle() 27cfd8f
  • Dropdown aria-expanded #​245

v2.0.23: Improvements

Compare Source

Changelog

  • Fixed Carousel initialization issue when interval:false is used
  • Added a more robust emulateTransitionEnd thanks to @​nlemoine
  • Updated Carousel, Tab, Collapse with the new emulateTransitionEnd handler
  • Added autoInitDataAPI build option, thanks to @​marcelpanse details
  • Documentation updates

v2.0.22: Fixes and updates for V4

Compare Source

Changelog

v2.0.21: Hotfix

Compare Source

Minor fixes:

  • Carousel autoplay #​177
  • Dropdown click handler ignoring child elements of the triggering elements

v2.0.20: New features and improvements

Compare Source

Dropdown

  • added a more robust keyboard navigation for the component, via up/down arrow keys, Esc key and improved what gets focused on opening/closing the menu. details

Button

  • (radio/checkbox) can be toggled via Space key

Other

  • Minor issue fixed for Carousel report
  • A ton of improvements proposed by @​nicola-spb details1 and details2, commit details here
  • Popover updated to latest Bootstrap version
  • the library now works linked in a site's <head> without additional code requirements details

v2.0.19: Fixes and new features

Compare Source

Both V3/V4 versions

  • added ability for Popover and Tooltip to style the generated TIP on first instance, also both can handle cases when TIP should use intermediary positions like top-left, bottom-right, etc, similar to Popper.js
  • removed elementInViewport() and updatePlacement() utilities
  • fix issue with Tab when fade is used but no height animation via data-height="true" attribute
  • don't slide Carousel if not in view range, details here

v2.0.18: Improvements and minor fixes

Compare Source

Non component specific
The library now allows you to link it in the <head>, details, check wiki for more.

Modal:

  • V3/V4 fixed overlay handler details
  • V3/V4 further fix for resize handler details
  • V3/V4 evend bind fixes details

Button

  • V3/V4 component has the ability to activate radios and checkboxes on load for browsers that don't remember form validation status after submit details
  • V3 issues on IE details
  • V3/V4 allow component to work with elements other than <div class="btn-group"> details
  • V3 allow component to work with multiple data-TEXT options details

Tooltip
** V3/V4 Tooltip should close on resize details

Affix
** V3 component should not use resize on IE8 details

Popover
** V3/V4 component should not abuse event handlers on global objects details

Dropdown
** V3/V4 component should not abuse event handlers on global objects details

v2.0.17: Modal and Tooltip improvements

Compare Source

Modal:

  • Overlay disappears when creating a modal during the hidden event of an existing modal #​162

Tooltip

  • Don't show tooltips if the title is empty f3ff474
  • Allow tooltip to work with data-title, as title is invalid for SVG 5c5fb3d

v2.0.16: Improvements

Compare Source

Carousel - details

  • Using the slideTo() public method now works properly when used outside the prototype
  • event handlers are more simple
  • demo updated to demo the use case

Dropdown details

  • event handlers are more simple
  • code cleanup

ScrollSpy - details

  • added offset option
  • code cleanup
  • documentation updates

Modal - details

  • fixed an issue setting scrollbar on IE

Button - details

  • more simple event handlers

Alert - details

  • more simple event handlers

v2.0.15: Much needed improvements

Compare Source

Changes:

  • V3/V4 fixed Collapse and Tab private methods (details)
  • V3/V4 added "use strict" to improve performance
  • V3/V4 improved the initializaDataAPI utility for faster component initialization
  • Documentation updates

v2.0.14: Minor fix

Compare Source

Fixed classList polyfill in polyfill.js and polyfill.min.js in regards to SVG, details thednp/minifill@b528a8d

v2.0.13: Updated V4 to latest beta version

Compare Source

  • Tooltip and Popover updated
  • Carousel animation now works with IE10+
  • Dropdown updated, thanks to @​ctl for #​145
  • Documentation updates

v2.0.12: Minor Improvements

Compare Source

Changes:

  • Dropdown now can work with dynamically added menu items and submenus #​135
  • Dropdown handler fixed for good #​114 (comment)
  • Fixing a potential issue with the show() method for Tab component when using the method via JavaScript #​142 (comment)
  • Simplify Collapse function nesting for a bit better performance #​139
  • Documentation updates

v2.0.11: Fixing Dropdown nesting

Compare Source

Details: 0aa7eed

v2.0.10: Fixes with components using fade class

Compare Source

Changes:

  • Modal, Alert, Tab, Tooltip and Popover components, both V3 and V4 improved to be able to work without the fade class #​125
  • Collapsible minor bug #​126
  • Tab issue with tab-content items of same height fixed f2f0f47

v2.0.9: Minor Improvement

Compare Source

Changes:

  • Carousel page navigation is no longer required
  • added .npmignore

v2.0.8: Minor improvement

Compare Source

Changes:

  • improved collapse, details #​122
  • some updates to V4

v2.0.7: Minor fix

Compare Source

Details #​121

v2.0.6: Fixes and improvements

Compare Source

Changelog:

Commit b34da07

  • removed isIE utility from bootstrap.native for Bootstrap 3, replaced with is isIE8 a more simple way to find IE8, as we now use supportTransitions
  • Tooltip and Popover will set automatically a modal as container option if the link/button is a child of that modal
  • fixed some issues with Modal and the new transitionend
  • improved getClosest utility

Commit b51811a

  • fixed issue Tooltip and Popover container option

Commit 2a79c41

  • Tooltip and Popover now know if the container should be a fixed-top or fixed-bottom (BS4) / navbar-fixed-top or navbar-fixed-bottom (BS3)
  • Improved Carousel for BS4 for IE10+, make it work at least basic functionality, as noted on V4 demo in regarding transitions in IE10+ with V4 (the media queries filter out IE10 and transitions don't work, thus transitionend will never trigger)
  • doc updates

v2.0.5: Fixing most transitionend related issues

Compare Source

Changes

  • Fixing Collapse issue #​115, commit 4f95ab7
  • Other Collapse and Tab translationend related issues 0e7aa35
  • Fixed Carousel issue with transitionend b0548c7

v2.0.4: Removed duration option for transitionEnd event

Compare Source

Changelog

Utilities

  • new utility one() to add an event listener once, jQuery style
  • new utility emulateTransitionEnd()
  • removed isIE detection from V4 73c27df

Collapse

  • fixed some issue with Collapse when the component was unable to compute child elements' height, now the in / show class is added to collapsible element first and then the utilities can easily compute the maxHeight
  • revert to previous Collapse behavior, now the component will not remove and re-add the collapse class from/to the collapsible element, solving some issue with more complex accordion structures 21a9471

Dropdown

All components 7f46c5b

  • Alert, Modal, Carousel, Collapse, Tab, Tooltip, Popover now use transitionEnd

Other

v2.0.3: Minor improvements and now added a V4 to the table

Compare Source

Details coming soon.

v2.0.2: Minor improvements

Compare Source

Modal: 69f67cc

  • Improved queryElement() utility #​102 (comment)
  • all components allow multiple initializations but only one specific component event handlers attached
  • Modal now allows targeting <div class="modal"> like the original, now the modal can be fully independent of a triggering elementID
  • Documentation updates on Modal

New utility nodeListToArray() fixing some bug with IE8 ae81ade

v2.0.1: A minor improvement and docs update

Compare Source

  • Added ability to use a container option for Popover and Tooltip #​105
  • Documentation updated for Tooltip and Popover
  • Options / Events tables in the demo are now responsive

v2.0.0: Major release with important changes and NEW features

This is a major release that could break backward compatibility (especially for those who rely heavily on JavaScript) as we have renamed some methods, completely revamped components, added more utilities, added original events, improved performance along with other cosmetic changes.

This is a transition version to prepare for a future version aimed at Bootstrap 4. It introduces a dedicated 4kb polyfill for legacy browsers, along with the recommended minifill.js and polyfill.io service.

Utilities

  • added new utilities for event delegation: on(), off()
  • added new utility for triggering original events bootstrapCustomEvents() #​81 (comment)
  • added initializeDataAPI utility
  • added selector queryElement() utility
  • added hasClass() utility as suggested #​98 (comment) , but implemented with classList
  • fixed getClosest() utility and now can be used by other components as well, like Alert
  • stylePopover() and styleTooltip() are now one common utility called styleTip()

Alert

  • now requires data-dismiss="alert" attribute in order to work, for both DATA API usage and JavaScript
  • the event handler is no longer attached to the document object, but the element with data-dismiss="alert" attribute
  • now the component exposes a single public method close()

Affix

  • if the offset options are set as functions, they are executed on update instead of only at the time of initialization
  • renamed most methods and now we expose a single public method update()
  • major code cleanup and performance improvements

Dropdown

  • added ability to keep the dropdown-menu open via persist: true/false option or data-persist="true" attribute
  • if the trigger is a link, it will event.preventDefault()
  • now the component exposes a single public method toggle()

Button

  • events renamed from bs.change.button to change.bs.button
  • events no longer trigger twice
  • now the component exposes no public method

Tab

  • now can animate height as well via data-height="true" and the CSS from Collapse component
  • because the above, the handler is protected by a isAnimating private boolean

Modal

  • no longer initialize on .modal via DATA API, but on [data-toggle="modal"] elements, while via JavaScript we initialize on a triggering element, also not a modal
  • no longer resizes the backdrop, seems it's not needed
  • the <div class="modal"> object stores the triggering button reference in modal.modalTrigger, and this updates everytime you open a modal by clicking a different trigger button
  • renamed methods from .open() to .show() and .close() to .hide()
  • added .toggle() method
  • reworked event handlers, solving #​98

Collapse

  • reworked event handlers, they are not removed and readded anymore, we now have a local variable isAnimating to prevent click
  • renamed open() to show() and close() to hide() methods
  • triggering elements no longer target collapsible elements via class name, only parent accordion
  • some code improvements and major cleanup

Carousel

  • reworked event handlers, they are not removed and readded anymore, we now have a local variable isSliding to prevent click handlers from
  • renamed _slideTo() to slideTo() and _getActiveIndex() to getActiveIndex() methods
  • if no active item is found on initialization, the first carousel item (with the 0 [zero] index) will be made active
  • events also point the relatedTarget like the original plugin
  • the component also stores the direction in the initialization and gets updated on every instance of slideTo()

Popover

  • renamed Popover option dismiss to dismissible
  • renamed methods and only exposing 3 main public methods

Tooltip

  • renamed methods and only exposing 3 main public methods

ScrollSpy

  • reworked all about the component, now the JavaScript initialization should work as expected
  • major performance improvements, the component now should be one of the fastest of it's kind
  • fixed non-window overflowing elements active state processing, now the component will handle level 1 nested containers

All Components

  • added original events to all components
  • major code clean up in all components: total separation of public methods and private methods, removed alot of stuff from each component's this instance, much more readable code, now the library is only ~20Kb minified instead of 38Kb
  • major documentation re-write: added methods, more usage and added events usage guides

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/bootstrap.native-5.x branch from b5a43a9 to bb63324 Compare September 7, 2025 12:58
@renovate renovate bot force-pushed the renovate/bootstrap.native-5.x branch from bb63324 to 0027d79 Compare November 18, 2025 14:03
@renovate renovate bot force-pushed the renovate/bootstrap.native-5.x branch from 0027d79 to 18923c8 Compare December 3, 2025 19:51
@renovate renovate bot force-pushed the renovate/bootstrap.native-5.x branch from 18923c8 to e507fdb Compare December 31, 2025 13:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant