/** * Copyright Aquera Inc 2023 * * This source code is licensed under the BSD-3-Clause license found in the * LICENSE file in the root directory of this source tree. */ import { css } from 'lit'; /** * TabGroup CSS */ export const styles = css` [hidden] { display: none !important; } :host { --indicator-color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); --track-color: var(--nile-colors-neutral-400, var(--ng-componentcolors-utility-gray-500)); --track-width: var(--nile-width-2px, var(--ng-width-0-5)); --tab-gap: var(--nile-spacing-lg, var(--ng-spacing-lg)); -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing)); -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing)); text-rendering: var(--nile-text-rendering, var(--ng-text-rendering)); display: block; } .tab-group { display: flex; border-radius: var(--nile-radius-none, var(--ng-radius-none)); } .tab-group__tabs { display: flex; position: relative; gap: var(--tab-gap); } .hide__track { --track-width: 0px; --tab-gap: var(--nile-spacing-3px, var(--ng-spacing-xs)); } .tab-group__indicator { position: absolute; transition: 0.3s translate ease, 0.3s width ease; } .tab-group__indicator__path{ position: absolute; height: var(--track-width); width: 100%; background: var(--nile-colors-neutral-400, var(--ng-colors-bg-quaternary)); bottom:0px; z-index:0; } .tab-group--has-scroll-controls .tab-group__nav-container { position: relative; padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg)); } .tab-group__body { display: block; overflow: auto; } .tab-group__scroll-button { display: flex; align-items: center; justify-content: center; position: absolute; top: 0; bottom: 0; width: 20px; } .tab-group__scroll-button--start { left: 0; } .tab-group__scroll-button--end { right: 0; } .tab-group--rtl .tab-group__scroll-button--start { left: auto; right: 0; } .tab-group--rtl .tab-group__scroll-button--end { left: 0; right: auto; } /* * Top */ .tab-group--top { flex-direction: column; } .tab-group--top .tab-group__nav-container { order: 1; } .tab-group--top .tab-group__nav { display: flex; overflow-x: auto; /* Hide scrollbar in Firefox */ scrollbar-width: none; } /* Hide scrollbar in Chrome/Safari */ .tab-group--top .tab-group__nav::-webkit-scrollbar { width: 0; height: 0; } .tab-group--top .tab-group__tabs { flex: 1 1 auto; position: relative; flex-direction: row; } .tab-group--top .tab-group__indicator { bottom: 0px; border-bottom: 2px solid var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); z-index:0; } .tab-group--top .tab-group__body { order: 2; } .tab-group--top ::slotted(nile-tab-panel) { --padding: var(--nile-spacing-10px, var(--ng-spacing-lg)) var(--nile-spacing-none, var(--ng-spacing-none)); } /* * Bottom */ .tab-group--bottom { flex-direction: column; } .tab-group--bottom .tab-group__nav-container { order: 2; } .tab-group--bottom .tab-group__nav { display: flex; overflow-x: auto; /* Hide scrollbar in Firefox */ scrollbar-width: none; } /* Hide scrollbar in Chrome/Safari */ .tab-group--bottom .tab-group__nav::-webkit-scrollbar { width: 0; height: 0; } .tab-group--bottom .tab-group__tabs { flex: 1 1 auto; position: relative; flex-direction: row; border-top: solid var(--track-width) var(--track-color); } .tab-group--bottom .tab-group__indicator { top: calc(-1 * var(--track-width)); border-top: solid var(--track-width) var(--indicator-color); } .tab-group--bottom .tab-group__body { order: 1; } .tab-group--bottom ::slotted(nile-tab-panel) { --padding: var(--nile-spacing-10px, var(--ng-spacing-2-5)) var(--nile-spacing-none, var(--ng-spacing-none)); } /* * Start */ .tab-group--start { flex-direction: row; } .tab-group--start .tab-group__nav-container { order: 1; } .tab-group--start .tab-group__tabs { flex: 0 0 auto; flex-direction: column; border-inline-end: solid var(--track-width) var(--track-color); } .tab-group--start .tab-group__indicator { right: calc(-1 * var(--track-width)); border-right: solid var(--track-width) var(--indicator-color); } .tab-group--start.tab-group--rtl .tab-group__indicator { right: auto; left: calc(-1 * var(--track-width)); } .tab-group--start .tab-group__body { flex: 1 1 auto; order: 2; } .tab-group--start ::slotted(nile-tab-panel) { --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-10px, var(--ng-spacing-lg)); } /* * End */ .tab-group--end { flex-direction: row; } .tab-group--end .tab-group__nav-container { order: 2; } .tab-group--end .tab-group__tabs { flex: 0 0 auto; flex-direction: column; border-left: solid var(--track-width) var(--track-color); } .tab-group--end .tab-group__indicator { left: calc(-1 * var(--track-width)); border-inline-start: solid var(--track-width) var(--indicator-color); } .tab-group--end.tab-group--rtl .tab-group__indicator { right: calc(-1 * var(--track-width)); left: auto; } .tab-group--end .tab-group__body { flex: 1 1 auto; order: 1; } .tab-group--end ::slotted(nile-tab-panel) { --padding: var(--nile-spacing-none, var(--ng-spacing-none)) var(--nile-spacing-lg, var(--ng-spacing-lg)); } .hide__track slot::slotted(nile-tab) { --tab-border-radius: var(--nile-radius-radius-xs, var(--ng-radius-xs)); --tab-padding:var(--nile-spacing-md, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); --tab-hover-background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary)); --tab-active-background-color: var(--nile-colors-brand-50, var(--ng-colors-bg-brand-primary-alt)); } `; export default [styles];