Compare commits

..

34 Commits

Author SHA1 Message Date
Thomas Lovén e87accdfb4 Arrayify actions list 2021-01-27 10:43:58 +01:00
Thomas Lovén 4dcfe3031d Allow multiple tap/hold/doubletap actions. 2021-01-10 19:29:29 +01:00
Bram Kragten 1538fbb102 Bump material elements (#8093) 2021-01-07 10:09:03 +01:00
Philip Allgaier b9259b87eb Beautify ha-attribute <pre> (#8101) 2021-01-06 20:46:39 +01:00
David F. Mulcahey 30997dbc88 Add filtering and zoom to node to the ZHA network visualization (#7913) 2021-01-06 10:37:53 +01:00
Paulus Schoutsen 607eb6d130 Prefer target over environment (#8092) 2021-01-05 16:03:55 +01:00
Philip Allgaier f2e9b3577d Use proper styled confirmation dialog for handled actions (#8077) 2021-01-05 14:04:45 +01:00
Philip Allgaier cb2c6d8560 Convert gallery elements to LitElement (#8088) 2021-01-05 13:29:21 +01:00
dependabot[bot] bfe8346ced Bump ini from 1.3.5 to 1.3.7 (#7949)
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-05 11:47:56 +01:00
Siemon Geeroms 88da9bb91b Allow to show modal dialogs in iFrame panels (#7971) 2021-01-05 11:38:46 +01:00
Shane Qi 5e2ee1a16c Added Drag & Drop Reordering to Shopping List Card. (#7296) 2021-01-05 11:24:41 +01:00
Philip Allgaier 2fdc746392 Add support for "all" as entity ID in action "service" (#7954) 2021-01-05 11:02:47 +01:00
Philip Allgaier 1667973a66 Improve spacing in entity rows + secondary ellipsis (#8028) 2021-01-05 10:50:40 +01:00
Philip Allgaier 42f0101440 Add gallery demo for plant card (#7989) 2021-01-04 22:10:58 +01:00
Philip Allgaier 13b69bff1b Translate timestamp-display errors + tiny tweaks (#8086)
* Translate timestamp-display errors + tiny tweaks

* Adjust translation key
2021-01-04 20:55:43 +01:00
Philip Allgaier 2c2226dfd6 Slightly increase max attribute value width (#8085) 2021-01-04 19:51:30 +01:00
Philip Allgaier a3fdfe0e15 Add additional entities to gallery more-info-light (#7930) 2021-01-04 18:06:47 +01:00
Philip Allgaier a0de209a55 Aligned gallery more-info with hui-cards (#7931) 2021-01-04 18:05:30 +01:00
Philip Allgaier 0208b50ac7 Disable counter buttons if entity is unavailable (#8084) 2021-01-04 18:02:01 +01:00
Philip Allgaier 4a61779aba Ensure YAML editor gets updated during action change / deletion (#8024)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2021-01-04 15:01:25 +01:00
Philip Allgaier 05057ade05 Catch navigator.clipboard errors (#7942)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2021-01-04 14:04:54 +01:00
Abílio Costa 6fb206853c Switch header sizes for ZHA pairing status card (#8078)
Since the top title shows the result of the previous step ("Interview
Complete", "Configuration Complete", etc), while the second title shows
the current step ("Configuring", "Initializing", etc), having the top
title bigger would draw attention to it. So a user could see
"Configuration Complete" and assume pairing is done.

This change makes the second title bigger than the top one, so that the
user focus on the step that is in progress.
2021-01-04 14:03:12 +01:00
Charles Garwood fab68055bf OZW Panel: Don't show an empty wakeup card (#8064) 2021-01-04 10:57:25 +01:00
Philip Allgaier d5a77ef3cd Treat zero as String in number selector (#8070) 2021-01-04 10:53:40 +01:00
Philip Allgaier dcb2605de4 Add Bengali language (#8014) 2021-01-04 10:28:25 +01:00
Philip Allgaier e6d38f4539 Fix incorrect date selection ranges for history and logbook (#8045) 2021-01-04 10:04:14 +01:00
Philip Allgaier 293b56cfa6 Show actual error path/key in YAML card editor (#8076) 2021-01-04 09:58:07 +01:00
Philip Allgaier 775e93d54b Ensure consistent number display for gauge (#8080) 2021-01-04 09:24:51 +01:00
Philip Allgaier 7f840e75df Add EN fallback text for dismiss button (#8068) 2021-01-04 09:18:08 +01:00
Philip Allgaier 2113ea675e Prevent relative time text wrapping in more-info-sun (#8051) 2021-01-04 09:17:17 +01:00
Philip Allgaier 916a5c1a6b Make it clearer that we are looking for the YAML card config 2021-01-04 00:31:42 +01:00
HomeAssistant Azure f684531315 [ci skip] Translation update 2021-01-02 00:41:18 +00:00
HomeAssistant Azure fe8dda8996 [ci skip] Translation update 2020-12-31 00:32:48 +00:00
HomeAssistant Azure 4cd4b328c8 [ci skip] Translation update 2020-12-30 00:32:31 +00:00
79 changed files with 2935 additions and 1699 deletions
+5 -5
View File
@@ -74,12 +74,12 @@ DO NOT DELETE ANY TEXT from this template! Otherwise, your issue may be closed w
```
## Problem-relevant configuration
## Problem-relevant frontend configuration
<!--
An example configuration that caused the problem for you. Fill this out even
if it seems unimportant to you. Please be sure to remove personal information
like passwords, private URLs and other credentials.
An example configuration that caused the problem for you, e.g. the YAML configuration
of the used cards. Fill this out even if it seems unimportant to you. Please be sure
to remove personal information like passwords, private URLs and other credentials.
-->
```yaml
@@ -89,7 +89,7 @@ DO NOT DELETE ANY TEXT from this template! Otherwise, your issue may be closed w
## Javascript errors shown in your browser console/inspector
<!--
If you come across any javascript or other error logs, e.g., in your browser
If you come across any Javascript or other error logs, e.g. in your browser
console/inspector please provide them.
-->
+1 -16
View File
@@ -36,6 +36,7 @@ const createWebpackConfig = ({
const ignorePackages = bundle.ignorePackages({ latestBuild });
return {
mode: isProdBuild ? "production" : "development",
target: ["web", latestBuild ? "es2017" : "es5"],
devtool: isProdBuild
? "cheap-module-source-map"
: "eval-cheap-module-source-map",
@@ -131,22 +132,6 @@ const createWebpackConfig = ({
}
return `${chunk.name}.${chunk.hash.substr(0, 8)}.js`;
},
environment: {
// The environment supports arrow functions ('() => { ... }').
arrowFunction: latestBuild,
// The environment supports BigInt as literal (123n).
bigIntLiteral: false,
// The environment supports const and let for variable declarations.
const: latestBuild,
// The environment supports destructuring ('{ a, b } = obj').
destructuring: latestBuild,
// The environment supports an async import() function to import EcmaScript modules.
dynamicImport: latestBuild,
// The environment supports 'for of' iteration ('for (const x of array) { ... }').
forOf: latestBuild,
// The environment supports ECMAScript Module syntax to import ECMAScript modules (import ... from '...').
module: latestBuild,
},
chunkFilename:
isProdBuild && !isStatsBuild
? "chunk.[chunkhash].js"
+25 -22
View File
@@ -9,30 +9,29 @@ class DemoMoreInfo extends PolymerElement {
static get template() {
return html`
<style>
:host {
.root {
display: flex;
align-items: start;
}
#card {
max-width: 400px;
width: 100vw;
}
ha-card {
width: 333px;
width: 352px;
padding: 20px 24px;
}
state-card-content {
display: block;
margin-bottom: 16px;
}
pre {
width: 400px;
margin: 0 16px;
overflow: auto;
color: var(--primary-text-color);
}
@media only screen and (max-width: 800px) {
:host {
.root {
flex-direction: column;
}
pre {
@@ -40,21 +39,25 @@ class DemoMoreInfo extends PolymerElement {
}
}
</style>
<ha-card>
<state-card-content
state-obj="[[_stateObj]]"
hass="[[hass]]"
in-dialog
></state-card-content>
<div class="root">
<div id="card">
<ha-card>
<state-card-content
state-obj="[[_stateObj]]"
hass="[[hass]]"
in-dialog
></state-card-content>
<more-info-content
hass="[[hass]]"
state-obj="[[_stateObj]]"
></more-info-content>
</ha-card>
<template is="dom-if" if="[[showConfig]]">
<pre>[[_jsonEntity(_stateObj)]]</pre>
</template>
<more-info-content
hass="[[hass]]"
state-obj="[[_stateObj]]"
></more-info-content>
</ha-card>
</div>
<template is="dom-if" if="[[showConfig]]">
<pre>[[_jsonEntity(_stateObj)]]</pre>
</template>
</div>
`;
}
+36 -9
View File
@@ -3,12 +3,18 @@ import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "../../../src/components/ha-switch";
import "../../../src/components/ha-formfield";
import "./demo-more-info";
import { applyThemesOnElement } from "../../../src/common/dom/apply_themes_on_element";
class DemoMoreInfos extends PolymerElement {
static get template() {
return html`
<style>
#container {
min-height: calc(100vh - 128px);
background: var(--primary-background-color);
}
.cards {
display: flex;
flex-wrap: wrap;
@@ -23,20 +29,31 @@ class DemoMoreInfos extends PolymerElement {
.filters {
margin-left: 60px;
}
ha-formfield {
margin-right: 16px;
}
</style>
<app-toolbar>
<div class="filters">
<ha-switch checked="{{_showConfig}}">Show entity</ha-switch>
<ha-formfield label="Show entities">
<ha-switch checked="[[_showConfig]]" on-change="_showConfigToggled">
</ha-switch>
</ha-formfield>
<ha-formfield label="Dark theme">
<ha-switch on-change="_darkThemeToggled"> </ha-switch>
</ha-formfield>
</div>
</app-toolbar>
<div class="cards">
<template is="dom-repeat" items="[[entities]]">
<demo-more-info
entity-id="[[item]]"
show-config="[[_showConfig]]"
hass="[[hass]]"
></demo-more-info>
</template>
<div id="container">
<div class="cards">
<template is="dom-repeat" items="[[entities]]">
<demo-more-info
entity-id="[[item]]"
show-config="[[_showConfig]]"
hass="[[hass]]"
></demo-more-info>
</template>
</div>
</div>
`;
}
@@ -51,6 +68,16 @@ class DemoMoreInfos extends PolymerElement {
},
};
}
_showConfigToggled(ev) {
this._showConfig = ev.target.checked;
}
_darkThemeToggled(ev) {
applyThemesOnElement(this.$.container, { themes: {} }, "default", {
dark: ev.target.checked,
});
}
}
customElements.define("demo-more-infos", DemoMoreInfos);
+72
View File
@@ -0,0 +1,72 @@
import { getEntity } from "../../../src/fake_data/entity";
export const createPlantEntities = () => [
getEntity("plant", "lemon_tree", "ok", {
problem: "none",
sensors: {
moisture: "sensor.lemon_tree_moisture",
battery: "sensor.lemon_tree_battery",
temperature: "sensor.lemon_tree_temperature",
conductivity: "sensor.lemon_tree_conductivity",
brightness: "sensor.lemon_tree_brightness",
},
unit_of_measurement_dict: {
temperature: "°C",
moisture: "%",
brightness: "lx",
battery: "%",
conductivity: "μS/cm",
},
moisture: 54,
battery: 95,
temperature: 15.6,
conductivity: 1,
brightness: 12,
max_brightness: 20,
friendly_name: "Lemon Tree",
}),
getEntity("plant", "apple_tree", "ok", {
problem: "brightness",
sensors: {
moisture: "sensor.apple_tree_moisture",
battery: "sensor.apple_tree_battery",
temperature: "sensor.apple_tree_temperature",
conductivity: "sensor.apple_tree_conductivity",
brightness: "sensor.apple_tree_brightness",
},
unit_of_measurement_dict: {
temperature: "°C",
moisture: "%",
brightness: "lx",
battery: "%",
conductivity: "μS/cm",
},
moisture: 54,
battery: 2,
temperature: 15.6,
conductivity: 1,
brightness: 25,
max_brightness: 20,
friendly_name: "Apple Tree",
}),
getEntity("plant", "sunflowers", "ok", {
problem: "moisture, temperature, conductivity",
sensors: {
moisture: "sensor.sunflowers_moisture",
temperature: "sensor.sunflowers_temperature",
conductivity: "sensor.sunflowers_conductivity",
brightness: "sensor.sunflowers_brightness",
},
unit_of_measurement_dict: {
temperature: "°C",
moisture: "%",
brightness: "lx",
conductivity: "μS/cm",
},
moisture: 54,
temperature: 15.6,
conductivity: 1,
brightness: 25,
entity_picture: "/images/sunflowers.jpg",
}),
];
+19 -23
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -71,28 +76,19 @@ const CONFIGS = [
},
];
class DemoAlarmPanelEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-alarm-panel-card")
class DemoAlarmPanelEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
this._setupDemo();
}
private async _setupDemo() {
const hass = provideHass(this.$.demos);
await hass.updateTranslations(null, "en");
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -53,24 +58,19 @@ const CONFIGS = [
},
];
class DemoConditional extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-conditional-card")
class DemoConditional extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -217,24 +222,19 @@ const CONFIGS = [
},
];
class DemoEntities extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-entities-card")
class DemoEntities extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -69,24 +74,19 @@ const CONFIGS = [
},
];
class DemoButtonEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-entity-button-card")
class DemoButtonEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -89,26 +94,21 @@ const CONFIGS = [
},
];
class DemoFilter extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-entity-filter-card")
class DemoEntityFilter extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
customElements.define("demo-hui-entity-filter-card", DemoFilter);
customElements.define("demo-hui-entity-filter-card", DemoEntityFilter);
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -107,24 +112,19 @@ const CONFIGS = [
},
];
class DemoGaugeEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-gauge-card")
class DemoGaugeEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
+19 -19
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -218,26 +223,21 @@ const CONFIGS = [
},
];
class DemoPicEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-glance-card")
class DemoGlanceEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
customElements.define("demo-hui-glance-card", DemoPicEntity);
customElements.define("demo-hui-glance-card", DemoGlanceEntity);
+5 -15
View File
@@ -1,6 +1,4 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import { html, LitElement, customElement, TemplateResult } from "lit-element";
import "../components/demo-cards";
const CONFIGS = [
@@ -37,18 +35,10 @@ const CONFIGS = [
},
];
class DemoIframe extends PolymerElement {
static get template() {
return html` <demo-cards configs="[[_configs]]"></demo-cards> `;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
@customElement("demo-hui-iframe-card")
class DemoIframe extends LitElement {
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
}
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -63,24 +68,19 @@ const CONFIGS = [
},
];
class DemoLightEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-light-card")
class DemoLightEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -161,24 +166,19 @@ const CONFIGS = [
},
];
class DemoMap extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-map-card")
class DemoMap extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
+19 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { mockTemplate } from "../../../demo/src/stubs/template";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -254,23 +259,19 @@ const CONFIGS = [
},
];
class DemoMarkdown extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-markdown-card")
class DemoMarkdown extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
mockTemplate(hass);
}
}
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
import { createMediaPlayerEntities } from "../data/media_players";
@@ -158,26 +163,21 @@ const CONFIGS = [
},
];
class DemoHuiMediControlCard extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-media-control-card")
class DemoHuiMediaControlCard extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(createMediaPlayerEntities());
}
}
customElements.define("demo-hui-media-control-card", DemoHuiMediControlCard);
customElements.define("demo-hui-media-control-card", DemoHuiMediaControlCard);
+19 -19
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
import { createMediaPlayerEntities } from "../data/media_players";
@@ -55,26 +60,21 @@ const CONFIGS = [
},
];
class DemoHuiMediaPlayerRows extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-media-player-row")
class DemoHuiMediaPlayerRow extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(createMediaPlayerEntities());
}
}
customElements.define("demo-hui-media-player-rows", DemoHuiMediaPlayerRows);
customElements.define("demo-hui-media-player-row", DemoHuiMediaPlayerRow);
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -125,26 +130,21 @@ const CONFIGS = [
},
];
class DemoPicElements extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-picture-elements-card")
class DemoPictureElements extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
customElements.define("demo-hui-picture-elements-card", DemoPicElements);
customElements.define("demo-hui-picture-elements-card", DemoPictureElements);
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -80,26 +85,21 @@ const CONFIGS = [
},
];
class DemoPicEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-picture-entity-card")
class DemoPictureEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
customElements.define("demo-hui-picture-entity-card", DemoPicEntity);
customElements.define("demo-hui-picture-entity-card", DemoPictureEntity);
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -121,26 +126,21 @@ const CONFIGS = [
},
];
class DemoPicGlance extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-picture-glance-card")
class DemoPictureGlance extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
customElements.define("demo-hui-picture-glance-card", DemoPicGlance);
customElements.define("demo-hui-picture-glance-card", DemoPictureGlance);
+55
View File
@@ -0,0 +1,55 @@
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
import { createPlantEntities } from "../data/plants";
const CONFIGS = [
{
heading: "Basic example",
config: `
- type: plant-status
entity: plant.lemon_tree
`,
},
{
heading: "Problem (too bright) + low battery",
config: `
- type: plant-status
entity: plant.apple_tree
`,
},
{
heading: "With picture + multiple problems",
config: `
- type: plant-status
entity: plant.sunflowers
name: Sunflowers Name Overwrite
`,
},
];
@customElement("demo-hui-plant-card")
export class DemoPlantEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(createPlantEntities());
}
}
customElements.define("demo-hui-plant-card", DemoPlantEntity);
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -20,24 +25,19 @@ const CONFIGS = [
},
];
class DemoShoppingListEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-shopping-list-card")
class DemoShoppingListEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.mockAPI("shopping_list", () => [
{ name: "list", id: 1, complete: false },
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { mockHistory } from "../../../demo/src/stubs/history";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
@@ -132,24 +137,19 @@ const CONFIGS = [
},
];
class DemoStack extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-stack-card")
class DemoStack extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
mockHistory(hass);
}
+18 -18
View File
@@ -1,6 +1,11 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import "../components/demo-cards";
@@ -74,24 +79,19 @@ const CONFIGS = [
},
];
class DemoThermostatEntity extends PolymerElement {
static get template() {
return html` <demo-cards id="demos" configs="[[_configs]]"></demo-cards> `;
@customElement("demo-hui-thermostat-card")
class DemoThermostatEntity extends LitElement {
@query("#demos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`<demo-cards id="demos" .configs=${CONFIGS}></demo-cards>`;
}
static get properties() {
return {
_configs: {
type: Object,
value: CONFIGS,
},
};
}
public ready() {
super.ready();
const hass = provideHass(this.$.demos);
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.updateTranslations("lovelace", "en");
hass.addEntities(ENTITIES);
}
}
+58 -27
View File
@@ -1,10 +1,27 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
import {
html,
LitElement,
customElement,
property,
PropertyValues,
query,
TemplateResult,
} from "lit-element";
import "../../../src/components/ha-card";
import { SUPPORT_BRIGHTNESS } from "../../../src/data/light";
import {
SUPPORT_BRIGHTNESS,
SUPPORT_COLOR_TEMP,
SUPPORT_EFFECT,
SUPPORT_FLASH,
SUPPORT_COLOR,
SUPPORT_TRANSITION,
SUPPORT_WHITE_VALUE,
} from "../../../src/data/light";
import { getEntity } from "../../../src/fake_data/entity";
import { provideHass } from "../../../src/fake_data/provide_hass";
import {
provideHass,
MockHomeAssistant,
} from "../../../src/fake_data/provide_hass";
import "../components/demo-more-infos";
import "../../../src/dialogs/more-info/more-info-content";
@@ -14,38 +31,52 @@ const ENTITIES = [
}),
getEntity("light", "kitchen_light", "on", {
friendly_name: "Brightness Light",
brightness: 80,
brightness: 200,
supported_features: SUPPORT_BRIGHTNESS,
}),
getEntity("light", "color_temperature_light", "on", {
friendly_name: "White Color Temperature Light",
brightness: 128,
color_temp: 75,
min_mireds: 30,
max_mireds: 150,
supported_features: SUPPORT_BRIGHTNESS + SUPPORT_COLOR_TEMP,
}),
getEntity("light", "color_effectslight", "on", {
friendly_name: "Color Effets Light",
brightness: 255,
hs_color: [30, 100],
white_value: 36,
supported_features:
SUPPORT_BRIGHTNESS +
SUPPORT_EFFECT +
SUPPORT_FLASH +
SUPPORT_COLOR +
SUPPORT_TRANSITION +
SUPPORT_WHITE_VALUE,
effect_list: ["random", "colorloop"],
}),
];
class DemoMoreInfoLight extends PolymerElement {
static get template() {
@customElement("demo-more-info-light")
class DemoMoreInfoLight extends LitElement {
@property() public hass!: MockHomeAssistant;
@query("demo-more-infos") private _demoRoot!: HTMLElement;
protected render(): TemplateResult {
return html`
<demo-more-infos
hass="[[hass]]"
entities="[[_entities]]"
.hass=${this.hass}
.entities=${ENTITIES.map((ent) => ent.entityId)}
></demo-more-infos>
`;
}
static get properties() {
return {
_entities: {
type: Array,
value: ENTITIES.map((ent) => ent.entityId),
},
};
}
public ready() {
super.ready();
this._setupDemo();
}
private async _setupDemo() {
const hass = provideHass(this);
await hass.updateTranslations(null, "en");
protected firstUpdated(changedProperties: PropertyValues) {
super.firstUpdated(changedProperties);
const hass = provideHass(this._demoRoot);
hass.updateTranslations(null, "en");
hass.addEntities(ENTITIES);
}
}
+3 -4
View File
@@ -1,9 +1,10 @@
import "@material/mwc-button";
import { html, LitElement, TemplateResult } from "lit-element";
import { customElement, html, LitElement, TemplateResult } from "lit-element";
import "../../../src/components/ha-card";
import { ActionHandlerEvent } from "../../../src/data/lovelace";
import { actionHandler } from "../../../src/panels/lovelace/common/directives/action-handler-directive";
@customElement("demo-util-long-press")
export class DemoUtilLongPress extends LitElement {
protected render(): TemplateResult {
return html`
@@ -20,7 +21,7 @@ export class DemoUtilLongPress extends LitElement {
<textarea></textarea>
<div>(try pressing and scrolling too!)</div>
<div>Try pressing and scrolling too!</div>
</ha-card>
`
)}
@@ -62,5 +63,3 @@ export class DemoUtilLongPress extends LitElement {
`;
}
}
customElements.define("demo-util-long-press", DemoUtilLongPress);
-2
View File
@@ -14,8 +14,6 @@ import "../../src/styles/polymer-ha-style";
// eslint-disable-next-line import/extensions
import { DEMOS } from "../build/import-demos";
const fixPath = (path) => path.substr(2, path.length - 5);
class HaGallery extends PolymerElement {
static get template() {
return html`
+16 -16
View File
@@ -29,22 +29,22 @@
"@fullcalendar/daygrid": "5.1.0",
"@fullcalendar/interaction": "5.1.0",
"@fullcalendar/list": "5.1.0",
"@material/chips": "=8.0.0-canary.774dcfc8e.0",
"@material/mwc-button": "^0.19.0",
"@material/mwc-checkbox": "^0.19.0",
"@material/mwc-circular-progress": "^0.19.0",
"@material/mwc-dialog": "^0.19.0",
"@material/mwc-fab": "^0.19.0",
"@material/mwc-formfield": "^0.19.0",
"@material/mwc-icon-button": "^0.19.0",
"@material/mwc-list": "^0.19.0",
"@material/mwc-menu": "^0.19.0",
"@material/mwc-radio": "^0.19.0",
"@material/mwc-ripple": "^0.19.0",
"@material/mwc-switch": "^0.19.0",
"@material/mwc-tab": "^0.19.0",
"@material/mwc-tab-bar": "^0.19.0",
"@material/top-app-bar": "=8.0.0-canary.774dcfc8e.0",
"@material/chips": "=9.0.0-canary.1c156d69d.0",
"@material/mwc-button": "^0.20.0",
"@material/mwc-checkbox": "^0.20.0",
"@material/mwc-circular-progress": "^0.20.0",
"@material/mwc-dialog": "^0.20.0",
"@material/mwc-fab": "^0.20.0",
"@material/mwc-formfield": "^0.20.0",
"@material/mwc-icon-button": "^0.20.0",
"@material/mwc-list": "^0.20.0",
"@material/mwc-menu": "^0.20.0",
"@material/mwc-radio": "^0.20.0",
"@material/mwc-ripple": "^0.20.0",
"@material/mwc-switch": "^0.20.0",
"@material/mwc-tab": "^0.20.0",
"@material/mwc-tab-bar": "^0.20.0",
"@material/top-app-bar": "=9.0.0-canary.1c156d69d.0",
"@mdi/js": "5.6.55",
"@mdi/svg": "5.6.55",
"@polymer/app-layout": "^3.0.2",
+1 -1
View File
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name="home-assistant-frontend",
version="20201229.1",
version="20201229.0",
description="The Home Assistant frontend",
url="https://github.com/home-assistant/home-assistant-polymer",
author="The Home Assistant Authors",
+14 -9
View File
@@ -1,12 +1,17 @@
export const copyToClipboard = (str) => {
export const copyToClipboard = async (str) => {
if (navigator.clipboard) {
navigator.clipboard.writeText(str);
} else {
const el = document.createElement("textarea");
el.value = str;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
try {
await navigator.clipboard.writeText(str);
return;
} catch {
// just continue with the fallback coding below
}
}
const el = document.createElement("textarea");
el.value = str;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
};
+4 -1
View File
@@ -63,7 +63,7 @@ class HaAttributes extends LitElement {
justify-content: space-between;
}
.data-entry .value {
max-width: 50%;
max-width: 60%;
overflow-wrap: break-word;
text-align: right;
}
@@ -77,6 +77,9 @@ class HaAttributes extends LitElement {
pre {
font-family: inherit;
font-size: inherit;
margin: 0px;
overflow-wrap: break-word;
white-space: pre-line;
}
`;
}
+7 -1
View File
@@ -148,6 +148,11 @@ export interface CustomActionConfig extends BaseActionConfig {
action: "fire-dom-event";
}
export interface MultipleActionConfig extends BaseActionConfig {
action: "multiple";
actions: ActionConfig[];
}
export interface BaseActionConfig {
confirmation?: ConfirmationRestrictionConfig;
}
@@ -168,7 +173,8 @@ export type ActionConfig =
| UrlActionConfig
| MoreInfoActionConfig
| NoActionConfig
| CustomActionConfig;
| CustomActionConfig
| MultipleActionConfig;
type LovelaceUpdatedEvent = HassEventBase & {
event_type: "lovelace_updated";
+9
View File
@@ -38,3 +38,12 @@ export const addItem = (
type: "shopping_list/items/add",
name,
});
export const reorderItems = (
hass: HomeAssistant,
itemIds: [string]
): Promise<ShoppingListItem> =>
hass.callWS({
type: "shopping_list/items/reorder",
item_ids: itemIds,
});
@@ -10,6 +10,7 @@ import {
TemplateResult,
} from "lit-element";
import { HomeAssistant } from "../../../types";
import { UNAVAILABLE_STATES } from "../../../data/entity";
@customElement("more-info-counter")
class MoreInfoCounter extends LitElement {
@@ -22,21 +23,29 @@ class MoreInfoCounter extends LitElement {
return html``;
}
const disabled = UNAVAILABLE_STATES.includes(this.stateObj!.state);
return html`
<div class="actions">
<mwc-button
.action="${"increment"}"
@click="${this._handleActionClick}"
@click=${this._handleActionClick}
.disabled=${disabled}
>
${this.hass!.localize("ui.card.counter.actions.increment")}
</mwc-button>
<mwc-button
.action="${"decrement"}"
@click="${this._handleActionClick}"
@click=${this._handleActionClick}
.disabled=${disabled}
>
${this.hass!.localize("ui.card.counter.actions.decrement")}
</mwc-button>
<mwc-button .action="${"reset"}" @click="${this._handleActionClick}">
<mwc-button
.action="${"reset"}"
@click=${this._handleActionClick}
.disabled=${disabled}
>
${this.hass!.localize("ui.card.counter.actions.reset")}
</mwc-button>
</div>
@@ -53,8 +62,7 @@ class MoreInfoCounter extends LitElement {
static get styles(): CSSResult {
return css`
.actions {
margin: 0;
padding-top: 20px;
margin: 8px 0;
display: flex;
flex-wrap: wrap;
justify-content: center;
@@ -75,7 +75,7 @@ class MoreInfoPerson extends LitElement {
justify-content: space-between;
}
.actions {
margin: 36px 0 8px 0;
margin: 8px 0;
text-align: right;
}
ha-map {
@@ -76,8 +76,7 @@ class MoreInfoTimer extends LitElement {
static get styles(): CSSResult {
return css`
.actions {
margin: 0;
padding-top: 20px;
margin: 8px 0;
display: flex;
flex-wrap: wrap;
justify-content: center;
@@ -15,12 +15,14 @@ import {
LitElement,
property,
PropertyValues,
query,
} from "lit-element";
import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
import { fireEvent } from "../../../../common/dom/fire_event";
import "../../../../components/ha-button-menu";
import "../../../../components/ha-card";
import "../../../../components/ha-svg-icon";
import type { HaYamlEditor } from "../../../../components/ha-yaml-editor";
import type { Action } from "../../../../data/script";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../../../resources/styles";
@@ -103,6 +105,8 @@ export default class HaAutomationActionRow extends LitElement {
@internalProperty() private _yamlMode = false;
@query("ha-yaml-editor") private _yamlEditor?: HaYamlEditor;
protected updated(changedProperties: PropertyValues) {
if (!changedProperties.has("action")) {
return;
@@ -111,6 +115,10 @@ export default class HaAutomationActionRow extends LitElement {
if (!this._uiModeAvailable && !this._yamlMode) {
this._yamlMode = true;
}
if (this._yamlMode && this._yamlEditor) {
this._yamlEditor.setValue(this.action);
}
}
protected render() {
@@ -187,7 +195,7 @@ export default class HaAutomationActionRow extends LitElement {
<ul>
${this._warnings.map((warning) => html`<li>${warning}</li>`)}
</ul>
You can still edit your config in yaml.
You can still edit your config in YAML.
</div>`
: ""}
${yamlMode
@@ -19,12 +19,12 @@ import type { HaYamlEditor } from "../../../../../components/ha-yaml-editor";
import { ServiceAction } from "../../../../../data/script";
import type { PolymerChangedEvent } from "../../../../../polymer-types";
import type { HomeAssistant } from "../../../../../types";
import { EntityId } from "../../../../lovelace/common/structs/is-entity-id";
import { EntityIdOrAll } from "../../../../lovelace/common/structs/is-entity-id";
import { ActionElement, handleChangeEvent } from "../ha-automation-action-row";
const actionStruct = object({
service: optional(string()),
entity_id: optional(EntityId),
entity_id: optional(EntityIdOrAll),
data: optional(any()),
});
@@ -165,7 +165,7 @@ export class HaBlueprintAutomationEditor extends LitElement {
.selector=${value.selector}
.key=${key}
.value=${(this.config.use_blueprint.input &&
this.config.use_blueprint.input[key]) ||
this.config.use_blueprint.input[key]) ??
value?.default}
@value-changed=${this._inputChanged}
></ha-selector>`
@@ -395,9 +395,12 @@ export class HaAutomationEditor extends KeyboardShortcutMixin(LitElement) {
return cleanConfig;
}
private async _copyYaml() {
private async _copyYaml(): Promise<void> {
if (this._editor?.yaml) {
copyToClipboard(this._editor.yaml);
await copyToClipboard(this._editor.yaml);
showToast(this, {
message: this.hass.localize("ui.common.copied_clipboard"),
});
}
}
+5 -3
View File
@@ -197,7 +197,7 @@ class SystemHealthCard extends LitElement {
});
}
private _copyInfo(ev: CustomEvent<ActionDetail>): void {
private async _copyInfo(ev: CustomEvent<ActionDetail>): Promise<void> {
const github = ev.detail.index === 1;
let haContent: string | undefined;
const domainParts: string[] = [];
@@ -250,13 +250,15 @@ class SystemHealthCard extends LitElement {
}
}
copyToClipboard(
await copyToClipboard(
`${github ? "## " : ""}System Health\n${haContent}\n\n${domainParts.join(
"\n\n"
)}`
);
showToast(this, { message: this.hass.localize("ui.common.copied") });
showToast(this, {
message: this.hass.localize("ui.common.copied_clipboard"),
});
}
static get styles(): CSSResult {
@@ -141,11 +141,15 @@ class OZWNodeDashboard extends LitElement {
${this._metadata.metadata.ResetHelp}
</div>
</ha-card>
<ha-card class="content" header="WakeUp">
<div class="card-content">
${this._metadata.metadata.WakeupHelp}
</div>
</ha-card>
${this._metadata.metadata.WakeupHelp
? html`
<ha-card class="content" header="WakeUp">
<div class="card-content">
${this._metadata.metadata.WakeupHelp}
</div>
</ha-card>
`
: ``}
`
: ``}
`
@@ -199,6 +203,10 @@ class OZWNodeDashboard extends LitElement {
margin-top: 24px;
}
.content:last-child {
margin-bottom: 24px;
}
.sectionHeader {
position: relative;
padding-right: 40px;
@@ -49,19 +49,17 @@ class ZHADevicePairingStatusCard extends LitElement {
class="discovered ${classMap({
initialized: this.device.pairing_status === INITIALIZED,
})}"
><div
class="header"
>
<h1>
><div class="header">
<h4>
${this.hass!.localize(
`ui.panel.config.zha.device_pairing_card.${this.device.pairing_status}`
)}
</h1>
<h4>
</h4>
<h1>
${this.hass!.localize(
`ui.panel.config.zha.device_pairing_card.${this.device.pairing_status}_status_text`
)}
</h4>
</h1>
</div>
<div class="card-content">
${[INTERVIEW_COMPLETE, CONFIGURED].includes(
@@ -15,6 +15,12 @@ import { fetchDevices, ZHADevice } from "../../../../../data/zha";
import "../../../../../layouts/hass-subpage";
import type { HomeAssistant } from "../../../../../types";
import { Network, Edge, Node, EdgeOptions } from "vis-network";
import "../../../../../common/search/search-input";
import "../../../../../components/ha-button-menu";
import "../../../../../components/device/ha-device-picker";
import "../../../../../components/ha-svg-icon";
import { formatAsPaddedHex } from "./functions";
import { PolymerChangedEvent } from "../../../../../polymer-types";
@customElement("zha-network-visualization-page")
export class ZHANetworkVisualizationPage extends LitElement {
@@ -28,9 +34,21 @@ export class ZHANetworkVisualizationPage extends LitElement {
@internalProperty()
private _devices: Map<string, ZHADevice> = new Map();
@internalProperty()
private _devicesByDeviceId: Map<string, ZHADevice> = new Map();
@internalProperty()
private _nodes: Node[] = [];
@internalProperty()
private _network?: Network;
@internalProperty()
private _filter?: string;
@internalProperty()
private _zoomedDeviceId?: string;
protected firstUpdated(changedProperties: PropertyValues): void {
super.firstUpdated(changedProperties);
if (this.hass) {
@@ -91,6 +109,27 @@ export class ZHANetworkVisualizationPage extends LitElement {
"ui.panel.config.zha.visualization.header"
)}
>
<div class="table-header">
<search-input
no-label-float
no-underline
@value-changed=${this._handleSearchChange}
.filter=${this._filter}
.label=${this.hass.localize(
"ui.panel.config.zha.visualization.highlight_label"
)}
>
</search-input>
<ha-device-picker
.hass=${this.hass}
.value=${this._zoomedDeviceId}
.label=${this.hass.localize(
"ui.panel.config.zha.visualization.zoom_label"
)}
.includeDomains="['zha']"
@value-changed=${this._zoomToDevice}
></ha-device-picker>
</div>
<div id="visualization"></div>
</hass-subpage>
`;
@@ -101,15 +140,18 @@ export class ZHANetworkVisualizationPage extends LitElement {
this._devices = new Map(
devices.map((device: ZHADevice) => [device.ieee, device])
);
this._devicesByDeviceId = new Map(
devices.map((device: ZHADevice) => [device.device_reg_id, device])
);
this._updateDevices(devices);
}
private _updateDevices(devices: ZHADevice[]) {
const nodes: Node[] = [];
this._nodes = [];
const edges: Edge[] = [];
devices.forEach((device) => {
nodes.push({
this._nodes.push({
id: device.ieee,
label: this._buildLabel(device),
shape: this._getShape(device),
@@ -137,7 +179,7 @@ export class ZHANetworkVisualizationPage extends LitElement {
}
});
this._network?.setData({ nodes: nodes, edges: edges });
this._network?.setData({ nodes: this._nodes, edges: edges });
}
private _getLQI(lqi: number): EdgeOptions["color"] {
@@ -181,7 +223,7 @@ export class ZHANetworkVisualizationPage extends LitElement {
label += `<b>IEEE: </b>${device.ieee}`;
label += `\n<b>Device Type: </b>${device.device_type.replace("_", " ")}`;
if (device.nwk != null) {
label += `\n<b>NWK: </b>${device.nwk}`;
label += `\n<b>NWK: </b>${formatAsPaddedHex(device.nwk)}`;
}
if (device.manufacturer != null && device.model != null) {
label += `\n<b>Device: </b>${device.manufacturer} ${device.model}`;
@@ -194,6 +236,56 @@ export class ZHANetworkVisualizationPage extends LitElement {
return label;
}
private _handleSearchChange(ev: CustomEvent) {
this._filter = ev.detail.value;
const filterText = this._filter!.toLowerCase();
if (!this._network) {
return;
}
if (this._filter) {
const filteredNodeIds: (string | number)[] = [];
this._nodes.forEach((node) => {
if (node.label && node.label.toLowerCase().includes(filterText)) {
filteredNodeIds.push(node.id!);
}
});
this._zoomedDeviceId = "";
this._zoomOut();
this._network.selectNodes(filteredNodeIds, true);
} else {
this._network.unselectAll();
}
}
private _zoomToDevice(event: PolymerChangedEvent<string>) {
event.stopPropagation();
this._zoomedDeviceId = event.detail.value;
if (!this._network) {
return;
}
this._filter = "";
if (!this._zoomedDeviceId) {
this._zoomOut();
} else {
const device: ZHADevice | undefined = this._devicesByDeviceId.get(
this._zoomedDeviceId
);
if (device) {
this._network.fit({
nodes: [device.ieee],
animation: { duration: 500, easingFunction: "easeInQuad" },
});
}
}
}
private _zoomOut() {
this._network!.fit({
nodes: [],
animation: { duration: 500, easingFunction: "easeOutQuad" },
});
}
static get styles(): CSSResult[] {
return [
css`
@@ -208,6 +300,30 @@ export class ZHANetworkVisualizationPage extends LitElement {
line-height: var(--paper-font-display1_-_line-height);
opacity: var(--dark-primary-opacity);
}
.table-header {
border-bottom: 1px solid --divider-color;
padding: 0 16px;
display: flex;
align-items: center;
height: var(--header-height);
}
.search-toolbar {
display: flex;
align-items: center;
color: var(--secondary-text-color);
padding: 0 16px;
}
search-input {
position: relative;
top: 2px;
flex: 1;
}
search-input.header {
left: -8px;
}
ha-device-picker {
flex: 1;
}
`,
];
}
@@ -2,7 +2,6 @@ import "../../../components/ha-header-bar";
import "@material/mwc-icon-button/mwc-icon-button";
import { mdiContentCopy, mdiClose } from "@mdi/js";
import "@polymer/paper-tooltip/paper-tooltip";
import type { PaperTooltipElement } from "@polymer/paper-tooltip/paper-tooltip";
import {
css,
CSSResult,
@@ -10,10 +9,10 @@ import {
internalProperty,
LitElement,
property,
query,
TemplateResult,
} from "lit-element";
import { fireEvent } from "../../../common/dom/fire_event";
import { copyToClipboard } from "../../../common/util/copy-clipboard";
import "../../../components/ha-dialog";
import "../../../components/ha-svg-icon";
import {
@@ -27,6 +26,7 @@ import { haStyleDialog } from "../../../resources/styles";
import type { HomeAssistant } from "../../../types";
import type { SystemLogDetailDialogParams } from "./show-dialog-system-log-detail";
import { formatSystemLogTime } from "./util";
import { showToast } from "../../../util/toast";
class DialogSystemLogDetail extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@@ -35,8 +35,6 @@ class DialogSystemLogDetail extends LitElement {
@internalProperty() private _manifest?: IntegrationManifest;
@query("paper-tooltip") private _toolTip?: PaperTooltipElement;
public async showDialog(params: SystemLogDetailDialogParams): Promise<void> {
this._params = params;
this._manifest = undefined;
@@ -83,15 +81,6 @@ class DialogSystemLogDetail extends LitElement {
<mwc-icon-button id="copy" @click=${this._copyLog} slot="actionItems">
<ha-svg-icon .path=${mdiContentCopy}></ha-svg-icon>
</mwc-icon-button>
<paper-tooltip
slot="actionItems"
manual-mode
for="copy"
position="left"
animation-delay="0"
offset="4"
>${this.hass.localize("ui.common.copied")}</paper-tooltip
>
</ha-header-bar>
<div class="contents">
<p>
@@ -162,23 +151,15 @@ class DialogSystemLogDetail extends LitElement {
}
}
private _copyLog(): void {
private async _copyLog(): Promise<void> {
const copyElement = this.shadowRoot?.querySelector(
".contents"
) as HTMLElement;
const selection = window.getSelection()!;
const range = document.createRange();
range.selectNodeContents(copyElement);
selection.removeAllRanges();
selection.addRange(range);
document.execCommand("copy");
window.getSelection()!.removeAllRanges();
this._toolTip!.show();
setTimeout(() => this._toolTip?.hide(), 3000);
await copyToClipboard(copyElement.innerText);
showToast(this, {
message: this.hass.localize("ui.common.copied_clipboard"),
});
}
static get styles(): CSSResult[] {
+5 -2
View File
@@ -544,9 +544,12 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) {
return this._config;
}
private async _copyYaml() {
private async _copyYaml(): Promise<void> {
if (this._editor?.yaml) {
copyToClipboard(this._editor.yaml);
await copyToClipboard(this._editor.yaml);
showToast(this, {
message: this.hass.localize("ui.common.copied_clipboard"),
});
}
}
+11 -17
View File
@@ -119,27 +119,21 @@ class HaPanelHistory extends LitElement {
todayEnd.setDate(todayEnd.getDate() + 1);
todayEnd.setMilliseconds(todayEnd.getMilliseconds() - 1);
const todayCopy = new Date(today);
const yesterday = new Date(todayCopy.setDate(today.getDate() - 1));
const yesterdayEnd = new Date(yesterday);
yesterdayEnd.setDate(yesterdayEnd.getDate() + 1);
const yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
const yesterdayEnd = new Date(today);
yesterdayEnd.setMilliseconds(yesterdayEnd.getMilliseconds() - 1);
const thisWeekStart = new Date(
todayCopy.setDate(today.getDate() - today.getDay())
);
const thisWeekEnd = new Date(
todayCopy.setDate(thisWeekStart.getDate() + 7)
);
const thisWeekStart = new Date(today);
thisWeekStart.setDate(today.getDate() - today.getDay());
const thisWeekEnd = new Date(thisWeekStart);
thisWeekEnd.setDate(thisWeekStart.getDate() + 7);
thisWeekEnd.setMilliseconds(thisWeekEnd.getMilliseconds() - 1);
const lastWeekStart = new Date(
todayCopy.setDate(today.getDate() - today.getDay() - 7)
);
const lastWeekEnd = new Date(
todayCopy.setDate(lastWeekStart.getDate() + 7)
);
const lastWeekStart = new Date(today);
lastWeekStart.setDate(today.getDate() - today.getDay() - 7);
const lastWeekEnd = new Date(lastWeekStart);
lastWeekEnd.setDate(lastWeekStart.getDate() + 7);
lastWeekEnd.setMilliseconds(lastWeekEnd.getMilliseconds() - 1);
this._ranges = {
+1 -1
View File
@@ -24,7 +24,7 @@ class HaPanelIframe extends PolymerElement {
<iframe
src="[[panel.config.url]]"
sandbox="allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts"
sandbox="allow-forms allow-popups allow-pointer-lock allow-same-origin allow-scripts allow-modals"
allowfullscreen="true"
webkitallowfullscreen="true"
mozallowfullscreen="true"
+11 -17
View File
@@ -147,27 +147,21 @@ export class HaPanelLogbook extends LitElement {
todayEnd.setDate(todayEnd.getDate() + 1);
todayEnd.setMilliseconds(todayEnd.getMilliseconds() - 1);
const todayCopy = new Date(today);
const yesterday = new Date(todayCopy.setDate(today.getDate() - 1));
const yesterdayEnd = new Date(yesterday);
yesterdayEnd.setDate(yesterdayEnd.getDate() + 1);
const yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
const yesterdayEnd = new Date(today);
yesterdayEnd.setMilliseconds(yesterdayEnd.getMilliseconds() - 1);
const thisWeekStart = new Date(
todayCopy.setDate(today.getDate() - today.getDay())
);
const thisWeekEnd = new Date(
todayCopy.setDate(thisWeekStart.getDate() + 7)
);
const thisWeekStart = new Date(today);
thisWeekStart.setDate(today.getDate() - today.getDay());
const thisWeekEnd = new Date(thisWeekStart);
thisWeekEnd.setDate(thisWeekStart.getDate() + 7);
thisWeekEnd.setMilliseconds(thisWeekEnd.getMilliseconds() - 1);
const lastWeekStart = new Date(
todayCopy.setDate(today.getDate() - today.getDay() - 7)
);
const lastWeekEnd = new Date(
todayCopy.setDate(lastWeekStart.getDate() + 7)
);
const lastWeekStart = new Date(today);
lastWeekStart.setDate(today.getDate() - today.getDay() - 7);
const lastWeekEnd = new Date(lastWeekStart);
lastWeekEnd.setDate(lastWeekStart.getDate() + 7);
lastWeekEnd.setMilliseconds(lastWeekEnd.getMilliseconds() - 1);
this._ranges = {
+3 -1
View File
@@ -122,12 +122,14 @@ class HuiGaugeCard extends LitElement implements LovelaceCard {
`;
}
// Use `stateObj.state` as value to keep formatting (e.g trailing zeros)
// for consistent value display across gauge, entity, entity-row, etc.
return html`
<ha-card @click=${this._handleClick} tabindex="0">
<ha-gauge
.min=${this._config.min!}
.max=${this._config.max!}
.value=${state}
.value=${stateObj.state}
.language=${this.hass!.language}
.label=${this._config!.unit ||
this.hass?.states[this._config!.entity].attributes
@@ -11,9 +11,12 @@ import {
property,
PropertyValues,
TemplateResult,
query,
} from "lit-element";
import { classMap } from "lit-html/directives/class-map";
import { repeat } from "lit-html/directives/repeat";
import { guard } from "lit-html/directives/guard";
import { mdiDrag, mdiSort, mdiPlus, mdiNotificationClearAll } from "@mdi/js";
import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element";
import "../../../components/ha-card";
import "../../../components/ha-icon";
@@ -23,12 +26,15 @@ import {
fetchItems,
ShoppingListItem,
updateItem,
reorderItems,
} from "../../../data/shopping-list";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { HomeAssistant } from "../../../types";
import { LovelaceCard, LovelaceCardEditor } from "../types";
import { SensorCardConfig, ShoppingListCardConfig } from "./types";
let Sortable;
@customElement("hui-shopping-list-card")
class HuiShoppingListCard extends SubscribeMixin(LitElement)
implements LovelaceCard {
@@ -49,6 +55,14 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
@internalProperty() private _checkedItems?: ShoppingListItem[];
@internalProperty() private _reordering = false;
@internalProperty() private _renderEmptySortable = false;
private _sortable?;
@query("#sortable") private _sortableEl?: HTMLElement;
public getCardSize(): number {
return (this._config ? (this._config.title ? 2 : 0) : 0) + 3;
}
@@ -101,15 +115,15 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
})}
>
<div class="addRow">
<ha-icon
<ha-svg-icon
class="addButton"
icon="hass:plus"
.path=${mdiPlus}
.title=${this.hass!.localize(
"ui.panel.lovelace.cards.shopping-list.add_item"
)}
@click=${this._addItem}
>
</ha-icon>
</ha-svg-icon>
<paper-input
no-label-float
class="addBox"
@@ -118,28 +132,27 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
)}
@keydown=${this._addKeyPress}
></paper-input>
<ha-svg-icon
class="reorderButton"
.path=${mdiSort}
.title=${this.hass!.localize(
"ui.panel.lovelace.cards.shopping-list.reorder_items"
)}
@click=${this._toggleReorder}
>
</ha-svg-icon>
</div>
${repeat(
this._uncheckedItems!,
(item) => item.id,
(item) =>
html`
<div class="editRow">
<paper-checkbox
tabindex="0"
?checked=${item.complete}
.itemId=${item.id}
@click=${this._completeItem}
></paper-checkbox>
<paper-input
no-label-float
.value=${item.name}
.itemId=${item.id}
@change=${this._saveEdit}
></paper-input>
${this._reordering
? html`
<div id="sortable">
${guard([this._uncheckedItems, this._renderEmptySortable], () =>
this._renderEmptySortable
? ""
: this._renderItems(this._uncheckedItems!)
)}
</div>
`
)}
: this._renderItems(this._uncheckedItems!)}
${this._checkedItems!.length > 0
? html`
<div class="divider"></div>
@@ -149,16 +162,16 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
"ui.panel.lovelace.cards.shopping-list.checked_items"
)}
</span>
<ha-icon
<ha-svg-icon
class="clearall"
tabindex="0"
icon="hass:notification-clear-all"
.path=${mdiNotificationClearAll}
.title=${this.hass!.localize(
"ui.panel.lovelace.cards.shopping-list.clear_items"
)}
@click=${this._clearItems}
>
</ha-icon>
</ha-svg-icon>
</div>
${repeat(
this._checkedItems!,
@@ -187,6 +200,44 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
`;
}
private _renderItems(items: ShoppingListItem[]) {
return html`
${repeat(
items,
(item) => item.id,
(item) =>
html`
<div class="editRow" item-id=${item.id}>
<paper-checkbox
tabindex="0"
?checked=${item.complete}
.itemId=${item.id}
@click=${this._completeItem}
></paper-checkbox>
<paper-input
no-label-float
.value=${item.name}
.itemId=${item.id}
@change=${this._saveEdit}
></paper-input>
${this._reordering
? html`
<ha-svg-icon
.title=${this.hass!.localize(
"ui.panel.lovelace.cards.shopping-list.drag_and_drop"
)}
class="reorderButton"
.path=${mdiDrag}
>
</ha-svg-icon>
`
: ""}
</div>
`
)}
`;
}
private async _fetchData(): Promise<void> {
if (!this.hass) {
return;
@@ -248,6 +299,54 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
}
}
private async _toggleReorder() {
if (!Sortable) {
const sortableImport = await import(
"sortablejs/modular/sortable.core.esm"
);
Sortable = sortableImport.Sortable;
}
this._reordering = !this._reordering;
await this.updateComplete;
if (this._reordering) {
this._createSortable();
} else {
this._sortable?.destroy();
this._sortable = undefined;
}
}
private _createSortable() {
const sortableEl = this._sortableEl;
this._sortable = new Sortable(sortableEl, {
animation: 150,
fallbackClass: "sortable-fallback",
dataIdAttr: "item-id",
handle: "ha-svg-icon",
onEnd: async (evt) => {
// Since this is `onEnd` event, it's possible that
// an item wa dragged away and was put back to its original position.
if (evt.oldIndex !== evt.newIndex) {
reorderItems(this.hass!, this._sortable.toArray()).catch(() =>
this._fetchData()
);
// Move the shopping list item in memory.
this._uncheckedItems!.splice(
evt.newIndex,
0,
this._uncheckedItems!.splice(evt.oldIndex, 1)[0]
);
}
this._renderEmptySortable = true;
await this.updateComplete;
while (sortableEl?.lastElementChild) {
sortableEl.removeChild(sortableEl.lastElementChild);
}
this._renderEmptySortable = false;
},
});
}
static get styles(): CSSResult {
return css`
ha-card {
@@ -278,6 +377,11 @@ class HuiShoppingListCard extends SubscribeMixin(LitElement)
cursor: pointer;
}
.reorderButton {
padding-left: 16px;
cursor: pointer;
}
paper-checkbox {
padding-left: 4px;
padding-right: 20px;
+68 -53
View File
@@ -4,6 +4,7 @@ import { forwardHaptic } from "../../../data/haptics";
import { ActionConfig } from "../../../data/lovelace";
import { HomeAssistant } from "../../../types";
import { toggleEntity } from "./entity/toggle-entity";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
declare global {
interface HASSDomEvents {
@@ -11,7 +12,7 @@ declare global {
}
}
export const handleAction = (
export const handleAction = async (
node: HTMLElement,
hass: HomeAssistant,
config: {
@@ -22,7 +23,7 @@ export const handleAction = (
double_tap_action?: ActionConfig;
},
action: string
): void => {
): Promise<void> => {
let actionConfig: ActionConfig | undefined;
if (action === "double_tap" && config.double_tap_action) {
@@ -39,64 +40,78 @@ export const handleAction = (
};
}
if (
actionConfig.confirmation &&
(!actionConfig.confirmation.exemptions ||
!actionConfig.confirmation.exemptions.some(
(e) => e.user === hass!.user!.id
))
) {
forwardHaptic("warning");
const actionConfigs =
actionConfig.action === "multiple"
? Array.isArray(actionConfig.actions)
? actionConfig.actions
: [actionConfig.actions]
: [actionConfig];
for await (actionConfig of actionConfigs) {
if (
!confirm(
actionConfig.confirmation.text ||
`Are you sure you want to ${actionConfig.action}?`
)
actionConfig.confirmation &&
(!actionConfig.confirmation.exemptions ||
!actionConfig.confirmation.exemptions.some(
(e) => e.user === hass!.user!.id
))
) {
return;
}
}
forwardHaptic("warning");
switch (actionConfig.action) {
case "more-info": {
if (config.entity || config.camera_image) {
fireEvent(node, "hass-more-info", {
entityId: config.entity ? config.entity : config.camera_image!,
});
}
break;
}
case "navigate":
if (actionConfig.navigation_path) {
navigate(node, actionConfig.navigation_path);
}
break;
case "url": {
if (actionConfig.url_path) {
window.open(actionConfig.url_path);
}
break;
}
case "toggle": {
if (config.entity) {
toggleEntity(hass, config.entity!);
forwardHaptic("light");
}
break;
}
case "call-service": {
if (!actionConfig.service) {
forwardHaptic("failure");
if (
!(await showConfirmationDialog(node, {
text:
actionConfig.confirmation.text ||
hass.localize(
"ui.panel.lovelace.cards.action_confirmation",
"action",
actionConfig.action
),
}))
) {
return;
}
const [domain, service] = actionConfig.service.split(".", 2);
hass.callService(domain, service, actionConfig.service_data);
forwardHaptic("light");
break;
}
case "fire-dom-event": {
fireEvent(node, "ll-custom", actionConfig);
switch (actionConfig.action) {
case "more-info": {
if (config.entity || config.camera_image) {
fireEvent(node, "hass-more-info", {
entityId: config.entity ? config.entity : config.camera_image!,
});
}
break;
}
case "navigate":
if (actionConfig.navigation_path) {
navigate(node, actionConfig.navigation_path);
}
break;
case "url": {
if (actionConfig.url_path) {
window.open(actionConfig.url_path);
}
break;
}
case "toggle": {
if (config.entity) {
toggleEntity(hass, config.entity!);
forwardHaptic("light");
}
break;
}
case "call-service": {
if (!actionConfig.service) {
forwardHaptic("failure");
return;
}
const [domain, service] = actionConfig.service.split(".", 2);
hass.callService(domain, service, actionConfig.service_data);
forwardHaptic("light");
break;
}
case "fire-dom-event": {
fireEvent(node, "ll-custom", actionConfig);
}
}
}
};
@@ -8,7 +8,7 @@ export const handleStructError = (err: Error): string[] => {
for (const failure of err.failures()) {
if (failure.type === "never") {
errors.push(
`Key "${failure.path[0]}" is not supported by the UI editor.`
`Key "${failure.path.join(".")}" is not supported by the UI editor.`
);
} else {
errors.push(
@@ -7,7 +7,7 @@ const isEntityId = (value: unknown, context: StructContext): StructResult => {
if (!value.includes(".")) {
return [
context.fail({
type: "entity id should be in the format 'domain.entity'",
type: "Entity ID should be in the format 'domain.entity'",
}),
];
}
@@ -15,3 +15,16 @@ const isEntityId = (value: unknown, context: StructContext): StructResult => {
};
export const EntityId = struct("entity-id", isEntityId);
const isEntityIdOrAll = (
value: unknown,
context: StructContext
): StructResult => {
if (typeof value === "string" && value === "all") {
return true;
}
return isEntityId(value, context);
};
export const EntityIdOrAll = struct("entity-id-all", isEntityIdOrAll);
@@ -130,6 +130,15 @@ export class HuiActionEditor extends LitElement {
</b>
`
: ""}
${this.config?.action === "multiple"
? html`
<b>
${this.hass!.localize(
"ui.panel.lovelace.editor.action-editor.editor_multiple_actions"
)}
</b>
`
: ""}
`;
}
@@ -164,7 +164,8 @@ class HuiGenericEntityRow extends LitElement {
}
.info {
margin-left: 16px;
flex: 1 0 60px;
margin-right: 8px;
flex: 1 0 30%;
}
.info,
.info > * {
@@ -181,7 +182,6 @@ class HuiGenericEntityRow extends LitElement {
}
.secondary,
ha-relative-time {
display: block;
color: var(--secondary-text-color);
}
state-badge {
@@ -57,7 +57,9 @@ class HuiTimestampDisplay extends LitElement {
}
if (isNaN(this.ts.getTime())) {
return html` Invalid date `;
return html`${this.hass.localize(
"ui.panel.lovelace.components.timestamp-display.invalid"
)}`;
}
const format = this._format;
@@ -68,7 +70,9 @@ class HuiTimestampDisplay extends LitElement {
if (format in FORMATS) {
return html` ${FORMATS[format](this.ts, this.hass.language)} `;
}
return html` Invalid format `;
return html`${this.hass.localize(
"ui.panel.lovelace.components.timestamp-display.invalid_format"
)}`;
}
protected updated(changedProperties: PropertyValues): void {
@@ -71,7 +71,7 @@ const DOMAIN_TO_ELEMENT_TYPE = {
switch: "toggle",
vacuum: "toggle",
// Temporary. Once climate is rewritten,
// water heater should get it's own row.
// water heater should get its own row.
water_heater: "climate",
input_datetime: "input-datetime",
weather: "weather",
@@ -46,6 +46,7 @@ const actions = [
"url",
"call-service",
"none",
"multiple",
];
@customElement("hui-button-card-editor")
@@ -82,6 +82,7 @@ export class HuiLightCardEditor extends LitElement
"url",
"call-service",
"none",
"multiple",
];
return html`
@@ -60,7 +60,7 @@ export class HuiPictureCardEditor extends LitElement
return html``;
}
const actions = ["navigate", "url", "call-service", "none"];
const actions = ["navigate", "url", "call-service", "none", "multiple"];
return html`
<div class="card-config">
@@ -104,7 +104,14 @@ export class HuiPictureEntityCardEditor extends LitElement
return html``;
}
const actions = ["more-info", "toggle", "navigate", "call-service", "none"];
const actions = [
"more-info",
"toggle",
"navigate",
"call-service",
"none",
"multiple",
];
const views = ["auto", "live"];
const dir = computeRTLDirection(this.hass!);
@@ -108,7 +108,14 @@ export class HuiPictureGlanceCardEditor extends LitElement
return html``;
}
const actions = ["more-info", "toggle", "navigate", "call-service", "none"];
const actions = [
"more-info",
"toggle",
"navigate",
"call-service",
"none",
"multiple",
];
const views = ["auto", "live"];
return html`
+1
View File
@@ -98,6 +98,7 @@ export const actionConfigStruct = object({
url_path: optional(string()),
service: optional(string()),
service_data: optional(object()),
actions: optional(array()),
});
const buttonEntitiesRowConfigStruct = object({
@@ -48,9 +48,9 @@ export class HuiServiceButtonElement extends LitElement
return html`
<ha-call-service-button
.hass=${this.hass}
.domain="${this._domain}"
.service="${this._service}"
.serviceData="${this._config.service_data}"
.domain=${this._domain}
.service=${this._service}
.serviceData=${this._config.service_data}
>${this._config.title}</ha-call-service-button
>
`;
@@ -25,7 +25,7 @@ import { handleAction } from "../common/handle-action";
import { UNAVAILABLE_STATES } from "../../../data/entity";
interface SensorEntityConfig extends EntitiesCardEntityConfig {
format?: "relative" | "date" | "time" | "datetime";
format?: "relative" | "total" | "date" | "time" | "datetime";
}
@customElement("hui-sensor-entity-row")
+18 -4
View File
@@ -291,7 +291,8 @@
"successfully_saved": "Successfully saved",
"successfully_deleted": "Successfully deleted",
"error_required": "Required",
"copied": "Copied"
"copied": "Copied",
"copied_clipboard": "Copied to clipboard"
},
"components": {
"logbook": {
@@ -2270,7 +2271,9 @@
},
"visualization": {
"header": "Network Visualization",
"caption": "Visualization"
"caption": "Visualization",
"highlight_label": "Highlight Devices",
"zoom_label": "Zoom To Device"
},
"group_binding": {
"header": "Group Binding",
@@ -2389,6 +2392,7 @@
"lovelace": {
"cards": {
"confirm_delete": "Are you sure you want to delete this card?",
"action_confirmation": "Are you sure you want to exectue action \"{action}\"?",
"empty_state": {
"title": "Welcome Home",
"no_devices": "This page allows you to control your devices, however it looks like you have no devices set up yet. Head to the integrations page to get started.",
@@ -2400,7 +2404,9 @@
"shopping-list": {
"checked_items": "Checked items",
"clear_items": "Clear checked items",
"add_item": "Add item"
"add_item": "Add item",
"reorder_items": "Reorder items",
"drag_and_drop": "Drag and drop"
},
"picture-elements": {
"hold": "Hold:",
@@ -2558,6 +2564,7 @@
"action-editor": {
"navigation_path": "Navigation Path",
"url_path": "URL Path",
"editor_multiple_actions": "Multiple actions can only be entered in the code editor",
"editor_service_data": "Service data can only be entered in the code editor",
"actions": {
"default_action": "Default Action",
@@ -2566,7 +2573,8 @@
"toggle": "Toggle",
"navigate": "Navigate",
"url": "URL",
"none": "No Action"
"none": "No Action",
"multiple": "Multiple actions"
}
},
"card": {
@@ -2833,6 +2841,12 @@
"changed_toast": {
"message": "The Lovelace UI configuration for this dashboard was updated. Refresh to see changes?"
},
"components": {
"timestamp-display": {
"invalid": "Invalid timestamp",
"invalid_format": "Invalid display format"
}
},
"reload_lovelace": "Reload UI"
},
"mailbox": {
@@ -9,6 +9,9 @@
"bg": {
"nativeName": "Български"
},
"bn": {
"nativeName": "বাংলা"
},
"bs": {
"nativeName": "Bosanski"
},
+77 -7
View File
@@ -533,6 +533,8 @@
"add_new": "Tilføj nyt område...",
"area": "Område",
"clear": "Ryd",
"no_areas": "Du har ikke nogen områder",
"no_match": "Ingen matchende områder fundet",
"show_areas": "Vis områder"
},
"blueprint-picker": {
@@ -553,6 +555,7 @@
"device": "Enhed",
"no_area": "Intet område",
"no_devices": "Du har ingen enheder",
"no_match": "Ingen matchende enheder fundet",
"show_devices": "Vis enheder",
"toggle": "Til/fra"
},
@@ -563,6 +566,7 @@
"entity-picker": {
"clear": "Ryd",
"entity": "Entitet",
"no_match": "Ingen matchende entiteter fundet",
"show_entities": "Vis entiteter"
}
},
@@ -631,7 +635,10 @@
},
"target-picker": {
"add_device_id": "Vælg enhed",
"remove_device_id": "Fjern enhed"
"add_entity_id": "Vælg entitet",
"remove_area_id": "Fjern område",
"remove_device_id": "Fjern enhed",
"remove_entity_id": "Fjern entitet"
},
"user-picker": {
"add_user": "Tilføj bruger",
@@ -655,6 +662,7 @@
"editor": {
"confirm_delete": "Er du sikker på, at du vil slette denne post?",
"delete": "Slet",
"device_disabled": "Denne entitets enheden er deaktiveret.",
"enabled_cause": "Deaktiveret af {cause}.",
"enabled_description": "Deaktiverede entiteter tilføjes ikke til Home Assistant.",
"enabled_label": "Aktivér entitet",
@@ -663,6 +671,7 @@
"icon_error": "Ikoner skal være i formatet 'præfiks:ikonnavn', fx. 'mdi:home'",
"name": "Brugerdefineret navn",
"note": "Bemærk: Dette virker muligvis ikke med alle integrationer endnu.",
"open_device_settings": "Åbn enhedsindstillinger",
"unavailable": "Denne entitet er ikke tilgængelig i øjeblikket.",
"update": "Opdater"
},
@@ -715,6 +724,10 @@
"yaml_not_editable": "Indstillingerne for denne entitet kan ikke redigeres fra brugerfladen. Det er kun entiteter, der er konfigureret fra brugerfladen, der kan konfigureres herfra."
},
"more_info_control": {
"cover": {
"close_cover": "Luk cover",
"open_cover": "Åbn cover"
},
"details": "Detaljer",
"dismiss": "Afvis dialog",
"edit": "Rediger entitet",
@@ -776,6 +789,16 @@
},
"quick-bar": {
"commands": {
"navigation": {
"blueprint": "Tegninger",
"core": "Generelt",
"customize": "Tilpasninger",
"entities": "Entiteter",
"info": "Information",
"server_control": "Serverstyring",
"users": "Brugere",
"zone": "Zoner"
},
"server_control": {
"perform_action": "{action} server",
"restart": "Genstart",
@@ -892,6 +915,12 @@
"caption": "Automatiseringer",
"description": "Administrer automatiseringer",
"dialog_new": {
"blueprint": {
"use_blueprint": "Brug en tegning"
},
"header": "Opret en ny automatisering",
"how": "Hvordan vil du oprette din nye automatisering?",
"start_empty": "Start med en tom automatisering",
"thingtalk": {
"create": "Opret",
"header": "Beskriv automationen du vil lave",
@@ -973,6 +1002,13 @@
"unsupported_action": "Ikke-understøttet handling: {action}"
},
"alias": "Navn",
"blueprint": {
"blueprint_to_use": "Tegninger klar til brug",
"header": "Tegninger",
"inputs": "Indgange",
"manage_blueprints": "Administrer tegninger",
"no_blueprints": "Du har ingen tegninger"
},
"conditions": {
"add": "Tilføj betingelse",
"delete": "Slet",
@@ -1190,14 +1226,22 @@
},
"blueprint": {
"add": {
"community_forums": "Fællesskabsfora",
"file_name": "Tegningssti",
"import_introduction": "Du kan importere skabeloner af andre brugere fra Github og {community_link} . Indtast URL'en til skabelonen nedenfor.",
"import_introduction_link": "Du kan importere tegninger af andre brugere fra Github og {community_link} . Indtast webadressen til tegningen nedenfor."
"import_introduction_link": "Du kan importere tegninger af andre brugere fra Github og {community_link} . Indtast webadressen til tegningen nedenfor.",
"raw_blueprint": "Tegningsindhold",
"unsupported_blueprint": "Denne tegning understøttes ikke"
},
"overview": {
"add_blueprint": "Importer tegning",
"delete_blueprint": "Slet tegning",
"discover_more": "Find flere tegninger",
"headers": {
"domain": "Domæne",
"file_name": "Filnavn"
}
},
"use_blueprint": "Opret automation"
}
},
"cloud": {
@@ -1448,9 +1492,12 @@
"device_not_found": "Enhed blev ikke fundet.",
"disabled": "Deaktiveret",
"disabled_by": {
"config_entry": "Konfigurationsparameter",
"integration": "Integration",
"user": "Bruger"
},
"enabled_cause": "Enheden er deaktiveret pga. {cause} .",
"enabled_description": "Deaktiverede enheder vises ikke, og entiteter, der hører til enheden, deaktiveres og tilføjes ikke til Home Assistant.",
"enabled_label": "Aktiver enhed",
"entities": {
"add_entities_lovelace": "Tilføj til Lovelace",
@@ -1570,6 +1617,7 @@
"info": {
"built_using": "Bygget ved hjælp af",
"caption": "Oplysninger",
"copy_github": "Til GitHub",
"copy_raw": "Rå tekst",
"custom_uis": "Tilpassede brugergrænseflader:",
"description": "Se oplysninger om din Home Assistant-installation",
@@ -1987,6 +2035,7 @@
"editor": {
"activate_user": "Aktivér bruger",
"active": "Aktiv",
"active_tooltip": "Kontrollerer, om brugeren kan logge ind",
"admin": "Administrator",
"caption": "Vis bruger",
"change_password": "Skift adgangskode",
@@ -2007,6 +2056,7 @@
"username": "Brugernavn"
},
"picker": {
"add_user": "Tilføj bruger",
"headers": {
"group": "Gruppe",
"is_active": "Aktiv",
@@ -2066,7 +2116,14 @@
},
"description": "Zigbee Home Automation-opsætning",
"device_pairing_card": {
"INITIALIZED_status_text": "Enheden er klar til brug"
"CONFIGURED": "Konfiguration fuldført",
"CONFIGURED_status_text": "Initialiserer",
"INITIALIZED": "Initialiseringen er fuldført",
"INITIALIZED_status_text": "Enheden er klar til brug",
"INTERVIEW_COMPLETE": "Interview fuldført",
"INTERVIEW_COMPLETE_status_text": "Konfigurerer",
"PAIRED": "Enhed fundet",
"PAIRED_status_text": "Starter Interview"
},
"devices": {
"header": "Zigbee Home Automation - Enhed"
@@ -2126,7 +2183,11 @@
"hint_wakeup": "Nogle enheder som Xiaomi-sensorer har en vækkeknap, som du kan trykke på med ~5 sekunders intervaller, der holder enheder vågne, mens du interagerer med dem.",
"introduction": "Kør ZHA-kommandoer, der påvirker en enkelt enhed. Vælg en enhed for at se en liste over tilgængelige kommandoer."
},
"title": "Zigbee Home Automation"
"title": "Zigbee Home Automation",
"visualization": {
"caption": "Visualisering",
"header": "Netværksvisualisering"
}
},
"zone": {
"add_zone": "Tilføj zone",
@@ -2295,6 +2356,8 @@
"filter_attributes": "Filtrer egenskaber",
"filter_entities": "Filtrer entiteter",
"filter_states": "Filtrer tilstande",
"last_changed": "Senest ændret",
"last_updated": "Senest opdateret",
"more_info": "Mere information",
"no_entities": "Ingen entiteter",
"set_state": "Sæt tilstand",
@@ -2491,6 +2554,9 @@
"description": "Lys-kortet giver dig mulighed for at ændre lysets lysstyrke.",
"name": "Lys"
},
"logbook": {
"name": "Logbog"
},
"map": {
"dark_mode": "Mørk tilstand?",
"default_zoom": "Standard-zoom",
@@ -2519,7 +2585,8 @@
},
"picture-glance": {
"description": "Billedblik-kortet viser et billede og den tilsvarende entitetstilstand som et ikon. Entiteterne på højre side tillader at skifte handlinger, andre viser dialogboksen for mere information.",
"name": "Billedblik"
"name": "Billedblik",
"state_entity": "Entitet status"
},
"picture": {
"description": "Billedkortet giver dig mulighed for at indstille et billede, der skal bruges til navigation til forskellige stier i brugerfladen eller til at kalde en tjeneste.",
@@ -2883,10 +2950,13 @@
"change_password": {
"confirm_new_password": "Bekræft ny adgangskode",
"current_password": "Nuværende adgangskode",
"error_new_is_old": "Ny adgangskode skal være forskellig fra den aktuelle adgangskode",
"error_new_mismatch": "Indtastede nye adgangskoder er ikke ens",
"error_required": "Påkrævet",
"header": "Skift adgangskode",
"new_password": "Ny adgangskode",
"submit": "Indsend"
"submit": "Indsend",
"success": "Adgangskoden blev ændret"
},
"current_user": "Du er logget ind som {fullName}.",
"customize_sidebar": {
+9 -9
View File
@@ -706,11 +706,11 @@
"never": "Noch nie",
"past": "Vor {time}",
"past_duration": {
"day": "vor {count} {count, plural,\n one {Tag}\n other {Tagen}\n}",
"hour": "vor {count} {count, plural,\n one {Stunde}\n other {Stunden}\n}",
"minute": "vor {count} {count, plural,\n one {Minute}\n other {Minuten}\n}",
"second": "vor {count} {count, plural,\n one {Sekunde}\n other {Sekunden}\n}",
"week": "vor {count} {count, plural,\n one {Woche}\n other {Wochen}\n}"
"day": "Vor {count} {count, plural,\n one {Tag}\n other {Tagen}\n}",
"hour": "Vor {count} {count, plural,\n one {Stunde}\n other {Stunden}\n}",
"minute": "Vor {count} {count, plural,\n one {Minute}\n other {Minuten}\n}",
"second": "Vor {count} {count, plural,\n one {Sekunde}\n other {Sekunden}\n}",
"week": "Vor {count} {count, plural,\n one {Woche}\n other {Wochen}\n}"
}
},
"service-picker": {
@@ -2139,7 +2139,7 @@
},
"network": {
"header": "Netzwerkverwaltung",
"introduction": "Verwalten netzwerkweiter Funktionen.",
"introduction": "Verwalten der Netzwerk-Funktionen.",
"node_count": "{count} Knoten"
},
"node_config": {
@@ -2358,9 +2358,9 @@
"min_max": "Min/Max-Entitäten neu laden",
"mqtt": "Lade manuell konfigurierte MQTT-Entitäten neu",
"person": "Personen neu laden",
"ping": "Binäre Ping Sensorentitäten neu laden",
"ping": "Binäre Ping-Sensorentitäten neu laden",
"reload": "{domain} neu laden",
"rest": "Rest Entitäten und Benachrichtigungsdienste neu laden",
"rest": "Rest-Entitäten und Benachrichtigungsdienste neu laden",
"rpi_gpio": "Raspberry Pi GPIO Entitäten neu laden",
"scene": "Szenen neu laden",
"script": "Skripte neu laden",
@@ -2431,7 +2431,7 @@
"username": "Benutzername"
},
"caption": "Benutzer",
"description": "Home Assistant Benutzerkonten verwalten",
"description": "Home Assistant-Benutzerkonten verwalten",
"editor": {
"activate_user": "Benutzer aktivieren",
"active": "Aktiv",
+7 -7
View File
@@ -929,7 +929,7 @@
"filter": "Reload filter entities",
"generic": "Reload generic IP camera entities",
"generic_thermostat": "Reload generic thermostat entities",
"group": "Reload groups, group entities, and notify services",
"group": "Reload groups, group entities, and group notify services",
"history_stats": "Reload history stats entities",
"homekit": "Reload HomeKit",
"input_boolean": "Reload input booleans",
@@ -942,7 +942,7 @@
"person": "Reload people",
"ping": "Reload ping binary sensor entities",
"reload": "Reload {domain}",
"rest": "Reload rest entities and notify services",
"rest": "Reload rest entities, and rest notify services",
"rpi_gpio": "Reload Raspberry Pi GPIO entities",
"scene": "Reload scenes",
"script": "Reload scripts",
@@ -1439,7 +1439,7 @@
"confirm_delete_header": "Delete this blueprint?",
"confirm_delete_text": "Are you sure you want to delete this blueprint?",
"delete_blueprint": "Delete blueprint",
"discover_more": "Discover more Blueprints",
"discover_more": "Discover more blueprints",
"header": "Blueprint Editor",
"headers": {
"domain": "Domain",
@@ -2259,7 +2259,7 @@
"without_device": "Entities without device"
},
"icon": "Icon",
"introduction": "Use scenes to bring your home to live.",
"introduction": "Use scenes to bring your home to life.",
"load_error_not_editable": "Only scenes in scenes.yaml are editable.",
"load_error_unknown": "Error loading scene ({err_no}).",
"name": "Name",
@@ -2345,7 +2345,7 @@
"filter": "Reload filter entities",
"generic": "Reload generic IP camera entities",
"generic_thermostat": "Reload generic thermostat entities",
"group": "Reload groups, group entities, and notify services",
"group": "Reload groups, group entities, and group notify services",
"heading": "YAML configuration reloading",
"history_stats": "Reload history stats entities",
"homekit": "Reload HomeKit",
@@ -2360,7 +2360,7 @@
"person": "Reload people",
"ping": "Reload ping binary sensor entities",
"reload": "Reload {domain}",
"rest": "Reload rest entities and notify services",
"rest": "Reload rest entities, and rest notify services",
"rpi_gpio": "Reload Raspberry Pi GPIO entities",
"scene": "Reload scenes",
"script": "Reload scripts",
@@ -2405,7 +2405,7 @@
"description": "Description",
"name": "Name",
"new_tag": "New tag",
"tag_id": "Tag id",
"tag_id": "Tag ID",
"tag_id_placeholder": "Autogenerated when left empty",
"update": "Update",
"usage": "A tag can trigger an automation when scanned, you can use NFC tags, QR codes or any other kind of tag. Use our {companion_link} to write this tag to a programmable NFC tag or create a QR code below."
+4 -4
View File
@@ -1439,7 +1439,7 @@
"confirm_delete_header": "Kas kustutada see kavand?",
"confirm_delete_text": "Kas soovid kindlasti selle kavandi kustutada?",
"delete_blueprint": "Kustuta kavand",
"discover_more": "Avasta rohkem kavandeid",
"discover_more": "Leia rohkem kavandeid",
"header": "Kavandi redaktor",
"headers": {
"domain": "Domeen",
@@ -1895,7 +1895,7 @@
"lovelace": {
"dashboards": "Vaated",
"mode": "Režiim",
"resources": "Ressursid"
"resources": "Ressursse"
}
},
"manage": "Halda",
@@ -2259,7 +2259,7 @@
"without_device": "Olemid ilma seadmeta"
},
"icon": "Ikoon",
"introduction": "Kasutage stseene, et oma kodu mõnusamaks muuta.",
"introduction": "Kasutage stseene, et oma kodu nutikamaks muuta.",
"load_error_not_editable": "Ainult scenes.yaml failis asuvad stseenid on muudetavad.",
"load_error_unknown": "Viga stseeni laadimisel ({err_no}).",
"name": "Nimi",
@@ -2345,7 +2345,7 @@
"filter": "TAASLAE FILTREERITUD OLEMID",
"generic": "TAASLAE IP KAAMERAD",
"generic_thermostat": "TAASLAE TERMOSTAADID",
"group": "Taaslae grupid",
"group": "Taaslae grupid, grupi olemid ja teavitusteenused",
"heading": "YAML konfiguratsiooni taaslaadimine",
"history_stats": "TAASLAE OLEMITE AJALUGU",
"homekit": "Taaslae HomeKit andmed",
+33 -33
View File
@@ -554,7 +554,7 @@
"blueprint-picker": {
"add_user": "Ajouter un utilisateur",
"remove_user": "Supprimer l'utilisateur",
"select_blueprint": "Sélectionnez un plan"
"select_blueprint": "Sélectionnez un Blueprint"
},
"data-table": {
"no-data": "Pas de données",
@@ -901,7 +901,7 @@
"navigation": {
"areas": "Zones",
"automation": "Automatisations",
"blueprint": "Plans",
"blueprint": "Blueprints",
"core": "Général",
"customize": "Customisations",
"devices": "Appareils",
@@ -1073,7 +1073,7 @@
"description": "Créez des règles de comportement personnalisées pour votre maison",
"dialog_new": {
"blueprint": {
"use_blueprint": "Utiliser un plan"
"use_blueprint": "Utiliser un Blueprint"
},
"header": "Créer une nouvelle automatisation",
"how": "Comment souhaitez-vous créer votre nouvelle automatisation?",
@@ -1166,12 +1166,12 @@
},
"alias": "Nom",
"blueprint": {
"blueprint_to_use": "Plan à utiliser",
"header": "Plan",
"blueprint_to_use": "Blueprint à utiliser",
"header": "Blueprint",
"inputs": "Entrées",
"manage_blueprints": "Gérer les plans",
"no_blueprints": "Vous n'avez pas de plans",
"no_inputs": "Ce plan n'a aucune entrée."
"manage_blueprints": "Gérer les Blueprints",
"no_blueprints": "Vous n'avez pas de Blueprint",
"no_inputs": "Ce Blueprint n'a aucune entrée."
},
"conditions": {
"add": "Ajouter une condition",
@@ -1417,37 +1417,37 @@
},
"blueprint": {
"add": {
"community_forums": "Forums communautaires",
"error_no_url": "Veuillez entrer l'URL du plan",
"file_name": "Chemin du fichier de plan local",
"header": "Importer un plan",
"import_btn": "Aperçu du plan",
"import_header": "Importer \" {name} \" (type: {domain} )",
"import_introduction": "Vous pouvez importer les plans d'autres utilisateurs de Github et des forums de la communauté. Entrez l'URL du plan ci-dessous.",
"import_introduction_link": "Vous pouvez importer les plans d'autres utilisateurs de Github et des forums de la communauté. Entrez l'URL du plan ci-dessous.",
"importing": "Chargement du plan ...",
"raw_blueprint": "Contenu du plan",
"save_btn": "Importer un plan",
"saving": "Importation du plan ...",
"unsupported_blueprint": "Ce plan n'est pas pris en charge",
"url": "URL du plan"
"community_forums": "Forum de la communauté",
"error_no_url": "Veuillez entrer l'URL du Blueprint",
"file_name": "Chemin du Blueprint",
"header": "Importer un Blueprint",
"import_btn": "Aperçu du Blueprint",
"import_header": "Blueprint \"{name}\"",
"import_introduction": "Vous pouvez importer les Blueprints d'autres utilisateurs à partir de GitHub et du forum de la communauté. Entrez l'URL du Blueprint ci-dessous.",
"import_introduction_link": "Vous pouvez importer les Blueprints d'autres utilisateurs à partir de GitHub et du {community_link}. Entrez l'URL du Blueprint ci-dessous.",
"importing": "Chargement du Blueprint ...",
"raw_blueprint": "Contenu du Blueprint",
"save_btn": "Importer un Blueprint",
"saving": "Importation du Blueprint ...",
"unsupported_blueprint": "Ce Blueprint n'est pas pris en charge",
"url": "URL du Blueprint"
},
"caption": "Plans",
"description": "Gérer les plans",
"caption": "Blueprints",
"description": "Créez des automatisations facilement à l'aide de modèles configurables",
"overview": {
"add_blueprint": "Importer un plan",
"confirm_delete_header": "Supprimer ce plan ?",
"confirm_delete_text": "Êtes-vous sûr de vouloir supprimer ce plan ?",
"delete_blueprint": "Supprimer le plan",
"discover_more": "Découvrez plus de plans",
"header": "Éditeur de plans",
"add_blueprint": "Importer un Blueprint",
"confirm_delete_header": "Supprimer ce Blueprint ?",
"confirm_delete_text": "Êtes-vous sûr de vouloir supprimer ce Blueprint ?",
"delete_blueprint": "Supprimer le Blueprint",
"discover_more": "Découvrez plus de Blueprints",
"header": "Éditeur de Blueprints",
"headers": {
"domain": "Domaine",
"file_name": "Nom de fichier",
"name": "Nom"
},
"introduction": "L’éditeur de plans vous permet de créer et de modifier des plans.",
"learn_more": "En savoir plus sur les plans",
"introduction": "L’éditeur de Blueprint vous permet de créer et de modifier les Blueprints qui permettent de créer des automatisations facilement à l'aide de modèles configurables.",
"learn_more": "En savoir plus sur les Blueprints",
"use_blueprint": "Créer une automatisation"
}
},
@@ -1848,7 +1848,7 @@
"info": {
"built_using": "Construit en utilisant",
"caption": "Info",
"copy_github": "Pour Github",
"copy_github": "Pour GitHub",
"copy_raw": "Texte brut",
"custom_uis": "Interfaces utilisateur personnalisées :",
"description": "Version, état du système et liens vers la documentation",
+1 -1
View File
@@ -2405,7 +2405,7 @@
"description": "Descrizione",
"name": "Nome",
"new_tag": "Nuova etichetta",
"tag_id": "Id etichetta",
"tag_id": "ID etichetta",
"tag_id_placeholder": "Autogenerato quando lasciato vuoto",
"update": "Aggiorna",
"usage": "Una etichetta può attivare un'automazione quando viene scansionata, puoi utilizzare etichette NFC, codici QR o qualsiasi altro tipo di tag. Utilizza il nostro {companion_link} per scrivere questa etichetta su un tag NFC programmabile o crea un codice QR di seguito."
+100 -12
View File
@@ -2,11 +2,13 @@
"config_entry": {
"disabled_by": {
"config_entry": "Intrare config",
"device": "Dispozitiv",
"integration": "Integrare",
"user": "Utilizator"
}
},
"groups": {
"owner": "Proprietar",
"system-admin": "Administratori",
"system-read-only": "Utilizatori cu drepturi de citire",
"system-users": "Utilizatori"
@@ -491,14 +493,19 @@
"close": "Închide",
"copied": "Copiat",
"delete": "Șterge",
"disable": "Dezactivați",
"enable": "Activați",
"error_required": "Necesar",
"loading": "Se încarcă",
"menu": "Meniu",
"next": "Următorul",
"no": "Nu",
"not_now": "Nu acum",
"previous": "Anterior",
"refresh": "Reîmprospătare",
"rename": "Redenumiți",
"save": "Salvați",
"skip": "Sari peste",
"successfully_deleted": "Șters cu succes",
"successfully_saved": "Opțiunile salvate cu succes.",
"undo": "Undo",
@@ -518,6 +525,10 @@
"clear": "Şterge",
"show_areas": "Arată zonele"
},
"blueprint-picker": {
"add_user": "Adăugați utilizator",
"remove_user": "Eliminați utilizatorul"
},
"data-table": {
"no-data": "Fără date",
"search": "Căutare"
@@ -615,7 +626,8 @@
},
"user-picker": {
"add_user": "Adăugați utilizator",
"no_user": "Niciun utilizator"
"no_user": "Niciun utilizator",
"remove_user": "Eliminați utilizatorul"
}
},
"dialogs": {
@@ -753,6 +765,13 @@
"description": "Opțiunile salvate cu succes."
}
},
"quick-bar": {
"commands": {
"server_control": {
"stop": "Stop"
}
}
},
"voice_command": {
"did_not_hear": "Home Assistant nu a auzit nimic",
"error": "Oops, a apărut o eroare",
@@ -851,6 +870,11 @@
"automation": {
"caption": "Automatizări",
"description": "Gestionarea automatizărilor",
"dialog_new": {
"thingtalk": {
"create": "Creează"
}
},
"editor": {
"actions": {
"add": "Adăugați o acțiune",
@@ -913,15 +937,15 @@
"service_data": "Date serviciu"
},
"wait_for_trigger": {
"continue_timeout": "Continua la timeout",
"continue_timeout": "Continuă la timeout",
"label": "Așteptați declanșatorul",
"timeout": "Timeout (optional)"
"timeout": "Timeout (opțional)"
},
"wait_template": {
"continue_timeout": "Continuați la expirare",
"label": "Asteptare",
"label": "Așteaptă",
"timeout": "Timeout (opțional)",
"wait_template": "Sablon Asteptare"
"wait_template": "Șablon teptare"
}
},
"unsupported_action": "Acțiune nesuportată: {action}"
@@ -1038,7 +1062,7 @@
"label": "Dispozitiv"
},
"event": {
"context_user_pick": "Selectare utilizatorul",
"context_user_pick": "Selectați utilizator",
"event_data": "Date eveniment",
"event_type": "Tip eveniment",
"label": "Eveniment"
@@ -1127,15 +1151,29 @@
"only_editable": "Numai automatizările din automations.yaml pot fi editate.",
"pick_automation": "Alegeți automatizarea pentru a o edita",
"show_info_automation": "Afișați informații despre automatizare"
},
"thingtalk": {
"task_selection": {
"for_example": "De exemplu:",
"header": "Creați o nouă automatizare",
"language_note": "Notă: Deocamdată este acceptată numai limba engleză."
}
}
},
"blueprint": {
"add": {
"header": "Importați un plan",
"url": "Adresa URL a planului"
},
"overview": {
"add_blueprint": "Importați planul",
"confirm_delete_text": "Sigur doriți să ștergeți acest plan?"
"confirm_delete_header": "Ștergeți acest plan?",
"confirm_delete_text": "Sigur doriți să ștergeți acest plan?",
"headers": {
"domain": "Domeniu",
"file_name": "Nume fișier",
"name": "Nume"
}
}
},
"cloud": {
@@ -1269,6 +1307,12 @@
"description": "Gestionați dispozitivele conectate",
"device_info": "Informații despre dispozitiv",
"device_not_found": "Dispozitivul nu a fost găsit.",
"disabled": "Dezactivat",
"disabled_by": {
"integration": "Integrare",
"user": "Utilizator"
},
"enabled_label": "Activează dispozitiv",
"entities": {
"add_entities_lovelace": "Adăugați la Lovelace",
"entities": "Entități",
@@ -1276,6 +1320,13 @@
},
"name": "Nume",
"no_devices": "Nu există dispozitive",
"picker": {
"filter": {
"filter": "Filtru",
"show_all": "Arată tot"
},
"search": "Caută dispozitive"
},
"scene": {
"create": "Creează un scenariu cu dispozitivul",
"no_scenes": "Nu există scenarii",
@@ -1372,6 +1423,7 @@
"info": {
"built_using": "Construit folosind",
"caption": "Info",
"copy_github": "Pentru GitHub",
"documentation": "Documentație",
"frontend": "front-end-ui",
"home_assistant_logo": "Logo-ul Home Assistant",
@@ -1383,16 +1435,27 @@
"source": "Sursă:",
"system_health": {
"checks": {
"cloud": {
"logged_in": "Conectat"
},
"homeassistant": {
"arch": "Arhitectura CPU",
"docker": "Docker",
"hassio": "HassOS",
"installation_type": "Tipul de instalare",
"os_name": "Numele sistemului de operare",
"os_version": "Versiunea sistemului de operare",
"python_version": "Versiunea Python",
"timezone": "Fus orar",
"version": "Versiune"
},
"lovelace": {
"dashboards": "Tablouri de bord",
"mode": "Mod",
"resources": "Resurse"
}
}
},
"more_info": "mai multe informații"
},
"title": "Info"
},
@@ -1711,6 +1774,9 @@
}
}
},
"tags": {
"confirm_remove_title": "Eliminați eticheta?"
},
"users": {
"add_user": {
"caption": "Adăugați utilizator",
@@ -1731,17 +1797,22 @@
"delete_user": "Ștergeți utilizatorul",
"name": "Nume",
"system_generated_users_not_editable": "Nu s-au putut actualiza utilizatorii generați de sistem.",
"update_user": "Actualizare"
"update_user": "Actualizare",
"username": "Nume de utilizator"
},
"picker": {
"add_user": "Adăugați utilizator",
"headers": {
"group": "Grup",
"is_owner": "Proprietar",
"name": "Nume",
"system": "Sistem"
"system": "Sistem",
"username": "Nume de utilizator"
}
}
},
"zha": {
"add_device": "Adaugă un dispozitiv",
"add_device_page": {
"discovered_text": "Dispozitivele vor apărea aici odată descoperite.",
"discovery_text": "Dispozitivele descoperite vor apărea aici. Urmați instrucțiunile pentru dispozitiv (e) și așezați dispozitivul (ele) în modul de împerechere.",
@@ -1782,6 +1853,11 @@
"value": "Valoare"
},
"description": "Managementul rețelei Zigbee Home Automation",
"device_pairing_card": {
"CONFIGURED": "Configurare terminată",
"CONFIGURED_status_text": "Iniţializare",
"INTERVIEW_COMPLETE_status_text": "Configurez"
},
"devices": {
"header": "Zigbee Home Automation - Dispozitiv"
},
@@ -1797,6 +1873,7 @@
"unbind_button_label": "Deconectează grupul"
},
"groups": {
"add_group": "Adăugare grup",
"add_members": "Adăugați membri",
"adding_members": "Adăugarea membrilor",
"caption": "Grupuri",
@@ -1835,7 +1912,10 @@
"node_management": {
"header": "Gestionare dispozitive"
},
"title": "Automatizare Zigbee Home"
"title": "Automatizare Zigbee Home",
"visualization": {
"caption": "Vizualizare"
}
},
"zone": {
"add_zone": "Adăugare zonă",
@@ -2015,7 +2095,7 @@
"result_type": "Tipul rezultatului",
"template_extensions": "Șabloane de extensie pentru Home Assistant",
"time": "Acest șablon se actualizează la fiecare 60 de secunde după ultimul eveniment modificat de stare.",
"title": "Sabloane",
"title": "Şablon",
"unknown_error_template": "Sa produs o eroare de randare necunoscută."
}
}
@@ -2244,6 +2324,12 @@
"custom_card": "Personalizare",
"no_description": "Nicio descriere disponibilă."
},
"common": {
"add": "Adaugă",
"clear": "Şterge",
"edit": "Editați",
"none": "Niciunul"
},
"edit_card": {
"add": "Adăugare card",
"confirm_cancel": "Ești sigur că vrei să anulezi?",
@@ -2280,6 +2366,8 @@
},
"header": "Editați interfața utilizator",
"header-footer": {
"footer": "Subsol",
"header": "Antet",
"types": {
"graph": {
"name": "Grafic"
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -929,7 +929,7 @@
"filter": "重载 filter 实体",
"generic": "重载通用 IP 摄像机实体",
"generic_thermostat": "重载通用恒温器实体",
"group": "重载分组、分组实体及通知服务",
"group": "重载分组、分组实体及通知服务",
"history_stats": "重载历史记录统计实体",
"homekit": "重载 HomeKit",
"input_boolean": "重载二元选择器",
@@ -942,7 +942,7 @@
"person": "重载人员",
"ping": "重载 ping 二元传感器实体",
"reload": "重载{domain}",
"rest": "重载 REST 实体及通知服务",
"rest": "重载 REST 实体及通知服务",
"rpi_gpio": "重载树莓派 GPIO 实体",
"scene": "重载场景",
"script": "重载脚本",
@@ -2345,7 +2345,7 @@
"filter": "重载 filter 实体",
"generic": "重载通用 IP 摄像机实体",
"generic_thermostat": "重载通用恒温器实体",
"group": "重载分组、分组实体及通知服务",
"group": "重载分组、分组实体及通知服务",
"heading": "配置重载",
"history_stats": "重载历史记录统计实体",
"homekit": "重载 HomeKit",
@@ -2360,7 +2360,7 @@
"person": "重载人员",
"ping": "重载 ping 二元传感器实体",
"reload": "重载{domain}",
"rest": "重载 REST 实体及通知服务",
"rest": "重载 REST 实体及通知服务",
"rpi_gpio": "重载树莓派 GPIO 实体",
"scene": "重载场景",
"script": "重载脚本",
+406 -406
View File
@@ -2120,551 +2120,551 @@
dependencies:
vary "^1.1.2"
"@material/animation@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/animation/-/animation-8.0.0-canary.774dcfc8e.0.tgz#26b4c4d804397a2350e9eee72cddcc0bb5dcb6a8"
integrity sha512-h8pGWQy5mZ7yNveKGSwxP1pRV9wGs6hjXiOR5nS0NePjfIgRsqUBnSwNKW5TcP/ThPtnATbq0FfARs+ugHdFqA==
"@material/animation@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/animation/-/animation-9.0.0-canary.1c156d69d.0.tgz#53acc1253d1286f6d4cfaf3a778229cbd19ab000"
integrity sha512-m3eUpFRwxcP1tEWJlIH5q77YGSYEe5ITRw5OtyDvxU7ZzF0xKJbBeauQEdCmyig9UvK+J7jUUnCgkT/t/ldLtw==
dependencies:
tslib "^1.9.3"
"@material/base@8.0.0-canary.774dcfc8e.0", "@material/base@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/base/-/base-8.0.0-canary.774dcfc8e.0.tgz#be9e8ff6e8e366d74a6b2adea8edc7ee84b952b2"
integrity sha512-638e0T0WUlsAW21hgFhMNN/MnCErKmuovzJjA/vwrhPRHKtxrIuTIkmX2G1yQ7LlNQWhKG7W32g9KNd06+PNGA==
"@material/base@9.0.0-canary.1c156d69d.0", "@material/base@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/base/-/base-9.0.0-canary.1c156d69d.0.tgz#84f365077dfae12a31a32bfc7f9ba673fe56b2db"
integrity sha512-r98qY6EsPx6BlzT0Pj+H+BTI7r76GEX/zZPgajxZjbPAJSeeK+uCh69Dmhf63meLKaFkKgvLwH5udKJLMqqjpQ==
dependencies:
tslib "^1.9.3"
"@material/button@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/button/-/button-8.0.0-canary.774dcfc8e.0.tgz#778298eeb48f4bda767283ac35c45186beec9ac0"
integrity sha512-zwz9BNVJitc7sQqSErRcrKnPexnvS4s0imkBD0DNnwzus1XYHDb750YRHZr65rFWb1j1Mc6DNHPj2vNqsF7Yhw==
"@material/button@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/button/-/button-9.0.0-canary.1c156d69d.0.tgz#b35540ed085006d65562ed56fe2b5540d6712712"
integrity sha512-ZjBDrGy2kKPmlIYaL99/C1D0t+MCIkP3Pcj9Y1RxxYdayvP+o8evkBUz5IRtg5NpW4o1X89x8RfF/JmLJZrdYw==
dependencies:
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/shape" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/touch-target" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/shape" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/touch-target" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
"@material/checkbox@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-8.0.0-canary.774dcfc8e.0.tgz#9bbf85412de58a081791269d87d59fed484bd03e"
integrity sha512-S/BMM+Tk/WHcCj5ZccPJqlrsO+tX5Z4D+odb8O2sm6vMMYKePIWv6xdg9S8kNvFnYXtCxN9w7Lmp1I8yH9L72A==
"@material/checkbox@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-9.0.0-canary.1c156d69d.0.tgz#7534284e59af51217e3653ce8d7105dbd001d55f"
integrity sha512-7Fyjh3avQg+EZx6wVIB3K4b/9rs7rYTZIXVYM4iAVJo/LDtdBrdmLy6sRmk90gnO7+V5eTvSBJy7R+dU3l/xNQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/touch-target" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/touch-target" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/chips@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/chips/-/chips-8.0.0-canary.774dcfc8e.0.tgz#45332d182f804414ae56b7809d484c0b266dc11e"
integrity sha512-GtsV1FnOgNziNTFZF9qB66zQGLHV1GlfaEccThMxju0a9tgZl9hVFF+ahcc9/IlXoks4aa7P5JeBcc3bj99+oA==
"@material/chips@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/chips/-/chips-9.0.0-canary.1c156d69d.0.tgz#8f6819c42743a8f4dd9be5155556f0c9eb2d30f7"
integrity sha512-DuWDauRhrlj/nMI/NNUqVD+SUnVsuuZNSvf9t9AX3H08Uo3ZUHhNfdc7Ust0B+jHCaHsjLjlREyYagp8JxJuXQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/checkbox" "8.0.0-canary.774dcfc8e.0"
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/shape" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/touch-target" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/checkbox" "9.0.0-canary.1c156d69d.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/shape" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/touch-target" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/circular-progress@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-8.0.0-canary.774dcfc8e.0.tgz#a785020c5afd76bf34fa8d0d9b2d760d48f1734d"
integrity sha512-ukQre2qan+nUWuCoPQ7+YtvrwMoNrapLTz7zPpDaPRot+RttKSGVLFC9LX9WkZNX3BP7tSsgOAiIVdL72n+c1w==
"@material/circular-progress@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-9.0.0-canary.1c156d69d.0.tgz#df6a6b13cbe65e6e90e81ce0149d472a3de2463c"
integrity sha512-DCYOF9ssHb+psiKA98GZFztYFr48dvEhvS8w0Lu/hx+7G4qlG6KJzFZv1mBuiF0pdJCT1tjEDjOcj6t3nU9SRA==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/progress-indicator" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/progress-indicator" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/density@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/density/-/density-8.0.0-canary.774dcfc8e.0.tgz#1fdfb5f755c91f1e8079d6675afc6fb09b8deabc"
integrity sha512-vk0RK9Hz7Lfvz0tniAlY6MgbVsDoFKeOwVM1Y+lyfpoFcDkWrrUg499cAy5n7IxOeF4noAuXYpWFztUx9pPARg==
"@material/density@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/density/-/density-9.0.0-canary.1c156d69d.0.tgz#ca2a2a5f4ea31520d717a41a6343c104acee3005"
integrity sha512-Y87bUpTsXNDOi1q5NVRBxIyTUAFda1PP1Z9HOvgpV19n7/F6YLrttLGcOFSRFfx9btUKf4EddctBzwzBrF71TQ==
"@material/dialog@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-8.0.0-canary.774dcfc8e.0.tgz#4e1b5a340b23b767cdcc306c7725c845f3dbb653"
integrity sha512-QqFFV9BSAMJKphcrKkKzXcC6j2W68bhQrSGR7J+qL1F0lKTzgBpYtMzVu4VTW/gbhImu7jDdSdvZefVjHlb+xQ==
"@material/dialog@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-9.0.0-canary.1c156d69d.0.tgz#15a0c38d322679f3fcf372eabd21a9c70061f788"
integrity sha512-JadtYwhCPrvZce/0j+kUuSq5+QaXAbZ1yx2FPT01K6/mzEgM0eDuU7ta7IlGGoJXFzmQI8jy7WsTSuW+IBNC8A==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/button" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/shape" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/touch-target" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/button" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/shape" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/touch-target" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/dom@8.0.0-canary.774dcfc8e.0", "@material/dom@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/dom/-/dom-8.0.0-canary.774dcfc8e.0.tgz#b5d52f40e1a9965bb5b6fe8e7a50eb96a29af1ba"
integrity sha512-SHrc5zNOoWR2b9nShcv/A2D2C67beBdCS/KDPzezCpi0UfJYZVcjf9EmYDpNhZHh9jil3BiDvldknHazLGkqWA==
"@material/dom@9.0.0-canary.1c156d69d.0", "@material/dom@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/dom/-/dom-9.0.0-canary.1c156d69d.0.tgz#ffba86848f77cdce5ac2cfe494a97cb82af5c714"
integrity sha512-AwiQDzquolB7rqy8k4+QMVQ8Njb6k0CT+otJ/UNJbj0qNVXZB4njVaWRWrWCt70hYp1rG0cRNkZ01ZJDqABUFw==
dependencies:
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/elevation@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-8.0.0-canary.774dcfc8e.0.tgz#8bd9848cfe685ee6195f0bc6689bc09433310e1e"
integrity sha512-Ac0NYF4GkyN3hvaLDbxNH0GgTQpVzVukf+nZNpfHCaxygIdnHOdj0e9jfVGPIts6vldUalnpgW0HwB+Fd22sJw==
"@material/elevation@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-9.0.0-canary.1c156d69d.0.tgz#0027434eef691dde7e16e672e1349ee1e9ed7a2b"
integrity sha512-ojX0+nRNkfJssFA/EXhwglDwW48xll1OPCVy8jJrRfvIasRHiIJBeRdnlU5BL4qxDJHaEoOfEMmVQP/Aj504Qw==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-8.0.0-canary.774dcfc8e.0.tgz#417361ead5031e6bbd72b6ac2e85b786829ff6e1"
integrity sha512-XcCJOCZbk2kg41dTIvWd1iEJzl4rtGJ6ZK4o/FWQbczDJUcKN35je0+d/a/DvEh22t2Tj9M96n8HmTkS447Rhw==
"@material/feature-targeting@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-9.0.0-canary.1c156d69d.0.tgz#feaf37af156811a088958e653e6c08e66f567d2a"
integrity sha512-HWd0+GMnkVB3anmUc9+MeWCNoogAbb4U7ihzwq7lzLCQyC+i/kunppkUVV7DhL3ZVl1O6zIw1eAT+dgQpN8x4Q==
"@material/form-field@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-8.0.0-canary.774dcfc8e.0.tgz#34a9498c99592b82b09c541f9c6981ca327b5537"
integrity sha512-94zmsyamY4Kpq91/hFlpMLai19VQC+FtvHP1IMCAhCHb5HFC0VR3EpXrdV5L6bkn33amxALwUon6fa1IyY9qng==
"@material/form-field@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-9.0.0-canary.1c156d69d.0.tgz#2f44c9704c8a4aef54376819573f835983686e89"
integrity sha512-v1KWGRj4Qf9SESLswtlrdm/B6TmNkQsh5CZSM2xL2ZXe/k/KNgbLgM4ofHJApwW3QWYVBfA8nT/MlIvJJivd9w==
dependencies:
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/list@8.0.0-canary.774dcfc8e.0", "@material/list@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/list/-/list-8.0.0-canary.774dcfc8e.0.tgz#4f3549d2262587754301565457ae57fbbca8e57f"
integrity sha512-UHBTLI6pC/4a9RYiEP1NAxr5f/uDV6j/KF3PkRwLdsePpulzlMTRaboi1wPb6m95VCICGUOPCBCH75A9zn8ZeA==
"@material/list@9.0.0-canary.1c156d69d.0", "@material/list@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/list/-/list-9.0.0-canary.1c156d69d.0.tgz#d4a7b1354e4d00a843de19f3dbde188ca2e1e429"
integrity sha512-cn9zTm38RgriNudHnQAlEyLJOIfE11rTYl5mnBMkLaGz1gRLH+QVN8Q8FBpMwagS0cU0CkMTwrADJaUlmJeuVQ==
dependencies:
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/shape" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/shape" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/menu-surface@8.0.0-canary.774dcfc8e.0", "@material/menu-surface@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-8.0.0-canary.774dcfc8e.0.tgz#28ec8825166d254e54e1a70c9793d0ed1b80d67c"
integrity sha512-3pXu/9ftKkDKgXZkNj4Bs/RPHb/1eZCOLXSW5ilrVb4jHt75jLvPCcE2qDDFL7JxHAFGPYGr6e5NJLfu4fpaMA==
"@material/menu-surface@9.0.0-canary.1c156d69d.0", "@material/menu-surface@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-9.0.0-canary.1c156d69d.0.tgz#6200a17a4895d99f604f96d87b65243ae3b98d5e"
integrity sha512-/ePz8oZm+XLsGypnXJ1ATK4Vtei4KgHh9MFJHhOvmAbd6gPX6I8LnWlUA3cQ2/AX0bDeLNM7mXUkJ1d2flHdNQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/shape" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/shape" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/menu@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/menu/-/menu-8.0.0-canary.774dcfc8e.0.tgz#7131f58d84acc1703be3d7205017dbfa1e7dc112"
integrity sha512-8LijUyxtAf7eVluydur93xrHFa2YcSOt08F08bbxt0r5GW5fp3CNQDPqTJEzi61Y5n4YvlkCqUwIsVYNxp2RfQ==
"@material/menu@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/menu/-/menu-9.0.0-canary.1c156d69d.0.tgz#641c020acaa1a92a254f8366e6a5762137483757"
integrity sha512-opUKKT40E3aDY9wMUIKQtUoxB2gD6Ry633vb2sOHHkf7YA7Ad/F8HnByhLqeq7tB2Gg1N0PKfSGOk/OMjJ1l9w==
dependencies:
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/list" "8.0.0-canary.774dcfc8e.0"
"@material/menu-surface" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/list" "9.0.0-canary.1c156d69d.0"
"@material/menu-surface" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/mwc-base@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-base/-/mwc-base-0.19.0.tgz#ff6f693bd6d68030522c8bc9fbe5dccffbc320de"
integrity sha512-RQdbUxkoCq02uUVXmOPwn1dRBsf+ul21fU7mFwAHv7bodASh3KdeMNiMUV/thtnAf4+fpZMgOjUoBZ1DuOlC1g==
"@material/mwc-base@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-base/-/mwc-base-0.20.0.tgz#9753d357ea3fb9010985487a4d582bf273de1aaf"
integrity sha512-q35jN1TGBts3LzKk2RVtgBpLDfBfRrx2hJ4GEVAeJsEGiO5CZrCD0bPlZSRTammzQBbDAh7szvhMiWo0TkRaWw==
dependencies:
"@material/base" "=8.0.0-canary.774dcfc8e.0"
"@material/dom" "=8.0.0-canary.774dcfc8e.0"
"@material/base" "=9.0.0-canary.1c156d69d.0"
"@material/dom" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-button@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-button/-/mwc-button-0.19.0.tgz#60c2f57752b7b2af7a7d655bb12c46756da9255b"
integrity sha512-imrhG04LYde2WRloX2tvCK2AzHiPxVn3GhK8hbG+p0ffTPmev18JsPZNSJZj6/1XLlqimMLNO3CsJIqyi3XftQ==
"@material/mwc-button@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-button/-/mwc-button-0.20.0.tgz#2942edb504f4cee4d8f55b667b8538f27084b772"
integrity sha512-kqQpeuLfaqfH4PZbENT9rwx1sgeFPLHuKy5M31ZeKG1deRTxw11FDGeMxSkePfm1QFfY6DNTsIAG5qC56tUNlw==
dependencies:
"@material/mwc-icon" "^0.19.0"
"@material/mwc-ripple" "^0.19.0"
"@material/mwc-icon" "^0.20.0"
"@material/mwc-ripple" "^0.20.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-checkbox@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-checkbox/-/mwc-checkbox-0.19.0.tgz#726af8be6111280fd45ab2442ab49b38cf901867"
integrity sha512-B8zRL1Z++hg2KC6TnMS6y7EPfo1Hlh+bcF7AcynQjLff8MNXDzqSX/8u2I74FqZAFpt8ApMe+/Wp+xU8lFPk1g==
"@material/mwc-checkbox@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-checkbox/-/mwc-checkbox-0.20.0.tgz#fff9d41cd8a72b39a3c883d1b01230e1a3e462fd"
integrity sha512-e7qRFpoTZPeBTU05M/FvGnAalY9fJXtzTIfFXWevpm5xm21zr+5lw4QqJOzN8l8Sj8CwciTZ86GMfKGViBbyuw==
dependencies:
"@material/mwc-base" "^0.19.0"
"@material/mwc-ripple" "^0.19.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-ripple" "^0.20.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-circular-progress@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-circular-progress/-/mwc-circular-progress-0.19.0.tgz#7ef80f57845b9456038883c38ba6bd77ae4397e7"
integrity sha512-Vffocp0Gfw6wNm7h2bWbIzEwssba7JzmcHzr9LMjpfZjflYlexdbbiFXfRqivQwDOCp2KZDNcoQPWfeyGqXliQ==
"@material/mwc-circular-progress@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-circular-progress/-/mwc-circular-progress-0.20.0.tgz#db27d4862be4afa3b68f4d9bd06533171869ce37"
integrity sha512-6GyI97rZOGajjFB9L8R+44myv3YMo3zEHrlco5j1WnMPIPNHUcYww8EJgtkcl1E/q04Xpwvt6fFPv9X4vmLBnQ==
dependencies:
"@material/circular-progress" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/theme" "=8.0.0-canary.774dcfc8e.0"
"@material/circular-progress" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
"@material/theme" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-dialog@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-dialog/-/mwc-dialog-0.19.0.tgz#ac5dd43cc2bee6f15ff4bf1b25afbc013a9df047"
integrity sha512-GvIyboZcIyO3vhsYomdhz9jlFIXPrW6zsXu3iDxu6Rgfie1uJlbhfOih2GCGfvctfdPCr0j6uV6APlAiQDE63w==
"@material/mwc-dialog@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-dialog/-/mwc-dialog-0.20.0.tgz#3169f71a049c61cfd53d16b761b8313645bdba01"
integrity sha512-7VG8M0p2xaqs+gFDQLNQiVSKJNe+j8jemYX94wxRMZaMRryX09uPrOkn1CGUAuAy0fivxVLhlFG6KINbGR/Avg==
dependencies:
"@material/dialog" "=8.0.0-canary.774dcfc8e.0"
"@material/dom" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/mwc-button" "^0.19.0"
"@material/dialog" "=9.0.0-canary.1c156d69d.0"
"@material/dom" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-button" "^0.20.0"
blocking-elements "^0.1.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
wicg-inert "^3.0.0"
"@material/mwc-fab@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-fab/-/mwc-fab-0.19.0.tgz#55781ad3aa69c4d2ea3bf9f8a288668b5385d264"
integrity sha512-NHw+wzxcFHbvP0Ryt65pIBPIIKJCM6rtQNAJwTvOUEAOQtjY/VHZtys7EN/y4H1jMjcTrqgjBmi4zkhOhjuqxQ==
"@material/mwc-fab@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-fab/-/mwc-fab-0.20.0.tgz#bcd77bd9a6e06855b174944f0267e2b5512fab45"
integrity sha512-lxPlber5SxRAzH063IFTQhUj7YRuoi5juvYsSWHDLZUqj7wBTV+m6wX9a14wltcCumMNL80k2lXs9FLUOnZz9Q==
dependencies:
"@material/mwc-ripple" "^0.19.0"
"@material/mwc-ripple" "^0.20.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-formfield@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-formfield/-/mwc-formfield-0.19.0.tgz#9a82b92ba9a3bac1508c91eef3005c8a93f76271"
integrity sha512-SPreCyud7eWx8KPAM+KbkgRyqG4sZ3YuzUdP8c2fdxSGZ2YjMGffXo46fUj0eqPFmOExaqivs9Xl+xXWwbq9rw==
"@material/mwc-formfield@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-formfield/-/mwc-formfield-0.20.0.tgz#dd3e25778aad624a0d13f5b8a33c95bf1aa3883f"
integrity sha512-Rrk2ah5gNHD4O/yYWdwHvH3kGddaZXbdiZPCTpYDlTHG63CMUsAENJy8Fu8ZCC23nxbWfBeejtbB/Da+0VZWig==
dependencies:
"@material/form-field" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/form-field" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-icon-button@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-icon-button/-/mwc-icon-button-0.19.0.tgz#d99ff52b5b4afb8a29e68859ef6b89b740d5970e"
integrity sha512-yqsqt3ouooQFUOXfjadAl8ojvxFj5IOsTPSFIZ/wSq7iqoQmWmzvR5jFlyou8cnH/4yY0N1ecRLL4ozr87C/vg==
"@material/mwc-icon-button@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-icon-button/-/mwc-icon-button-0.20.0.tgz#1a2d22f5d351b6a61f0dd41cb516a6fe21b6bcc5"
integrity sha512-Bwm399++ZAo4HKmvLwRqSQ8Prhq6fxKwBcNFcqRIYMwwOf/iuuq4/hSX8+Wm8XtdX+mxSQfS7GePqn8XOTTKvw==
dependencies:
"@material/mwc-ripple" "^0.19.0"
"@material/mwc-ripple" "^0.20.0"
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-icon@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-icon/-/mwc-icon-0.19.0.tgz#4c152b2f79c381b6c1f7c37cec2a7b04d5e09d7e"
integrity sha512-9Zz7QsstIVjVsO1gpNP6eOMoXU54AUEdcE98poK6HQTz0WvYO+UXGgUGWsAZAABYP6/Ue7f8yRcQmnmH4DH1TQ==
"@material/mwc-icon@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-icon/-/mwc-icon-0.20.0.tgz#c2c42bca9145d4a75f63b4ce1567270b41986b47"
integrity sha512-YCtzWbJVSZGcvWKVHwIhwfGMLEqAmRSVGcXTCAH/rOzGU7RkOxQkfNDkLAuTRAX9a7HYQStIJ39ENVcysElljg==
dependencies:
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-list@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-list/-/mwc-list-0.19.0.tgz#9cd854c845183cff218ba6860284b82ae3711cd7"
integrity sha512-/ps5KNXmkhjh6pQ61bo04WFQ54ciGG+mDG6HcU79infjpkjAUpMJa9tJ59dA/+kPThefQYSoSvEow8dPG99kwQ==
"@material/mwc-list@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-list/-/mwc-list-0.20.0.tgz#44b0bcd3653b46c7493614741fc7a11cee8abca4"
integrity sha512-RLHn4k6oH2jsSorALbQJ3Ak0BwTyaTeKpXgjI65dHuMRhQaQUaMapJzfh5ghKPhjg1R5D+2r5wktjciFoZ9KVw==
dependencies:
"@material/base" "=8.0.0-canary.774dcfc8e.0"
"@material/dom" "=8.0.0-canary.774dcfc8e.0"
"@material/list" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/mwc-checkbox" "^0.19.0"
"@material/mwc-radio" "^0.19.0"
"@material/mwc-ripple" "^0.19.0"
"@material/base" "=9.0.0-canary.1c156d69d.0"
"@material/dom" "=9.0.0-canary.1c156d69d.0"
"@material/list" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-checkbox" "^0.20.0"
"@material/mwc-radio" "^0.20.0"
"@material/mwc-ripple" "^0.20.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-menu@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-menu/-/mwc-menu-0.19.0.tgz#4d0bc6f9ce491a0f462232a02d779eee0abf1127"
integrity sha512-q4Xq4b/KfMJURKSquvputtGIQ3REOSj2qzEkH+2U23Toqx0TH2zHncGDSGnjd2dlcUt82Hq6gTgRr4t8c8VKGg==
"@material/mwc-menu@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-menu/-/mwc-menu-0.20.0.tgz#672d6a4b40975b8101029be3b526aa014a252957"
integrity sha512-slSY3LORaP8MniXoNvvulvptQ3Ohjit13xiFWVWRr63H3YxnNdBqWW6BICASNJWNV/5y8UM1CE2Xw99UEnG9JQ==
dependencies:
"@material/menu" "=8.0.0-canary.774dcfc8e.0"
"@material/menu-surface" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/mwc-list" "^0.19.0"
"@material/shape" "=8.0.0-canary.774dcfc8e.0"
"@material/theme" "=8.0.0-canary.774dcfc8e.0"
"@material/menu" "=9.0.0-canary.1c156d69d.0"
"@material/menu-surface" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-list" "^0.20.0"
"@material/shape" "=9.0.0-canary.1c156d69d.0"
"@material/theme" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-radio@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-radio/-/mwc-radio-0.19.0.tgz#4aeb8e67f6f21f8df00563aa6e1cfe229a4f3491"
integrity sha512-bwsLAG/jmYUNyEILObKy2cQ4a2ilS6/XvyWAvWtg3rKrgz3iXHQBUxrdgx+vkGInKWDf+AzYWpo37nBgXjjtJg==
"@material/mwc-radio@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-radio/-/mwc-radio-0.20.0.tgz#bf282fe5bd3f0f8e6c3eeb0b781eea6bc06f1743"
integrity sha512-aVsok8EZJQFHn5VW9iP4gxO1wY5XeNnANdP82GhHZfIcxp1AQDORuUSy6Qoj2YBmCFCnG4BGAac1zs4OXRPRqA==
dependencies:
"@material/mwc-base" "^0.19.0"
"@material/mwc-ripple" "^0.19.0"
"@material/radio" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-ripple" "^0.20.0"
"@material/radio" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-ripple@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-ripple/-/mwc-ripple-0.19.0.tgz#dfd417fa9967d15c55589b9e825d1ad4fc415471"
integrity sha512-932JG19pGbUdDlaOCereCVzWAzB00PM7L/QkGG1teDM3gwkR3evFnTXTYPAw/kEQMYUYABr56DxZhD5MQ7yexA==
"@material/mwc-ripple@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-ripple/-/mwc-ripple-0.20.0.tgz#ac83eda314b712c2fba293d2732f550dd1c6023b"
integrity sha512-4rlIu+Kk//NsW/u3CnU1kz3dsvwEozax0Zf2CUp+ao0ozclHfQ2+sTZVY0Mr8+GJLn7Oz51gT5OHoarZuWWljA==
dependencies:
"@material/dom" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/ripple" "=8.0.0-canary.774dcfc8e.0"
"@material/dom" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
"@material/ripple" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-switch@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-switch/-/mwc-switch-0.19.0.tgz#74ee7772f6cb683838304275ec50fea13b569b7f"
integrity sha512-sp1krGI1soinbq1e99UiQ9MZD6WxKT7cu54DVAC+ZzsKy7kWtTwcMRxGwtXi3hEax6vfmsbGln/loMCsBZz0eQ==
"@material/mwc-switch@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-switch/-/mwc-switch-0.20.0.tgz#e4b3c3f512e7c2c497f07828795aa543320e81f9"
integrity sha512-1++EESLaVGdRQTpm0t5Z5Il/3IZTSaMzBYb/21AVM2SkNqWG5/2ycd+cj4BhfViIBjPXi0Ajcz4nhxHE/6SRjw==
dependencies:
"@material/mwc-base" "^0.19.0"
"@material/mwc-ripple" "^0.19.0"
"@material/switch" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-ripple" "^0.20.0"
"@material/switch" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-tab-bar@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab-bar/-/mwc-tab-bar-0.19.0.tgz#f9e641219c00842bafc6ae120d1034c609c40854"
integrity sha512-f6Qxsoc9YdCFChW1o5LTBT6IRKa/8rpTrwJsmkMSPHmrJGDpldg5l0DMYuj2q8OvhqfJ4sXG7lvtrSjXK07wYg==
"@material/mwc-tab-bar@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab-bar/-/mwc-tab-bar-0.20.0.tgz#02cecdc1bdf20feeb85085c8138d0f6d933411b2"
integrity sha512-7iGFzVsS33m5uZXxeXMK1ag3u1drRbBcfkXbP8mp0rpIrhZNpCAOZkTpyXtZGx7WAijaCXPdKOo3MkHutqn6Rg==
dependencies:
"@material/mwc-base" "^0.19.0"
"@material/mwc-tab" "^0.19.0"
"@material/mwc-tab-scroller" "^0.19.0"
"@material/tab" "=8.0.0-canary.774dcfc8e.0"
"@material/tab-bar" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-tab" "^0.20.0"
"@material/mwc-tab-scroller" "^0.20.0"
"@material/tab" "=9.0.0-canary.1c156d69d.0"
"@material/tab-bar" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-tab-indicator@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab-indicator/-/mwc-tab-indicator-0.19.0.tgz#445645a5137ec8171fd0953e296242bd8e5ecdbd"
integrity sha512-XDMoPGIzEd+l+2uMa1cPKTAuWuHMhLicDBVyKyozlq7REcZ4ZM4V9W3PeCkxsjKSIar7rNAgEID1loD6p3X0Iw==
"@material/mwc-tab-indicator@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab-indicator/-/mwc-tab-indicator-0.20.0.tgz#a25e981517d46689aae5214798cbc083780569e3"
integrity sha512-Y98B1MKeBX2zHwQ4yqpQKULvrm2GaLmw6yUqxiwUoE8CJQv/8wOTJHjtvYXgazYs/VZ2bOD1NoOhtntZwMpn/w==
dependencies:
"@material/mwc-base" "^0.19.0"
"@material/tab-indicator" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.20.0"
"@material/tab-indicator" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-tab-scroller@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab-scroller/-/mwc-tab-scroller-0.19.0.tgz#0f079e95945343f5e1a4d7dc89f1344ee20de299"
integrity sha512-CYR1S9qkZbSSM/Gdl6H+/xPrPitx0ScUw77FTNydLltq6CL9h27ZVtRLGyHdWq8FlH4cNVX5NFKbA7UnqBMCnQ==
"@material/mwc-tab-scroller@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab-scroller/-/mwc-tab-scroller-0.20.0.tgz#5f4ed139a322eef1047a03c3f79aa5df78f7b04e"
integrity sha512-Q6Gh+xdiTuXtOBJEUz6YBEHakDAdrsiqGJV1x90Oj5PtbSvkEU8dc/QiJBFsCesxK3vssWKLGqeo1GvQSJW0LQ==
dependencies:
"@material/dom" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.19.0"
"@material/tab-scroller" "=8.0.0-canary.774dcfc8e.0"
"@material/dom" "=9.0.0-canary.1c156d69d.0"
"@material/mwc-base" "^0.20.0"
"@material/tab-scroller" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/mwc-tab@^0.19.0":
version "0.19.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab/-/mwc-tab-0.19.0.tgz#8915f57dc42f5d1c1e712f1dedd1e0f4aec9c193"
integrity sha512-GcrD/Nyye090H88NQ9gHbRn7QpdVUwCc0R+61JiQUOqjFVVUzMwsx3mHDH70kgEWbAUv3M0adaCdmAFDM1uOoQ==
"@material/mwc-tab@^0.20.0":
version "0.20.0"
resolved "https://registry.yarnpkg.com/@material/mwc-tab/-/mwc-tab-0.20.0.tgz#a3445601dab27880e568dc5706738a6517082838"
integrity sha512-zGHnns1Gj91sucs9GLyN9kSqstWmaKpqeQCAcu98B7D6rI4dZKYgudrwnUUZiu1xqrsWhZy2rSbe8tu075ENVQ==
dependencies:
"@material/mwc-base" "^0.19.0"
"@material/mwc-ripple" "^0.19.0"
"@material/mwc-tab-indicator" "^0.19.0"
"@material/tab" "=8.0.0-canary.774dcfc8e.0"
"@material/mwc-base" "^0.20.0"
"@material/mwc-ripple" "^0.20.0"
"@material/mwc-tab-indicator" "^0.20.0"
"@material/tab" "=9.0.0-canary.1c156d69d.0"
lit-element "^2.3.0"
lit-html "^1.1.2"
tslib "^1.10.0"
tslib "^2.0.1"
"@material/progress-indicator@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-8.0.0-canary.774dcfc8e.0.tgz#29ab1b0fbf3f560e43efce9e69368e84e54fa866"
integrity sha512-8lhLJs8uvF24DkY/6n6Zeihew2hqtumCdl0KhLPkONsFlHmzekvJGhyj/ETKj5qTlrxB4x2NCJqfs7D5E9GOiA==
"@material/progress-indicator@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-9.0.0-canary.1c156d69d.0.tgz#2a43d2c1442909874c5990b7ae893aced071a83d"
integrity sha512-56lYRqnUcI4L9a/LgfmzDTCKxxW1oOFqIVn3pMCP8hVGslhXY+yGl24qIp13MDW6FBgzx5rf66zB1rQltcSp/g==
dependencies:
tslib "^1.9.3"
"@material/radio@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/radio/-/radio-8.0.0-canary.774dcfc8e.0.tgz#6be941bddac4fd705c4ce8191356ac67980ee06c"
integrity sha512-PzXLQQpNCcKi6WOwpDWKDhLIl028G8xh+ayYciq1xvJ+7TMIMcExG8ijU64JOPAsByJH3H4JTx2oOwVeFOtxlg==
"@material/radio@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/radio/-/radio-9.0.0-canary.1c156d69d.0.tgz#f0db2c1da9106a7a3888ed382da31b16fe78d1fc"
integrity sha512-i2pDFRhvk8bWp8BBJ0dyuGCqP17FlKSHzGqYQNI80dRPVYyLiexqIRfn0KGcW/sJtVC/P4GlyhE98g4mNYA/iQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/touch-target" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/touch-target" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/ripple@8.0.0-canary.774dcfc8e.0", "@material/ripple@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-8.0.0-canary.774dcfc8e.0.tgz#342e9c815a5d8a8fec4787be1cefaf7511a30eaa"
integrity sha512-mxfa+aNQuCJ6wQbjfs2k7hxHuCcISfGU9hJixTTykJqKeE1h3N045TxTyVSeroXf38SyWA4T2303/W7nkPbJpg==
"@material/ripple@9.0.0-canary.1c156d69d.0", "@material/ripple@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-9.0.0-canary.1c156d69d.0.tgz#1cbfec1c94640140f6c1c0f43a3582a82dbc7671"
integrity sha512-F1e/LQmYHQFORM/C3hchmANnRwJCXlc7Cp7W+VGpvJdtdzYlTd8DKKcShuOozxUQOjutbNf+Ql8gpZIdYRQaoQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/rtl@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-8.0.0-canary.774dcfc8e.0.tgz#a5b94a3d0b426efd5b1ce2705bcc6b29327ae963"
integrity sha512-yj2myH3gYnQAeiapR5WwXNwgTWRd2gYUTCzn/BsOAKteJH77xg1WftF5lFzoW2zqlcckDuNDtaJTmQs4C6VlMw==
"@material/rtl@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-9.0.0-canary.1c156d69d.0.tgz#0ff1f89f95ea4c67f030e56ce3ffdbfefcea225b"
integrity sha512-ICx0trLFna0M1Ina/1Nat9aSiB64o7VMs8wyCcidX//n7qFDOb0AtU9h2IB+lvX/UmPZVsDAoaL8iVm6RAqygg==
dependencies:
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/shape@8.0.0-canary.774dcfc8e.0", "@material/shape@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/shape/-/shape-8.0.0-canary.774dcfc8e.0.tgz#8cac13b35f0478bbb6dcbcaedc0793f49b55fff6"
integrity sha512-7+omcfOX2WmcOIju8NE/5Xj2bqf5H/YoucxpjsYl4mHzgrEwwYmaJC8FesTyt+5TGOXnow8v7pzJ1YIxCNrdVA==
"@material/shape@9.0.0-canary.1c156d69d.0", "@material/shape@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/shape/-/shape-9.0.0-canary.1c156d69d.0.tgz#6d42d7004ed09b4493abf3f732bb855d3c3996ed"
integrity sha512-3NPm+LNFfY4xsiwy/jo+kY3WIFDwlVyJhq+eimjZ9vpG7STBPyzi1LpiPKvsrk0rmvsy3M0c1alM8E+BQ5+UAg==
dependencies:
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/switch@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/switch/-/switch-8.0.0-canary.774dcfc8e.0.tgz#a4a9ec47bbdcd396559879bb624c208886aec13c"
integrity sha512-JvGbdBkSZ6g3YQX7qS2Qb7SkZp7Crs5cmiEKdLmMrzx6697ZKLIQgmLH1lB8Cjs025lmz4Vs+B0qjGUHFZYAGQ==
"@material/switch@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/switch/-/switch-9.0.0-canary.1c156d69d.0.tgz#e76b4ec213a7fc449a82534289f016ae60002465"
integrity sha512-jGMtsI+IdPORkiEKG56XdiN8/8G9JcIdDKExov3BwGn/d6fO+IXQnMbV6XY9aRq/+eI0eI2XXT+ggiyk1Jy0AQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/tab-bar@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-8.0.0-canary.774dcfc8e.0.tgz#a522650042089128ff74f746ffdd0591390069e3"
integrity sha512-IkRHDNB3kEyjFxTC977kYTu3oCe8Oo2PW6BqFRfvVgYV0b63RSYzjr8+/U5j7umGmQ1FKlAPh8h9w0JJ26nxDA==
"@material/tab-bar@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-9.0.0-canary.1c156d69d.0.tgz#d3dc2ea7317410c4fb054b32d88dbbbdf9c34bb3"
integrity sha512-wtpMK37gxkpbpdTpQh3IlHXx/maUyiYiwRjioIeh3GFQ42ZXW/N/9Ou2HK+qpiGVZDREYyT9TS2U5DiZTmM7tA==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/density" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/tab" "8.0.0-canary.774dcfc8e.0"
"@material/tab-scroller" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/density" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/tab" "9.0.0-canary.1c156d69d.0"
"@material/tab-scroller" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/tab-indicator@8.0.0-canary.774dcfc8e.0", "@material/tab-indicator@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-8.0.0-canary.774dcfc8e.0.tgz#a07e8e2b0ea8c22cab9623c69095709caba11f0a"
integrity sha512-vzwOG7uTwJIoUBRYEurQsOq3pPQbFTE3Y6G93rchUhSmF+2z1ivgPR3u65nWb02UBUEhJJUgHdkVfD/EGqRVIg==
"@material/tab-indicator@9.0.0-canary.1c156d69d.0", "@material/tab-indicator@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-9.0.0-canary.1c156d69d.0.tgz#428b53a25cf09de65e1f602f3784b6202844ad48"
integrity sha512-PglSDSuQY6irrTNpEK/n/MDkZh6nH+iw0H31vt2A7QrG+BPwXrVJeRi6b8y2lvEnoQFp5WK8VavhFDNhcibEtw==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/tab-scroller@8.0.0-canary.774dcfc8e.0", "@material/tab-scroller@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-8.0.0-canary.774dcfc8e.0.tgz#81ff09bce49eeaf4569d1e681dec8b701f7db58e"
integrity sha512-CZwQhuds7zkOsjyVQfiElGY5yLdPp2fekVVvRfRHLXwjOU3h8vDc2G3V3yb/dbhF1VV9hjx4nlbDhmY+wK8TdQ==
"@material/tab-scroller@9.0.0-canary.1c156d69d.0", "@material/tab-scroller@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-9.0.0-canary.1c156d69d.0.tgz#f65267f3af811af3e7b1a7716a4b4a3cd64571ae"
integrity sha512-27h/vQv3+qh3YXPSTw/nakkWxgzDXMv3+ZBw+/XAwxu1siRb6EFBzsfLkQGpjVLm2DCPH3Dz4Xq8DOUkAyvd1A==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/dom" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/tab" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/dom" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/tab" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/tab@8.0.0-canary.774dcfc8e.0", "@material/tab@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/tab/-/tab-8.0.0-canary.774dcfc8e.0.tgz#5c47317c02b1c68dfa6caf41129bff4f64dc4500"
integrity sha512-AENPjTMvfJ0gPHXExZJJmx7uMCiPdgZqA7RM01C0gGrSS9twTu61+UriVBesAldmcFeg9suFn5tkVMpy6LFS5Q==
"@material/tab@9.0.0-canary.1c156d69d.0", "@material/tab@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/tab/-/tab-9.0.0-canary.1c156d69d.0.tgz#eef68160458a4d55b28e96f14b0077a6dd69e88d"
integrity sha512-gS93t8Yl+djgWA8bFU80amzj2auGg/H3muVIJ1Mncak0CUtX3u6dYyvdKbeecRT9F1Wr4J3L8E0/aQatBOGa1w==
dependencies:
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/tab-indicator" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/tab-indicator" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/theme@8.0.0-canary.774dcfc8e.0", "@material/theme@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/theme/-/theme-8.0.0-canary.774dcfc8e.0.tgz#07322fb5da2a8a6f84773c05e9edaa7ebbfe4440"
integrity sha512-dGQHZ5nHVdgdmG/PtD6A/oJifWdou1Kx3JAu0D8JtopdyUrNFKHU24qj6SIto7LLm+pa05RPnfxSHWsBvDyLTA==
"@material/theme@9.0.0-canary.1c156d69d.0", "@material/theme@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/theme/-/theme-9.0.0-canary.1c156d69d.0.tgz#2d733dea8f762cc8e35969915dfb3b7359147d1e"
integrity sha512-r1610TPwUplt4FHMk7cR06Oz1jU/G31wBIh4Frs/YIB0ZonVlI5cZdIkG0IFtNt9ZYWoDwfP/1nQBxdqrDPPhg==
dependencies:
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/top-app-bar@=8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-8.0.0-canary.774dcfc8e.0.tgz#403e0cb2c8ae8539230a07aaa4a56c79b9d34d88"
integrity sha512-TCbPyPLLtzSXsiTPojJ7PWePgtfk//2sfERBlYevBMsB3WCcKpFBUFC6dYcJrYAiUIoXCavtgqOI6FC9Hgu48Q==
"@material/top-app-bar@=9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-9.0.0-canary.1c156d69d.0.tgz#6b5c76a9cfd2abae35f45b74eb17c917db74d70d"
integrity sha512-VJLGCF+1vsLY/YFPVgcFCIEG/EjuY7eg7ulBwhwbERIl3pyyY3NAvISGzaeUBKg6JOcw0YqcPKcRnv+Js3KchQ==
dependencies:
"@material/animation" "8.0.0-canary.774dcfc8e.0"
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/elevation" "8.0.0-canary.774dcfc8e.0"
"@material/ripple" "8.0.0-canary.774dcfc8e.0"
"@material/rtl" "8.0.0-canary.774dcfc8e.0"
"@material/shape" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/typography" "8.0.0-canary.774dcfc8e.0"
"@material/animation" "9.0.0-canary.1c156d69d.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/elevation" "9.0.0-canary.1c156d69d.0"
"@material/ripple" "9.0.0-canary.1c156d69d.0"
"@material/rtl" "9.0.0-canary.1c156d69d.0"
"@material/shape" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@material/typography" "9.0.0-canary.1c156d69d.0"
tslib "^1.9.3"
"@material/touch-target@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-8.0.0-canary.774dcfc8e.0.tgz#ec1b93cbddadc85465fa33b2223e435eacfc8e59"
integrity sha512-IuF7akLqwj30w/kCtKrz/YUz50gaI/p5oCNLV9mOxXciHNfikALXfpOSoApfhtsN+bissTGJrgy9/A8P5L/qgg==
"@material/touch-target@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-9.0.0-canary.1c156d69d.0.tgz#e2839c73f6df724804c376624af776f32be2c81a"
integrity sha512-AFymS9cb152a2hEwTc80dVKA0ccNCyMAQNpvB6fEopPMLjO4Hrsu4fIHVyZF5xnz3k/iG59Y6vreHQdHKFGyUw==
dependencies:
"@material/base" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/base" "9.0.0-canary.1c156d69d.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/typography@8.0.0-canary.774dcfc8e.0":
version "8.0.0-canary.774dcfc8e.0"
resolved "https://registry.yarnpkg.com/@material/typography/-/typography-8.0.0-canary.774dcfc8e.0.tgz#042d0de9dd448a957a04d06fd4d548882d695eba"
integrity sha512-j7pMMZph6tQzD1jEbx5kSkzNKr/6R3tVnBgJVymo823IoBc+RSIKTO2rtj8vNn+qMVLn7HjPpK1rep3Ks6KncQ==
"@material/typography@9.0.0-canary.1c156d69d.0":
version "9.0.0-canary.1c156d69d.0"
resolved "https://registry.yarnpkg.com/@material/typography/-/typography-9.0.0-canary.1c156d69d.0.tgz#340328147eaa86efacfad601b6dbdff7ac0388ac"
integrity sha512-+JgMe2fIP+lVh4l5qXfjH9/JWd+LnfDEiVr2clWHgAc3pc2LQm6VVgUbNkrX3yeWql0x7I/inGfQovza8BeYAw==
dependencies:
"@material/feature-targeting" "8.0.0-canary.774dcfc8e.0"
"@material/theme" "8.0.0-canary.774dcfc8e.0"
"@material/feature-targeting" "9.0.0-canary.1c156d69d.0"
"@material/theme" "9.0.0-canary.1c156d69d.0"
"@mdi/js@5.6.55":
version "5.6.55"
@@ -8437,9 +8437,9 @@ inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
version "1.3.7"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
inquirer@^7.0.0:
version "7.1.0"