diff --git a/src/panels/config/automation/add-automation-element-dialog.ts b/src/panels/config/automation/add-automation-element-dialog.ts index fe242a8d0c..5af2110bb1 100644 --- a/src/panels/config/automation/add-automation-element-dialog.ts +++ b/src/panels/config/automation/add-automation-element-dialog.ts @@ -54,6 +54,7 @@ import "../../../components/ha-service-icon"; import "../../../components/ha-tooltip"; import { TRIGGER_ICONS } from "../../../components/ha-trigger-icon"; import "../../../components/search-input"; +import { haStyleScrollbar } from "../../../resources/styles"; import { ACTION_BUILDING_BLOCKS_GROUP, ACTION_COLLECTIONS, @@ -599,10 +600,13 @@ class DialogAddAutomationElement .value=${this._selectedTarget} @value-changed=${this._handleTargetSelected} .narrow=${this._narrow} - class=${this._getAddFromTargetHidden( - this._narrow, - this._selectedTarget - )} + class=${classMap({ + "ha-scrollbar": true, + [this._getAddFromTargetHidden( + this._narrow, + this._selectedTarget + )]: true, + })} .manifests=${this._manifests} >` : html` @@ -610,6 +614,7 @@ class DialogAddAutomationElement class=${classMap({ groups: true, hidden: hideCollections, + "ha-scrollbar": true, })} > ${this._params!.clipboardItem @@ -2108,6 +2113,7 @@ class DialogAddAutomationElement static get styles(): CSSResultGroup { return [ + haStyleScrollbar, css` ha-bottom-sheet { --ha-bottom-sheet-height: 90vh; diff --git a/src/panels/config/automation/add-automation-element/ha-automation-add-items.ts b/src/panels/config/automation/add-automation-element/ha-automation-add-items.ts index e64f33a33f..58ebf57d98 100644 --- a/src/panels/config/automation/add-automation-element/ha-automation-add-items.ts +++ b/src/panels/config/automation/add-automation-element/ha-automation-add-items.ts @@ -20,6 +20,7 @@ import type { ConfigEntry } from "../../../../data/config_entries"; import type { LabelRegistryEntry } from "../../../../data/label/label_registry"; import type { HomeAssistant } from "../../../../types"; import type { AddAutomationElementListItem } from "../add-automation-element-dialog"; +import { haStyleScrollbar } from "../../../../resources/styles"; import { getTargetIcon } from "../target/get_target_icon"; type Target = [string, string | undefined, string | undefined]; @@ -69,6 +70,7 @@ export class HaAutomationAddItems extends LitElement { blank: this.error || !this.items || !this.items.length, error: this.error, scrolled: this._itemsScrolled, + "ha-scrollbar": this.scrollable, })} @scroll=${this._onItemsScroll} > @@ -201,135 +203,138 @@ export class HaAutomationAddItems extends LitElement { } } - static styles = css` - :host { - display: flex; - flex-grow: 1; - } - :host([scrollable]) .items { - overflow: auto; - } - .items { - display: flex; - flex-direction: column; - flex: 1; - } - .items.blank { - border-radius: var(--ha-border-radius-xl); - background-color: var(--ha-color-surface-default); - align-items: center; - color: var(--ha-color-text-secondary); - padding: var(--ha-space-4); - margin: 0 var(--ha-space-4) - max(var(--safe-area-inset-bottom), var(--ha-space-3)); - line-height: var(--ha-line-height-expanded); - justify-content: center; - } + static styles = [ + haStyleScrollbar, + css` + :host { + display: flex; + flex-grow: 1; + } + :host([scrollable]) .items { + overflow: auto; + } + .items { + display: flex; + flex-direction: column; + flex: 1; + } + .items.blank { + border-radius: var(--ha-border-radius-xl); + background-color: var(--ha-color-surface-default); + align-items: center; + color: var(--ha-color-text-secondary); + padding: var(--ha-space-4); + margin: 0 var(--ha-space-4) + max(var(--safe-area-inset-bottom), var(--ha-space-3)); + line-height: var(--ha-line-height-expanded); + justify-content: center; + } - .empty-note { - color: var(--ha-color-text-secondary); - margin-top: var(--ha-space-2); - text-align: center; - } + .empty-note { + color: var(--ha-color-text-secondary); + margin-top: var(--ha-space-2); + text-align: center; + } - .empty-note a { - color: currentColor; - text-decoration: underline; - } + .empty-note a { + color: currentColor; + text-decoration: underline; + } - .items.error { - background-color: var(--ha-color-fill-danger-quiet-resting); - color: var(--ha-color-on-danger-normal); - } - .items ha-md-list { - --md-list-item-two-line-container-height: var(--ha-space-12); - --md-list-item-leading-space: var(--ha-space-3); - --md-list-item-trailing-space: var(--md-list-item-leading-space); - --md-list-item-bottom-space: var(--ha-space-2); - --md-list-item-top-space: var(--md-list-item-bottom-space); - --md-list-item-supporting-text-font: var(--ha-font-family-body); - --ha-md-list-item-gap: var(--ha-space-3); - gap: var(--ha-space-2); - padding: 0 var(--ha-space-4); - } - .items ha-md-list ha-md-list-item { - border-radius: var(--ha-border-radius-lg); - border: 1px solid var(--ha-color-border-neutral-quiet); - } + .items.error { + background-color: var(--ha-color-fill-danger-quiet-resting); + color: var(--ha-color-on-danger-normal); + } + .items ha-md-list { + --md-list-item-two-line-container-height: var(--ha-space-12); + --md-list-item-leading-space: var(--ha-space-3); + --md-list-item-trailing-space: var(--md-list-item-leading-space); + --md-list-item-bottom-space: var(--ha-space-2); + --md-list-item-top-space: var(--md-list-item-bottom-space); + --md-list-item-supporting-text-font: var(--ha-font-family-body); + --ha-md-list-item-gap: var(--ha-space-3); + gap: var(--ha-space-2); + padding: 0 var(--ha-space-4); + } + .items ha-md-list ha-md-list-item { + border-radius: var(--ha-border-radius-lg); + border: 1px solid var(--ha-color-border-neutral-quiet); + } - .items ha-md-list { - padding-bottom: max(var(--safe-area-inset-bottom), var(--ha-space-3)); - } + .items ha-md-list { + padding-bottom: max(var(--safe-area-inset-bottom), var(--ha-space-3)); + } - .items .item-headline { - display: flex; - align-items: center; - gap: var(--ha-space-2); - min-height: var(--ha-space-9); - flex-wrap: wrap; - } + .items .item-headline { + display: flex; + align-items: center; + gap: var(--ha-space-2); + min-height: var(--ha-space-9); + flex-wrap: wrap; + } - .items-title { - position: sticky; - display: flex; - align-items: center; - font-weight: var(--ha-font-weight-medium); - padding-top: var(--ha-space-2); - padding-bottom: var(--ha-space-2); - padding-inline-start: var(--ha-space-8); - padding-inline-end: var(--ha-space-3); - top: 0; - z-index: 1; - background-color: var(--card-background-color); - } - ha-bottom-sheet .items-title { - padding-top: var(--ha-space-3); - } - .scrolled .items-title:first-of-type { - box-shadow: var(--bar-box-shadow); - border-bottom: 1px solid var(--ha-color-border-neutral-quiet); - } + .items-title { + position: sticky; + display: flex; + align-items: center; + font-weight: var(--ha-font-weight-medium); + padding-top: var(--ha-space-2); + padding-bottom: var(--ha-space-2); + padding-inline-start: var(--ha-space-8); + padding-inline-end: var(--ha-space-3); + top: 0; + z-index: 1; + background-color: var(--card-background-color); + } + ha-bottom-sheet .items-title { + padding-top: var(--ha-space-3); + } + .scrolled .items-title:first-of-type { + box-shadow: var(--bar-box-shadow); + border-bottom: 1px solid var(--ha-color-border-neutral-quiet); + } - ha-svg-icon.plus { - color: var(--primary-color); - } + ha-svg-icon.plus { + color: var(--primary-color); + } - .selected-target { - display: inline-flex; - gap: var(--ha-space-1); - justify-content: center; - align-items: center; - border-radius: var(--ha-border-radius-md); - background: var(--ha-color-fill-neutral-normal-resting); - padding: 0 var(--ha-space-2) 0 var(--ha-space-1); - border: var(--ha-border-width-sm) solid - var(--ha-color-border-neutral-quiet); - color: var(--ha-color-on-neutral-normal); - overflow: hidden; - } - .selected-target .label { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } + .selected-target { + display: inline-flex; + gap: var(--ha-space-1); + justify-content: center; + align-items: center; + border-radius: var(--ha-border-radius-md); + background: var(--ha-color-fill-neutral-normal-resting); + padding: 0 var(--ha-space-2) 0 var(--ha-space-1); + border: var(--ha-border-width-sm) solid + var(--ha-color-border-neutral-quiet); + color: var(--ha-color-on-neutral-normal); + overflow: hidden; + } + .selected-target .label { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } - .selected-target ha-icon, - .selected-target ha-svg-icon, - .selected-target ha-domain-icon { - display: flex; - padding: var(--ha-space-1) 0; - } + .selected-target ha-icon, + .selected-target ha-svg-icon, + .selected-target ha-domain-icon { + display: flex; + padding: var(--ha-space-1) 0; + } - .selected-target ha-floor-icon { - display: flex; - height: 32px; - width: 32px; - align-items: center; - } - .selected-target ha-domain-icon { - filter: grayscale(100%); - } - `; + .selected-target ha-floor-icon { + display: flex; + height: 32px; + width: 32px; + align-items: center; + } + .selected-target ha-domain-icon { + filter: grayscale(100%); + } + `, + ]; } declare global {