Releases: ng-bootstrap/ng-bootstrap
19.0.1
19.0.0
19.0.0 (2025-06-19)
This release bumps minimum required versions to Angular 20.0.0
Bug Fixes
- carousel: remove invalid
aria-activedescendant(6ecb129) - datepicker: add missing attributes
aria-disabledandaria-selected(fab39cb) - modal: fix usage of modal in zoneless, by calling mark for check after update of modal options (afe98ee)
- pagination: put
aria-currenton link element instead of li for a11y (39dc037) - timepicker: wrong auto-setting of hour value (4137c60)
- tooltip: opening just after a close does not keep the tooltip open (bfee86d)
- tooltip: tooltip created after view destroyed (d9c96aa)
- typeahead: add aria-controls for accessibility (#4816)
- typeahead: set the value of typeahead's control to
nullinstead ofundefinedwhen using the non-editable mode (daaa56d)
Features
- tooltip,popover: allow to keep tooltip/popover open when hovered if
closeDelayis a positive number (8117bfa)
19.0.0-rc.0
This release candidate version bumps minimum required versions to Angular 20.0.0
Bug Fixes
- carousel: remove invalid
aria-activedescendant(6ecb129) - datepicker: add missing attributes
aria-disabledandaria-selected(fab39cb) - modal: fix usage of modal in zoneless, by calling mark for check after update of modal options (afe98ee)
- pagination: put
aria-currenton link element instead of li for a11y (39dc037) - timepicker: wrong auto-setting of hour value (4137c60)
- tooltip: opening just after a close does not keep the tooltip open (bfee86d)
- typeahead: add aria-controls for accessibility (#4816)
- typeahead: set the value of typeahead's control to
nullinstead ofundefinedwhen using the non-editable mode (daaa56d)
Features
- tooltip,popover: allow to keep tooltip/popover open when hovered if
closeDelayis a positive number (8117bfa)
18.0.0
This release bumps minimum required versions to Angular 19.0.0.
We have reviewed all components to make sure they are hydratable.
Please note that currently components using i18n require the use of experimental withI18nSupport().
You can learn more about the advantages of hydration in the Angular doc.
Bug Fixes
- accordion: respect
destroyOnHidewithOnPush(5b64712) - toast: added correct
ariaLivevalues (fc6007e) - accordion: fix hydration (3f3173a)
Features
- modal: add role option (46c00c6)
BREAKING CHANGES
ngbAccordionBody has been converted from a Directive into a Component. This is was needed in order to fix accordion hydration while not breaking the syntax.
Note that if you were using a template variable to retrieve the DOM element you will need to query the ElementRef instead of the component .
Concretely, the following code with ng-bootstrap 17.0.2:
@Component({
standalone: true,
imports: [NgbAccordionModule],
template: `
<div ngbAccordion>
<div ngbAccordionItem [collapsed]="false">
<!-- header -->
<div ngbAccordionCollapse>
<div ngbAccordionBody #myAccordionBody>
<ng-template>Actual content</ng-template>
</div>
</div>
</div>
`
})
export class Example {
readonly myAccordionBody= viewChild.required<ElementRef>('myAccordionBody');
myScrollingFunction() {
this.myAccordionBody().nativeElement.scrollIntoView();
}
}needs to be migrated to the following with ng-bootstrap 18.0.0:
@Component({
imports: [NgbAccordionModule],
template: `
<div ngbAccordion>
<div ngbAccordionItem [collapsed]="false">
<!-- header -->
<div ngbAccordionCollapse>
<div ngbAccordionBody #myAccordionBody>
<ng-template>Actual content</ng-template>
</div>
</div>
</div>
`
})
export class Example {
readonly myAccordionBody= viewChild.required('myAccordionBody', {read: ElementRef});
myScrollingFunction() {
this.myAccordionBody().nativeElement.scrollIntoView();
}
}18.0.0-rc.0
17.0.1
Hopefully fixes that one datepicker bug with weekday labels.
Also replacing NgZone.onStable() with afterRender()/afterNextRender() internally and using esbuild with zoneless CD for the demo site.
Bug Fixes
17.0.0
This release bumps minimum required versions to Angular 18.0.0.
We do not officially support provideExperimentalZonelessChangeDetection() yet, it will come in a future minor release. Please remember this an experimental API, follow #4709 and open new issues if you find any problems.
Signal support will come later, most likely in the next major release.
Bug Fixes
- datepicker: track weekdays by $index (#4712) (ca1028d)
- datepicker: track weekdays by index to avoid clashes (7c693d6)
- datepicker: type of ngAcceptInputType_weekdays (5ad11bb)
- pagination: track page by index since -1 can be there twice (1d190a8)
- timepicker: get period from angular formatDate (56b0368)
- typeahead track by index in NgbHighlight (#4707) (2085265), closes #4705
- typeahead: track results by index in NgbTypeahead (#4711) (fa8aba9), closes #4702
16.0.0
This release bumps minimum required versions to Angular 17.0.0 and Bootstrap 5.3.2.
Main features:
- dark mode support for all components and demo site.
- new stacked progressbar markup in Bootstrap
5.3allowed us to do the long-standing stacked progressbar feature request. - Ethiopian calendar for datepicker.
- old component-based accordion implementation is removed (it was deprecated in
14.1.0in favor of directive-based implementation). - we're using new control flow syntax internally and for all demos.
Please make sure to check the BREAKING CHANGES section below.
Bug Fixes
- use
setInputwhere possible for dynamic components (f29a7b5) - datepicker: fix day hover color in dark mode (519bbc3)
- dropdown: add
showclass to dropdown toggle when dropdown is open (#4532) (6bf2ab0), closes #4531 - nav:
NgbNavLinkBasematches multiple times (02ab48b), closes #4594 - schematics: use
getMainFilePath()to get main project file (acd635a) - tooltip: add offset to align with Bootstrap 5.3 (6fd04af), closes #4574
- datepicker:
startDatetype should accept dates with days (#4618) (81ec20a), closes #4616 - accordion: allow querying body template (#4625) (472d842), closes #4623
- dropdown: allow setting custom tabindex on items (#4626) (3d9f052), closes #4592
- nav: correct focus handing with keyboard (184b6bd)
Features
- bootstrap 5.3 and dark mode (99c2162), closes #4450
- add axe a11y tests of the demo site (#4588) (b573a2b)
- progressbar: add stacked progressbar (#4621) (1982133)
- datepicker: add ethiopian date picker (bf02fb0), closes #4499
- migrate to the new control flow syntax (6c3570b)
- accordion: remove
typefrom configuration (ed7732a) - accordion: remove component-based version (7aab9e3)
- dropdown: remove deprecated
NgbNavbardirective (c2c8061)
BREAKING CHANGES
- minimum required versions are now Angular
17.0.0, Bootstrap5.3.2and Popper2.11.8 - accordion: removed component-based accordion. It was deprecated in
14.1.0 - accordion: removed
typeproperty from theNgbAccordionConfig. It was deprecated in14.1.0. - we use
injectfunction internally more than before, so constructor signatures have changed for all components. If you extend our components (and you really shouldn't do it), you might need to update your code. - nav:
NgbNavbardirective is removed, as it is no longer required. It was deprecated in14.2.0. - nav: default value for the
@Input() keyboard: boolean | 'changeWithArrows'was changed fromfalsetotrue, meaning that all navs are now keyboard accessible by default and focus between navs moves with arrow keys. Focusing behavior follows the WAI-ARIA tab recommendation as well as Bootstrap's nav implementation. To turn off keyboard support setkeyboardtofalseeither on the individualNgbNavor viaNgbNavConfig