diff --git a/.changeset/ninety-trains-push.md b/.changeset/ninety-trains-push.md new file mode 100644 index 0000000000..987739dda5 --- /dev/null +++ b/.changeset/ninety-trains-push.md @@ -0,0 +1,5 @@ +--- +'@baloise/design-system-components': patch +--- + +The arrow position in the navigation popover has been adjusted, and the CSS utility class 'container' has been removed from the navigation component. diff --git a/CHANGELOG_NEXT.md b/CHANGELOG_NEXT.md index e92795a902..20c1eadcf5 100644 --- a/CHANGELOG_NEXT.md +++ b/CHANGELOG_NEXT.md @@ -559,7 +559,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline * **main nav desktop:** other test ([7cc4394](https://github.com/baloise/design-system/commit/7cc439496b2e5d3c37383853a25950f4dae74794)) * **main nav desktop:** updated dependencies ([35973d0](https://github.com/baloise/design-system/commit/35973d002d0cdcfa49e393198a1baf1d8e609166)) - ### Bug Fixes * **input:** format according to the pattern and enable Home/End key. Closes [#243](https://github.com/baloise/design-system/issues/243) ([bb1e5a3](https://github.com/baloise/design-system/commit/bb1e5a31b00a9df3010e05d32bef74209b619dda)) @@ -701,7 +700,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ## [10.20.2](https://github.com/baloise/design-system/compare/v10.20.1...v10.20.2) (2022-09-02) - ### Bug Fixes * fix bal-input mask when deleting last character error popped up ([db14042](https://github.com/baloise/design-system/commit/db14042311dc516a2b752b41593ae4dcdb5fba09)) @@ -712,7 +710,6 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline ## [10.20.1](https://github.com/baloise/design-system/compare/v10.20.0...v10.20.1) (2022-09-01) - ### Bug Fixes * **closable-popover:** fix the click outside on popover ([f44dfe0](https://github.com/baloise/design-system/commit/f44dfe0bea15bcbe42e43f8eb0d1b7dc9e4c4b7a)) diff --git a/packages/components/src/components.d.ts b/packages/components/src/components.d.ts index 4d47374685..4b31ab6e28 100644 --- a/packages/components/src/components.d.ts +++ b/packages/components/src/components.d.ts @@ -2518,6 +2518,7 @@ export namespace Components { * Id of the reference element default is the trigger element. */ "reference"?: string; + "setMinWidth": (value: number) => Promise; /** * Triggers the popup */ diff --git a/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.sass b/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.sass index c53ea6f09a..5853329d64 100644 --- a/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.sass +++ b/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.sass @@ -10,6 +10,31 @@ width: 100% z-index: var(--bal-z-index-navigation) // + // container adjustment + &__container + flex-grow: 1 + margin: 0 auto + position: relative + width: auto + width: 100% !important + padding-left: var(--bal-container-space) + padding-right: var(--bal-container-space) + &--fluid + max-width: var(--bal-container-size-fluid) !important + &--detail-page + max-width: var(--bal-container-size-detail-page) !important + &--compact + max-width: var(--bal-container-size-compact) !important + &--blog-page + max-width: var(--bal-container-size-blog-page) !important + +tablet + padding-left: var(--bal-container-space-tablet) + padding-right: var(--bal-container-space-tablet) + +desktop + padding-left: var(--bal-container-space-desktop) + padding-right: var(--bal-container-space-desktop) + max-width: var(--bal-container-size-normal) + // // hidden &--hidden-mobile +mobile @@ -42,7 +67,7 @@ background: transparent box-shadow: none -.bal-nav-menu-bar__inner > .container +.bal-nav-menu-bar__inner > .bal-nav-menu-bar__container min-height: 64px +widescreen background: var(--bal-nav-menu-bar-background) diff --git a/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.tsx b/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.tsx index f3a4ae6c2c..1d427e4b49 100644 --- a/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.tsx +++ b/packages/components/src/components/bal-nav/bal-nav-menu-bar/bal-nav-menu-bar.tsx @@ -72,7 +72,7 @@ export class NavMenuBar implements ComponentInterface, Loggable { >
diff --git a/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.sass b/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.sass index 105565f084..6d6278e118 100644 --- a/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.sass +++ b/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.sass @@ -15,6 +15,31 @@ width: calc( 100% + 1rem + 1rem) margin-left: -1rem margin-right: -1rem + // + // container adjustment + &__container + flex-grow: 1 + margin: 0 auto + position: relative + width: auto + width: 100% !important + padding-left: var(--bal-container-space) + padding-right: var(--bal-container-space) + &--fluid + max-width: var(--bal-container-size-fluid) !important + &--detail-page + max-width: var(--bal-container-size-detail-page) !important + &--compact + max-width: var(--bal-container-size-compact) !important + &--blog-page + max-width: var(--bal-container-size-blog-page) !important + +tablet + padding-left: var(--bal-container-space-tablet) + padding-right: var(--bal-container-space-tablet) + +desktop + padding-left: var(--bal-container-space-desktop) + padding-right: var(--bal-container-space-desktop) + max-width: var(--bal-container-size-normal) // Line // -------------------------------------------------- diff --git a/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.tsx b/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.tsx index 387a9f2b60..9e5767c473 100644 --- a/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.tsx +++ b/packages/components/src/components/bal-nav/bal-nav-menu-flyout/bal-nav-menu-flyout.tsx @@ -89,7 +89,7 @@ export class NavMenuFlyout implements ComponentInterface, Loggable, BalResizeObs >
diff --git a/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.sass b/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.sass index 36767c744d..79a2af45ef 100644 --- a/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.sass +++ b/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.sass @@ -13,8 +13,29 @@ z-index: var(--bal-z-index-navigation) // // container adjustment - .container - height: 100% + &__container + flex-grow: 1 + margin: 0 auto + position: relative + width: auto + width: 100% !important + padding-left: var(--bal-container-space) + padding-right: var(--bal-container-space) + &--fluid + max-width: var(--bal-container-size-fluid) !important + &--detail-page + max-width: var(--bal-container-size-detail-page) !important + &--compact + max-width: var(--bal-container-size-compact) !important + &--blog-page + max-width: var(--bal-container-size-blog-page) !important + +tablet + padding-left: var(--bal-container-space-tablet) + padding-right: var(--bal-container-space-tablet) + +desktop + padding-left: var(--bal-container-space-desktop) + padding-right: var(--bal-container-space-desktop) + max-width: var(--bal-container-size-normal) // // size &--size-normal diff --git a/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.tsx b/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.tsx index 6c203103fd..5610fb230e 100644 --- a/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.tsx +++ b/packages/components/src/components/bal-nav/bal-nav-meta-bar/bal-nav-meta-bar.tsx @@ -109,7 +109,7 @@ export class NavMetaBar implements ComponentInterface, Loggable { >
diff --git a/packages/components/src/components/bal-nav/bal-nav.sass b/packages/components/src/components/bal-nav/bal-nav.sass index 4497679252..f2a04581ff 100644 --- a/packages/components/src/components/bal-nav/bal-nav.sass +++ b/packages/components/src/components/bal-nav/bal-nav.sass @@ -30,6 +30,31 @@ +desktop display: none visibility: hidden + // + // container adjustment + &__container + flex-grow: 1 + margin: 0 auto + position: relative + width: auto + width: 100% !important + padding-left: var(--bal-container-space) + padding-right: var(--bal-container-space) + &--fluid + max-width: var(--bal-container-size-fluid) !important + &--detail-page + max-width: var(--bal-container-size-detail-page) !important + &--compact + max-width: var(--bal-container-size-compact) !important + &--blog-page + max-width: var(--bal-container-size-blog-page) !important + +tablet + padding-left: var(--bal-container-space-tablet) + padding-right: var(--bal-container-space-tablet) + +desktop + padding-left: var(--bal-container-space-desktop) + padding-right: var(--bal-container-space-desktop) + max-width: var(--bal-container-size-normal) .bal-nav__flyout:not(.bal-nav__flyout--visible) +visually-hidden diff --git a/packages/components/src/components/bal-nav/bal-nav.tsx b/packages/components/src/components/bal-nav/bal-nav.tsx index 6185673331..8b99006260 100644 --- a/packages/components/src/components/bal-nav/bal-nav.tsx +++ b/packages/components/src/components/bal-nav/bal-nav.tsx @@ -63,6 +63,7 @@ export class NavMetaBar @State() language: BalLanguage = defaultConfig.language @State() region: BalRegion = defaultConfig.region @State() isFlyoutActive = false + private hasRenderedWithFlyoutActive = false @State() activeMetaLinkValue?: string @State() activeMenuLinkValue?: string // only for desktop tab view @@ -147,7 +148,7 @@ export class NavMetaBar triggerEl.classList.contains('bal-nav__popup--touch-top'), ) if (isTouchMetaTopButtonClicked) { - this.isFlyoutActive = false + this.closeFlyout() } } else { this.onPopupClose(triggers) @@ -158,12 +159,16 @@ export class NavMetaBar @Listen('click', { target: 'document', passive: true }) async clickOnOutside(ev: UIEvent) { if (this.isDesktop) { - if (this.isFlyoutActive) { - const targetIsInMetaBar = this.metaBarEl?.querySelector('.container')?.contains(ev.target as Node) - const targetIsInMenuBar = this.menuBarEl?.querySelector('.container')?.contains(ev.target as Node) + if (this.hasRenderedWithFlyoutActive) { + const targetIsInMetaBar = this.metaBarEl + ?.querySelector('.bal-nav-meta-bar__container') + ?.contains(ev.target as Node) + const targetIsInMenuBar = this.menuBarEl + ?.querySelector('.bal-nav-menu-bar__container') + ?.contains(ev.target as Node) if (!targetIsInMetaBar && !targetIsInMenuBar) { - this.isFlyoutActive = false + this.closeFlyout() const tabs = this.menuBarEl?.querySelector('.bal-tabs') as HTMLBalTabsElement tabs.closeAccordion() } @@ -184,7 +189,7 @@ export class NavMetaBar this.isTouch = breakpoints.touch this.isDesktop = breakpoints.desktop this.closeAllPopups() - this.isFlyoutActive = false + this.closeFlyout() } if (this.isTouch) { @@ -237,6 +242,22 @@ export class NavMetaBar * ------------------------------------------------------ */ + private toggleFlyout() { + if (this.isFlyoutActive) { + this.closeFlyout() + } else { + this.openFlyout() + } + } + + private closeFlyout() { + this.isFlyoutActive = false + } + + private openFlyout() { + this.isFlyoutActive = true + } + private async updateActiveItem(item: NavLinkItem) { if ('NavMetaLinkItem' === item.type) { this.activeMetaLinkValue = this.activeMetaLinkValue === item.value ? undefined : item.value @@ -290,7 +311,7 @@ export class NavMetaBar private onTouchToggleFlyout = (_ev: MouseEvent) => { this.closeAllPopups() - this.isFlyoutActive = !this.isFlyoutActive + this.toggleFlyout() if (balBrowser.hasWindow && window.scrollY > 0) { window.scrollTo(0, 0) @@ -343,9 +364,9 @@ export class NavMetaBar private onMenuBarTabChange = (value?: string): void => { if (this.activeMenuLinkValue === value) { - this.isFlyoutActive = !this.isFlyoutActive + this.toggleFlyout() } else { - this.isFlyoutActive = true + this.openFlyout() } this.activeMenuLinkValue = value } @@ -359,6 +380,8 @@ export class NavMetaBar const block = BEM.block('nav') const flyoutBlock = block.element('flyout') + this.hasRenderedWithFlyoutActive = this.isFlyoutActive + return ( -