Compare commits

...

24 Commits

Author SHA1 Message Date
Petar Petrov
1a4a6e60fb clean up 2025-09-30 09:35:36 +03:00
Petar Petrov
d377275bff clean up 2025-09-30 08:50:41 +03:00
Petar Petrov
65d15da469 slots 2025-09-30 08:44:59 +03:00
Petar Petrov
903ab67604 Use hui-tile in hui-home-summary-card 2025-09-29 20:55:37 +03:00
Petar Petrov
948b020b7c Reusable hui-tile component 2025-09-29 20:49:54 +03:00
renovate[bot]
53be0a3fa2 Update dependency @rsdoctor/rspack-plugin to v1.3.0 (#27241)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 17:31:13 +02:00
renovate[bot]
d69c46c80c Update dependency @codemirror/autocomplete to v6.19.0 (#27242)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 17:30:42 +02:00
Paul Bottein
0c2a7bfed0 Replace legacy hass icons to mdi icons (#27244) 2025-09-29 17:30:20 +02:00
dependabot[bot]
afdd232e38 Bump home-assistant/wheels from 2025.07.0 to 2025.09.1 (#27239)
Bumps [home-assistant/wheels](https://github.com/home-assistant/wheels) from 2025.07.0 to 2025.09.1.
- [Release notes](https://github.com/home-assistant/wheels/releases)
- [Commits](https://github.com/home-assistant/wheels/compare/2025.07.0...2025.09.1)

---
updated-dependencies:
- dependency-name: home-assistant/wheels
  dependency-version: 2025.09.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 12:37:13 +02:00
dependabot[bot]
179751a135 Bump github/codeql-action from 3.30.3 to 3.30.5 (#27235)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.30.3 to 3.30.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](192325c861...3599b3baa1)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.30.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 11:03:37 +03:00
dependabot[bot]
52f6024306 Bump actions/cache from 4.2.4 to 4.3.0 (#27236)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.4 to 4.3.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](0400d5f644...0057852bfa)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-29 11:03:06 +03:00
Phil White
7c7a4e61f2 Add media playback badge for Area card (#26893) 2025-09-29 09:58:57 +02:00
Jan-Philipp Benecke
facce7b016 Add custom color token for control color (#27227) 2025-09-29 07:28:24 +00:00
Petar Petrov
e546cb3374 Make "loading next step" look like progress step in config flows (#27234) 2025-09-29 09:19:18 +02:00
Jan-Philipp Benecke
a0d2e7312b Adjust media player cover image sizes in more info for smaller screens (#27232)
Adjust media player cover image sizes for smaller screens
2025-09-29 08:30:12 +03:00
Jan-Philipp Benecke
c0a9dadcbe Implement core spacing tokens (#27226) 2025-09-29 08:28:24 +03:00
renovate[bot]
e1edf7fb98 Update dependency lint-staged to v16.2.1 (#27233)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 07:57:45 +03:00
Jan-Philipp Benecke
6d5c165bd2 Add tooltips for undo/redo in automation & script editors (#27224) 2025-09-28 13:35:48 +03:00
Simon Lamon
54177a16e9 Set explicit netlify version to fix workflows (#27229)
netlify set explicit version for fix
2025-09-28 13:34:18 +03:00
Paul Bottein
c814b8e888 Align dashboard data table with other data tables (#27206)
* Align dashboard data table with other data tables

* Update ha-config-lovelace-dashboards.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update ha-config-lovelace-dashboards.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-27 18:07:01 +03:00
renovate[bot]
33a0b32cc5 Update vaadinWebComponents monorepo to v24.9.1 (#27220)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-27 13:25:12 +02:00
renovate[bot]
7dae13bf57 Update dependency @rspack/core to v1.5.7 (#27219)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-27 13:24:59 +02:00
renovate[bot]
0a3fe6e0fb Update dependency tar to v7.5.1 (#27216) 2025-09-26 19:21:46 +02:00
Paul Bottein
e0348e4da7 Fix slider ticks support for number selector (#27211) 2025-09-26 15:35:01 +02:00
133 changed files with 1220 additions and 1133 deletions

View File

@@ -42,7 +42,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=cast/dist --alias dev
npx -y netlify-cli@23.7.3 deploy --dir=cast/dist --alias dev
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_CAST_SITE_ID }}
@@ -77,7 +77,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=cast/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=cast/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_CAST_SITE_ID }}

View File

@@ -37,7 +37,7 @@ jobs:
- name: Build resources
run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data gather-gallery-pages
- name: Setup lint cache
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
node_modules/.cache/prettier

View File

@@ -36,14 +36,14 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
uses: github/codeql-action/init@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
uses: github/codeql-action/autobuild@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
@@ -57,4 +57,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
uses: github/codeql-action/analyze@3599b3baa15b485a2e49ef411a7a4bb2452e7f93 # v3.30.5

View File

@@ -43,7 +43,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=demo/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=demo/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_DEMO_DEV_SITE_ID }}
@@ -78,7 +78,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=demo/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=demo/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_DEMO_SITE_ID }}

View File

@@ -35,7 +35,7 @@ jobs:
- name: Deploy to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=gallery/dist --prod
npx -y netlify-cli@23.7.3 deploy --dir=gallery/dist --prod
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_GALLERY_SITE_ID }}

View File

@@ -40,7 +40,7 @@ jobs:
- name: Deploy preview to Netlify
id: deploy
run: |
npx -y netlify-cli deploy --dir=gallery/dist --alias "deploy-preview-${{ github.event.number }}" \
npx -y netlify-cli@23.7.3 deploy --dir=gallery/dist --alias "deploy-preview-${{ github.event.number }}" \
--json > deploy_output.json
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}

View File

@@ -75,7 +75,7 @@ jobs:
# home-assistant/wheels doesn't support SHA pinning
- name: Build wheels
uses: home-assistant/wheels@2025.07.0
uses: home-assistant/wheels@2025.09.1
with:
abi: cp313
tag: musllinux_1_2

View File

@@ -75,7 +75,7 @@ export const castDemoEntities: () => Entity[] = () =>
longitude: 4.8903147,
radius: 100,
friendly_name: "Home",
icon: "hass:home",
icon: "mdi:home",
},
},
"input_number.harmonyvolume": {
@@ -88,7 +88,7 @@ export const castDemoEntities: () => Entity[] = () =>
step: 1,
mode: "slider",
friendly_name: "Volume",
icon: "hass:volume-high",
icon: "mdi:volume-high",
},
},
"climate.upstairs": {

View File

@@ -56,7 +56,7 @@ export const castDemoLovelace: () => LovelaceConfig = () => {
type: "weblink",
url: "/lovelace/climate",
name: "Climate controls",
icon: "hass:arrow-right",
icon: "mdi:arrow-right",
},
],
},
@@ -76,7 +76,7 @@ export const castDemoLovelace: () => LovelaceConfig = () => {
type: "weblink",
url: "/lovelace/overview",
name: "Back",
icon: "hass:arrow-left",
icon: "mdi:arrow-left",
},
],
},

View File

@@ -143,7 +143,7 @@ export const demoEntitiesArsaboo: DemoConfig["entities"] = (localize) =>
state: "on",
attributes: {
friendly_name: "Home Automation",
icon: "hass:home-automation",
icon: "mdi:home-automation",
},
},
"input_boolean.tvtime": {

View File

@@ -4,7 +4,7 @@ export const demoLovelaceArsaboo: DemoConfig["lovelace"] = (localize) => ({
title: "Home Assistant",
views: [
{
icon: "hass:home-assistant",
icon: "mdi:home-assistant",
id: "home",
title: "Home",
cards: [

View File

@@ -1236,7 +1236,7 @@ export const demoLovelaceJimpower: DemoConfig["lovelace"] = () => ({
},
],
path: "security",
icon: "hass:shield-home",
icon: "mdi:shield-home",
name: "Security",
background:
'center / cover no-repeat url("/assets/jimpower/background-15.jpg") fixed',

View File

@@ -117,7 +117,7 @@ export class DemoHaBadge extends LitElement {
}
.card-content {
display: flex;
gap: 24px;
gap: var(--ha-space-6);
}
`;
}

View File

@@ -155,11 +155,11 @@ export class DemoHaButton extends LitElement {
.card-content {
display: flex;
flex-direction: column;
gap: 24px;
gap: var(--ha-space-6);
}
.card-content div {
display: flex;
gap: 8px;
gap: var(--ha-space-2);
}
`;
}

View File

@@ -123,11 +123,11 @@ export class DemoHaProgressButton extends LitElement {
.card-content {
display: flex;
flex-direction: column;
gap: 24px;
gap: var(--ha-space-6);
}
.card-content div {
display: flex;
gap: 8px;
gap: var(--ha-space-2);
}
`;
}

View File

@@ -88,7 +88,7 @@ export class DemoHaSlider extends LitElement {
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
`;
}

View File

@@ -70,7 +70,7 @@ export class DemoHaSpinner extends LitElement {
display: flex;
flex-direction: column;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
`;
}

View File

@@ -159,7 +159,7 @@ class HassioSystemManagedDialog extends LitElement {
display: flex;
justify-content: center;
align-items: center;
gap: 16px;
gap: var(--ha-space-4);
--mdc-icon-size: 48px;
margin-bottom: 32px;
}

View File

@@ -31,7 +31,7 @@ export const hassioStyle = css`
.card-group {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
grid-gap: 8px;
grid-gap: var(--ha-space-2);
}
@media screen and (min-width: 640px) {
.card-group {

View File

@@ -213,7 +213,7 @@ class HaLandingPage extends LandingPageBaseElement {
ha-card .card-content {
display: flex;
flex-direction: column;
gap: 16px;
gap: var(--ha-space-4);
}
ha-alert p {
text-align: unset;

View File

@@ -28,7 +28,7 @@
"dependencies": {
"@babel/runtime": "7.28.4",
"@braintree/sanitize-url": "7.1.1",
"@codemirror/autocomplete": "6.18.7",
"@codemirror/autocomplete": "6.19.0",
"@codemirror/commands": "6.8.1",
"@codemirror/language": "6.11.3",
"@codemirror/legacy-modes": "6.5.1",
@@ -89,8 +89,8 @@
"@thomasloven/round-slider": "0.6.0",
"@tsparticles/engine": "3.9.1",
"@tsparticles/preset-links": "3.2.0",
"@vaadin/combo-box": "24.9.0",
"@vaadin/vaadin-themable-mixin": "24.9.0",
"@vaadin/combo-box": "24.9.1",
"@vaadin/vaadin-themable-mixin": "24.9.1",
"@vibrant/color": "4.0.0",
"@vue/web-component-wrapper": "1.3.0",
"@webcomponents/scoped-custom-element-registry": "0.0.10",
@@ -157,8 +157,8 @@
"@octokit/auth-oauth-device": "8.0.1",
"@octokit/plugin-retry": "8.0.1",
"@octokit/rest": "22.0.0",
"@rsdoctor/rspack-plugin": "1.2.3",
"@rspack/core": "1.5.6",
"@rsdoctor/rspack-plugin": "1.3.0",
"@rspack/core": "1.5.7",
"@rspack/dev-server": "1.1.4",
"@types/babel__plugin-transform-runtime": "7.9.5",
"@types/chromecast-caf-receiver": "6.0.22",
@@ -203,7 +203,7 @@
"husky": "9.1.7",
"jsdom": "27.0.0",
"jszip": "3.10.1",
"lint-staged": "16.2.0",
"lint-staged": "16.2.1",
"lit-analyzer": "2.0.3",
"lodash.merge": "4.6.2",
"lodash.template": "4.5.0",
@@ -213,7 +213,7 @@
"rspack-manifest-plugin": "5.1.0",
"serve": "14.2.5",
"sinon": "21.0.0",
"tar": "7.4.4",
"tar": "7.5.1",
"terser-webpack-plugin": "5.3.14",
"ts-lit-plugin": "2.0.2",
"typescript": "5.9.2",

View File

@@ -974,7 +974,7 @@ export class HaChartBase extends LitElement {
right: 4px;
display: flex;
flex-direction: column;
gap: 4px;
gap: var(--ha-space-1);
}
.chart-controls.small {
top: 0;
@@ -1011,7 +1011,7 @@ export class HaChartBase extends LitElement {
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
}
.chart-legend li {
height: 24px;

View File

@@ -54,7 +54,7 @@ export class HaBadge extends LitElement {
flex-direction: row;
align-items: center;
justify-content: center;
gap: 8px;
gap: var(--ha-space-2);
height: var(--ha-badge-size, 36px);
min-width: var(--ha-badge-size, 36px);
padding: 0px 12px;

View File

@@ -76,7 +76,7 @@ export class HaCopyTextfield extends LitElement {
.container {
display: flex;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
margin-top: 8px;
}

View File

@@ -343,7 +343,7 @@ export class HaDateRangePicker extends LitElement {
.date-range-inputs {
display: flex;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
}
.date-range-ranges {

View File

@@ -77,8 +77,8 @@ export class HaFormGrid extends LitElement implements HaFormElement {
var(--form-grid-column-count, auto-fit),
minmax(var(--form-grid-min-width, 200px), 1fr)
);
grid-column-gap: 8px;
grid-row-gap: 24px;
grid-column-gap: var(--ha-space-2);
grid-row-gap: var(--ha-space-6);
}
:host > ha-form {
display: block;

View File

@@ -156,7 +156,7 @@ export class HaFormOptionalActions extends LitElement implements HaFormElement {
:host {
display: flex !important;
flex-direction: column;
gap: 24px;
gap: var(--ha-space-6);
}
:host ha-form {
display: block;

View File

@@ -57,7 +57,7 @@ export class HaFormfield extends FormfieldBase {
}
.mdc-form-field {
align-items: var(--ha-formfield-align-items, center);
gap: 4px;
gap: var(--ha-space-1);
}
.mdc-form-field > label {
direction: var(--direction);

View File

@@ -227,7 +227,7 @@ export class HaGridSizeEditor extends LitElement {
"row-slider preview";
grid-template-rows: auto auto;
grid-template-columns: auto 1fr;
gap: 8px;
gap: var(--ha-space-2);
}
#columns {
grid-area: column-slider;

View File

@@ -104,7 +104,7 @@ export class HaIconButtonToolbar extends LitElement {
background-color: transparent;
padding-right: 4px;
height: var(--icon-button-toolbar-height);
gap: 8px;
gap: var(--ha-space-2);
}
.icon-toolbar-button {

View File

@@ -105,7 +105,7 @@ export class HaPickerField extends LitElement {
--md-list-item-bottom-space: 0px;
--md-list-item-leading-space: 8px;
--md-list-item-trailing-space: 8px;
--ha-md-list-item-gap: 8px;
--ha-md-list-item-gap: var(--ha-space-2);
/* Remove the default focus ring */
--md-focus-ring-width: 0px;
--md-focus-ring-duration: 0s;

View File

@@ -90,7 +90,7 @@ class HaSegmentedBar extends LitElement {
.heading {
display: flex;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
}
.heading .title {
flex: 1;
@@ -125,7 +125,7 @@ class HaSegmentedBar extends LitElement {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 12px;
gap: var(--ha-space-3);
margin: 12px 0;
padding: 0;
list-style: none;
@@ -133,7 +133,7 @@ class HaSegmentedBar extends LitElement {
.legend li {
display: flex;
align-items: center;
gap: 4px;
gap: var(--ha-space-1);
font-size: var(--ha-font-size-s);
}
.legend li .bullet {

View File

@@ -116,7 +116,7 @@ export class HaSelectBox extends LitElement {
.list {
display: grid;
grid-template-columns: repeat(var(--columns, 1), minmax(0, 1fr));
gap: 12px;
gap: var(--ha-space-3);
}
.option {
position: relative;
@@ -128,7 +128,7 @@ export class HaSelectBox extends LitElement {
align-items: center;
justify-content: space-between;
padding: 12px;
gap: 8px;
gap: var(--ha-space-2);
overflow: hidden;
cursor: pointer;
}
@@ -137,7 +137,7 @@ export class HaSelectBox extends LitElement {
position: relative;
display: flex;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
min-width: 0;
width: 100%;
}
@@ -148,7 +148,7 @@ export class HaSelectBox extends LitElement {
.option .content .text {
display: flex;
flex-direction: column;
gap: 4px;
gap: var(--ha-space-1);
min-width: 0;
flex: 1;
}

View File

@@ -89,7 +89,7 @@ export class HaButtonToggleSelector extends LitElement {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
gap: 8px;
gap: var(--ha-space-2);
align-items: center;
}
@media all and (max-width: 600px) {

View File

@@ -62,7 +62,7 @@ export class HaColorTempSelector extends LitElement {
"--ha-slider-background": `linear-gradient( to var(--float-end), ${gradient})`,
})}
labeled
icon="hass:thermometer"
icon="mdi:thermometer"
.caption=${this.label || ""}
.min=${min}
.max=${max}

View File

@@ -321,7 +321,7 @@ export class HaMediaSelector extends LitElement {
display: flex;
align-items: center;
padding: 8px;
gap: 12px;
gap: var(--ha-space-3);
}
ha-card .thumbnail {
width: 40px;

View File

@@ -82,12 +82,12 @@ export class HaNumberSelector extends LitElement {
labeled
.min=${this.selector.number!.min}
.max=${this.selector.number!.max}
.value=${this.value ?? ""}
.value=${this.value}
.step=${sliderStep}
.disabled=${this.disabled}
.required=${this.required}
@change=${this._handleSliderChange}
.ticks=${this.selector.number?.slider_ticks}
.withMarkers=${this.selector.number?.slider_ticks || false}
>
</ha-slider>
`

View File

@@ -297,7 +297,7 @@ export class HaObjectSelector extends LitElement {
return [
css`
ha-md-list {
gap: 8px;
gap: var(--ha-space-2);
}
ha-md-list-item {
border: 1px solid var(--divider-color);

View File

@@ -19,7 +19,7 @@ export class HaSlider extends Slider {
Slider.styles,
css`
:host {
--wa-form-control-activated-color: var(--primary-color);
--wa-form-control-activated-color: var(--ha-control-color);
--track-size: var(--ha-slider-track-size, 4px);
--marker-height: calc(var(--ha-slider-track-size, 4px) / 2);
--marker-width: calc(var(--ha-slider-track-size, 4px) / 2);

View File

@@ -217,7 +217,7 @@ class DialogJoinMediaPlayers extends LitElement {
.content {
display: flex;
flex-direction: column;
row-gap: 16px;
row-gap: var(--ha-space-4);
}
ha-dialog-header ha-button {

View File

@@ -1138,7 +1138,7 @@ export class HaMediaPlayerBrowse extends LitElement {
auto-fit,
minmax(var(--media-browse-item-size, 175px), 0.1fr)
);
grid-gap: 16px;
grid-gap: var(--ha-space-4);
padding: 16px;
}

View File

@@ -54,7 +54,7 @@ class HaMediaPlayerToggle extends LitElement {
.list-item {
display: grid;
grid-template-columns: auto 1fr auto;
column-gap: 16px;
column-gap: var(--ha-space-4);
align-items: center;
width: 100%;
}

View File

@@ -39,6 +39,8 @@ import type { HomeAssistant, TranslationDict } from "../types";
import { isUnavailableState } from "./entity";
import { isTTSMediaSource } from "./tts";
import { generateEntityFilter } from "../common/entity/entity_filter";
interface MediaPlayerEntityAttributes extends HassEntityAttributeBase {
media_content_id?: string;
media_content_type?: string;
@@ -522,3 +524,33 @@ export const mediaPlayerJoin = (
export const mediaPlayerUnjoin = (hass: HomeAssistant, entity_id: string) =>
hass.callService("media_player", "unjoin", {}, { entity_id });
/**
* Compute active media player states in a specific area.
* @param hass Home Assistant object
* @param areaId Area ID to filter media players by
* @returns Array of playing media player entities
*/
export const computeActiveAreaMediaStates = (
hass: HomeAssistant,
areaId: string
): MediaPlayerEntity[] => {
const area = hass.areas[areaId];
if (!area) {
return [];
}
// Get all media_player entities in this area
const mediaFilter = generateEntityFilter(hass, {
area: areaId,
domain: "media_player",
});
const mediaEntities = Object.keys(hass.entities).filter(mediaFilter);
return mediaEntities
.map((entityId) => hass.states[entityId] as MediaPlayerEntity | undefined)
.filter(
(stateObj): stateObj is MediaPlayerEntity => stateObj?.state === "playing"
);
};

View File

@@ -66,9 +66,9 @@ export const getPanelIcon = (panel: PanelInfo): string | null => {
if (!panel.icon) {
switch (panel.component_name) {
case "profile":
return "hass:account";
return "mdi:account";
case "lovelace":
return "hass:view-dashboard";
return "mdi:view-dashboard";
}
}

View File

@@ -325,7 +325,7 @@ class StepFlowCreateEntry extends LitElement {
.device-info {
display: flex;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
}
.device-info img {
width: 40px;

View File

@@ -26,20 +26,21 @@ class StepFlowLoading extends LitElement {
this.step
);
return html`
<div class="init-spinner">
<div class="content">
<ha-spinner size="large"></ha-spinner>
${description ? html`<div>${description}</div>` : ""}
<ha-spinner></ha-spinner>
</div>
`;
}
static styles = css`
.init-spinner {
.content {
margin-top: 0;
padding: 50px 100px;
text-align: center;
}
ha-spinner {
margin-top: 16px;
margin-bottom: 16px;
}
`;
}

View File

@@ -34,7 +34,7 @@ class StepFlowProgress extends LitElement {
)}%</ha-progress-ring
>
`
: html` <ha-spinner size="large"></ha-spinner> `}
: html`<ha-spinner size="large"></ha-spinner>`}
${this.flowConfig.renderShowFormProgressDescription(
this.hass,
this.step
@@ -48,6 +48,7 @@ class StepFlowProgress extends LitElement {
configFlowContentStyles,
css`
.content {
margin-top: 0;
padding: 50px 100px;
text-align: center;
}

View File

@@ -209,7 +209,7 @@ export class DialogEnterCode
display: grid;
grid-template-columns: repeat(var(--keypad-columns), auto);
grid-auto-rows: auto;
grid-gap: 24px;
grid-gap: var(--ha-space-6);
justify-items: center;
align-items: center;
}

View File

@@ -32,7 +32,7 @@ export class HaMoreInfoControlSelectContainer extends LitElement {
display: flex;
flex-direction: row;
justify-content: flex-start;
gap: 12px;
gap: var(--ha-space-3);
margin: auto;
overflow: auto;
-ms-overflow-style: none; /* IE and Edge */

View File

@@ -110,7 +110,7 @@ class LightRgbColorPicker extends LitElement {
? html`<ha-labeled-slider
labeled
.caption=${this.hass.localize("ui.card.light.color_brightness")}
icon="hass:brightness-7"
icon="mdi:brightness-7"
min="0"
max="100"
.value=${this._colorBrightnessSliderValue}
@@ -122,7 +122,7 @@ class LightRgbColorPicker extends LitElement {
<ha-labeled-slider
labeled
.caption=${this.hass.localize("ui.card.light.white_value")}
icon="hass:file-word-box"
icon="mdi:file-word-box"
min="0"
max="100"
.name=${"wv"}
@@ -136,7 +136,7 @@ class LightRgbColorPicker extends LitElement {
<ha-labeled-slider
labeled
.caption=${this.hass.localize("ui.card.light.cold_white_value")}
icon="hass:file-word-box-outline"
icon="mdi:file-word-box-outline"
min="0"
max="100"
.name=${"cw"}
@@ -146,7 +146,7 @@ class LightRgbColorPicker extends LitElement {
<ha-labeled-slider
labeled
.caption=${this.hass.localize("ui.card.light.warm_white_value")}
icon="hass:file-word-box"
icon="mdi:file-word-box"
min="0"
max="100"
.name=${"ww"}

View File

@@ -202,13 +202,13 @@ class MoreInfoSirenAdvancedControls extends LitElement {
.options {
display: flex;
flex-direction: column;
gap: 16px;
gap: var(--ha-space-4);
}
.controls {
display: flex;
flex-direction: row;
justify-content: center;
gap: 16px;
gap: var(--ha-space-4);
margin-top: 16px;
}
ha-control-button {

View File

@@ -107,7 +107,7 @@ class MoreInfoCamera extends LitElement {
box-sizing: border-box;
padding: 16px;
z-index: 1;
gap: 8px;
gap: var(--ha-space-2);
}
`;
}

View File

@@ -181,7 +181,7 @@ class MoreInfoLock extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
font-weight: var(--ha-font-weight-medium);
color: var(--success-color);
}

View File

@@ -442,7 +442,7 @@ class MoreInfoMediaPlayer extends LitElement {
:host {
display: flex;
flex-direction: column;
gap: 24px;
gap: var(--ha-space-6);
margin-top: 0;
}
@@ -476,6 +476,22 @@ class MoreInfoMediaPlayer extends LitElement {
height: 320px;
}
@media (max-height: 750px) {
.cover-container {
height: 120px;
}
.cover-image {
width: 100px;
height: 100px;
}
.cover-image--playing {
width: 120px;
height: 120px;
}
}
.empty-cover {
background-color: var(--secondary-background-color);
font-size: 1.5em;
@@ -510,7 +526,7 @@ class MoreInfoMediaPlayer extends LitElement {
.volume {
display: flex;
align-items: center;
gap: 12px;
gap: var(--ha-space-3);
margin-left: 8px;
}
@@ -591,7 +607,7 @@ class MoreInfoMediaPlayer extends LitElement {
.bottom-controls {
display: flex;
flex-direction: column;
gap: 24px;
gap: var(--ha-space-6);
align-self: center;
width: 320px;
}

View File

@@ -508,7 +508,7 @@ class MoreInfoUpdate extends LitElement {
box-sizing: border-box;
padding: 16px;
z-index: 1;
gap: 8px;
gap: var(--ha-space-2);
}
a {

View File

@@ -269,7 +269,7 @@ class DialogShortcuts extends LitElement {
display: flex;
flex-direction: row;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
margin: 4px 0;
}

View File

@@ -127,7 +127,7 @@ export class CloudStepIntro extends LitElement {
.features {
display: flex;
flex-direction: column;
grid-gap: 16px;
grid-gap: var(--ha-space-4);
padding: 16px;
}
.feature {

View File

@@ -427,7 +427,7 @@ export class HaVoiceAssistantSetupStepPipeline extends LitElement {
width: 100%;
height: 10px;
display: flex;
gap: 4px;
gap: var(--ha-space-1);
margin: 8px 0;
}
.segment {

View File

@@ -368,7 +368,7 @@ export class HaVoiceAssistantSetupStepSuccess extends LitElement {
margin-top: 24px;
}
.rows {
gap: 16px;
gap: var(--ha-space-4);
display: flex;
flex-direction: column;
}

View File

@@ -60,28 +60,28 @@ export const demoPanels: Panels = {
// Uncomment when we are ready to stub the history API
// history: {
// component_name: "history",
// icon: "hass:poll-box",
// icon: "mdi:chart-box",
// title: "history",
// config: null,
// url_path: "history",
// },
map: {
component_name: "lovelace",
icon: "hass:tooltip-account",
icon: "mdi:tooltip-account",
title: "map",
config: { mode: "storage" },
url_path: "map",
},
energy: {
component_name: "energy",
icon: "hass:lightning-bolt",
icon: "mdi:lightning-bolt",
title: "energy",
config: null,
url_path: "energy",
},
// config: {
// component_name: "config",
// icon: "hass:cog",
// icon: "mdi:cog",
// title: "config",
// config: null,
// url_path: "config",

View File

@@ -182,7 +182,7 @@ class HassSubpage extends LitElement {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
gap: var(--ha-space-2);
}
:host([narrow]) #fab.tabs {
bottom: calc(84px + var(--safe-area-inset-bottom, 0px));

View File

@@ -740,7 +740,7 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) {
width: 100%;
justify-content: space-between;
padding: 0 16px;
gap: 16px;
gap: var(--ha-space-4);
box-sizing: border-box;
background: var(--primary-background-color);
border-bottom: 1px solid var(--divider-color);
@@ -823,7 +823,7 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) {
display: flex;
align-items: center;
min-width: 100%;
gap: 16px;
gap: var(--ha-space-4);
padding: 0 16px;
box-sizing: border-box;
overflow-x: scroll;
@@ -852,7 +852,7 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) {
.selection-controls {
display: flex;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
}
.selection-controls p {
@@ -864,7 +864,7 @@ export class HaTabsSubpageDataTable extends KeyboardShortcutMixin(LitElement) {
.center-vertical {
display: flex;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
}
.relative {

View File

@@ -362,7 +362,7 @@ class HassTabsSubpage extends LitElement {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
gap: var(--ha-space-2);
}
:host([narrow]) #fab.tabs {
bottom: calc(84px + var(--safe-area-inset-bottom, 0px));

View File

@@ -212,7 +212,7 @@ class OnboardingIntegrations extends SubscribeMixin(LitElement) {
margin-top: 24px;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(106px, 1fr));
row-gap: 24px;
row-gap: var(--ha-space-6);
}
.more {
display: flex;

View File

@@ -64,8 +64,8 @@ class OnboardingWelcomeLinks extends LitElement {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
margin-top: 16px;
column-gap: 16px;
row-gap: 16px;
column-gap: var(--ha-space-4);
row-gap: var(--ha-space-4);
}
@media (max-width: 550px) {
:host {

View File

@@ -123,7 +123,7 @@ class OnboardingRestoreBackupCloudLogin extends LitElement {
font-size: var(--ha-font-size-2xl);
display: flex;
align-items: center;
gap: 16px;
gap: var(--ha-space-4);
}
h2 img {
width: 48px;

View File

@@ -332,7 +332,7 @@ class OnboardingRestoreBackupRestore extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
line-height: var(--ha-line-height-condensed);
}
h2 {

View File

@@ -736,7 +736,7 @@ class DialogAddAutomationElement
}
.shortcut-label {
display: flex;
gap: 12px;
gap: var(--ha-space-3);
justify-content: space-between;
}
.shortcut-label .supporting-text {

View File

@@ -1,5 +1,6 @@
import { consume } from "@lit/context";
import {
mdiAppleKeyboardCommand,
mdiCog,
mdiContentSave,
mdiDebugStepOver,
@@ -87,6 +88,7 @@ import "./blueprint-automation-editor";
import "./manual-automation-editor";
import type { HaManualAutomationEditor } from "./manual-automation-editor";
import { UndoRedoMixin } from "../../../mixins/undo-redo-mixin";
import { isMac } from "../../../util/is_mac";
declare global {
interface HTMLElementTagNameMap {
@@ -215,6 +217,10 @@ export class HaAutomationEditor extends UndoRedoMixin<
: undefined;
const useBlueprint = "use_blueprint" in this._config;
const shortcutIcon = isMac
? html`<ha-svg-icon .path=${mdiAppleKeyboardCommand}></ha-svg-icon>`
: this.hass.localize("ui.panel.config.automation.editor.ctrl");
return html`
<hass-subpage
.hass=${this.hass}
@@ -231,16 +237,35 @@ export class HaAutomationEditor extends UndoRedoMixin<
.path=${mdiUndo}
@click=${this.undo}
.disabled=${!this.canUndo}
id="button-undo"
>
</ha-icon-button>
<ha-tooltip placement="bottom" for="button-undo">
${this.hass.localize("ui.common.undo")}
<span class="shortcut"
>(
<span>${shortcutIcon}</span>
<span>+</span>
<span>Z</span>)
</span>
</ha-tooltip>
<ha-icon-button
slot="toolbar-icon"
.label=${this.hass.localize("ui.common.redo")}
.path=${mdiRedo}
@click=${this.redo}
.disabled=${!this.canRedo}
id="button-redo"
>
</ha-icon-button>`
</ha-icon-button>
<ha-tooltip placement="bottom" for="button-redo">
${this.hass.localize("ui.common.redo")}
<span class="shortcut">
(<span>${shortcutIcon}</span>
<span>+</span>
<span>Y</span>)
</span>
</ha-tooltip>`
: nothing}
${this._config?.id && !this.narrow
? html`
@@ -1292,6 +1317,15 @@ export class HaAutomationEditor extends UndoRedoMixin<
ha-fab.dirty {
bottom: calc(16px + var(--safe-area-inset-bottom, 0px));
}
ha-tooltip ha-svg-icon {
width: 12px;
}
ha-tooltip .shortcut {
display: inline-flex;
flex-direction: row;
align-items: center;
gap: 2px;
}
`,
];
}

View File

@@ -92,7 +92,7 @@ class DialogPasteReplace extends LitElement implements HassDialog {
}
div[slot="primaryAction"] {
display: flex;
gap: 8px;
gap: var(--ha-space-2);
}
`,
];

View File

@@ -118,7 +118,7 @@ export const manualEditorStyles = css`
var(--ha-automation-editor-max-width) -
${CONTENT_MIN_WIDTH}px - var(--mdc-drawer-width, 0px)
);
--sidebar-gap: 16px;
--sidebar-gap: var(--ha-space-4);
}
.fab-positioner {
@@ -188,7 +188,7 @@ export const automationRowsStyles = css`
.rows {
display: flex;
flex-direction: column;
gap: 16px;
gap: var(--ha-space-4);
}
.rows.no-sidebar {
margin-inline-end: 0;
@@ -225,7 +225,7 @@ export const automationRowsStyles = css`
.buttons {
display: flex;
flex-wrap: wrap;
gap: 8px;
gap: var(--ha-space-2);
order: 1;
}
`;
@@ -244,7 +244,7 @@ export const overflowStyles = css`
.overflow-label {
display: flex;
justify-content: space-between;
gap: 12px;
gap: var(--ha-space-3);
white-space: nowrap;
}
.overflow-label .shortcut {

View File

@@ -806,7 +806,7 @@ export default class HaAutomationTriggerRow extends LitElement {
display: flex;
justify-content: center;
align-items: center;
gap: 4px;
gap: var(--ha-space-1);
line-height: 1;
padding: 0;
}

View File

@@ -313,13 +313,13 @@ class HaBackupConfigAgents extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
line-height: var(--ha-line-height-condensed);
}
.unencrypted-warning {
display: flex;
align-items: center;
gap: 4px;
gap: var(--ha-space-1);
}
.dot {
display: block;
@@ -341,7 +341,7 @@ class HaBackupConfigAgents extends LitElement {
align-items: flex-start;
flex-direction: column;
justify-content: flex-start;
gap: 4px;
gap: var(--ha-space-1);
}
}
`;

View File

@@ -119,7 +119,7 @@ class HaBackupAgentsPicker extends LitElement {
display: flex;
flex-direction: row;
align-items: center;
gap: 16px;
gap: var(--ha-space-4);
font-size: var(--ha-font-size-l);
font-weight: var(--ha-font-weight-normal);
line-height: var(--ha-line-height-normal);

View File

@@ -110,7 +110,7 @@ class HaBackupDetailsRestore extends LitElement {
max-width: 690px;
width: 100%;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: grid;
}
.card-content {
@@ -133,7 +133,7 @@ class HaBackupDetailsRestore extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
line-height: var(--ha-line-height-condensed);
}
`;

View File

@@ -138,7 +138,7 @@ class HaBackupDetailsSummary extends LitElement {
max-width: 690px;
width: 100%;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: grid;
}
.card-content {
@@ -168,7 +168,7 @@ class HaBackupDetailsSummary extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
line-height: var(--ha-line-height-condensed);
}
`;

View File

@@ -35,7 +35,7 @@ class SupervisorFormfieldLabel extends LitElement {
:host {
display: flex;
flex-direction: row;
gap: 16px;
gap: var(--ha-space-4);
align-items: center;
}
.label {

View File

@@ -74,8 +74,8 @@ class HaBackupSummaryCard extends LitElement {
.summary {
display: flex;
flex-direction: row;
column-gap: 16px;
row-gap: 8px;
column-gap: var(--ha-space-4);
row-gap: var(--ha-space-2);
align-items: center;
padding: 16px;
padding-bottom: 8px;

View File

@@ -117,7 +117,7 @@ class HaBackupOverviewBackups extends LitElement {
padding: 28px 20px 0;
max-width: 690px;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: flex;
flex-direction: column;
margin-bottom: calc(72px + var(--safe-area-inset-bottom));

View File

@@ -61,7 +61,7 @@ class HaBackupOverviewBackups extends LitElement {
display: flex;
flex-direction: row;
align-items: center;
gap: 16px;
gap: var(--ha-space-4);
}
.icon {
position: relative;

View File

@@ -303,7 +303,7 @@ class HaBackupBackupsSummary extends LitElement {
padding: 28px 20px 0;
max-width: 690px;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: flex;
flex-direction: column;
margin-bottom: 24px;

View File

@@ -334,7 +334,7 @@ class HaBackupOverviewBackups extends LitElement {
display: flex;
flex-direction: row;
align-items: center;
gap: 16px;
gap: var(--ha-space-4);
}
p {
margin: 0;

View File

@@ -579,7 +579,7 @@ class DialogBackupOnboarding extends LitElement implements HassDialog {
display: flex;
flex-direction: row;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
.encryption-key p {
margin: 0;

View File

@@ -305,7 +305,7 @@ class DialogChangeBackupEncryptionKey extends LitElement implements HassDialog {
display: flex;
flex-direction: row;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
.encryption-key p {
margin: 0;

View File

@@ -231,7 +231,7 @@ class DialogSetBackupEncryptionKey extends LitElement implements HassDialog {
display: flex;
flex-direction: row;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
.encryption-key p {
margin: 0;

View File

@@ -153,7 +153,7 @@ class DialogShowBackupEncryptionKey extends LitElement implements HassDialog {
display: flex;
flex-direction: row;
align-items: center;
gap: 24px;
gap: var(--ha-space-6);
}
.encryption-key p {
margin: 0;

View File

@@ -189,7 +189,7 @@ class HaConfigBackupBackups extends SubscribeMixin(LitElement) {
0
);
return html`
<div style="display: flex; gap: 4px;">
<div style="display: flex; gap: var(--ha-space-1);">
${displayedAgentIds.map((agentId) => {
const name = computeBackupAgentName(
this.hass.localize,

View File

@@ -356,7 +356,7 @@ class HaConfigBackupDetails extends LitElement {
padding: 28px 20px 0;
max-width: 690px;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: grid;
margin-bottom: 24px;
}
@@ -399,7 +399,7 @@ class HaConfigBackupDetails extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
line-height: var(--ha-line-height-condensed);
}
.dot {

View File

@@ -326,7 +326,7 @@ class HaConfigBackupDetails extends LitElement {
padding: 28px 20px 0;
max-width: 690px;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: grid;
margin-bottom: 24px;
}
@@ -376,7 +376,7 @@ class HaConfigBackupDetails extends LitElement {
display: flex;
align-items: center;
flex-direction: row;
gap: 8px;
gap: var(--ha-space-2);
line-height: var(--ha-line-height-condensed);
}
.dot {

View File

@@ -248,7 +248,7 @@ class HaConfigBackupOverview extends LitElement {
padding: 28px 20px 0;
max-width: 690px;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: flex;
flex-direction: column;
margin-bottom: calc(var(--safe-area-inset-bottom) + 72px);

View File

@@ -510,7 +510,7 @@ class HaConfigBackupSettings extends LitElement {
padding: 28px 20px 0;
max-width: 690px;
margin: 0 auto;
gap: 24px;
gap: var(--ha-space-6);
display: flex;
flex-direction: column;
margin-bottom: 24px;
@@ -532,7 +532,7 @@ class HaConfigBackupSettings extends LitElement {
}
.cloud-info .cloud-header {
display: flex;
gap: 16px;
gap: var(--ha-space-4);
font-size: var(--ha-font-size-xl);
align-items: center;
padding: 16px;

View File

@@ -129,7 +129,7 @@ export class DialogSupportPackage extends LitElement {
}
.actions {
display: flex;
gap: 8px;
gap: var(--ha-space-2);
justify-content: flex-end;
}
hr {

View File

@@ -59,7 +59,7 @@ export class DashboardCard extends LitElement {
padding: 12px;
display: block;
text-align: var(--float-start);
gap: 8px;
gap: var(--ha-space-2);
}
.preview {
padding: 16px;

View File

@@ -921,7 +921,7 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) {
.header {
display: flex;
flex-wrap: wrap;
gap: 24px;
gap: var(--ha-space-6);
align-items: center;
justify-content: space-between;
margin-bottom: 24px;
@@ -932,7 +932,7 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) {
}
.title {
display: flex;
gap: 4px;
gap: var(--ha-space-1);
flex-direction: column;
justify-content: space-between;
}
@@ -991,7 +991,7 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) {
.actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
gap: var(--ha-space-2);
}
.section {
width: 100%;
@@ -1013,7 +1013,7 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) {
.integration-info {
display: flex;
align-items: center;
gap: 8px;
gap: var(--ha-space-2);
}
.integration-info ha-svg-icon {
min-width: 24px;

View File

@@ -1013,7 +1013,7 @@ class HaConfigIntegrationsDashboard extends KeyboardShortcutMixin(
z-index: 2;
background-color: var(--primary-background-color);
padding: 0 16px;
gap: 16px;
gap: var(--ha-space-4);
box-sizing: border-box;
border-bottom: 1px solid var(--divider-color);
}

View File

@@ -91,7 +91,7 @@ class MatterAddDeviceNew extends LitElement {
justify-content: space-between;
padding: 0 24px;
box-sizing: border-box;
gap: 16px;
gap: var(--ha-space-4);
width: 100%;
max-width: 400px;
}

View File

@@ -209,7 +209,7 @@ class ZWaveJSCapabilityThermostatSetback extends LitElement {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
gap: var(--ha-space-4);
}
:host > ha-select {
width: 100%;
@@ -225,7 +225,7 @@ class ZWaveJSCapabilityThermostatSetback extends LitElement {
.setback-state {
width: 100%;
display: flex;
gap: 16px;
gap: var(--ha-space-4);
}
.setback-state ha-select,
ha-textfield {

View File

@@ -362,7 +362,7 @@ class DialogZWaveJSRemoveNode extends LitElement {
display: flex;
align-items: center;
flex-direction: column;
gap: 16px;
gap: var(--ha-space-4);
text-align: center;
}

View File

@@ -997,7 +997,7 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
.right-buttons {
display: flex;
gap: 8px;
gap: var(--ha-space-2);
margin-left: auto;
}

View File

@@ -224,7 +224,7 @@ class ZWaveJSCustomParam extends LitElement {
.custom-config-form {
display: flex;
flex-wrap: wrap;
gap: 16px;
gap: var(--ha-space-4);
margin-bottom: 8px;
}

Some files were not shown because too many files have changed in this diff Show More