UNPKG

@synergy-design-system/components

Version:

This package provides the base of the Synergy Design System as native web components. It uses [lit](https://www.lit.dev) and parts of [shoelace](https://shoelace.style/). Synergy officially supports the latest two versions of all major browsers (as define

403 lines (335 loc) 10.8 kB
// src/components/combobox/combobox.styles.ts import { css } from "lit"; var combobox_styles_default = css` /* stylelint-disable */ :host { display: block; } /** The popup */ .combobox { flex: 1 1 auto; display: inline-flex; width: 100%; position: relative; vertical-align: middle; } .combobox::part(popup) { z-index: var(--syn-z-index-dropdown); } .combobox[data-current-placement^='top']::part(popup) { transform-origin: bottom; } .combobox[data-current-placement^='bottom']::part(popup) { transform-origin: top; } /* Combobox */ .combobox__inputs { flex: 1; display: flex; width: 100%; min-width: 0; position: relative; align-items: center; justify-content: start; font-family: var(--syn-input-font-family); font-weight: var(--syn-input-font-weight); letter-spacing: var(--syn-input-letter-spacing); vertical-align: middle; overflow: hidden; cursor: pointer; transition: var(--syn-transition-fast) color, var(--syn-transition-fast) border, var(--syn-transition-fast) box-shadow, var(--syn-transition-fast) background-color; } .combobox__display-input { position: relative; width: 100%; font: inherit; border: none; background: none; color: var(--syn-input-color); cursor: inherit; overflow: hidden; padding: 0; margin: 0; -webkit-appearance: none; } .combobox__display-input::placeholder { color: var(--syn-input-placeholder-color); } .combobox:not(.combobox--disabled):hover .combobox__display-input { color: var(--syn-input-color-hover); } .combobox__display-input:focus { outline: none; } .combobox__value-input { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 0; margin: 0; opacity: 0; z-index: -1; } /* Standard combobox */ .combobox--standard .combobox__inputs { background-color: var(--syn-input-background-color); border: solid var(--syn-input-border-width) var(--syn-input-border-color); } .combobox--standard.combobox--disabled .combobox__inputs { background-color: var(--syn-input-background-color-disabled); border-color: var(--syn-input-border-color-disabled); color: var(--syn-input-color-disabled); opacity: 0.5; cursor: not-allowed; outline: none; } .combobox--standard:not(.combobox--disabled).combobox--open .combobox__inputs, .combobox--standard:not(.combobox--disabled).combobox--focused .combobox__inputs { background-color: var(--syn-input-background-color-focus); border-color: var(--syn-input-border-color-focus); box-shadow: 0 0 0 var(--syn-focus-ring-width) var(--syn-input-focus-ring-color); } /* Sizes */ .combobox--small .combobox__inputs { border-radius: var(--syn-input-border-radius-small); font-size: var(--syn-input-font-size-small); min-height: var(--syn-input-height-small); padding-block: 0; padding-inline: var(--syn-input-spacing-small); } .combobox--small .combobox__clear { margin-inline-start: var(--syn-input-spacing-small); } .combobox--small .combobox__prefix::slotted(*) { margin-inline-end: var(--syn-input-spacing-small); } .combobox--medium .combobox__inputs { border-radius: var(--syn-input-border-radius-medium); font-size: var(--syn-input-font-size-medium); min-height: var(--syn-input-height-medium); padding-block: 0; padding-inline: var(--syn-input-spacing-medium); } .combobox--medium .combobox__clear { margin-inline-start: var(--syn-input-spacing-medium); } .combobox--medium .combobox__prefix::slotted(*) { margin-inline-end: var(--syn-input-spacing-medium); } .combobox--large .combobox__inputs { border-radius: var(--syn-input-border-radius-large); font-size: var(--syn-input-font-size-large); min-height: var(--syn-input-height-large); padding-block: 0; padding-inline: var(--syn-input-spacing-large); } .combobox--large .combobox__clear { margin-inline-start: var(--syn-input-spacing-large); } .combobox--large .combobox__prefix::slotted(*) { margin-inline-end: var(--syn-input-spacing-large); } /* Prefix and Suffix */ .combobox__prefix, .combobox__suffix { flex: 0; display: inline-flex; align-items: center; color: var(--syn-input-placeholder-color); } .combobox__suffix::slotted(*) { margin-inline-start: var(--syn-spacing-small); } /* Clear button */ .combobox__clear { display: inline-flex; align-items: center; justify-content: center; font-size: inherit; color: var(--syn-input-icon-color); border: none; background: none; padding: 0; transition: var(--syn-transition-fast) color; cursor: pointer; } .combobox__clear:hover { color: var(--syn-input-icon-color-hover); } .combobox__clear:focus { outline: none; } /* Expand icon */ .combobox__expand-icon { flex: 0 0 auto; display: flex; align-items: center; transition: var(--syn-transition-medium) rotate ease; rotate: 0; margin-inline-start: var(--syn-spacing-small); } .combobox--open .combobox__expand-icon { rotate: -180deg; } /* Listbox */ .combobox__listbox { display: block; position: relative; font-family: var(--syn-font-sans); font-size: var(--syn-font-size-medium); font-weight: var(--syn-font-weight-normal); box-shadow: var(--syn-shadow-large); background: var(--syn-panel-background-color); border: solid var(--syn-panel-border-width) var(--syn-panel-border-color); border-radius: var(--syn-border-radius-medium); padding-block: var(--syn-spacing-x-small); padding-inline: 0; 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); } .combobox__listbox ::slotted(syn-divider) { --spacing: var(--syn-spacing-x-small); } .combobox__listbox ::slotted(small) { display: block; font-size: var(--syn-font-size-small); font-weight: var(--syn-font-weight-semibold); color: var(--syn-color-neutral-500); padding-block: var(--syn-spacing-2x-small); padding-inline: var(--syn-spacing-x-large); } /** #429: Use token for opacity */ .combobox--standard.combobox--disabled .combobox__inputs { opacity: var(--syn-input-disabled-opacity); } /** * Invalid user data */ :host([data-user-invalid]) .combobox__inputs { border-color: var(--syn-input-border-color-focus-error); } :host([data-user-invalid]) .combobox--standard:not(.combobox--disabled).combobox--open .combobox__inputs, :host([data-user-invalid]) .combobox--standard:not(.combobox--disabled).combobox--focused .combobox__inputs { border-color: var(--syn-input-border-color-focus-error); box-shadow: 0 0 0 var(--syn-focus-ring-width) var(--syn-input-focus-ring-error); } /* Clear button */ .combobox__clear { color: var(--syn-input-icon-icon-clearable-color); font-size: var(--syn-spacing-large); } .combobox--small .combobox__clear { font-size: var(--syn-spacing-medium); } .combobox--large .combobox__clear { font-size: var(--syn-spacing-x-large); } .combobox--medium .combobox__clear { margin-inline-start: var(--syn-spacing-small); } /* Expand icon */ .combobox__expand-icon { color: var(--syn-color-neutral-950); margin-inline-start: var(--syn-spacing-small); } .combobox--small .combobox__expand-icon { font-size: var(--syn-spacing-medium); } .combobox--medium .combobox__expand-icon { font-size: var(--syn-spacing-large); } .combobox--large .combobox__expand-icon { font-size: var(--syn-spacing-x-large); } /* Change combobox border on hover */ .combobox:not(.combobox--disabled):hover .combobox__inputs { border-color: var(--syn-input-border-color-hover); } /* Prefix and Suffix */ /* Small */ .combobox--small .combobox__prefix::slotted(*) { margin-inline-end: var(--syn-spacing-x-small); } .combobox--small .combobox__suffix::slotted(*) { margin-inline-start: var(--syn-spacing-x-small); } .combobox--small .combobox__suffix::slotted(syn-icon), .combobox--small .combobox__prefix::slotted(syn-icon) { font-size: var(--syn-font-size-medium); } /* Medium */ .combobox--medium .combobox__prefix::slotted(*) { margin-inline-end: var(--syn-input-spacing-small); } .combobox--medium .combobox__suffix::slotted(*) { margin-inline-start: var(--syn-input-spacing-small); } .combobox--medium .combobox__suffix::slotted(syn-icon), .combobox--medium .combobox__prefix::slotted(syn-icon) { font-size: var(--syn-font-size-x-large); } /* Large */ .combobox--large .combobox__prefix::slotted(*) { margin-inline-end: var(--syn-input-spacing-medium); } .combobox--large .combobox__suffix::slotted(*) { margin-inline-start: var(--syn-input-spacing-medium); } .combobox--large .combobox__suffix::slotted(syn-icon), .combobox--large .combobox__prefix::slotted(syn-icon) { font-size: var(--syn-font-size-2x-large); } .combobox__prefix, .combobox__suffix { color: var(--syn-input-icon-color); } /* Listbox */ .combobox__listbox { border-radius: var(--syn-input-border-radius-medium); box-shadow: var(--syn-shadow-medium); } /** * Make sure to hide the syn-divider for the first syn-optgroup * Note! ::slotted does currently not work with ::part, so we * opted for using a css variable here. */ .combobox__listbox ::slotted(syn-optgroup:first-of-type) { --display-divider: none; } /** * #850: Allow to measure the size of the combobox. * This is needed so we can automatically size and truncate the tags in the <syn-combobox multiple> component. * Scoped to multiple to not break the single combobox per accident. * Scoped to when placeholder is not visible to not break the placeholder visualization */ :host([multiple]) :not(.combobox--placeholder-visible) > .combobox__inputs > .combobox__tags { min-width: 100px; overflow: hidden; } :host([multiple]) .combobox__tags > div { display: contents; } :host([multiple]) .combobox__tags > div > syn-tag { --syn-tag-position-adjustment: var(--syn-spacing-3x-small); max-width: var(--syn-combobox-tag-max-width); } :host([multiple]) .combobox__tags > div > syn-tag::part(content) { display: initial; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } `; export { combobox_styles_default }; //# sourceMappingURL=chunk.FD2CG2HT.js.map