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") { if (this.supervisor!.info.state !== "running") {
showAlertDialog(this, { showAlertDialog(this, {
title: this.supervisor!.localize("backup.could_not_create"), title: this.supervisor!.localize("backup.could_not_create"),
text: this.supervisor!.localize( text: this.supervisor!.localize("backup.create_blocked_not_running", {
"backup.create_blocked_not_running", state: this.supervisor!.info.state,
"state", }),
this.supervisor!.info.state
),
}); });
return; return;
} }

View File

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

View File

@ -89,8 +89,7 @@ class HassioCreateBackupDialog extends LitElement {
), ),
text: this._dialogParams!.supervisor.localize( text: this._dialogParams!.supervisor.localize(
"backup.create_blocked_not_running", "backup.create_blocked_not_running",
"state", { state: this._dialogParams!.supervisor.info.state }
this._dialogParams!.supervisor.info.state
), ),
}); });
return; 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", "@babel/runtime": "7.23.1",
"@braintree/sanitize-url": "6.0.4", "@braintree/sanitize-url": "6.0.4",
"@codemirror/autocomplete": "6.9.1", "@codemirror/autocomplete": "6.9.1",
"@codemirror/commands": "6.2.5", "@codemirror/commands": "6.3.0",
"@codemirror/language": "6.9.1", "@codemirror/language": "6.9.1",
"@codemirror/legacy-modes": "6.3.3", "@codemirror/legacy-modes": "6.3.3",
"@codemirror/search": "6.5.4", "@codemirror/search": "6.5.4",
"@codemirror/state": "6.2.1", "@codemirror/state": "6.2.1",
"@codemirror/view": "6.20.2", "@codemirror/view": "6.21.1",
"@egjs/hammerjs": "2.0.17", "@egjs/hammerjs": "2.0.17",
"@formatjs/intl-datetimeformat": "6.10.3", "@formatjs/intl-datetimeformat": "6.10.3",
"@formatjs/intl-displaynames": "6.5.2", "@formatjs/intl-displaynames": "6.5.2",
@ -80,7 +80,7 @@
"@material/mwc-top-app-bar": "0.27.0", "@material/mwc-top-app-bar": "0.27.0",
"@material/mwc-top-app-bar-fixed": "0.27.0", "@material/mwc-top-app-bar-fixed": "0.27.0",
"@material/top-app-bar": "=14.0.0-canary.53b3cad2f.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/js": "7.2.96",
"@mdi/svg": "7.2.96", "@mdi/svg": "7.2.96",
"@polymer/iron-flex-layout": "3.0.1", "@polymer/iron-flex-layout": "3.0.1",
@ -94,8 +94,8 @@
"@polymer/paper-toast": "3.0.1", "@polymer/paper-toast": "3.0.1",
"@polymer/polymer": "3.5.1", "@polymer/polymer": "3.5.1",
"@thomasloven/round-slider": "0.6.0", "@thomasloven/round-slider": "0.6.0",
"@vaadin/combo-box": "24.1.9", "@vaadin/combo-box": "24.1.10",
"@vaadin/vaadin-themable-mixin": "24.1.9", "@vaadin/vaadin-themable-mixin": "24.1.10",
"@vibrant/color": "3.2.1-alpha.1", "@vibrant/color": "3.2.1-alpha.1",
"@vibrant/core": "3.2.1-alpha.1", "@vibrant/core": "3.2.1-alpha.1",
"@vibrant/quantizer-mmcq": "3.2.1-alpha.1", "@vibrant/quantizer-mmcq": "3.2.1-alpha.1",
@ -223,7 +223,7 @@
"lint-staged": "14.0.1", "lint-staged": "14.0.1",
"lit-analyzer": "2.0.0-pre.3", "lit-analyzer": "2.0.0-pre.3",
"lodash.template": "4.5.0", "lodash.template": "4.5.0",
"magic-string": "0.30.3", "magic-string": "0.30.4",
"map-stream": "0.0.7", "map-stream": "0.0.7",
"mocha": "10.2.0", "mocha": "10.2.0",
"object-hash": "3.0.0", "object-hash": "3.0.0",

View File

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

View File

