/** * Copyright Aquera Inc 2026 * * 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'; export const styles = css` :host { -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; width: 100%; } .segmented-progress-bar { display: flex; flex-direction: column; gap: var(--nile-spacing-sm, var(--ng-spacing-2)); box-sizing: border-box; width: 100%; min-width: 0; font-family: var(--nile-font-family-serif, var(--ng-font-family-body)); } /* #region Label */ .segmented-progress-bar__label { font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm)); line-height: var(--nile-type-scale-5, var(--ng-line-height-text-sm)); font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-medium)); color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900)); } /* #endregion */ /* #region Track */ .segmented-progress-bar__track { display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; min-width: 0; box-sizing: border-box; overflow: hidden; background-color: var( --nile-progress-bar-track-color-stroke, var(--ng-colors-bg-quaternary) ); border-radius: var(--nile-radius-none, var(--ng-radius-none)); height: var(--nile-height-8px, var(--ng-height-8px)); } .segmented-progress-bar--rounded .segmented-progress-bar__track { border-radius: var(--nile-radius-full, var(--ng-radius-full)); } .segmented-progress-bar--small .segmented-progress-bar__track { height: var(--nile-height-4px, var(--ng-height-4px)); } .segmented-progress-bar--medium .segmented-progress-bar__track { height: var(--nile-height-8px, var(--ng-height-8px)); } .segmented-progress-bar--large .segmented-progress-bar__track { height: var(--nile-height-12px, var(--ng-height-12px)); } .segmented-progress-bar__track nile-lite-tooltip { display: contents; } /* #endregion */ /* #region Segments */ .segmented-progress-bar__segment { appearance: none; -webkit-appearance: none; display: block; padding: var(--nile-spacing-none, var(--ng-spacing-0)); margin: var(--nile-spacing-none, var(--ng-spacing-0)); border: none; border-radius: var(--nile-radius-none, var(--ng-radius-none)); height: 100%; align-self: stretch; box-sizing: border-box; cursor: pointer; flex-grow: 0; transition: opacity 0.15s ease-in-out; } .segmented-progress-bar__segment:hover { opacity: 0.85; } .segmented-progress-bar__segment:focus-visible { outline: var(--nile-height-2px, var(--ng-height-2px)) solid var(--nile-colors-brand-600, var(--ng-colors-border-brand)); outline-offset: var(--nile-height-1px, var(--ng-height-1px)); } /* #endregion */ .segmented-progress-bar__palette-0 { background-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500)); } .segmented-progress-bar__palette-1 { background-color: var(--nile-colors-red-500, var(--ng-componentcolors-utility-error-500)); } .segmented-progress-bar__palette-2 { background-color: var(--nile-colors-orange-500, var(--ng-componentcolors-utility-orange-500)); } .segmented-progress-bar__palette-3 { background-color: var(--nile-colors-blue-500, var(--ng-componentcolors-utility-blue-500)); } .segmented-progress-bar__palette-4 { background-color: var(--nile-colors-neutral-700, var(--ng-componentcolors-utility-gray-500)); } .segmented-progress-bar__palette-5 { background-color: var(--nile-colors-purple-500, var(--ng-componentcolors-utility-purple-500)); } .segmented-progress-bar__palette-6 { background-color: var(--nile-colors-yellow-500, var(--ng-componentcolors-utility-warning-500)); } .segmented-progress-bar__palette-7 { background-color: var(--nile-colors-pink-500, var(--ng-componentcolors-utility-pink-500)); } .segmented-progress-bar__palette-8 { background-color: var(--nile-colors-indigo-500, var(--ng-componentcolors-utility-indigo-500)); } .segmented-progress-bar__palette-9 { background-color: var(--nile-colors-fuchsia-500, var(--ng-componentcolors-utility-fuchsia-500)); } /* #endregion */ /* #region Legend */ .segmented-progress-bar__legend { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--nile-spacing-lg, var(--ng-spacing-4)); row-gap: var(--nile-spacing-sm, var(--ng-spacing-2)); width: 100%; min-width: 0; margin-top: var(--nile-spacing-xs, var(--ng-spacing-1)); } .segmented-progress-bar__legend-item { appearance: none; -webkit-appearance: none; display: inline-flex; align-items: center; gap: var(--nile-spacing-xs, var(--ng-spacing-2)); padding: var(--nile-spacing-none, var(--ng-spacing-0)); margin: var(--nile-spacing-none, var(--ng-spacing-0)); border: none; background: none; border-radius: var(--nile-radius-xs, var(--ng-radius-xs)); cursor: pointer; /* Keep swatch, label and value on one line — never break mid-entry. */ white-space: nowrap; flex: 0 0 auto; max-width: 100%; font-family: inherit; text-align: left; } .segmented-progress-bar__legend-item:focus-visible { outline: var(--nile-height-2px, var(--ng-height-2px)) solid var(--nile-colors-brand-600, var(--ng-colors-border-brand)); outline-offset: var(--nile-height-2px, var(--ng-height-2px)); } .segmented-progress-bar__legend-swatch { flex: none; width: var(--nile-height-10px, var(--ng-height-10px)); height: var(--nile-height-10px, var(--ng-height-10px)); border-radius: var(--nile-radius-xxs, var(--ng-radius-xxs)); } .segmented-progress-bar__legend-label { font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm)); line-height: var(--nile-type-scale-5, var(--ng-line-height-text-sm)); font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular)); color: var(--nile-colors-text-secondary, var(--ng-colors-text-secondary-700)); overflow: hidden; text-overflow: ellipsis; } .segmented-progress-bar__legend-value { font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm)); line-height: var(--nile-type-scale-5, var(--ng-line-height-text-sm)); font-weight: var(--nile-font-weight-bold, var(--ng-font-weight-semibold)); color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900)); } /* #endregion */ /* #region Sizes — legend scales with the bar */ .segmented-progress-bar--small .segmented-progress-bar__legend-swatch { width: var(--nile-height-8px, var(--ng-height-8px)); height: var(--nile-height-8px, var(--ng-height-8px)); } .segmented-progress-bar--small .segmented-progress-bar__legend-label, .segmented-progress-bar--small .segmented-progress-bar__legend-value { font-size: var(--nile-type-scale-1, var(--ng-font-size-text-xs)); line-height: var(--nile-type-scale-4, var(--ng-line-height-text-xs)); } .segmented-progress-bar--large .segmented-progress-bar__legend-swatch { width: var(--nile-height-12px, var(--ng-height-12px)); height: var(--nile-height-12px, var(--ng-height-12px)); } .segmented-progress-bar--large .segmented-progress-bar__legend-label, .segmented-progress-bar--large .segmented-progress-bar__legend-value { font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md)); line-height: var(--nile-type-scale-6, var(--ng-line-height-text-md)); } /* #endregion */ @media (prefers-reduced-motion: reduce) { .segmented-progress-bar__segment { transition: none; } } `; export default [styles];