From cf860bfb82784833311ba5463c229505600e021e Mon Sep 17 00:00:00 2001 From: idzark <23485709+idzark@users.noreply.github.com> Date: Tue, 1 Apr 2025 16:35:53 +0200 Subject: [PATCH] Release 8.0.0 --- CHANGELOG.md | 37 + README.txt | 2 +- package-lock.json | 4 +- package.json | 2 +- projects/mdb-angular-ui-kit/CHANGELOG.md | 37 + .../accordion-item-content.directive.ts | 8 +- .../accordion-item-header.directive.ts | 8 +- .../accordion/accordion-item.component.ts | 8 +- .../accordion/accordion.component.ts | 8 +- .../accordion/accordion.spec.ts | 1 + .../assets/scss/bootstrap/_accordion.scss | 9 + .../assets/scss/bootstrap/_alert.scss | 21 +- .../assets/scss/bootstrap/_button-group.scss | 4 +- .../assets/scss/bootstrap/_buttons.scss | 6 +- .../assets/scss/bootstrap/_card.scss | 5 + .../assets/scss/bootstrap/_carousel.scss | 22 +- .../assets/scss/bootstrap/_close.scss | 41 +- .../assets/scss/bootstrap/_dropdown.scss | 1 + .../assets/scss/bootstrap/_functions.scss | 2 +- .../assets/scss/bootstrap/_grid.scss | 6 + .../assets/scss/bootstrap/_helpers.scss | 2 + .../assets/scss/bootstrap/_list-group.scss | 21 +- .../assets/scss/bootstrap/_maps.scss | 120 ++++ .../assets/scss/bootstrap/_mixins.scss | 3 +- .../assets/scss/bootstrap/_nav.scss | 59 +- .../assets/scss/bootstrap/_navbar.scss | 19 +- .../assets/scss/bootstrap/_offcanvas.scss | 6 +- .../assets/scss/bootstrap/_pagination.scss | 2 +- .../assets/scss/bootstrap/_progress.scss | 11 +- .../assets/scss/bootstrap/_reboot.scss | 15 +- .../assets/scss/bootstrap/_root.scss | 134 +++- .../assets/scss/bootstrap/_tables.scss | 29 +- .../assets/scss/bootstrap/_tooltip.scss | 9 +- .../assets/scss/bootstrap/_utilities.scss | 191 +++++- .../scss/bootstrap/_variables-dark.scss | 87 +++ .../assets/scss/bootstrap/_variables.scss | 451 ++++++++----- .../assets/scss/bootstrap/bootstrap-grid.scss | 4 +- .../scss/bootstrap/bootstrap-reboot.scss | 1 + .../scss/bootstrap/bootstrap-utilities.scss | 1 + .../assets/scss/bootstrap/bootstrap.scss | 1 + .../bootstrap/forms/_floating-labels.scss | 26 +- .../scss/bootstrap/forms/_form-check.scss | 38 +- .../scss/bootstrap/forms/_form-control.scss | 28 +- .../scss/bootstrap/forms/_form-range.scss | 6 +- .../scss/bootstrap/forms/_form-select.scss | 15 +- .../scss/bootstrap/forms/_input-group.scss | 2 +- .../scss/bootstrap/helpers/_color-bg.scss | 5 +- .../bootstrap/helpers/_colored-links.scss | 22 +- .../scss/bootstrap/helpers/_focus-ring.scss | 5 + .../scss/bootstrap/helpers/_icon-link.scss | 25 + .../assets/scss/bootstrap/helpers/_vr.scss | 2 +- .../assets/scss/bootstrap/mixins/_alert.scss | 5 +- .../assets/scss/bootstrap/mixins/_banner.scss | 6 +- .../assets/scss/bootstrap/mixins/_caret.scss | 55 +- .../scss/bootstrap/mixins/_color-mode.scss | 21 + .../assets/scss/bootstrap/mixins/_forms.scss | 15 +- .../scss/bootstrap/mixins/_list-group.scss | 2 + .../scss/bootstrap/mixins/_utilities.scss | 2 +- .../bootstrap/mixins/_visually-hidden.scss | 6 +- .../assets/scss/bootstrap/vendor/_rfs.scss | 184 +++-- .../assets/scss/free/_accordion.scss | 7 - .../assets/scss/free/_alert.scss | 12 +- .../assets/scss/free/_badge.scss | 8 +- .../assets/scss/free/_buttons.scss | 207 ++++-- .../assets/scss/free/_carousel.scss | 3 +- .../assets/scss/free/_dropdown.scss | 4 + .../assets/scss/free/_list-group.scss | 8 +- .../assets/scss/free/_navbar.scss | 14 + .../assets/scss/free/_pagination.scss | 2 - .../assets/scss/free/_root.scss | 54 +- .../assets/scss/free/_tables.scss | 2 +- .../assets/scss/free/_toasts.scss | 12 +- .../assets/scss/free/_type.scss | 6 +- .../assets/scss/free/_variables-dark.scss | 78 +++ .../assets/scss/free/_variables.scss | 634 ++++++------------ .../assets/scss/free/forms/_form-control.scss | 14 + .../assets/scss/free/forms/_form-file.scss | 9 + .../assets/scss/free/forms/_form-range.scss | 1 + .../assets/scss/free/mixins/_buttons.scss | 63 +- .../assets/scss/free/mixins/_color-mode.scss | 21 + .../assets/scss/mdb.core.scss | 1 + .../assets/scss/mdb.free.scss | 3 + .../mdb-angular-ui-kit/assets/scss/mdb.scss | 2 + .../carousel/carousel-item.component.ts | 6 +- .../carousel/carousel.component.ts | 8 +- .../carousel/carousel.spec.ts | 4 +- .../checkbox/checkbox.directive.spec.ts | 12 +- .../checkbox/checkbox.directive.ts | 9 +- .../collapse/collapse.directive.spec.ts | 1 + .../collapse/collapse.directive.ts | 8 +- .../dropdown/dropdown-menu.directive.ts | 8 +- .../dropdown/dropdown-toggle.directive.ts | 6 +- .../dropdown/dropdown.directive.spec.ts | 6 +- .../dropdown/dropdown.directive.ts | 26 +- .../forms/form-control.component.ts | 8 +- .../forms/form-control.spec.ts | 8 +- .../forms/input.directive.ts | 10 +- .../mdb-angular-ui-kit/forms/input.spec.ts | 6 +- .../forms/label.directive.ts | 8 +- .../modal/modal-container.component.ts | 8 +- .../mdb-angular-ui-kit/modal/modal.service.ts | 4 + .../mdb-angular-ui-kit/modal/modal.spec.ts | 6 +- projects/mdb-angular-ui-kit/package.json | 2 +- .../popover/popover.component.ts | 24 +- .../popover/popover.directive.spec.ts | 24 +- .../popover/popover.directive.ts | 8 +- .../radio/radio-button.directive.ts | 6 +- .../radio/radio-group.directive.spec.ts | 6 +- .../radio/radio-group.directive.ts | 9 +- .../radio/radio.directive.spec.ts | 6 +- .../range/range.component.spec.ts | 1 + .../range/range.component.ts | 11 +- .../mdb-angular-ui-kit/ripple/ripple-utils.ts | 3 - .../ripple/ripple.directive.spec.ts | 1 + .../ripple/ripple.directive.ts | 8 +- .../scrollspy/scrollspy-element.directive.ts | 6 +- .../scrollspy/scrollspy-link.directive.ts | 6 +- .../scrollspy/scrollspy-window.directive.ts | 6 +- .../scrollspy/scrollspy.directive.ts | 8 +- .../tabs/tab-content.directive.ts | 8 +- .../tabs/tab-outlet.directive.ts | 6 +- .../tabs/tab-title.directive.ts | 8 +- .../mdb-angular-ui-kit/tabs/tab.component.ts | 6 +- .../mdb-angular-ui-kit/tabs/tabs.component.ts | 6 +- projects/mdb-angular-ui-kit/tabs/tabs.spec.ts | 4 +- .../tooltip/tooltip.component.ts | 24 +- .../tooltip/tooltip.directive.spec.ts | 18 +- .../tooltip/tooltip.directive.ts | 10 +- .../validation/error.directive.ts | 6 +- .../validation/success.directive.ts | 6 +- .../validation/validate.directive.spec.ts | 1 + .../validation/validate.directive.ts | 6 +- 132 files changed, 2287 insertions(+), 1142 deletions(-) create mode 100644 projects/mdb-angular-ui-kit/assets/scss/bootstrap/_variables-dark.scss create mode 100644 projects/mdb-angular-ui-kit/assets/scss/bootstrap/helpers/_focus-ring.scss create mode 100644 projects/mdb-angular-ui-kit/assets/scss/bootstrap/helpers/_icon-link.scss create mode 100644 projects/mdb-angular-ui-kit/assets/scss/bootstrap/mixins/_color-mode.scss create mode 100644 projects/mdb-angular-ui-kit/assets/scss/free/_variables-dark.scss create mode 100644 projects/mdb-angular-ui-kit/assets/scss/free/mixins/_color-mode.scss diff --git a/CHANGELOG.md b/CHANGELOG.md index 7667fced..e574c802 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,40 @@ +## 8.0.0 (07.04.2025) + +This version requires Angular v19. Follow the [Angular Update Guide](https://angular.dev/update-guide) to migrate your project to Angular 19. + +### Breaking changes: + +- Updated Angular to v19, this version is required in MDB Angular v8 +- Older theming styles are no longer supported, use new [color modes](https://mdbootstrap.com/docs/angular/content-styles/theme/) instead +- Slightly increased cell width in [Datepicker](https://mdbootstrap.com/docs/angular/forms/datepicker/) +- The `.navbar-light` class is no longer used in [Navbar](https://mdbootstrap.com/docs/angular/navigation/navbar), use [color modes](https://mdbootstrap.com/docs/angular/content-styles/theme/) instead + +### Design updates: + +Introduced a new theming system that allows setting the theme for the entire page, its parts, or selected elements using data attributes. + +Read [Colors modes](https://mdbootstrap.com/docs/angular/content-styles/theme/) page to learn more about new theming. + +### Fixes and improvements: + +- [Modal](https://mdbootstrap.com/docs/angular/components/modal/) - resolved problem with opening animation +- [Select](https://mdbootstrap.com/docs/angular/forms/select/) - resolved problem with not hiding option groups labels when using filter +- [Popconfirm](https://mdbootstrap.com/docs/angular/components/popconfirm/) - added default offset to the component +- [Datepicker](https://mdbootstrap.com/docs/angular/forms/datepicker/) - fixed date parsing bug for `yy` year format +- [Stepper](https://mdbootstrap.com/docs/angular/components/stepper/) - added 'Optional' text to the steps that use `optional` input +- [Onboarding](https://mdbootstrap.com/docs/angular/plugins/onboarding/) - added gap between the buttons and fixed border styles +- Fixed [Datepicker](https://mdbootstrap.com/docs/angular/forms/datepicker/) and [Timepicker](https://mdbootstrap.com/docs/angular/forms/timepicker/) toggle button padding in Firefox browser +- Removed unnecessary `BrowserAnimationsModule` imports from [Onboarding](https://mdbootstrap.com/docs/angular/plugins/onboarding/), [Ecommerce gallery](https://mdbootstrap.com/docs/angular/plugins/ecommerce-gallery/) and [Organization chart](https://mdbootstrap.com/docs/angular/plugins/organization-chart/) plugins + +### New features: + +- Added new SCSS and CSS variables for plugins styles +- [File upload](https://mdbootstrap.com/docs/angular/plugins/file-upload/) - added new `mimeTypes` input that allow to define a list of mime types for supported file types +- [Multi item carousel](https://mdbootstrap.com/docs/angular/plugins/multi-item-carousel/) - added new `(slideClick)` event +- [Color picker](https://mdbootstrap.com/docs/angular/plugins/color-picker/) - added new `color-picker-next-format-button`, `color-picker-previous-format-button` and `color-picker-copy-button` classes for the buttons + +--- + ## 7.1.0 (18.11.2024) ### Fixes and improvements: diff --git a/README.txt b/README.txt index 605b76ff..b9310f01 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,6 @@ MDB 5 Angular -Version: FREE 7.1.0 +Version: FREE 8.0.0 Documentation: https://mdbootstrap.com/docs/angular/ diff --git a/package-lock.json b/package-lock.json index cad96db9..da4e67a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mdb-angular-ui-kit-free", - "version": "7.1.0", + "version": "8.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mdb-angular-ui-kit-free", - "version": "7.1.0", + "version": "8.0.0", "dependencies": { "@angular/animations": "^19.2.2", "@angular/cdk": "^19.2.3", diff --git a/package.json b/package.json index 1e429b82..7904c412 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mdb-angular-ui-kit-free", - "version": "7.1.0", + "version": "8.0.0", "scripts": { "ng": "ng", "start": "ng serve", diff --git a/projects/mdb-angular-ui-kit/CHANGELOG.md b/projects/mdb-angular-ui-kit/CHANGELOG.md index 7667fced..e574c802 100644 --- a/projects/mdb-angular-ui-kit/CHANGELOG.md +++ b/projects/mdb-angular-ui-kit/CHANGELOG.md @@ -1,3 +1,40 @@ +## 8.0.0 (07.04.2025) + +This version requires Angular v19. Follow the [Angular Update Guide](https://angular.dev/update-guide) to migrate your project to Angular 19. + +### Breaking changes: + +- Updated Angular to v19, this version is required in MDB Angular v8 +- Older theming styles are no longer supported, use new [color modes](https://mdbootstrap.com/docs/angular/content-styles/theme/) instead +- Slightly increased cell width in [Datepicker](https://mdbootstrap.com/docs/angular/forms/datepicker/) +- The `.navbar-light` class is no longer used in [Navbar](https://mdbootstrap.com/docs/angular/navigation/navbar), use [color modes](https://mdbootstrap.com/docs/angular/content-styles/theme/) instead + +### Design updates: + +Introduced a new theming system that allows setting the theme for the entire page, its parts, or selected elements using data attributes. + +Read [Colors modes](https://mdbootstrap.com/docs/angular/content-styles/theme/) page to learn more about new theming. + +### Fixes and improvements: + +- [Modal](https://mdbootstrap.com/docs/angular/components/modal/) - resolved problem with opening animation +- [Select](https://mdbootstrap.com/docs/angular/forms/select/) - resolved problem with not hiding option groups labels when using filter +- [Popconfirm](https://mdbootstrap.com/docs/angular/components/popconfirm/) - added default offset to the component +- [Datepicker](https://mdbootstrap.com/docs/angular/forms/datepicker/) - fixed date parsing bug for `yy` year format +- [Stepper](https://mdbootstrap.com/docs/angular/components/stepper/) - added 'Optional' text to the steps that use `optional` input +- [Onboarding](https://mdbootstrap.com/docs/angular/plugins/onboarding/) - added gap between the buttons and fixed border styles +- Fixed [Datepicker](https://mdbootstrap.com/docs/angular/forms/datepicker/) and [Timepicker](https://mdbootstrap.com/docs/angular/forms/timepicker/) toggle button padding in Firefox browser +- Removed unnecessary `BrowserAnimationsModule` imports from [Onboarding](https://mdbootstrap.com/docs/angular/plugins/onboarding/), [Ecommerce gallery](https://mdbootstrap.com/docs/angular/plugins/ecommerce-gallery/) and [Organization chart](https://mdbootstrap.com/docs/angular/plugins/organization-chart/) plugins + +### New features: + +- Added new SCSS and CSS variables for plugins styles +- [File upload](https://mdbootstrap.com/docs/angular/plugins/file-upload/) - added new `mimeTypes` input that allow to define a list of mime types for supported file types +- [Multi item carousel](https://mdbootstrap.com/docs/angular/plugins/multi-item-carousel/) - added new `(slideClick)` event +- [Color picker](https://mdbootstrap.com/docs/angular/plugins/color-picker/) - added new `color-picker-next-format-button`, `color-picker-previous-format-button` and `color-picker-copy-button` classes for the buttons + +--- + ## 7.1.0 (18.11.2024) ### Fixes and improvements: diff --git a/projects/mdb-angular-ui-kit/accordion/accordion-item-content.directive.ts b/projects/mdb-angular-ui-kit/accordion/accordion-item-content.directive.ts index 4c6d371e..9eac351b 100644 --- a/projects/mdb-angular-ui-kit/accordion/accordion-item-content.directive.ts +++ b/projects/mdb-angular-ui-kit/accordion/accordion-item-content.directive.ts @@ -5,10 +5,10 @@ export const MDB_ACCORDION_ITEM_BODY = new InjectionToken) {} diff --git a/projects/mdb-angular-ui-kit/accordion/accordion-item-header.directive.ts b/projects/mdb-angular-ui-kit/accordion/accordion-item-header.directive.ts index a848a6b2..647f341c 100644 --- a/projects/mdb-angular-ui-kit/accordion/accordion-item-header.directive.ts +++ b/projects/mdb-angular-ui-kit/accordion/accordion-item-header.directive.ts @@ -5,10 +5,10 @@ export const MDB_ACCORDION_ITEM_HEADER = new InjectionToken) {} diff --git a/projects/mdb-angular-ui-kit/accordion/accordion-item.component.ts b/projects/mdb-angular-ui-kit/accordion/accordion-item.component.ts index eab75878..c5777d0c 100644 --- a/projects/mdb-angular-ui-kit/accordion/accordion-item.component.ts +++ b/projects/mdb-angular-ui-kit/accordion/accordion-item.component.ts @@ -21,10 +21,10 @@ let uniqueHeaderId = 0; let uniqueId = 0; @Component({ - selector: 'mdb-accordion-item', - templateUrl: './accordion-item.component.html', - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: false + selector: 'mdb-accordion-item', + templateUrl: './accordion-item.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: false, }) export class MdbAccordionItemComponent implements OnInit { @ContentChild(MDB_ACCORDION_ITEM_HEADER, { read: TemplateRef, static: true }) diff --git a/projects/mdb-angular-ui-kit/accordion/accordion.component.ts b/projects/mdb-angular-ui-kit/accordion/accordion.component.ts index a8af8fa2..6d462f0a 100644 --- a/projects/mdb-angular-ui-kit/accordion/accordion.component.ts +++ b/projects/mdb-angular-ui-kit/accordion/accordion.component.ts @@ -13,10 +13,10 @@ import { MdbAccordionItemComponent } from './accordion-item.component'; import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; @Component({ - selector: 'mdb-accordion', - templateUrl: './accordion.component.html', - changeDetection: ChangeDetectionStrategy.OnPush, - standalone: false + selector: 'mdb-accordion', + templateUrl: './accordion.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: false, }) export class MdbAccordionComponent implements AfterContentInit { @ContentChildren(MdbAccordionItemComponent) items: QueryList; diff --git a/projects/mdb-angular-ui-kit/accordion/accordion.spec.ts b/projects/mdb-angular-ui-kit/accordion/accordion.spec.ts index 353c2cf9..5248eb2e 100644 --- a/projects/mdb-angular-ui-kit/accordion/accordion.spec.ts +++ b/projects/mdb-angular-ui-kit/accordion/accordion.spec.ts @@ -48,6 +48,7 @@ const template = ` @Component({ selector: 'mdb-accordion-test', template, + standalone: false, }) class TestAccordionComponent { @ViewChildren(MdbAccordionItemComponent) _accordionItems: QueryList; diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_accordion.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_accordion.scss index f09601ba..75588a5a 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_accordion.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_accordion.scss @@ -147,3 +147,12 @@ } } } + +@if $enable-dark-mode { + @include color-mode(dark) { + .accordion-button::after { + --#{$prefix}accordion-btn-icon: #{escape-svg($accordion-button-icon-dark)}; + --#{$prefix}accordion-btn-active-icon: #{escape-svg($accordion-button-active-icon-dark)}; + } + } +} diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_alert.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_alert.scss index 41adbcc4..b8cff9b7 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_alert.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_alert.scss @@ -1,7 +1,7 @@ // // Base styles // -@use 'sass:math'; + .alert { // scss-docs-start alert-css-vars --#{$prefix}alert-bg: transparent; @@ -12,6 +12,7 @@ --#{$prefix}alert-border-color: transparent; --#{$prefix}alert-border: #{$alert-border-width} solid var(--#{$prefix}alert-border-color); --#{$prefix}alert-border-radius: #{$alert-border-radius}; + --#{$prefix}alert-link-color: inherit; // scss-docs-end alert-css-vars position: relative; @@ -32,6 +33,7 @@ // Provide class for links that match alerts .alert-link { font-weight: $alert-link-font-weight; + color: var(--#{$prefix}alert-link-color); } @@ -54,18 +56,13 @@ // scss-docs-start alert-modifiers -// Generate contextual modifier classes for colorizing the alert. - -@each $state, $value in $theme-colors { - $alert-background: shift-color($value, $alert-bg-scale); - $alert-border: shift-color($value, $alert-border-scale); - $alert-color: shift-color($value, $alert-color-scale); - - @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) { - $alert-color: mix($value, color-contrast($alert-background), math.abs($alert-color-scale)); - } +// Generate contextual modifier classes for colorizing the alert +@each $state in map-keys($theme-colors) { .alert-#{$state} { - @include alert-variant($alert-background, $alert-border, $alert-color); + --#{$prefix}alert-color: var(--#{$prefix}#{$state}-text-emphasis); + --#{$prefix}alert-bg: var(--#{$prefix}#{$state}-bg-subtle); + --#{$prefix}alert-border-color: var(--#{$prefix}#{$state}-border-subtle); + --#{$prefix}alert-link-color: var(--#{$prefix}#{$state}-text-emphasis); } } // scss-docs-end alert-modifiers diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_button-group.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_button-group.scss index 79b100cb..55ae3f65 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_button-group.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_button-group.scss @@ -39,7 +39,7 @@ // Prevent double borders when buttons are next to each other > :not(.btn-check:first-child) + .btn, > .btn-group:not(:first-child) { - margin-left: -$btn-border-width; + margin-left: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list } // Reset rounded corners @@ -126,7 +126,7 @@ > .btn:not(:first-child), > .btn-group:not(:first-child) { - margin-top: -$btn-border-width; + margin-top: calc(#{$btn-border-width} * -1); // stylelint-disable-line function-disallowed-list } // Reset rounded corners diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_buttons.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_buttons.scss index f2c4c13a..e14a1843 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_buttons.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_buttons.scss @@ -10,7 +10,7 @@ @include rfs($btn-font-size, --#{$prefix}btn-font-size); --#{$prefix}btn-font-weight: #{$btn-font-weight}; --#{$prefix}btn-line-height: #{$btn-line-height}; - --#{$prefix}btn-color: #{$body-color}; + --#{$prefix}btn-color: #{$btn-color}; --#{$prefix}btn-bg: transparent; --#{$prefix}btn-border-width: #{$btn-border-width}; --#{$prefix}btn-border-color: transparent; @@ -169,8 +169,8 @@ --#{$prefix}btn-active-border-color: transparent; --#{$prefix}btn-disabled-color: #{$btn-link-disabled-color}; --#{$prefix}btn-disabled-border-color: transparent; - --#{$prefix}btn-box-shadow: none; - --#{$prefix}btn-focus-shadow-rgb: #{to-rgb(mix(color-contrast($primary), $primary, 15%))}; + --#{$prefix}btn-box-shadow: 0 0 0 #000; // Can't use `none` as keyword negates all values when used with multiple shadows + --#{$prefix}btn-focus-shadow-rgb: #{$btn-link-focus-shadow-rgb}; text-decoration: $link-decoration; @if $enable-gradients { diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_card.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_card.scss index ce8c02f1..d3535a98 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_card.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_card.scss @@ -7,6 +7,8 @@ --#{$prefix}card-spacer-y: #{$card-spacer-y}; --#{$prefix}card-spacer-x: #{$card-spacer-x}; --#{$prefix}card-title-spacer-y: #{$card-title-spacer-y}; + --#{$prefix}card-title-color: #{$card-title-color}; + --#{$prefix}card-subtitle-color: #{$card-subtitle-color}; --#{$prefix}card-border-width: #{$card-border-width}; --#{$prefix}card-border-color: #{$card-border-color}; --#{$prefix}card-border-radius: #{$card-border-radius}; @@ -28,6 +30,7 @@ flex-direction: column; min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106 height: var(--#{$prefix}card-height); + color: var(--#{$prefix}body-color); word-wrap: break-word; background-color: var(--#{$prefix}card-bg); background-clip: border-box; @@ -73,11 +76,13 @@ .card-title { margin-bottom: var(--#{$prefix}card-title-spacer-y); + color: var(--#{$prefix}card-title-color); } .card-subtitle { margin-top: calc(-.5 * var(--#{$prefix}card-title-spacer-y)); // stylelint-disable-line function-disallowed-list margin-bottom: 0; + color: var(--#{$prefix}card-subtitle-color); } .card-text:last-child { diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_carousel.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_carousel.scss index 858b8363..0ac8f871 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_carousel.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_carousel.scss @@ -165,7 +165,6 @@ margin-right: $carousel-control-width; margin-bottom: 1rem; margin-left: $carousel-control-width; - list-style: none; [data-bs-target] { box-sizing: content-box; @@ -210,7 +209,7 @@ // Dark mode carousel -.carousel-dark { +@mixin carousel-dark() { .carousel-control-prev-icon, .carousel-control-next-icon { filter: $carousel-dark-control-icon-filter; @@ -224,3 +223,22 @@ color: $carousel-dark-caption-color; } } + +.carousel-dark { + @include carousel-dark(); +} + +@if $enable-dark-mode { + @include color-mode(dark) { + @if $color-mode-type == "media-query" { + .carousel { + @include carousel-dark(); + } + } @else { + .carousel, + &.carousel { + @include carousel-dark(); + } + } + } +} diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_close.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_close.scss index a0813de8..4d6e73c1 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_close.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_close.scss @@ -4,37 +4,60 @@ // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile .btn-close { + // scss-docs-start close-css-vars + --#{$prefix}btn-close-color: #{$btn-close-color}; + --#{$prefix}btn-close-bg: #{ escape-svg($btn-close-bg) }; + --#{$prefix}btn-close-opacity: #{$btn-close-opacity}; + --#{$prefix}btn-close-hover-opacity: #{$btn-close-hover-opacity}; + --#{$prefix}btn-close-focus-shadow: #{$btn-close-focus-shadow}; + --#{$prefix}btn-close-focus-opacity: #{$btn-close-focus-opacity}; + --#{$prefix}btn-close-disabled-opacity: #{$btn-close-disabled-opacity}; + --#{$prefix}btn-close-white-filter: #{$btn-close-white-filter}; + // scss-docs-end close-css-vars + box-sizing: content-box; width: $btn-close-width; height: $btn-close-height; padding: $btn-close-padding-y $btn-close-padding-x; - color: $btn-close-color; - background: transparent escape-svg($btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements + color: var(--#{$prefix}btn-close-color); + background: transparent var(--#{$prefix}btn-close-bg) center / $btn-close-width auto no-repeat; // include transparent for button elements border: 0; // for button elements @include border-radius(); - opacity: $btn-close-opacity; + opacity: var(--#{$prefix}btn-close-opacity); // Override 's hover style &:hover { - color: $btn-close-color; + color: var(--#{$prefix}btn-close-color); text-decoration: none; - opacity: $btn-close-hover-opacity; + opacity: var(--#{$prefix}btn-close-hover-opacity); } &:focus { outline: 0; - box-shadow: $btn-close-focus-shadow; - opacity: $btn-close-focus-opacity; + box-shadow: var(--#{$prefix}btn-close-focus-shadow); + opacity: var(--#{$prefix}btn-close-focus-opacity); } &:disabled, &.disabled { pointer-events: none; user-select: none; - opacity: $btn-close-disabled-opacity; + opacity: var(--#{$prefix}btn-close-disabled-opacity); } } +@mixin btn-close-white() { + filter: var(--#{$prefix}btn-close-white-filter); +} + .btn-close-white { - filter: $btn-close-white-filter; + @include btn-close-white(); +} + +@if $enable-dark-mode { + @include color-mode(dark) { + .btn-close { + @include btn-close-white(); + } + } } diff --git a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_dropdown.scss b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_dropdown.scss index 8899d25a..587ebb48 100644 --- a/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_dropdown.scss +++ b/projects/mdb-angular-ui-kit/assets/scss/bootstrap/_dropdown.scss @@ -184,6 +184,7 @@ white-space: nowrap; // prevent links from randomly breaking onto new lines background-color: transparent; // For ` @@ -27,8 +27,8 @@ import { BrowserModule } from '@angular/platform-browser'; `, - providers: [MdbModalService], - standalone: false + providers: [MdbModalService], + standalone: false, }) class BasicModalComponent { constructor(public modal: MdbModalService) {} diff --git a/projects/mdb-angular-ui-kit/package.json b/projects/mdb-angular-ui-kit/package.json index 03d3bbff..ed6ff277 100644 --- a/projects/mdb-angular-ui-kit/package.json +++ b/projects/mdb-angular-ui-kit/package.json @@ -4,7 +4,7 @@ "homepage": "https://mdbootstrap.com/docs/b5/angular/", "author": "MDBootstrap", "license": "MIT", - "version": "7.1.0", + "version": "8.0.0", "peerDependencies": { "@angular/common": "^19.0.0", "@angular/core": "^19.0.0", diff --git a/projects/mdb-angular-ui-kit/popover/popover.component.ts b/projects/mdb-angular-ui-kit/popover/popover.component.ts index 9a9b9f32..c3bdfab0 100644 --- a/projects/mdb-angular-ui-kit/popover/popover.component.ts +++ b/projects/mdb-angular-ui-kit/popover/popover.component.ts @@ -9,18 +9,18 @@ import { import { trigger, style, animate, transition, state, AnimationEvent } from '@angular/animations'; import { Subject } from 'rxjs'; @Component({ - selector: 'mdb-popover', - templateUrl: 'popover.component.html', - changeDetection: ChangeDetectionStrategy.OnPush, - animations: [ - trigger('fade', [ - state('visible', style({ opacity: 1 })), - state('hidden', style({ opacity: 0 })), - transition('visible <=> hidden', animate('150ms linear')), - transition(':enter', animate('150ms linear')), - ]), - ], - standalone: false + selector: 'mdb-popover', + templateUrl: 'popover.component.html', + changeDetection: ChangeDetectionStrategy.OnPush, + animations: [ + trigger('fade', [ + state('visible', style({ opacity: 1 })), + state('hidden', style({ opacity: 0 })), + transition('visible <=> hidden', animate('150ms linear')), + transition(':enter', animate('150ms linear')), + ]), + ], + standalone: false, }) export class MdbPopoverComponent { @Input({ transform: booleanAttribute }) animation: boolean; diff --git a/projects/mdb-angular-ui-kit/popover/popover.directive.spec.ts b/projects/mdb-angular-ui-kit/popover/popover.directive.spec.ts index 22859f20..a7f091ed 100644 --- a/projects/mdb-angular-ui-kit/popover/popover.directive.spec.ts +++ b/projects/mdb-angular-ui-kit/popover/popover.directive.spec.ts @@ -182,8 +182,8 @@ describe('MDB Popover', () => { }); @Component({ - selector: 'mdb-test-tooltip', - template: ` `, - standalone: false + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix class TestPopoverComponent { @@ -204,26 +204,26 @@ class TestPopoverComponent { } @Component({ - selector: 'mdb-test-popover2', - template: ` `, - standalone: false + selector: 'mdb-test-popover2', + template: ` `, + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix class TestPopoverComponent2 {} @Component({ - selector: 'mdb-test-popover2', - template: ` `, - standalone: false + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix class TestPopoverComponent3 {} @Component({ - selector: 'mdb-test-popover4', - template: ``, - standalone: false + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix class TestTooltipComponent { @@ -172,19 +172,19 @@ class TestTooltipComponent { } @Component({ - selector: 'mdb-test-tooltip2', - template: ` `, - standalone: false + selector: 'mdb-test-tooltip2', + template: ` `, + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix class TestTooltipComponent2 {} @Component({ - selector: 'mdb-test-tooltip2', - template: ` `, - standalone: false + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix class TestTooltipComponent3 {} diff --git a/projects/mdb-angular-ui-kit/tooltip/tooltip.directive.ts b/projects/mdb-angular-ui-kit/tooltip/tooltip.directive.ts index 206676ed..265e3bd3 100644 --- a/projects/mdb-angular-ui-kit/tooltip/tooltip.directive.ts +++ b/projects/mdb-angular-ui-kit/tooltip/tooltip.directive.ts @@ -22,10 +22,10 @@ import { fromEvent, Subject } from 'rxjs'; import { first, takeUntil } from 'rxjs/operators'; @Directive({ - // eslint-disable-next-line @angular-eslint/directive-selector - selector: '[mdbTooltip]', - exportAs: 'mdbTooltip', - standalone: false + // eslint-disable-next-line @angular-eslint/directive-selector + selector: '[mdbTooltip]', + exportAs: 'mdbTooltip', + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix export class MdbTooltipDirective implements OnInit, OnDestroy { @@ -37,7 +37,7 @@ export class MdbTooltipDirective implements OnInit, OnDestroy { @Input() trigger = 'hover focus'; @Input() delayShow = 0; @Input() delayHide = 0; - @Input() offset = 0; + @Input() offset = 6; @Output() tooltipShow: EventEmitter = new EventEmitter(); @Output() tooltipShown: EventEmitter = new EventEmitter(); diff --git a/projects/mdb-angular-ui-kit/validation/error.directive.ts b/projects/mdb-angular-ui-kit/validation/error.directive.ts index 8101fe61..ad7c17ea 100644 --- a/projects/mdb-angular-ui-kit/validation/error.directive.ts +++ b/projects/mdb-angular-ui-kit/validation/error.directive.ts @@ -13,9 +13,9 @@ import { takeUntil } from 'rxjs/operators'; let defaultIdNumber = 0; @Component({ - selector: 'mdb-error', - template: '', - standalone: false + selector: 'mdb-error', + template: '', + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix export class MdbErrorDirective implements OnInit, OnDestroy { diff --git a/projects/mdb-angular-ui-kit/validation/success.directive.ts b/projects/mdb-angular-ui-kit/validation/success.directive.ts index 3db7fc92..0eeeacc5 100644 --- a/projects/mdb-angular-ui-kit/validation/success.directive.ts +++ b/projects/mdb-angular-ui-kit/validation/success.directive.ts @@ -13,9 +13,9 @@ import { takeUntil } from 'rxjs/operators'; let defaultIdNumber = 0; @Component({ - selector: 'mdb-success', - template: '', - standalone: false + selector: 'mdb-success', + template: '', + standalone: false, }) // eslint-disable-next-line @angular-eslint/component-class-suffix export class MdbSuccessDirective implements OnInit, OnDestroy { diff --git a/projects/mdb-angular-ui-kit/validation/validate.directive.spec.ts b/projects/mdb-angular-ui-kit/validation/validate.directive.spec.ts index 3f9e57e8..eb24d105 100644 --- a/projects/mdb-angular-ui-kit/validation/validate.directive.spec.ts +++ b/projects/mdb-angular-ui-kit/validation/validate.directive.spec.ts @@ -9,6 +9,7 @@ const template = ` @Component({ selector: 'mdb-collapse-test', template, + standalone: false, }) class TestValidateComponent { success = true; diff --git a/projects/mdb-angular-ui-kit/validation/validate.directive.ts b/projects/mdb-angular-ui-kit/validation/validate.directive.ts index 1e302574..41d649b8 100644 --- a/projects/mdb-angular-ui-kit/validation/validate.directive.ts +++ b/projects/mdb-angular-ui-kit/validation/validate.directive.ts @@ -2,9 +2,9 @@ import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'; import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core'; @Directive({ - // eslint-disable-next-line @angular-eslint/directive-selector - selector: '[mdbValidate]', - standalone: false + // eslint-disable-next-line @angular-eslint/directive-selector + selector: '[mdbValidate]', + standalone: false, }) export class MdbValidateDirective implements OnInit { private _validate = true;