20231005.0 (#18126)

* Update dependency @material/web to v1.0.0 (#18070)

* Update dependency @material/web to v1.0.0

* Fix icon button size

* Remove unused ios override

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Paul Bottein <paul.bottein@gmail.com>

* Update dependency magic-string to v0.30.4 (#18089)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Bump postcss from 8.4.30 to 8.4.31 (#18110)

Bumps [postcss](https://github.com/postcss/postcss) from 8.4.30 to 8.4.31.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.30...8.4.31)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update CodeMirror (#18096)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Update vaadinWebComponents monorepo to v24.1.10 (#18092)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Make the "icon next/prev" series load faster (#18087)

* Preserve ancillary fields in a repeat action when modifying the form (#18068)

* Do not clear alias when editing automation action, condition or trigger (#18114)

* Use restart dialog confirmation for quick command (#18113)

* Add translations for restore backup dialogs (#18112)

Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>

* Hide tooltip after clicking on a chart to display more info (cosmetic change) (#18103)

* fix setting wake word to first option everytime (#18121)

* Fix class field for ha-icon-next/prev (#18118)

* Set border-radius to 0 for img in thread panel (#18124)

* Load Intl locale data in parallel (#18120)

* Load Intl locale data in parallel

* Switch to check result.ok

* Update dependency @codemirror/view to v6.21.1 (#18125)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* Bumped version to 20231005.0

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Kendell R <KTibow@users.noreply.github.com>
Co-authored-by: karwosts <32912880+karwosts@users.noreply.github.com>
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Co-authored-by: K3A <966992+k3a@users.noreply.github.com>
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
Co-authored-by: Steve Repsher <steverep@users.noreply.github.com>
This commit is contained in:
Paul Bottein 2023-10-05 18:29:15 +02:00 committed by GitHub
parent 75c43d15e1
commit 9a84ce7b81
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 342 additions and 348 deletions

View File

@ -360,11 +360,9 @@ export class HassioBackups extends LitElement {
if (this.supervisor!.info.state !== "running") {
showAlertDialog(this, {
title: this.supervisor!.localize("backup.could_not_create"),
text: this.supervisor!.localize(
"backup.create_blocked_not_running",
"state",
this.supervisor!.info.state
),
text: this.supervisor!.localize("backup.create_blocked_not_running", {
state: this.supervisor!.info.state,
}),
});
return;
}

View File

@ -31,6 +31,7 @@ import { fileDownload } from "../../../../src/util/file_download";
import "../../components/supervisor-backup-content";
import type { SupervisorBackupContent } from "../../components/supervisor-backup-content";
import { HassioBackupDialogParams } from "./show-dialog-hassio-backup";
import { BackupOrRestoreKey } from "../../util/translations";
@customElement("dialog-hassio-backup")
class HassioBackupDialog
@ -64,6 +65,13 @@ class HassioBackupDialog
fireEvent(this, "dialog-closed", { dialog: this.localName });
}
private _localize(key: BackupOrRestoreKey) {
return (
this._dialogParams!.supervisor?.localize(`backup.${key}`) ||
this._dialogParams!.localize!(`ui.panel.page-onboarding.restore.${key}`)
);
}
protected render() {
if (!this._dialogParams || !this._backup) {
return nothing;
@ -79,7 +87,7 @@ class HassioBackupDialog
<ha-header-bar>
<span slot="title">${this._backup.name}</span>
<ha-icon-button
.label=${this.hass?.localize("ui.common.close") || "Close"}
.label=${this._localize("close")}
.path=${mdiClose}
slot="actionItems"
dialogAction="cancel"
@ -87,29 +95,31 @@ class HassioBackupDialog
</ha-header-bar>
</div>
${this._restoringBackup
? html` <ha-circular-progress active></ha-circular-progress>`
: html`<supervisor-backup-content
.hass=${this.hass}
.supervisor=${this._dialogParams.supervisor}
.backup=${this._backup}
.onboarding=${this._dialogParams.onboarding || false}
.localize=${this._dialogParams.localize}
dialogInitialFocus
>
</supervisor-backup-content>`}
? html`<ha-circular-progress active></ha-circular-progress>`
: html`
<supervisor-backup-content
.hass=${this.hass}
.supervisor=${this._dialogParams.supervisor}
.backup=${this._backup}
.onboarding=${this._dialogParams.onboarding || false}
.localize=${this._dialogParams.localize}
dialogInitialFocus
>
</supervisor-backup-content>
`}
${this._error
? html`<ha-alert alert-type="error">${this._error}</ha-alert>`
: ""}
: nothing}
<mwc-button
.disabled=${this._restoringBackup}
slot="secondaryAction"
@click=${this._restoreClicked}
>
Restore
${this._localize("restore")}
</mwc-button>
${!this._dialogParams.onboarding
${!this._dialogParams.onboarding && this._dialogParams.supervisor
? html`<ha-button-menu
fixed
slot="primaryAction"
@ -117,22 +127,24 @@ class HassioBackupDialog
@closed=${stopPropagation}
>
<ha-icon-button
.label=${this.hass!.localize("ui.common.menu") || "Menu"}
.label=${this._dialogParams.supervisor.localize(
"backup.more_actions"
)}
.path=${mdiDotsVertical}
slot="trigger"
></ha-icon-button>
<mwc-list-item
>${this._dialogParams.supervisor?.localize(
>${this._dialogParams.supervisor.localize(
"backup.download_backup"
)}</mwc-list-item
>
<mwc-list-item class="error"
>${this._dialogParams.supervisor?.localize(
>${this._dialogParams.supervisor.localize(
"backup.delete_backup_title"
)}</mwc-list-item
>
</ha-button-menu>`
: ""}
: nothing}
</ha-dialog>
`;
}
@ -183,21 +195,22 @@ class HassioBackupDialog
}
private async _partialRestoreClicked(backupDetails) {
if (
this._dialogParams?.supervisor !== undefined &&
this._dialogParams?.supervisor.info.state !== "running"
) {
const supervisor = this._dialogParams?.supervisor;
if (supervisor !== undefined && supervisor.info.state !== "running") {
await showAlertDialog(this, {
title: "Could not restore backup",
text: `Restoring a backup is not possible right now because the system is in ${this._dialogParams?.supervisor.info.state} state.`,
title: supervisor.localize("backup.could_not_restore"),
text: supervisor.localize("backup.restore_blocked_not_running", {
state: supervisor.info.state,
}),
});
return;
}
if (
!(await showConfirmationDialog(this, {
title: "Are you sure you want to restore this partial backup?",
confirmText: "restore",
dismissText: "cancel",
title: this._localize("confirm_restore_partial_backup_title"),
text: this._localize("confirm_restore_partial_backup_text"),
confirmText: this._localize("restore"),
dismissText: this._localize("cancel"),
}))
) {
return;
@ -230,22 +243,22 @@ class HassioBackupDialog
}
private async _fullRestoreClicked(backupDetails) {
if (
this._dialogParams?.supervisor !== undefined &&
this._dialogParams?.supervisor.info.state !== "running"
) {
const supervisor = this._dialogParams?.supervisor;
if (supervisor !== undefined && supervisor.info.state !== "running") {
await showAlertDialog(this, {
title: "Could not restore backup",
text: `Restoring a backup is not possible right now because the system is in ${this._dialogParams?.supervisor.info.state} state.`,
title: supervisor.localize("backup.could_not_restore"),
text: supervisor.localize("backup.restore_blocked_not_running", {
state: supervisor.info.state,
}),
});
return;
}
if (
!(await showConfirmationDialog(this, {
title:
"Are you sure you want to wipe your system and restore this backup?",
confirmText: "restore",
dismissText: "cancel",
title: this._localize("confirm_restore_full_backup_title"),
text: this._localize("confirm_restore_full_backup_text"),
confirmText: this._localize("restore"),
dismissText: this._localize("cancel"),
}))
) {
return;
@ -279,11 +292,15 @@ class HassioBackupDialog
}
private async _deleteClicked() {
const supervisor = this._dialogParams?.supervisor;
if (!supervisor) return;
if (
!(await showConfirmationDialog(this, {
title: "Are you sure you want to delete this backup?",
confirmText: "delete",
dismissText: "cancel",
title: supervisor!.localize("backup.confirm_delete_title"),
text: supervisor!.localize("backup.confirm_delete_text"),
confirmText: supervisor!.localize("backup.delete"),
dismissText: supervisor!.localize("backup.cancel"),
}))
) {
return;
@ -301,6 +318,9 @@ class HassioBackupDialog
}
private async _downloadClicked() {
const supervisor = this._dialogParams?.supervisor;
if (!supervisor) return;
let signedPath: { path: string };
try {
signedPath = await getSignedPath(
@ -320,10 +340,10 @@ class HassioBackupDialog
if (window.location.href.includes("ui.nabu.casa")) {
const confirm = await showConfirmationDialog(this, {
title: "Potential slow download",
text: "Downloading backups over the Nabu Casa URL will take some time, it is recomended to use your local URL instead, do you want to continue?",
confirmText: "continue",
dismissText: "cancel",
title: supervisor.localize("backup.remote_download_title"),
text: supervisor.localize("backup.remote_download_text"),
confirmText: supervisor.localize("backup.download"),
dismissText: this._localize("cancel"),
});
if (!confirm) {
return;

View File

@ -89,8 +89,7 @@ class HassioCreateBackupDialog extends LitElement {
),
text: this._dialogParams!.supervisor.localize(
"backup.create_blocked_not_running",
"state",
this._dialogParams!.supervisor.info.state
{ state: this._dialogParams!.supervisor.info.state }
),
});
return;

View File

@ -0,0 +1,4 @@
import type { TranslationDict } from "../../../src/types";
export type BackupOrRestoreKey = keyof TranslationDict["supervisor"]["backup"] &
keyof TranslationDict["ui"]["panel"]["page-onboarding"]["restore"];

View File

@ -28,12 +28,12 @@
"@babel/runtime": "7.23.1",
"@braintree/sanitize-url": "6.0.4",
"@codemirror/autocomplete": "6.9.1",
"@codemirror/commands": "6.2.5",
"@codemirror/commands": "6.3.0",
"@codemirror/language": "6.9.1",
"@codemirror/legacy-modes": "6.3.3",
"@codemirror/search": "6.5.4",
"@codemirror/state": "6.2.1",
"@codemirror/view": "6.20.2",
"@codemirror/view": "6.21.1",
"@egjs/hammerjs": "2.0.17",
"@formatjs/intl-datetimeformat": "6.10.3",
"@formatjs/intl-displaynames": "6.5.2",
@ -80,7 +80,7 @@
"@material/mwc-top-app-bar": "0.27.0",
"@material/mwc-top-app-bar-fixed": "0.27.0",
"@material/top-app-bar": "=14.0.0-canary.53b3cad2f.0",
"@material/web": "=1.0.0-pre.17",
"@material/web": "=1.0.0",
"@mdi/js": "7.2.96",
"@mdi/svg": "7.2.96",
"@polymer/iron-flex-layout": "3.0.1",
@ -94,8 +94,8 @@
"@polymer/paper-toast": "3.0.1",
"@polymer/polymer": "3.5.1",
"@thomasloven/round-slider": "0.6.0",
"@vaadin/combo-box": "24.1.9",
"@vaadin/vaadin-themable-mixin": "24.1.9",
"@vaadin/combo-box": "24.1.10",
"@vaadin/vaadin-themable-mixin": "24.1.10",
"@vibrant/color": "3.2.1-alpha.1",
"@vibrant/core": "3.2.1-alpha.1",
"@vibrant/quantizer-mmcq": "3.2.1-alpha.1",
@ -223,7 +223,7 @@
"lint-staged": "14.0.1",
"lit-analyzer": "2.0.0-pre.3",
"lodash.template": "4.5.0",
"magic-string": "0.30.3",
"magic-string": "0.30.4",
"map-stream": "0.0.7",
"mocha": "10.2.0",
"object-hash": "3.0.0",

View File

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "home-assistant-frontend"
version = "20231002.0"
version = "20231005.0"
license = {text = "Apache-2.0"}
description = "The Home Assistant frontend"
readme = "README.md"

View File

@ -180,7 +180,9 @@ export class StateHistoryChartLine extends LitElement {
return;
}
const points = e.chart.getElementsAtEventForMode(
const chart = e.chart;
const points = chart.getElementsAtEventForMode(
e,
"nearest",
{ intersect: true },
@ -192,6 +194,7 @@ export class StateHistoryChartLine extends LitElement {
fireEvent(this, "hass-more-info", {
entityId: this._entityIds[firstPoint.datasetIndex],
});
chart.canvas.dispatchEvent(new Event("mouseout")); // to hide tooltip
}
},
};

View File

@ -238,6 +238,7 @@ export class StateHistoryChartTimeline extends LitElement {
// @ts-ignore
entityId: this._chartData?.datasets[index]?.label,
});
chart.canvas.dispatchEvent(new Event("mouseout")); // to hide tooltip
},
};
}

View File

@ -12,19 +12,8 @@ export class HaIconButtonArrowNext extends LitElement {
@property() public label?: string;
@state() private _icon = mdiArrowRight;
public connectedCallback() {
super.connectedCallback();
// wait to check for direction since otherwise direction is wrong even though top level is RTL
setTimeout(() => {
this._icon =
window.getComputedStyle(this).direction === "ltr"
? mdiArrowRight
: mdiArrowLeft;
}, 100);
}
@state() private _icon =
document.dir === "ltr" ? mdiArrowRight : mdiArrowLeft;
protected render(): TemplateResult {
return html`

View File

@ -12,19 +12,8 @@ export class HaIconButtonArrowPrev extends LitElement {
@property() public label?: string;
@state() private _icon = mdiArrowLeft;
public connectedCallback() {
super.connectedCallback();
// wait to check for direction since otherwise direction is wrong even though top level is RTL
setTimeout(() => {
this._icon =
window.getComputedStyle(this).direction === "ltr"
? mdiArrowLeft
: mdiArrowRight;
}, 100);
}
@state() private _icon =
document.dir === "ltr" ? mdiArrowLeft : mdiArrowRight;
protected render(): TemplateResult {
return html`

View File

@ -12,19 +12,8 @@ export class HaIconButtonNext extends LitElement {
@property() public label?: string;
@state() private _icon = mdiChevronRight;
public connectedCallback() {
super.connectedCallback();
// wait to check for direction since otherwise direction is wrong even though top level is RTL
setTimeout(() => {
this._icon =
window.getComputedStyle(this).direction === "ltr"
? mdiChevronRight
: mdiChevronLeft;
}, 100);
}
@state() private _icon =
document.dir === "ltr" ? mdiChevronRight : mdiChevronLeft;
protected render(): TemplateResult {
return html`

View File

@ -12,19 +12,8 @@ export class HaIconButtonPrev extends LitElement {
@property() public label?: string;
@state() private _icon = mdiChevronLeft;
public connectedCallback() {
super.connectedCallback();
// wait to check for direction since otherwise direction is wrong even though top level is RTL
setTimeout(() => {
this._icon =
window.getComputedStyle(this).direction === "ltr"
? mdiChevronLeft
: mdiChevronRight;
}, 100);
}
@state() private _icon =
document.dir === "ltr" ? mdiChevronLeft : mdiChevronRight;
protected render(): TemplateResult {
return html`

View File

@ -1,20 +1,11 @@
import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { customElement } from "lit/decorators";
import { customElement, property } from "lit/decorators";
import { HaSvgIcon } from "./ha-svg-icon";
@customElement("ha-icon-next")
export class HaIconNext extends HaSvgIcon {
public connectedCallback() {
super.connectedCallback();
// wait to check for direction since otherwise direction is wrong even though top level is RTL
setTimeout(() => {
this.path =
window.getComputedStyle(this).direction === "ltr"
? mdiChevronRight
: mdiChevronLeft;
}, 100);
}
@property() public override path =
document.dir === "ltr" ? mdiChevronRight : mdiChevronLeft;
}
declare global {

View File

@ -1,20 +1,11 @@
import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { customElement } from "lit/decorators";
import { customElement, property } from "lit/decorators";
import { HaSvgIcon } from "./ha-svg-icon";
@customElement("ha-icon-prev")
export class HaIconPrev extends HaSvgIcon {
public connectedCallback() {
super.connectedCallback();
// wait to check for direction since otherwise direction is wrong even though top level is RTL
setTimeout(() => {
this.path =
window.getComputedStyle(this).direction === "ltr"
? mdiChevronLeft
: mdiChevronRight;
}, 100);
}
@property() public override path =
document.dir === "ltr" ? mdiChevronLeft : mdiChevronRight;
}
declare global {

View File

@ -29,11 +29,6 @@ export class HaOutlinedIconButton extends IconButton {
--md-ripple-hover-opacity: 0;
--md-ripple-pressed-opacity: 0;
}
.outlined {
/* Fix md-outlined-icon-button padding and margin for iOS */
padding: 0;
margin: 0;
}
`,
];
}

View File

@ -60,7 +60,8 @@ export const moreInfoControlCircularSliderStyle = css`
justify-content: space-between;
}
.buttons ha-outlined-icon-button {
--md-outlined-icon-button-container-size: 48px;
--md-outlined-icon-button-container-width: 48px;
--md-outlined-icon-button-container-height: 48px;
--md-outlined-icon-button-icon-size: 24px;
}
/* Accessibility */

View File

@ -8,7 +8,7 @@ import {
mdiReload,
mdiServerNetwork,
} from "@mdi/js";
import { css, html, LitElement, nothing } from "lit";
import { LitElement, css, html, nothing } from "lit";
import { customElement, property, query, state } from "lit/decorators";
import { ifDefined } from "lit/directives/if-defined";
import { styleMap } from "lit/directives/style-map";
@ -23,8 +23,8 @@ import { domainIcon } from "../../common/entity/domain_icon";
import { navigate } from "../../common/navigate";
import { caseInsensitiveStringCompare } from "../../common/string/compare";
import {
fuzzyFilterSort,
ScorableTextItem,
fuzzyFilterSort,
} from "../../common/string/filter/sequence-matching";
import { debounce } from "../../common/util/debounce";
import "../../components/ha-chip";
@ -40,10 +40,7 @@ import { configSections } from "../../panels/config/ha-panel-config";
import { haStyleDialog, haStyleScrollbar } from "../../resources/styles";
import { loadVirtualizer } from "../../resources/virtualizer";
import { HomeAssistant } from "../../types";
import {
ConfirmationDialogParams,
showConfirmationDialog,
} from "../generic/show-dialog-box";
import { showConfirmationDialog } from "../generic/show-dialog-box";
import { QuickBarParams } from "./show-dialog-quick-bar";
interface QuickBarItem extends ScorableTextItem {
@ -602,16 +599,30 @@ export class QuickBar extends LitElement {
`ui.dialogs.quick-bar.commands.types.${categoryKey}`
),
categoryKey,
action: () => this.hass.callService("homeassistant", action),
action: async () => {
const confirmed = await showConfirmationDialog(this, {
title: this.hass.localize(
`ui.dialogs.restart.${action}.confirm_title`
),
text: this.hass.localize(
`ui.dialogs.restart.${action}.confirm_description`
),
confirmText: this.hass.localize(
`ui.dialogs.restart.${action}.confirm_action`
),
destructive: true,
});
if (!confirmed) {
return;
}
this.hass.callService("homeassistant", action);
},
};
return this._generateConfirmationCommand(
{
...item,
strings: [`${item.categoryText} ${item.primaryText}`],
},
this.hass.localize("ui.dialogs.generic.ok")
);
return {
...item,
strings: [`${item.categoryText} ${item.primaryText}`],
};
});
}
@ -717,20 +728,6 @@ export class QuickBar extends LitElement {
return undefined;
}
private _generateConfirmationCommand(
item: CommandItem,
confirmText: ConfirmationDialogParams["confirmText"]
): CommandItem {
return {
...item,
action: () =>
showConfirmationDialog(this, {
confirmText,
confirm: item.action,
}),
};
}
private _finalizeNavigationCommands(
items: BaseNavigationCommand[]
): CommandItem[] {

View File

@ -391,7 +391,10 @@ export default class HaAutomationActionRow extends LitElement {
></ha-yaml-editor>
`
: html`
<div @ui-mode-not-available=${this._handleUiModeNotAvailable}>
<div
@ui-mode-not-available=${this._handleUiModeNotAvailable}
@value-changed=${this._onUiChanged}
>
${dynamicElement(`ha-automation-action-${type}`, {
hass: this.hass,
action: this.action,
@ -530,6 +533,15 @@ export default class HaAutomationActionRow extends LitElement {
fireEvent(this, "value-changed", { value: ev.detail.value });
}
private _onUiChanged(ev: CustomEvent) {
ev.stopPropagation();
const value = {
...(this.action.alias ? { alias: this.action.alias } : {}),
...ev.detail.value,
};
fireEvent(this, "value-changed", { value });
}
private _switchUiMode() {
this._warnings = undefined;
this._yamlMode = false;

View File

@ -54,6 +54,7 @@ export class HaSceneAction extends LitElement implements ActionElement {
ev.stopPropagation();
fireEvent(this, "value-changed", {
value: {
...this.action,
service: "scene.turn_on",
target: {
entity_id: ev.detail.value,

View File

@ -51,6 +51,7 @@ export class HaPlayMediaAction extends LitElement implements ActionElement {
ev.stopPropagation();
fireEvent(this, "value-changed", {
value: {
...this.action,
service: "media_player.play_media",
target: { entity_id: ev.detail.value.entity_id },
data: {

View File

@ -139,6 +139,7 @@ export class HaRepeatAction extends LitElement implements ActionElement {
fireEvent(this, "value-changed", {
value: {
...this.action,
repeat: { ...newVal },
},
});

View File

@ -62,7 +62,7 @@ export default class HaAutomationConditionEditor extends LitElement {
></ha-yaml-editor>
`
: html`
<div>
<div @value-changed=${this._onUiChanged}>
${dynamicElement(
`ha-automation-condition-${condition.condition}`,
{
@ -86,6 +86,15 @@ export default class HaAutomationConditionEditor extends LitElement {
fireEvent(this, "value-changed", { value: ev.detail.value, yaml: true });
}
private _onUiChanged(ev: CustomEvent) {
ev.stopPropagation();
const value = {
...(this.condition.alias ? { alias: this.condition.alias } : {}),
...ev.detail.value,
};
fireEvent(this, "value-changed", { value });
}
static styles = haStyle;
}

View File

@ -350,7 +350,10 @@ export default class HaAutomationTriggerRow extends LitElement {
</ha-textfield>
`
: ""}
<div @ui-mode-not-available=${this._handleUiModeNotAvailable}>
<div
@ui-mode-not-available=${this._handleUiModeNotAvailable}
@value-changed=${this._onUiChanged}
>
${dynamicElement(
`ha-automation-trigger-${this.trigger.platform}`,
{
@ -562,6 +565,15 @@ export default class HaAutomationTriggerRow extends LitElement {
fireEvent(this, "value-changed", { value: ev.detail.value });
}
private _onUiChanged(ev: CustomEvent) {
ev.stopPropagation();
const value = {
...(this.trigger.alias ? { alias: this.trigger.alias } : {}),
...ev.detail.value,
};
fireEvent(this, "value-changed", { value });
}
private _switchUiMode() {
this._warnings = undefined;
this._yamlMode = false;

View File

@ -635,6 +635,9 @@ export class ThreadConfigPanel extends SubscribeMixin(LitElement) {
cursor: default;
overflow: visible;
}
ha-list-item img {
border-radius: 0;
}
ha-svg-icon[slot="meta"] {
width: 24px;
}

View File

@ -72,7 +72,10 @@ export class AssistPipelineDetailWakeWord extends LitElement {
changedProps.has("data") &&
changedProps.get("data")?.wake_word_entity !== this.data?.wake_word_entity
) {
if (this.data?.wake_word_id) {
if (
changedProps.get("data")?.wake_word_entity &&
this.data?.wake_word_id
) {
fireEvent(this, "value-changed", {
value: { ...this.data, wake_word_id: undefined },
});
@ -140,8 +143,9 @@ export class AssistPipelineDetailWakeWord extends LitElement {
}
this._wakeWords = wakewordInfo.wake_words;
if (
!this.data?.wake_word_id ||
!this._wakeWords.some((ww) => ww.id === this.data!.wake_word_id)
this.data &&
(!this.data?.wake_word_id ||
!this._wakeWords.some((ww) => ww.id === this.data!.wake_word_id))
) {
fireEvent(this, "value-changed", {
value: { ...this.data, wake_word_id: this._wakeWords[0]?.id },

View File

@ -164,6 +164,7 @@ export class HuiEnergyDevicesGraphCard
// @ts-ignore
entityId: this._chartData?.datasets[0]?.data[index]?.y,
});
chart.canvas.dispatchEvent(new Event("mouseout")); // to hide tooltip
},
})
);

View File

@ -1,70 +1,36 @@
// Loads the static locale data for a given language from FormatJS
// Parents need to load polyfills first; they are not imported here to avoid a circular reference
const loadedPolyfillLocale = new Set();
const INTL_POLYFILLS = [
"DateTimeFormat",
"DisplayNames",
"ListFormat",
"NumberFormat",
"RelativeTimeFormat",
] as const satisfies readonly (keyof typeof Intl)[];
export const polyfillLocaleData = async (language: string) => {
if (loadedPolyfillLocale.has(language)) {
return;
}
loadedPolyfillLocale.add(language);
try {
if (
Intl.NumberFormat &&
// @ts-ignore
typeof Intl.NumberFormat.__addLocaleData === "function"
) {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-numberformat/${language}.json`
);
// @ts-ignore
Intl.NumberFormat.__addLocaleData(await result.json());
const loadedLocales: Set<string> = new Set();
const addData = async (
obj: (typeof INTL_POLYFILLS)[number],
language: string
) => {
// Add function will only exist if constructor is polyfilled
if (typeof (Intl[obj] as any)?.__addLocaleData === "function") {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-${obj.toLowerCase()}/${language}.json`
);
// Ignore if polyfill data does not exist for language
if (result.ok) {
(Intl[obj] as any).__addLocaleData(await result.json());
}
if (
Intl.RelativeTimeFormat &&
// @ts-ignore
typeof Intl.RelativeTimeFormat.__addLocaleData === "function"
) {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-relativetimeformat/${language}.json`
);
// @ts-ignore
Intl.RelativeTimeFormat.__addLocaleData(await result.json());
}
if (
Intl.DateTimeFormat &&
// @ts-ignore
typeof Intl.DateTimeFormat.__addLocaleData === "function"
) {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-datetimeformat/${language}.json`
);
// @ts-ignore
Intl.DateTimeFormat.__addLocaleData(await result.json());
}
if (
Intl.DisplayNames &&
// @ts-ignore
typeof Intl.DisplayNames.__addLocaleData === "function"
) {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-displaynames/${language}.json`
);
// @ts-ignore
Intl.DisplayNames.__addLocaleData(await result.json());
}
if (
Intl.ListFormat &&
// @ts-ignore
typeof Intl.ListFormat.__addLocaleData === "function"
) {
const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-listformat/${language}.json`
);
// @ts-ignore
Intl.ListFormat.__addLocaleData(await result.json());
}
} catch (e) {
// Ignore
}
};
export const polyfillLocaleData = async (language: string) => {
if (loadedLocales.has(language)) {
return;
}
loadedLocales.add(language);
await Promise.all(INTL_POLYFILLS.map((obj) => addData(obj, language)));
};

View File

@ -1203,6 +1203,11 @@
"confirm_action": "Restart",
"failed": "Failed to restart Home Assistant"
},
"stop": {
"confirm_title": "Stop Home Assistant?",
"confirm_description": "This will interrupt all running automations and scripts.",
"confirm_action": "Stop"
},
"reboot": {
"title": "Reboot system",
"description": "Restart the system running Home Assistant and all Add-ons.",
@ -5853,7 +5858,14 @@
"addons": "[%key:supervisor::backup::addons%]",
"password_protection": "[%key:supervisor::backup::password_protection%]",
"password": "[%key:supervisor::backup::password%]",
"confirm_password": "[%key:supervisor::backup::confirm_password%]"
"confirm_password": "[%key:supervisor::backup::confirm_password%]",
"confirm_restore_partial_backup_title": "[%key:supervisor::backup::confirm_restore_partial_backup_title%]",
"confirm_restore_partial_backup_text": "[%key:supervisor::backup::confirm_restore_partial_backup_text%]",
"confirm_restore_full_backup_title": "[%key:supervisor::backup::confirm_restore_full_backup_title%]",
"confirm_restore_full_backup_text": "[%key:supervisor::backup::confirm_restore_full_backup_text%]",
"restore": "[%key:supervisor::backup::restore%]",
"close": "[%key:ui::common::close%]",
"cancel": "[%key:ui::common::cancel%]"
}
},
"custom": {
@ -6256,7 +6268,8 @@
"backup": {
"search": "[%key:ui::panel::config::backup::picker::search%]",
"no_backups": "You don't have any backups yet.",
"create_blocked_not_running": "Creating a backup is not possible right now because the system is in {state} state.",
"create_blocked_not_running": "Creating a backup is not possible right now because the system is in \"{state}\" state.",
"restore_blocked_not_running": "Restoring a backup is not possible right now because the system is in \"{state}\" state.",
"delete_selected": "Delete selected backups",
"delete_backup_title": "Delete backup",
"delete_backup_text": "Do you want to delete {number} {number, plural,\n one {backup}\n other {backups}\n}?",
@ -6264,6 +6277,7 @@
"selected": "{number} selected",
"failed_to_delete": "Failed to delete",
"could_not_create": "Could not create backup",
"could_not_restore": "Could not restore backup",
"upload_backup": "Upload backup",
"download_backup": "Download backup",
"create_backup": "Create backup",
@ -6284,7 +6298,21 @@
"password_protection": "Password protection",
"enter_password": "Please enter a password.",
"passwords_not_matching": "The passwords does not match",
"backup_already_running": "A backup or restore is already running, creating a new backup is currently not possible, try again later."
"backup_already_running": "A backup or restore is already running. Creating a new backup is currently not possible, try again later.",
"confirm_restore_partial_backup_title": "Restore partial backup",
"confirm_restore_partial_backup_text": "The backup will be restored. Depending on the size of the backup, this can take up to 45 min.",
"confirm_restore_full_backup_title": "Restore full backup",
"confirm_restore_full_backup_text": "Your entire system will be wiped and the backup will be restored. Depending on the size of the backup, this can take up to 45 min.",
"confirm_delete_title": "Delete backup",
"confirm_delete_text": "This backup will be permanently deleted and cannot be restored later.",
"restore": "Restore",
"close": "[%key:ui::common::close%]",
"cancel": "[%key:ui::common::cancel%]",
"delete": "[%key:ui::common::delete%]",
"download": "Download",
"more_actions": "More actions",
"remote_download_title": "Potentially slow download",
"remote_download_text": "You are accessing Home Assistant via remote access. Downloading backups over the Nabu Casa URL will take some time. If you are at home, cancel this dialog and enter your local URL, such as 'http://homeassistant.local:8123'"
},
"dialog": {
"network": {

214
yarn.lock
View File

@ -1454,15 +1454,15 @@ __metadata:
languageName: node
linkType: hard
"@codemirror/commands@npm:6.2.5":
version: 6.2.5
resolution: "@codemirror/commands@npm:6.2.5"
"@codemirror/commands@npm:6.3.0":
version: 6.3.0
resolution: "@codemirror/commands@npm:6.3.0"
dependencies:
"@codemirror/language": ^6.0.0
"@codemirror/state": ^6.2.0
"@codemirror/view": ^6.0.0
"@lezer/common": ^1.0.0
checksum: 6d373bcfd4337160243e1493c8703a8e367e208811742331679a6410a3645de36ae8a5664e11790fec521137b45f34d703e9292932a98c4de10139510f3f29a3
"@lezer/common": ^1.1.0
checksum: d6ade0ba7d4f80c2e44163935783d2f2f35c8b641a4b4f62452c0630211670abe5093786cf5a4af14147102d4284dae660a26f3ae58fd840e838685a81107d11
languageName: node
linkType: hard
@ -1507,14 +1507,14 @@ __metadata:
languageName: node
linkType: hard
"@codemirror/view@npm:6.20.2, @codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0":
version: 6.20.2
resolution: "@codemirror/view@npm:6.20.2"
"@codemirror/view@npm:6.21.1, @codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0":
version: 6.21.1
resolution: "@codemirror/view@npm:6.21.1"
dependencies:
"@codemirror/state": ^6.1.4
style-mod: ^4.1.0
w3c-keyname: ^2.2.4
checksum: eaf47726bb94b40f12c6f1d3494b558addaa7cd98a4ff05bfea7439c03cca3967d73380346ea8b06021478c21ec336a74665c9acb44e2b0280d5e0da4714387b
checksum: c2271a03559c5ef469dc941bd345e5355b4f704a582ca49ff69db915dcf10f175d2fc2ad6d8f4c10b371abb20e0c0f2e625c9348b681566e52a4dfdb5adfe648
languageName: node
linkType: hard
@ -3164,13 +3164,13 @@ __metadata:
languageName: node
linkType: hard
"@material/web@npm:=1.0.0-pre.17":
version: 1.0.0-pre.17
resolution: "@material/web@npm:1.0.0-pre.17"
"@material/web@npm:=1.0.0":
version: 1.0.0
resolution: "@material/web@npm:1.0.0"
dependencies:
lit: ^2.7.4 || ^3.0.0
tslib: ^2.4.0
checksum: a6443931677d981a0152fe52927b1aa2a9490354c81fbf77f3f9f33accfdc567dc2a431ae0a3cb375dff60a322ff7babd49fb62b186bcf43285e09fecd48a594
checksum: 0c6772ab2b2c144bba62f323a6d657d44ea3b2c9a2b8e745e0e5d17081983724e8e72857a58a930df28073ec931ed04a4f2364bdcbdf72ce5c85a03abc0578f3
languageName: node
linkType: hard
@ -4755,126 +4755,126 @@ __metadata:
languageName: node
linkType: hard
"@vaadin/a11y-base@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/a11y-base@npm:24.1.9"
"@vaadin/a11y-base@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/a11y-base@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
"@polymer/polymer": ^3.0.0
"@vaadin/component-base": ~24.1.9
"@vaadin/component-base": ~24.1.10
lit: ^2.0.0
checksum: 773c96bf2d99668a43fa5420002bd8e9c1c677bcf6ab7248cde7b46520f2819e8a862ca930f3dcebb8eae5f312ebaa7af7353d495407766e9dde2f02162868c2
checksum: aec01290993b717c219f3d84959cc0cec8db4717422d69a721549691620121d877ebc2c8f5763e91b92770d86c8dd76d4d98b2b4216f67a56fb7a526e7e2c916
languageName: node
linkType: hard
"@vaadin/combo-box@npm:24.1.9":
version: 24.1.9
resolution: "@vaadin/combo-box@npm:24.1.9"
"@vaadin/combo-box@npm:24.1.10":
version: 24.1.10
resolution: "@vaadin/combo-box@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
"@polymer/polymer": ^3.0.0
"@vaadin/a11y-base": ~24.1.9
"@vaadin/component-base": ~24.1.9
"@vaadin/field-base": ~24.1.9
"@vaadin/input-container": ~24.1.9
"@vaadin/item": ~24.1.9
"@vaadin/lit-renderer": ~24.1.9
"@vaadin/overlay": ~24.1.9
"@vaadin/vaadin-lumo-styles": ~24.1.9
"@vaadin/vaadin-material-styles": ~24.1.9
"@vaadin/vaadin-themable-mixin": ~24.1.9
checksum: a709aefc2bacc150b3d86fbf825f2dd381f8fdf863250ff4beabfdb084c765d8b5a5dac4cfe5641875aed8be67c1f72fc6e3bc9572baf26b68c88c58ba148421
"@vaadin/a11y-base": ~24.1.10
"@vaadin/component-base": ~24.1.10
"@vaadin/field-base": ~24.1.10
"@vaadin/input-container": ~24.1.10
"@vaadin/item": ~24.1.10
"@vaadin/lit-renderer": ~24.1.10
"@vaadin/overlay": ~24.1.10
"@vaadin/vaadin-lumo-styles": ~24.1.10
"@vaadin/vaadin-material-styles": ~24.1.10
"@vaadin/vaadin-themable-mixin": ~24.1.10
checksum: 0e776a8f2e606d7e1f667dda9f26724b31520354ce64e6333e19f9fc1b67ead07acd370e8122bc26c910802e83e789e825de8fe746c26d2d53eb91f4f880f1e7
languageName: node
linkType: hard
"@vaadin/component-base@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/component-base@npm:24.1.9"
"@vaadin/component-base@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/component-base@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
"@polymer/polymer": ^3.0.0
"@vaadin/vaadin-development-mode-detector": ^2.0.0
"@vaadin/vaadin-usage-statistics": ^2.1.0
lit: ^2.0.0
checksum: 5480a5523e68bc38a1438c5f1a892f9b9901b24a736927107fd95fa4f699b611c12f4ae24a272d0133cb165561951203fa17be6c0e9742092827c580d69d1c4c
checksum: fbb2c40c6bfea2bf38c4161e70bb17bc8c7eef5b281d7a9e4e5f83e5bb7ade4d41cff5eb3e9f580a45470cee84a2efb675b32e878733d989cac5e56e21750627
languageName: node
linkType: hard
"@vaadin/field-base@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/field-base@npm:24.1.9"
"@vaadin/field-base@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/field-base@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
"@polymer/polymer": ^3.0.0
"@vaadin/a11y-base": ~24.1.9
"@vaadin/component-base": ~24.1.9
"@vaadin/a11y-base": ~24.1.10
"@vaadin/component-base": ~24.1.10
lit: ^2.0.0
checksum: b9cef524ece180690b23deb5af4fcf2b121ef7df9c3028e1bdcf1e9d24374aadf416e18a922cae4cc9e8eac9f57b4de79c3787ef068c4e55f497b3632a3e92d3
checksum: 0b88d9b69f41caf4a9f2b720fc50b49a57b79db7dc1c4fb85515a1ab79b650066960812c7be29125554a68f5b7200cec6586dfec5385f70a079632b8f1b9bf41
languageName: node
linkType: hard
"@vaadin/icon@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/icon@npm:24.1.9"
"@vaadin/icon@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/icon@npm:24.1.10"
dependencies:
"@polymer/polymer": ^3.0.0
"@vaadin/component-base": ~24.1.9
"@vaadin/vaadin-lumo-styles": ~24.1.9
"@vaadin/vaadin-themable-mixin": ~24.1.9
"@vaadin/component-base": ~24.1.10
"@vaadin/vaadin-lumo-styles": ~24.1.10
"@vaadin/vaadin-themable-mixin": ~24.1.10
lit: ^2.0.0
checksum: 53e84bf2afc4c5ed50274080e21a1eca964d2c79efaa93c8b83f798adea8a89a73ee5361b812f63773485299943b23bffea11ce91467c8d991d2a851b248d242
checksum: 33980e49503b2e5986ceb4f81d5c520f1a0f252a1d49001a96aef3a38180d0840fc2066ccc858bfca1eaa086ea73ec113c0a3401a57661ed72c0eb4d5425f245
languageName: node
linkType: hard
"@vaadin/input-container@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/input-container@npm:24.1.9"
"@vaadin/input-container@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/input-container@npm:24.1.10"
dependencies:
"@polymer/polymer": ^3.0.0
"@vaadin/component-base": ~24.1.9
"@vaadin/vaadin-lumo-styles": ~24.1.9
"@vaadin/vaadin-material-styles": ~24.1.9
"@vaadin/vaadin-themable-mixin": ~24.1.9
checksum: 4b126151bacf2f6c030c0a75a2e38e91dfd80bbb4ae009f2a250ffa2d4c9accda0d4ffdf16da8f43017641decf12c37c2722e66cb41cda718f413fe311d7fdb4
"@vaadin/component-base": ~24.1.10
"@vaadin/vaadin-lumo-styles": ~24.1.10
"@vaadin/vaadin-material-styles": ~24.1.10
"@vaadin/vaadin-themable-mixin": ~24.1.10
checksum: ad6bda87ed61e9f6ce9011491b0b9a009bf5f4514f93b7b5617f575950015210f69c87371fd342be7c8b51fc82bbc70ca9af559dc8de90343c6818e1428fa416
languageName: node
linkType: hard
"@vaadin/item@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/item@npm:24.1.9"
"@vaadin/item@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/item@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
"@polymer/polymer": ^3.0.0
"@vaadin/a11y-base": ~24.1.9
"@vaadin/component-base": ~24.1.9
"@vaadin/vaadin-lumo-styles": ~24.1.9
"@vaadin/vaadin-material-styles": ~24.1.9
"@vaadin/vaadin-themable-mixin": ~24.1.9
checksum: 50ec496b64c6062fe560c7481269b9fe2f381432415bae41c97b4a16ab7507fa66ff33a750402b6644792051fe121239b6f253dc2414a2c7aa3ab8f901bbbcd6
"@vaadin/a11y-base": ~24.1.10
"@vaadin/component-base": ~24.1.10
"@vaadin/vaadin-lumo-styles": ~24.1.10
"@vaadin/vaadin-material-styles": ~24.1.10
"@vaadin/vaadin-themable-mixin": ~24.1.10
checksum: 81158c43976d159bed8a92a54bfe40ca319650aa60c8a4bd5b89e69f965abf385d6f5ac7bbef1040e1c60adc5c2d1aeacc75dede1618923159b686209209a1da
languageName: node
linkType: hard
"@vaadin/lit-renderer@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/lit-renderer@npm:24.1.9"
"@vaadin/lit-renderer@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/lit-renderer@npm:24.1.10"
dependencies:
lit: ^2.0.0
checksum: 3ba6836d211f1cc458c898e4ac5e55aba2cf33efe2a9df8afd7d98dc039aa6b4eccc0274a08c7b466795760e90887d81341d56fca3ad33215ea8d8e4bd7b9f11
checksum: f5eec0c3a8482bda03955b3e35e730edde78d2a06672a1ee0c4bd691e93308c7303b2051cb80b79f93dd924c2a2094c6135ecedbdb47dfc5a3068235b041b9e6
languageName: node
linkType: hard
"@vaadin/overlay@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/overlay@npm:24.1.9"
"@vaadin/overlay@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/overlay@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
"@polymer/polymer": ^3.0.0
"@vaadin/a11y-base": ~24.1.9
"@vaadin/component-base": ~24.1.9
"@vaadin/vaadin-lumo-styles": ~24.1.9
"@vaadin/vaadin-material-styles": ~24.1.9
"@vaadin/vaadin-themable-mixin": ~24.1.9
checksum: 387b642a9f0d7b85d3cee0a1a6a09701ef39ba0fd667cb0e2701fd0e8a40d6afd974044588f47f34ec66a4ca0cd524c72f4f34b90b7d74f5587ff3824eb79317
"@vaadin/a11y-base": ~24.1.10
"@vaadin/component-base": ~24.1.10
"@vaadin/vaadin-lumo-styles": ~24.1.10
"@vaadin/vaadin-material-styles": ~24.1.10
"@vaadin/vaadin-themable-mixin": ~24.1.10
checksum: 6bd9477c11a86cd26b42de11da9ca8f863b9e0e75e3b54c1fbdacd64c8974dbeaecbde1842be32ef3108aab6611c1e266b0cacd42c3ab977457d4e18bcbf8b27
languageName: node
linkType: hard
@ -4885,34 +4885,34 @@ __metadata:
languageName: node
linkType: hard
"@vaadin/vaadin-lumo-styles@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/vaadin-lumo-styles@npm:24.1.9"
"@vaadin/vaadin-lumo-styles@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/vaadin-lumo-styles@npm:24.1.10"
dependencies:
"@polymer/polymer": ^3.0.0
"@vaadin/icon": ~24.1.9
"@vaadin/vaadin-themable-mixin": ~24.1.9
checksum: c4266f3b0a8cb739f50d67cd9e68965dbf462505a04c51659809f56e747492131b8b7da422b2725bfeec387978b782418268c46dc988e2f5cefec6303b89ca5c
"@vaadin/icon": ~24.1.10
"@vaadin/vaadin-themable-mixin": ~24.1.10
checksum: 40abf84d0552b16561c528cd41f9acd15cfb9bee2796c0c8cedacd8977059ad5e01834aa36c8c25ad605847bb8759e3753f7e4c6a5f15127f262b841a457f59e
languageName: node
linkType: hard
"@vaadin/vaadin-material-styles@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/vaadin-material-styles@npm:24.1.9"
"@vaadin/vaadin-material-styles@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/vaadin-material-styles@npm:24.1.10"
dependencies:
"@polymer/polymer": ^3.0.0
"@vaadin/vaadin-themable-mixin": ~24.1.9
checksum: f4cda5bf4c7d8a00cbbd59dc21e540a5b2df7c0f20056442564f8636a31f2784e8b403ee9aa330ddff0adbf0308f3a3df5a356c08ac3572e3429aad43c062baf
"@vaadin/vaadin-themable-mixin": ~24.1.10
checksum: 3ba00529fe103a32d50fa1a68d1c127b71ff944ad7566da31c7bf8e8c125f48a1c1ad91c96070b22c54087592ea9559392495f0d9fe8d9b65b2046cc4e855b52
languageName: node
linkType: hard
"@vaadin/vaadin-themable-mixin@npm:24.1.9, @vaadin/vaadin-themable-mixin@npm:~24.1.9":
version: 24.1.9
resolution: "@vaadin/vaadin-themable-mixin@npm:24.1.9"
"@vaadin/vaadin-themable-mixin@npm:24.1.10, @vaadin/vaadin-themable-mixin@npm:~24.1.10":
version: 24.1.10
resolution: "@vaadin/vaadin-themable-mixin@npm:24.1.10"
dependencies:
"@open-wc/dedupe-mixin": ^1.3.0
lit: ^2.0.0
checksum: b006a5b998b2e5ee74ad3b04fd933c34d8d4c8b0578d52ed334de8ad957c78ee6ac4e92e2c38372dcd942b6b75ea65a9ae88549c8097e02c1f386ea4d44338e2
checksum: 409b8ef11f09a1090630ee09851366e40cc04583853b4ccd2aeef17915cf466a3bd7e0f183b98a469396aef24600cf30c794c3da9ccd72085b9f7588bec67095
languageName: node
linkType: hard
@ -9635,12 +9635,12 @@ __metadata:
"@babel/runtime": 7.23.1
"@braintree/sanitize-url": 6.0.4
"@codemirror/autocomplete": 6.9.1
"@codemirror/commands": 6.2.5
"@codemirror/commands": 6.3.0
"@codemirror/language": 6.9.1
"@codemirror/legacy-modes": 6.3.3
"@codemirror/search": 6.5.4
"@codemirror/state": 6.2.1
"@codemirror/view": 6.20.2
"@codemirror/view": 6.21.1
"@egjs/hammerjs": 2.0.17
"@formatjs/intl-datetimeformat": 6.10.3
"@formatjs/intl-displaynames": 6.5.2
@ -9689,7 +9689,7 @@ __metadata:
"@material/mwc-top-app-bar": 0.27.0
"@material/mwc-top-app-bar-fixed": 0.27.0
"@material/top-app-bar": =14.0.0-canary.53b3cad2f.0
"@material/web": =1.0.0-pre.17
"@material/web": =1.0.0
"@mdi/js": 7.2.96
"@mdi/svg": 7.2.96
"@octokit/auth-oauth-device": 6.0.1
@ -9731,8 +9731,8 @@ __metadata:
"@types/webspeechapi": 0.0.29
"@typescript-eslint/eslint-plugin": 6.7.3
"@typescript-eslint/parser": 6.7.3
"@vaadin/combo-box": 24.1.9
"@vaadin/vaadin-themable-mixin": 24.1.9
"@vaadin/combo-box": 24.1.10
"@vaadin/vaadin-themable-mixin": 24.1.10
"@vibrant/color": 3.2.1-alpha.1
"@vibrant/core": 3.2.1-alpha.1
"@vibrant/quantizer-mmcq": 3.2.1-alpha.1
@ -9793,7 +9793,7 @@ __metadata:
lit-analyzer: 2.0.0-pre.3
lodash.template: 4.5.0
luxon: 3.4.3
magic-string: 0.30.3
magic-string: 0.30.4
map-stream: 0.0.7
marked: 9.0.3
memoize-one: 6.0.0
@ -11710,12 +11710,12 @@ __metadata:
languageName: node
linkType: hard
"magic-string@npm:0.30.3":
version: 0.30.3
resolution: "magic-string@npm:0.30.3"
"magic-string@npm:0.30.4":
version: 0.30.4
resolution: "magic-string@npm:0.30.4"
dependencies:
"@jridgewell/sourcemap-codec": ^1.4.15
checksum: a5a9ddf9bd3bf49a2de1048bf358464f1bda7b3cc1311550f4a0ba8f81a4070e25445d53a5ee28850161336f1bff3cf28aa3320c6b4aeff45ce3e689f300b2f3
checksum: bef57c926d14e9926c142307c1494cc4bdea28a56601a7624f1a5bcd34a63800e2d8a363e826436ce86104460a63ee76c7c185a6ab1f8f7ee5af2de475b98947
languageName: node
linkType: hard
@ -13267,13 +13267,13 @@ __metadata:
linkType: hard
"postcss@npm:^8.4.14":
version: 8.4.30
resolution: "postcss@npm:8.4.30"
version: 8.4.31
resolution: "postcss@npm:8.4.31"
dependencies:
nanoid: ^3.3.6
picocolors: ^1.0.0
source-map-js: ^1.0.2
checksum: 6c810c10c9bd3e03ca016e0b6b6756261e640aba1a9a7b1200b55502bc34b9165e38f590aef3493afc2f30ab55cdfcd43fd0f8408d69a77318ddbcf2a8ad164b
checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea
languageName: node
linkType: hard