/** * 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'; /** * Select_2 CSS */ export const styles = css` :host { box-sizing: border-box; --ng-nxt-gen-outline: var(--ng-border-width-1) solid var(--ng-colors-border-brand); --ng-nxt-gen-outline-error: var(--ng-border-width-1) solid var(--ng-colors-border-error); --ng-private-outline-transparent: var(--ng-border-width-1) solid transparent; --ng-box-shadow: 0px 12px 16px -4px var(--ng-colors-effects-shadow-lg-01, rgba(10, 13, 18, 0.08)), 0px 4px 6px -2px var(--ng-colors-effects-shadow-lg-02, rgba(10, 13, 18, 0.03)), 0px 2px 2px -1px var(--ng-colors-effects-shadow-lg-03, rgba(10, 13, 18, 0.04)); -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)); } :host *, :host *::before, :host *::after { box-sizing: inherit; } :host([disabled]) .form-control--has-label .form-control__label { user-select: none; -webkit-user-select: none; } [hidden] { display: none !important; } .form-control .form-control__label { display: none; } .form-control .form-control__help-text { display: none; } /* Label */ .form-control--has-label .form-control__label { display: block; margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm)); color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700)); font-family: var(--nile-font-family-serif, var(--ng-font-family-body)); font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm)); font-style: normal; font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium)); line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm)); letter-spacing: 0.2px; } .form-control--has-label.form-control--medium .form-control__label { font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm)); } :host([required]) .form-control--has-label .form-control__label::after { content: '*'; margin-inline-start: -2px; color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600)); } /* Help text */ .form-control--has-help-text .form-control__help-text { display: block; color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600)); margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg)); } .form-control--has-help-text.form-control--medium .form-control__help-text { font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm)); } .form-control--has-help-text.form-control--radio-group .form-control__help-text { margin-top: var(--nile-spacing-xs, var(--ng-spacing-sm)); } :host { display: block; } /** The popup */ .select { flex: 1 1 auto; display: inline-flex; width: 100%; position: relative; vertical-align: middle; } .select::part(popup) { z-index: 9999; } .select[data-current-placement^='top']::part(popup) { transform-origin: bottom; } .select[data-current-placement^='bottom']::part(popup) { transform-origin: top; } /* Combobox */ .select__combobox { flex: 1; display: flex; width: 100%; min-width: 0; position: relative; align-items: center; justify-content: start; font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body)); font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium)); letter-spacing: normal; vertical-align: middle; overflow: hidden; cursor: pointer; transition: 150ms color, 150ms border, 150ms box-shadow, 150ms background-color; } .select__display-input { position: relative; width: 100%; font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular)); border: none; background: none; color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900)); cursor: inherit; overflow: hidden; padding: var(--nile-spacing-none, var(--ng-spacing-none)); margin: var(--nile-spacing-none, var(--ng-spacing-none)); -webkit-appearance: none; font-family: var(--nile-font-family-serif, var(--ng-font-family-body)); font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md)); } .select__display-input::placeholder { font-family: var(--nile-font-family-serif, var(--ng-font-family-body)); color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder)); font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md)); } .select--disabled.select--placeholder-visible .select__display-input::placeholder { color: var(--nile-colors-dark-500,var(--ng-colors-text-disabled)); } .select--disabled .select__display-input{ color:var(--nile-colors-dark-500, var(--ng-colors-text-disabled)); pointer-events:none; } .select:not(.select--disabled):hover .select__display-input { color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900)); } .select__display-input:focus { outline: none; } /* Visually hide the display input when multiple is enabled */ .select--multiple:not(.select--placeholder-visible) .select__display-input { position: absolute; z-index: -1; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; } .select__value-input { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: var(--nile-spacing-none); margin: var(--nile-spacing-none); opacity: 0; z-index: -1; } .select__tags { display: flex; flex: 1; align-items: center; flex-wrap: no-wrap; margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md)); width: 100%; overflow: hidden; } .select__tags-count { color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); font-family: var(--nile-font-family-serif, var(--ng-font-family-body)); font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm)); font-style: normal; font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular)); line-height: var(--nile-line-height-xsmall); letter-spacing: 0.2px; margin: var(--nile-spacing-sm, var(--ng-spacing-sm)); } .select__tags-count-clearable { margin-right: var(--nile-spacing-5xl, var(--ng-spacing-5xl)); } .select__tags::slotted(nile-tag) { cursor: pointer !important; } .select--disabled .select__tags, .select--disabled .select__tags::slotted(nile-tag) { cursor: not-allowed !important; } /* Standard selects */ .select--standard .select__combobox { background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary)); border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary)); /* outline: var(--nile-outline-none, var(--ng-private-outline-transparent)); */ } .select--standard .select__combobox:hover { border: 1px solid var(--nile-colors-dark-900, var(--ng-colors-border-neutral)); background: var(--nile-colors-white-base, var(--ng-colors-bg-primary)); /* outline: var(--nile-outline-none, var(--ng-nxt-gen-outline)); */ } .select--error:hover:not(.select--disabled) .select__combobox{ border-color: var(--nile-colors-red-500, var(--ng-colors-border-error)); /* outline: var(--nile-outline-none, var(--ng-colors-border-error)); */ } .select--standard.select--disabled .select__combobox { background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle)); border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-disabled) ); color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled)); cursor: not-allowed; outline: none; } .select--standard:not(.select--disabled).select--open .select__combobox, .select--standard:not(.select--disabled).select--focused .select__combobox { background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary)); } .select--warning .select__combobox { border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning)); } .select--error .select__combobox { border-color: var(--nile-colors-red-500, var(--ng-colors-border-error)); outline: var(--nile-outline-none, var(--ng-private-outline-transparent)); } .select--success { border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500)); } /* Filled selects */ .select--filled .select__combobox { border: none; background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary)); color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900)); } .select--filled:hover:not(.select--disabled) .select__combobox { background-color: var(--nile-colors-neutral-100); } .select--filled.select--disabled .select__combobox { background-color: var(--nile-colors-neutral-100); opacity: 0.5; cursor: not-allowed; } .select--filled:not(.select--disabled).select--open .select__combobox, .select--filled:not(.select--disabled).select--focused .select__combobox { background-color: var(--nile-colors-neutral-100); outline: 3px solid rgba(0, 89, 255, 0.4); } .select--medium .select__combobox { border-radius: var(--nile-radius-sm, var(--ng-radius-md)); font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md)); padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg)); height: var(--nile-height-40px, var(--ng-height-40px)); box-sizing: border-box; } .select--medium .select__clear { margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-lg)); margin-right: var(--nile-spacing-md, var(--ng-spacing-md)); } .select--medium .select__prefix::slotted(*) { margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md)); } .select--medium .select__prefix.multiple::slotted(*) { margin-right: var(--nile-spacing-md, var(--ng-spacing-md)); } .select--medium:not(.select--placeholder-visible) .select__prefix.multiple::slotted(*) { margin-inline-start: var(--nile-spacing-xsmall, var(--ng-spacing-lg)); } .select--medium.select--multiple:not(.select--placeholder-visible) .select__combobox { padding-inline-start: var(--nile-spacing-none, var(--ng-spacing-none)); } .select--medium .select__tags { gap: var(--nile-spacing-3px, var(--ng-spacing-sm)); } /* Pills */ .select--pill.select--medium .select__combobox { border-radius: var(--nile-radius-3xl); } /* Prefix */ .select__prefix { flex: 0; display: inline-flex; align-items: center; color: var(--nile-colors-dark-500); } .select__suffix { flex: 0; display: inline-flex; align-items: center; color: var(--nile-colors-dark-500); } /* Clear button */ .select__clear { display: inline-flex; align-items: center; justify-content: center; font-size: inherit; color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700)); border: none; background: none; padding: var(--nile-spacing-none); transition: 150ms color; cursor: pointer; } .select__clear:hover { color: var(--nile-colors-dark-500); } .select__clear:focus { outline: none; } /* Expand icon */ .select__expand-icon { flex: 0 0 auto; display: flex; align-items: center; transition: 250ms rotate ease; rotate: 0; margin-inline-start: var(--nile-spacing-md, var(--ng-spacing-md)); } .select--open .select__expand-icon { rotate: -180deg; } /* Listbox */ .select__listbox { display: block; position: relative; font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md)); font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular)); background: var(--nile-colors-white-base, var(--ng-colors-bg-primary)); border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-secondary-alt)); border-radius: var(--nile-radius-sm, var(--ng-radius-md)); padding-block: var(--nile-spacing-none, var(--ng-spacing-none)); padding-inline: var(--nile-spacing-none, var(--ng-spacing-none)); overflow: auto; overscroll-behavior: none; /* Make sure it adheres to the popup's auto size */ max-width: var(--auto-size-available-width); max-height: var(--auto-size-available-height); box-shadow: var(--nile-box-shadow-none, var(--ng-shadow-xs)); } .select__options__search-enabled { padding-top: var(--nile-spacing-10px, var(--ng-spacing-lg)); } .select__options { font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm)); color: rgb(133, 129, 129); } .select__listbox::slotted(nile-divider) { --spacing: var(--nile-spacing-xs, var(--ng-spacing-sm)); } .select__listbox::slotted(small) { font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm)); font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold)); color: var(--nile-colors-dark-500); padding-block: var(--nile-spacing-xs, var(--ng-spacing-sm)); padding-inline: var(--nile-spacing-xl, var(--ng-spacing-xl)); } .select__search { position: sticky; top: 0px; z-index: 1; width: calc(100% - 16px); padding: var(--nile-spacing-md, var(--ng-spacing-md)); background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary)); margin-bottom: -8px; } .select__pre-footer-area { position: sticky; bottom: 0; z-index: 1; background: var(--nile-colors-white-base, var(--ng-colors-bg-primary)); } .select__custom-footer { display: block; border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary)); background: var(--nile-colors-white-base, var(--ng-colors-bg-primary)); padding: var(--nile-spacing-lg, var(--ng-spacing-lg)) ; } .select__custom-footer:hover { background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover)); } .select__footer { position: sticky; bottom: 0px; background: var(--nile-colors-neutral-100); border-top: 1px solid var(--nile-colors-neutral-400); display: flex; height: 15px; /* Auto layout */ display:var(--nile-display-flex, var(--ng-display-none)); flex-direction: row; align-items: flex-start; padding: var(--nile-spacing-md) var(--nile-spacing-lg) var(--nile-spacing-xl); gap: var(--nile-spacing-lg, var(--ng-spacing-lg)); justify-content: space-between; } .tag__prefix[slot='prefix'] { height: 14px; display: inline-block; overflow: hidden; } .tag__prefix[slot='prefix'] img { max-height: 100%; } .select__loader { width: 100%; text-align: center; display: block; } .select__loader--icon { margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl)); animation: spin 0.6s linear infinite; } .select__no-results { padding: var(--nile-spacing-lg, var(--ng-spacing-lg)); } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .select__invisible { opacity: 0; } .select__prefix--from-options { margin-inline-end: var(--nile-spacing-lg, var(--ng-spacing-md)); } .select__prefix--from-options img{ max-height: var(--nile-height-none, var(--ng-height-24px)); max-width: var(--nile-width-none, var(--ng-width-6)); } .select__hide-default { display: none; } .select.select--open .select__combobox { border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-brand)); box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ; } .select.select--open:hover .select__combobox { border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-brand)); box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ; } .select.select--open .select__combobox:hover { border-color: var(--nile-colors-dark-900, var(--ng-colors-border-brand)); box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ; } :host([stickyHeader]) .select__footer-area { z-index: 1; } .select--disabled .select__combobox{ user-select: none ; -webkit-user-select: none ; } `; export default [styles];