@ -180,7 +180,9 @@ export class StateHistoryChartLine extends LitElement {
return; return;
} }
const points = e.chart.getElementsAtEventForMode( const chart = e.chart;
const points = chart.getElementsAtEventForMode(
e, e,
"nearest", "nearest",
{ intersect: true }, { intersect: true },
@ -192,6 +194,7 @@ export class StateHistoryChartLine extends LitElement {
fireEvent(this, "hass-more-info", { fireEvent(this, "hass-more-info", {
entityId: this._entityIds[firstPoint.datasetIndex], 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 // @ts-ignore
entityId: this._chartData?.datasets[index]?.label, 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; @property() public label?: string;
@state() private _icon = mdiArrowRight; @state() private _icon =
document.dir === "ltr" ? mdiArrowRight : 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"
? mdiArrowRight
: mdiArrowLeft;
}, 100);
}
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`

View File

@ -12,19 +12,8 @@ export class HaIconButtonArrowPrev extends LitElement {
@property() public label?: string; @property() public label?: string;
@state() private _icon = mdiArrowLeft; @state() private _icon =
document.dir === "ltr" ? mdiArrowLeft : 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"
? mdiArrowLeft
: mdiArrowRight;
}, 100);
}
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`

View File

@ -12,19 +12,8 @@ export class HaIconButtonNext extends LitElement {
@property() public label?: string; @property() public label?: string;
@state() private _icon = mdiChevronRight; @state() private _icon =
document.dir === "ltr" ? mdiChevronRight : 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"
? mdiChevronRight
: mdiChevronLeft;
}, 100);
}
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`

View File

@ -12,19 +12,8 @@ export class HaIconButtonPrev extends LitElement {
@property() public label?: string; @property() public label?: string;
@state() private _icon = mdiChevronLeft; @state() private _icon =
document.dir === "ltr" ? mdiChevronLeft : 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"
? mdiChevronLeft
: mdiChevronRight;
}, 100);
}
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`

View File

@ -1,20 +1,11 @@
import { mdiChevronLeft, mdiChevronRight } from "@mdi/js"; import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { customElement } from "lit/decorators"; import { customElement, property } from "lit/decorators";
import { HaSvgIcon } from "./ha-svg-icon"; import { HaSvgIcon } from "./ha-svg-icon";
@customElement("ha-icon-next") @customElement("ha-icon-next")
export class HaIconNext extends HaSvgIcon { export class HaIconNext extends HaSvgIcon {
public connectedCallback() { @property() public override path =
super.connectedCallback(); document.dir === "ltr" ? mdiChevronRight : mdiChevronLeft;
// 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);
}
} }
declare global { declare global {

View File

@ -1,20 +1,11 @@
import { mdiChevronLeft, mdiChevronRight } from "@mdi/js"; import { mdiChevronLeft, mdiChevronRight } from "@mdi/js";
import { customElement } from "lit/decorators"; import { customElement, property } from "lit/decorators";
import { HaSvgIcon } from "./ha-svg-icon"; import { HaSvgIcon } from "./ha-svg-icon";
@customElement("ha-icon-prev") @customElement("ha-icon-prev")
export class HaIconPrev extends HaSvgIcon { export class HaIconPrev extends HaSvgIcon {
public connectedCallback() { @property() public override path =
super.connectedCallback(); document.dir === "ltr" ? mdiChevronLeft : mdiChevronRight;
// 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);
}
} }
declare global { declare global {

View File

@ -29,11 +29,6 @@ export class HaOutlinedIconButton extends IconButton {
--md-ripple-hover-opacity: 0; --md-ripple-hover-opacity: 0;
--md-ripple-pressed-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; justify-content: space-between;
} }
.buttons ha-outlined-icon-button { .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; --md-outlined-icon-button-icon-size: 24px;
} }
/* Accessibility */ /* Accessibility */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -62,7 +62,7 @@ export default class HaAutomationConditionEditor extends LitElement {
></ha-yaml-editor> ></ha-yaml-editor>
` `
: html` : html`
<div> <div @value-changed=${this._onUiChanged}>
${dynamicElement( ${dynamicElement(
`ha-automation-condition-${condition.condition}`, `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 }); 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; static styles = haStyle;
} }

View File

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

View File

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

View File

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

View File

@ -164,6 +164,7 @@ export class HuiEnergyDevicesGraphCard
// @ts-ignore // @ts-ignore
entityId: this._chartData?.datasets[0]?.data[index]?.y, 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 // 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 // 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) => { const loadedLocales: Set<string> = new Set();
if (loadedPolyfillLocale.has(language)) {
return; const addData = async (
} obj: (typeof INTL_POLYFILLS)[number],
loadedPolyfillLocale.add(language); language: string
try { ) => {
if ( // Add function will only exist if constructor is polyfilled
Intl.NumberFormat && if (typeof (Intl[obj] as any)?.__addLocaleData === "function") {
// @ts-ignore
typeof Intl.NumberFormat.__addLocaleData === "function"
) {
const result = await fetch( const result = await fetch(
`${__STATIC_PATH__}locale-data/intl-numberformat/${language}.json` `${__STATIC_PATH__}locale-data/intl-${obj.toLowerCase()}/${language}.json`
); );
// @ts-ignore // Ignore if polyfill data does not exist for language
Intl.NumberFormat.__addLocaleData(await result.json()); 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", "confirm_action": "Restart",
"failed": "Failed to restart Home Assistant" "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": { "reboot": {
"title": "Reboot system", "title": "Reboot system",
"description": "Restart the system running Home Assistant and all Add-ons.", "description": "Restart the system running Home Assistant and all Add-ons.",
@ -5853,7 +5858,14 @@
"addons": "[%key:supervisor::backup::addons%]", "addons": "[%key:supervisor::backup::addons%]",
"password_protection": "[%key:supervisor::backup::password_protection%]", "password_protection": "[%key:supervisor::backup::password_protection%]",
"password": "[%key:supervisor::backup::password%]", "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": { "custom": {
@ -6256,7 +6268,8 @@
"backup": { "backup": {
"search": "[%key:ui::panel::config::backup::picker::search%]", "search": "[%key:ui::panel::config::backup::picker::search%]",
"no_backups": "You don't have any backups yet.", "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_selected": "Delete selected backups",
"delete_backup_title": "Delete backup", "delete_backup_title": "Delete backup",
"delete_backup_text": "Do you want to delete {number} {number, plural,\n one {backup}\n other {backups}\n}?", "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", "selected": "{number} selected",
"failed_to_delete": "Failed to delete", "failed_to_delete": "Failed to delete",
"could_not_create": "Could not create backup", "could_not_create": "Could not create backup",
"could_not_restore": "Could not restore backup",
"upload_backup": "Upload backup", "upload_backup": "Upload backup",
"download_backup": "Download backup", "download_backup": "Download backup",
"create_backup": "Create backup", "create_backup": "Create backup",
@ -6284,7 +6298,21 @@
"password_protection": "Password protection", "password_protection": "Password protection",
"enter_password": "Please enter a password.", "enter_password": "Please enter a password.",
"passwords_not_matching": "The passwords does not match", "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": { "dialog": {
"network": { "network": {

214
yarn.lock
View File

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