diff --git a/cast/src/launcher/layout/hc-cast.ts b/cast/src/launcher/layout/hc-cast.ts
index 9fc2ab2273..35e214f0b1 100644
--- a/cast/src/launcher/layout/hc-cast.ts
+++ b/cast/src/launcher/layout/hc-cast.ts
@@ -86,7 +86,7 @@ class HcCast extends LitElement {
? html`
-
+
Start Casting
@@ -130,7 +130,7 @@ class HcCast extends LitElement {
? html`
Manage
diff --git a/gallery/src/pages/components/ha-button.markdown b/gallery/src/pages/components/ha-button.markdown
index f52dde1fb7..0195b996db 100644
--- a/gallery/src/pages/components/ha-button.markdown
+++ b/gallery/src/pages/components/ha-button.markdown
@@ -39,60 +39,28 @@ title: Button
### API
-This component is based on the shoelace button component.
-Check the [shoelace documentation](https://shoelace.style/components/button) for more details.
+This component is based on the webawesome button component.
+Check the [webawesome documentation](https://webawesome.com/docs/components/button/) for more details.
**Slots**
- default slot: Label of the button
` - no default
-- `prefix`: The prefix container (usually for icons).
+- `start`: The prefix container (usually for icons).
` - no default
-- `suffix`: The suffix container (usually for icons).
+- `end`: The suffix container (usually for icons).
` - no default
**Properties/Attributes**
-| Name | Type | Default | Description |
-| ----------- | ------------------------------------------------ | --------- | ---------------------------------------------------- |
-| appearance | "accent"/"filled"/"plain" | "accent" | Sets the button appearance. |
-| variants | "primary"/"danger"/"neutral"/"warning"/"success" | "primary" | Sets the button color variant. "primary" is default. |
-| size | "small"/"medium" | "medium" | Sets the button size. |
-| hideContent | Boolean | false | Hides the button content (for overlays) |
+| Name | Type | Default | Description |
+| ----------- | ---------------------------------------------- | -------- | -------------------------------------------------- |
+| appearance | "accent"/"filled"/"plain" | "accent" | Sets the button appearance. |
+| variants | "brand"/"danger"/"neutral"/"warning"/"success" | "brand" | Sets the button color variant. "brand" is default. |
+| size | "small"/"medium" | "medium" | Sets the button size. |
+| hideContent | Boolean | false | Hides the button content (for overlays) |
**CSS Custom Properties**
-- `--ha-button-font-family` - Font family for the button text.
-- `--ha-button-font-weight` - buttons font weight.
-- `--ha-button-font-size` - Font weight for the button text.
- `--ha-button-height` - Height of the button.
-- `--ha-button-padding-inline-start` - padding for the button text on the left side.
-- `--ha-button-padding-inline-end` - padding for the button text on the right side.
-- `--ha-button-border-radius` - Border radius for the button.
-- `--ha-button-border-width` - Border width for the button.
-- `--ha-button-theme-color` - Main color for the button.
-- `--ha-button-theme-dark-color` - Dark variant of the main color.
-- `--ha-button-theme-darker-color` - Dark variant of the main color.
-- `--ha-button-theme-light-color` - Light variant of the main color.
-- `--ha-button-text-color` - Text color for the button.
-- `--ha-button-focus-ring-color` - Focus ring color for the button.
-- `--ha-button-primary-color` - Main color for the primary variant.
-- `--ha-button-primary-light-color` - Light color for the primary variant.
-- `--ha-button-primary-dark-color` - Dark color for the primary variant.
-- `--ha-button-primary-darker-color` - Darker color for the primary variant.
-- `--ha-button-error-color` - Main color for the error variant.
-- `--ha-button-error-light-color` - Light color for the error variant.
-- `--ha-button-error-dark-color` - Dark color for the error variant.
-- `--ha-button-error-darker-color` - Darker color for the error variant.
-- `--ha-button-neutral-color` - Main color for the neutral variant.
-- `--ha-button-neutral-light-color` - Light color for the neutral variant.
-- `--ha-button-neutral-dark-color` - Dark color for the neutral variant.
-- `--ha-button-neutral-darker-color` - Darker color for the neutral variant.
-- `--ha-button-warning-color` - Main color for the warning variant.
-- `--ha-button-warning-light-color` - Light color for the warning variant.
-- `--ha-button-warning-dark-color` - Dark color for the warning variant.
-- `--ha-button-warning-darker-color` - Darker color for the warning variant.
-- `--ha-button-success-color` - Main color for the success variant.
-- `--ha-button-success-light-color` - Light color for the success variant.
-- `--ha-button-success-dark-color` - Dark color for the success variant.
-- `--ha-button-success-darker-color` - Darker color for the success variant.
+- `--ha-button-radius` - Border radius of the button. Defaults to `var(--wa-border-radius-pill)`.
diff --git a/gallery/src/pages/components/ha-button.ts b/gallery/src/pages/components/ha-button.ts
index c7eb1be6ce..55674c4603 100644
--- a/gallery/src/pages/components/ha-button.ts
+++ b/gallery/src/pages/components/ha-button.ts
@@ -10,7 +10,7 @@ import "../../../../src/components/ha-svg-icon";
import { mdiHomeAssistant } from "../../../../src/resources/home-assistant-logo-svg";
const appearances = ["accent", "filled", "plain"];
-const variants = ["primary", "danger", "neutral", "warning", "success"];
+const variants = ["brand", "danger", "neutral", "warning", "success"];
@customElement("demo-components-ha-button")
export class DemoHaButton extends LitElement {
@@ -32,7 +32,41 @@ export class DemoHaButton extends LitElement {
>
+ ${titleCase(`${variant} ${appearance}`)}
+
+
+ `
+ )}
+
+
+ ${appearances.map(
+ (appearance) => html`
+
+ ${titleCase(`${variant} ${appearance}`)}
+
+ `
+ )}
+
+
+ ${appearances.map(
+ (appearance) => html`
+
+
${titleCase(`${variant} ${appearance}`)}
+ `
+ )}
+ ${variants.map(
+ (variant) => html`
${appearances.map(
(appearance) => html`
- ${titleCase(`${variant} ${appearance}`)}
+ ${titleCase(`${appearance}`)}
`
)}
@@ -60,25 +98,12 @@ export class DemoHaButton extends LitElement {
${appearances.map(
(appearance) => html`
- ${titleCase(`${variant} ${appearance}`)}
-
- `
- )}
-
-
- ${appearances.map(
- (appearance) => html`
-
- ${titleCase(`${variant} ${appearance}`)}
+ ${titleCase(`${appearance}`)}
`
)}
diff --git a/hassio/src/dialogs/registries/dialog-hassio-registries.ts b/hassio/src/dialogs/registries/dialog-hassio-registries.ts
index 49cbe98f65..6bf7b23360 100644
--- a/hassio/src/dialogs/registries/dialog-hassio-registries.ts
+++ b/hassio/src/dialogs/registries/dialog-hassio-registries.ts
@@ -95,7 +95,7 @@ class HassioRegistriesDialog extends LitElement {
appearance="filled"
size="small"
>
-
+
${this.supervisor.localize("dialog.registries.add_registry")}
@@ -136,7 +136,7 @@ class HassioRegistriesDialog extends LitElement {
appearance="filled"
size="small"
>
-
+
${this.supervisor.localize(
"dialog.registries.add_new_registry"
)}
diff --git a/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts b/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts
index 9d2fb3c11a..10d691e178 100644
--- a/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts
+++ b/hassio/src/dialogs/repositories/dialog-hassio-repositories.ts
@@ -165,7 +165,7 @@ class HassioRepositoriesDialog extends LitElement {
appearance="filled"
size="small"
>
-
+
${this._dialogParams!.supervisor.localize(
"dialog.repositories.add"
)}
diff --git a/package.json b/package.json
index 77a3a9e0ec..a9421706cc 100644
--- a/package.json
+++ b/package.json
@@ -26,6 +26,7 @@
"license": "Apache-2.0",
"type": "module",
"dependencies": {
+ "@awesome.me/webawesome": "3.0.0-beta.3",
"@babel/runtime": "7.28.2",
"@braintree/sanitize-url": "7.1.1",
"@codemirror/autocomplete": "6.18.6",
diff --git a/src/components/buttons/ha-progress-button.ts b/src/components/buttons/ha-progress-button.ts
index 46228f4acf..be778521f7 100644
--- a/src/components/buttons/ha-progress-button.ts
+++ b/src/components/buttons/ha-progress-button.ts
@@ -23,12 +23,8 @@ export class HaProgressButton extends LitElement {
@property() appearance: Appearance = "accent";
- @property() variant:
- | "primary"
- | "danger"
- | "neutral"
- | "warning"
- | "success" = "primary";
+ @property() variant: "brand" | "danger" | "neutral" | "warning" | "success" =
+ "brand";
@state() private _result?: "success" | "error";
@@ -53,7 +49,7 @@ export class HaProgressButton extends LitElement {
.hideContent=${this._result !== undefined}
>
${this._hasInitialIcon
- ? html``
+ ? html``
: nothing}
${this._result
diff --git a/src/components/ha-button.ts b/src/components/ha-button.ts
index ae18063886..af92b2717a 100644
--- a/src/components/ha-button.ts
+++ b/src/components/ha-button.ts
@@ -1,9 +1,8 @@
-import Button from "@shoelace-style/shoelace/dist/components/button/button.component";
-import styles from "@shoelace-style/shoelace/dist/components/button/button.styles";
-import { css } from "lit";
+import Button from "@awesome.me/webawesome/dist/components/button/button";
+import { css, type CSSResultGroup } from "lit";
import { customElement, property } from "lit/decorators";
-export type Appearance = "accent" | "filled" | "plain";
+export type Appearance = "accent" | "filled" | "outlined" | "plain";
/**
* Home Assistant button component
@@ -12,227 +11,145 @@ export type Appearance = "accent" | "filled" | "plain";
* @extends {Button}
*
* @summary
- * A stylable button component supporting Home Assistant theming, variants, and appearances.
+ * A stylable button component supporting Home Assistant theming, variants, and appearances based on webawesome button.
*
* @slot - Label of the button
- * @slot prefix - The prefix container (usually for icons).
- * @slot suffix - The suffix container (usually for icons).
+ * @slot start - The prefix container (usually for icons).
+ * @slot end - The suffix container (usually for icons).
*
* @csspart base - The component's base wrapper.
- * @csspart prefix - The container that wraps the prefix.
+ * @csspart start - The container that wraps the prefix.
* @csspart label - The button's label.
- * @csspart suffix - The container that wraps the suffix.
+ * @csspart end - The container that wraps the suffix.
* @csspart caret - The button's caret icon, an `` element.
* @csspart spinner - The spinner that shows when the button is in the loading state.
*
- * @cssprop --ha-button-font-family - Font family for the button text.
- * @cssprop --ha-button-font-weight - buttons font weight.
- * @cssprop --ha-button-font-size - Font weight for the button text.
- * @cssprop --ha-button-height - Height of the button.
- * @cssprop --ha-button-padding-inline-start - padding for the button text on the left side.
- * @cssprop --ha-button-padding-inline-end - padding for the button text on the right side.
- * @cssprop --ha-button-border-radius - Border radius for the button.
- * @cssprop --ha-button-border-width - Border width for the button.
- * @cssprop --ha-button-theme-color - Main color for the button.
- * @cssprop --ha-button-theme-dark-color - Dark variant of the main color.
- * @cssprop --ha-button-theme-darker-color - Dark variant of the main color.
- * @cssprop --ha-button-theme-light-color - Light variant of the main color.
- * @cssprop --ha-button-text-color - Text color for the button.
- * @cssprop --ha-button-focus-ring-color - Focus ring color for the button.
- * @cssprop --ha-button-primary-color - Main color for the primary variant.
- * @cssprop --ha-button-primary-light-color - Light color for the primary variant.
- * @cssprop --ha-button-primary-dark-color - Dark color for the primary variant.
- * @cssprop --ha-button-primary-darker-color - Darker color for the primary variant.
- * @cssprop --ha-button-error-color - Main color for the error variant.
- * @cssprop --ha-button-error-light-color - Light color for the error variant.
- * @cssprop --ha-button-error-dark-color - Dark color for the error variant.
- * @cssprop --ha-button-error-darker-color - Darker color for the error variant.
- * @cssprop --ha-button-neutral-color - Main color for the neutral variant.
- * @cssprop --ha-button-neutral-light-color - Light color for the neutral variant.
- * @cssprop --ha-button-neutral-dark-color - Dark color for the neutral variant.
- * @cssprop --ha-button-neutral-darker-color - Darker color for the neutral variant.
- * @cssprop --ha-button-warning-color - Main color for the warning variant.
- * @cssprop --ha-button-warning-light-color - Light color for the warning variant.
- * @cssprop --ha-button-warning-dark-color - Dark color for the warning variant.
- * @cssprop --ha-button-warning-darker-color - Darker color for the warning variant.
- * @cssprop --ha-button-success-color - Main color for the success variant.
- * @cssprop --ha-button-success-light-color - Light color for the success variant.
- * @cssprop --ha-button-success-dark-color - Dark color for the success variant.
- * @cssprop --ha-button-success-darker-color - Darker color for the success variant.
+ * @cssprop --ha-button-height - The height of the button.
+ * @cssprop --ha-button-radius - The border radius of the button. defaults to `var(--wa-border-radius-pill)`.
*
* @attr {("small"|"medium")} size - Sets the button size.
- * @attr {("primary"|"danger"|"neutral"|"warning"|"success")} variant - Sets the button color variant. "primary" is default.
+ * @attr {("brand"|"neutral"|"danger"|"warning"|"success")} variant - Sets the button color variant. "primary" is default.
* @attr {("accent"|"filled"|"plain")} appearance - Sets the button appearance.
* @attr {boolean} hideContent - Hides the button content (for overlays).
*/
@customElement("ha-button")
export class HaButton extends Button {
- @property({ reflect: true }) appearance?: Appearance;
+ variant: "brand" | "neutral" | "success" | "warning" | "danger" = "brand";
@property({ type: Boolean, attribute: "hide-content", reflect: true })
hideContent = false;
- static override styles = [
- styles,
- css`
- :host {
- --sl-input-font-family: var(
- --ha-button-font-family,
- var(--ha-font-family-body)
- );
- --sl-font-weight-semibold: var(
- --ha-button-font-weight,
- var(--ha-font-weight-medium)
- );
- --sl-transition-x-fast: 0.4s;
- --sl-focus-ring: solid 4px var(--ha-button-focus-ring-color, #625b71);
- --sl-focus-ring-offset: 1px;
- --sl-button-font-size-small: var(
- --ha-button-font-size,
- var(--ha-font-size-m)
- );
- --sl-button-font-size-medium: var(
- --ha-button-font-size,
- var(--ha-font-size-m)
- );
+ static get styles(): CSSResultGroup {
+ return [
+ Button.styles,
+ css`
+ .button {
+ /* set theme vars */
+ --wa-form-control-padding-inline: 16px;
+ --wa-font-weight-action: var(--ha-font-weight-medium);
+ --wa-border-radius-pill: 9999px;
+ --wa-form-control-border-radius: var(
+ --ha-button-radius,
+ var(--wa-border-radius-pill)
+ );
- --sl-spacing-medium: 16px;
- --sl-spacing-small: 12px;
- --sl-spacing-x-small: 8px;
+ --wa-form-control-height: var(
+ --ha-button-height,
+ var(--button-height, 40px)
+ );
+ }
- --ha-button-theme-color: var(--ha-button-primary-color);
- --ha-button-theme-light-color: var(--ha-button-primary-light-color);
- --ha-button-theme-dark-color: var(--ha-button-primary-dark-color);
- --ha-button-theme-darker-color: var(--ha-button-primary-darker-color);
+ :host([size="small"]) .button {
+ --wa-form-control-height: var(
+ --ha-button-height,
+ var(--button-height, 32px)
+ );
+ }
- line-height: 1;
- --sl-input-border-width: var(--ha-button-border-width, 0);
- }
+ :host([variant="brand"]) {
+ --color-fill-normal-active: var(--color-fill-primary-normal-active);
+ --color-fill-normal-hover: var(--color-fill-primary-normal-hover);
+ --color-fill-loud-active: var(--color-fill-primary-loud-active);
+ --color-fill-loud-hover: var(--color-fill-primary-loud-hover);
+ }
- :host([variant="danger"]) {
- --ha-button-theme-color: var(--ha-button-error-color);
- --ha-button-theme-light-color: var(--ha-button-error-light-color);
- --ha-button-theme-dark-color: var(--ha-button-error-dark-color);
- --ha-button-theme-darker-color: var(--ha-button-error-darker-color);
- }
+ :host([variant="neutral"]) {
+ --color-fill-normal-active: var(--color-fill-neutral-normal-active);
+ --color-fill-normal-hover: var(--color-fill-neutral-normal-hover);
+ --color-fill-loud-active: var(--color-fill-neutral-loud-active);
+ --color-fill-loud-hover: var(--color-fill-neutral-loud-hover);
+ }
- :host([variant="neutral"]) {
- --ha-button-theme-color: var(--ha-button-neutral-color);
- --ha-button-theme-light-color: var(--ha-button-neutral-light-color);
- --ha-button-theme-dark-color: var(--ha-button-neutral-dark-color);
- --ha-button-theme-darker-color: var(--ha-button-neutral-darker-color);
- }
+ :host([variant="success"]) {
+ --color-fill-normal-active: var(--color-fill-success-normal-active);
+ --color-fill-normal-hover: var(--color-fill-success-normal-hover);
+ --color-fill-loud-active: var(--color-fill-success-loud-active);
+ --color-fill-loud-hover: var(--color-fill-success-loud-hover);
+ }
- :host([variant="warning"]) {
- --ha-button-theme-color: var(--ha-button-warning-color);
- --ha-button-theme-light-color: var(--ha-button-warning-light-color);
- --ha-button-theme-dark-color: var(--ha-button-warning-dark-color);
- --ha-button-theme-darker-color: var(--ha-button-warning-darker-color);
- }
+ :host([variant="warning"]) {
+ --color-fill-normal-active: var(--color-fill-warning-normal-active);
+ --color-fill-normal-hover: var(--color-fill-warning-normal-hover);
+ --color-fill-loud-active: var(--color-fill-warning-loud-active);
+ --color-fill-loud-hover: var(--color-fill-warning-loud-hover);
+ }
- :host([variant="success"]) {
- --ha-button-theme-color: var(--ha-button-success-color);
- --ha-button-theme-light-color: var(--ha-button-success-light-color);
- --ha-button-theme-dark-color: var(--ha-button-success-dark-color);
- --ha-button-theme-darker-color: var(--ha-button-success-darker-color);
- }
+ :host([variant="danger"]) {
+ --color-fill-normal-active: var(--color-fill-danger-normal-active);
+ --color-fill-normal-hover: var(--color-fill-danger-normal-hover);
+ --color-fill-loud-active: var(--color-fill-danger-loud-active);
+ --color-fill-loud-hover: var(--color-fill-danger-loud-hover);
+ }
- .button {
- height: var(--ha-button-height, var(--button-height, 40px));
- align-items: center;
- border-radius: var(--ha-button-border-radius, 48px);
- }
- .button.button--small {
- border-radius: var(--ha-button-border-radius, 32px);
- height: var(--ha-button-height, var(--button-height, 32px));
- }
+ :host([appearance~="plain"]) .button {
+ color: var(--wa-color-on-normal);
+ }
+ :host([appearance~="plain"]) .button.disabled {
+ background-color: var(--transparent-none);
+ color: var(--color-on-disabled-quiet);
+ }
- .button,
- .button--standard.button--default,
- .button--standard.button--primary,
- .button--standard.button--neutral,
- .button--standard.button--danger,
- .button--standard.button--warning,
- .button--standard.button--success,
- :host([appearance="filled"]) .button:hover:not(.button--disabled) {
- background-color: var(--ha-button-theme-color);
- color: var(--ha-button-text-color, var(--text-primary-color));
- }
- .button:hover:not(.button--disabled),
- .button--standard.button--default:hover:not(.button--disabled),
- .button--standard.button--primary:hover:not(.button--disabled),
- .button--standard.button--neutral:hover:not(.button--disabled),
- .button--standard.button--warning:hover:not(.button--disabled),
- .button--standard.button--success:hover:not(.button--disabled),
- .button--standard.button--danger:hover:not(.button--disabled),
- :host([appearance="filled"]) .button:active:not(.button--disabled) {
- background-color: var(--ha-button-theme-dark-color);
- color: var(--ha-button-text-color, var(--text-primary-color));
- }
+ :host([appearance~="outlined"]) .button.disabled {
+ background-color: var(--transparent-none);
+ color: var(--color-on-disabled-quiet);
+ }
- .button--standard.button--default:active:not(.button--disabled),
- .button--standard.button--primary:active:not(.button--disabled),
- .button--standard.button--neutral:active:not(.button--disabled),
- .button--standard.button--danger:active:not(.button--disabled),
- .button--standard.button--warning:active:not(.button--disabled),
- .button--standard.button--success:active:not(.button--disabled),
- .button:active:not(.button--disabled) {
- background-color: var(--ha-button-theme-darker-color);
- color: var(--ha-button-text-color, var(--text-primary-color));
- }
+ @media (hover: hover) {
+ :host([appearance~="filled"])
+ .button:not(.disabled):not(.loading):hover {
+ background-color: var(--color-fill-normal-hover);
+ }
+ :host([appearance~="accent"])
+ .button:not(.disabled):not(.loading):hover {
+ background-color: var(--color-fill-loud-hover);
+ }
+ }
+ :host([appearance~="filled"])
+ .button:not(.disabled):not(.loading):active {
+ background-color: var(--color-fill-normal-active);
+ }
+ :host([appearance~="filled"]) .button.disabled {
+ background-color: var(--color-fill-disabled-normal-resting);
+ color: var(--color-on-disabled-normal);
+ }
- :host([appearance="filled"]) .button,
- :host([appearance="plain"]) .button:hover:not(.button--disabled) {
- background-color: var(--ha-button-theme-light-color);
- color: var(--ha-button-theme-color);
- }
- :host([appearance="plain"]) .button {
- background-color: transparent;
- color: var(--ha-button-theme-color);
- }
- :host([appearance="plain"]) .button:active:not(.button--disabled) {
- background-color: var(--ha-button-theme-color);
- color: var(--ha-button-text-color, var(--text-primary-color));
- }
-
- .button.button--medium .button__label {
- padding-inline-start: var(--ha-button-padding-inline-start, 16px);
- padding-inline-end: var(--ha-button-padding-inline-start, 16px);
- }
-
- .button.button--small .button__label {
- padding-inline-start: var(--ha-button-padding-inline-start, 12px);
- padding-inline-end: var(--ha-button-padding-inline-start, 12px);
- }
-
- /* spacing */
- .button--has-prefix.button--medium .button__label {
- padding-inline-start: var(--ha-button-padding-inline-start, 8px);
- }
- .button--has-prefix.button--small .button__label {
- padding-inline-start: var(--ha-button-padding-inline-start, 4px);
- }
- .button--has-suffix.button--medium .button__label,
- .button--caret.button--medium .button__label {
- padding-inline-end: var(--ha-button-padding-inline-end, 8px);
- }
- .button--has-suffix.button--small .button__label,
- .button--caret.button--small .button__label {
- padding-inline-end: var(--ha-button-padding-inline-end, 4px);
- }
-
- /*
- * hide content for overlays
- */
-
- :host([hide-content]) .button .button__prefix,
- :host([hide-content]) .button .button__label,
- :host([hide-content]) .button .button__suffix,
- :host([hide-content]) .button .button__caret {
- visibility: hidden;
- }
- `,
- ];
+ :host([appearance~="accent"]) .button {
+ background-color: var(
+ --wa-color-fill-loud,
+ var(--wa-color-neutral-fill-loud)
+ );
+ }
+ :host([appearance~="accent"])
+ .button:not(.disabled):not(.loading):active {
+ background-color: var(--color-fill-loud-active);
+ }
+ :host([appearance~="accent"]) .button.disabled {
+ background-color: var(--color-fill-disabled-loud-resting);
+ color: var(--color-on-disabled-loud);
+ }
+ `,
+ ];
+ }
}
declare global {
diff --git a/src/components/ha-copy-textfield.ts b/src/components/ha-copy-textfield.ts
index 0f67b18a4d..f2cb6bfa88 100644
--- a/src/components/ha-copy-textfield.ts
+++ b/src/components/ha-copy-textfield.ts
@@ -49,7 +49,7 @@ export class HaCopyTextfield extends LitElement {
: nothing}
-
+
${this.label || this.hass.localize("ui.common.copy")}
diff --git a/src/components/ha-file-upload.ts b/src/components/ha-file-upload.ts
index 06cbe2654c..02ca8c6edf 100644
--- a/src/components/ha-file-upload.ts
+++ b/src/components/ha-file-upload.ts
@@ -118,13 +118,13 @@ export class HaFileUpload extends LitElement {
@dragleave=${this._handleDragEnd}
@dragend=${this._handleDragEnd}
>${!this.value
- ? html`
${this.label || localize("ui.components.file-upload.label")}
diff --git a/src/components/ha-form/ha-form-optional_actions.ts b/src/components/ha-form/ha-form-optional_actions.ts
index 35f1c02664..c17a6a5e65 100644
--- a/src/components/ha-form/ha-form-optional_actions.ts
+++ b/src/components/ha-form/ha-form-optional_actions.ts
@@ -122,7 +122,7 @@ export class HaFormOptionalActions extends LitElement implements HaFormElement {
@closed=${stopPropagation}
>
-
+
${this.localize?.("ui.components.form-optional-actions.add") ||
"Add interaction"}
diff --git a/src/components/media-player/dialog-media-manage.ts b/src/components/media-player/dialog-media-manage.ts
index 8fb1658de4..da2bacc886 100644
--- a/src/components/media-player/dialog-media-manage.ts
+++ b/src/components/media-player/dialog-media-manage.ts
@@ -127,7 +127,7 @@ class DialogMediaManage extends LitElement {
)}
@click=${this._handleDelete}
>
-
+
${this._deleting
diff --git a/src/components/media-player/ha-media-manage-button.ts b/src/components/media-player/ha-media-manage-button.ts
index 580a004573..8a8e8d7a52 100644
--- a/src/components/media-player/ha-media-manage-button.ts
+++ b/src/components/media-player/ha-media-manage-button.ts
@@ -39,7 +39,7 @@ class MediaManageButton extends LitElement {
}
return html`
-
+
${this.hass.localize(
"ui.components.media-browser.file_management.manage"
)}
diff --git a/src/components/media-player/ha-media-player-browse.ts b/src/components/media-player/ha-media-player-browse.ts
index f93f11861a..25f68bed8e 100644
--- a/src/components/media-player/ha-media-player-browse.ts
+++ b/src/components/media-player/ha-media-player-browse.ts
@@ -451,7 +451,7 @@ export class HaMediaPlayerBrowse extends LitElement {
.path=${this.action === "play"
? mdiPlay
: mdiPlus}
- slot="prefix"
+ slot="start"
>
${this.hass.localize(
`ui.components.media-browser.${this.action}`
diff --git a/src/components/media-player/ha-media-upload-button.ts b/src/components/media-player/ha-media-upload-button.ts
index c0b839f16d..4e77857bc6 100644
--- a/src/components/media-player/ha-media-upload-button.ts
+++ b/src/components/media-player/ha-media-upload-button.ts
@@ -40,7 +40,7 @@ class MediaUploadButton extends LitElement {
@click=${this._startUpload}
.loading=${this._uploading > 0}
>
-
+
${this._uploading > 0
? this.hass.localize(
"ui.components.media-browser.file_management.uploading",
diff --git a/src/dialogs/generic/dialog-box.ts b/src/dialogs/generic/dialog-box.ts
index 2cfcdaedf5..f030ec90ee 100644
--- a/src/dialogs/generic/dialog-box.ts
+++ b/src/dialogs/generic/dialog-box.ts
@@ -117,7 +117,7 @@ class DialogBox extends LitElement {
@click=${this._confirm}
?dialogInitialFocus=${!this._params.prompt &&
!this._params.destructive}
- variant=${this._params.destructive ? "danger" : "primary"}
+ variant=${this._params.destructive ? "danger" : "brand"}
>
${this._params.confirmText
? this._params.confirmText
diff --git a/src/dialogs/more-info/controls/more-info-media_player.ts b/src/dialogs/more-info/controls/more-info-media_player.ts
index 94b4485682..54241a7630 100644
--- a/src/dialogs/more-info/controls/more-info-media_player.ts
+++ b/src/dialogs/more-info/controls/more-info-media_player.ts
@@ -78,7 +78,7 @@ class MoreInfoMediaPlayer extends LitElement {
>
${this.hass.localize("ui.card.media_player.browse_media")}
@@ -94,7 +94,7 @@ class MoreInfoMediaPlayer extends LitElement {
>
${groupMembers && groupMembers > 1
? html`
diff --git a/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts b/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts
index 8b6cff6412..e7bf0703b4 100644
--- a/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts
+++ b/src/dialogs/voice-assistant-setup/cloud/cloud-step-intro.ts
@@ -103,7 +103,7 @@ export class CloudStepIntro extends LitElement {
rel="noreferrer noopener"
appearance="plain"
>
-
+
nabucasa.com
-
+
${this.hass.localize("ui.panel.config.areas.add_picture")}
`}
-
+
${this.hass.localize(
"ui.panel.config.automation.editor.actions.add"
)}
@@ -124,7 +124,7 @@ export default class HaAutomationAction extends LitElement {
@click=${this._addActionBuildingBlockDialog}
size="small"
>
-
+
${this.hass.localize(
"ui.panel.config.automation.editor.actions.add_building_block"
)}
diff --git a/src/panels/config/automation/condition/ha-automation-condition.ts b/src/panels/config/automation/condition/ha-automation-condition.ts
index 1486246bb8..537e0aa6a3 100644
--- a/src/panels/config/automation/condition/ha-automation-condition.ts
+++ b/src/panels/config/automation/condition/ha-automation-condition.ts
@@ -162,7 +162,7 @@ export default class HaAutomationCondition extends LitElement {
@click=${this._addConditionDialog}
size="small"
>
-
+
${this.hass.localize(
"ui.panel.config.automation.editor.conditions.add"
)}
@@ -173,7 +173,7 @@ export default class HaAutomationCondition extends LitElement {
@click=${this._addConditionBuildingBlockDialog}
size="small"
>
-
+
${this.hass.localize(
"ui.panel.config.automation.editor.conditions.add_building_block"
)}
diff --git a/src/panels/config/automation/trigger/ha-automation-trigger.ts b/src/panels/config/automation/trigger/ha-automation-trigger.ts
index e684a7d1c5..524ed01bb8 100644
--- a/src/panels/config/automation/trigger/ha-automation-trigger.ts
+++ b/src/panels/config/automation/trigger/ha-automation-trigger.ts
@@ -117,7 +117,7 @@ export default class HaAutomationTrigger extends LitElement {
${this.hass.localize(
"ui.panel.config.automation.editor.triggers.add"
)}
-
+
diff --git a/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts b/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts
index e08017e20e..2bb8b2174e 100644
--- a/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts
+++ b/src/panels/config/backup/components/config/ha-backup-config-encryption-key.ts
@@ -42,7 +42,7 @@ class HaBackupConfigEncryptionKey extends LitElement {
@click=${this._download}
size="small"
>
-
+
${this.hass.localize(
"ui.panel.config.backup.encryption_key.download_emergency_kit_action"
)}
diff --git a/src/panels/config/backup/ha-config-backup-settings.ts b/src/panels/config/backup/ha-config-backup-settings.ts
index 80a117f08b..733df1146d 100644
--- a/src/panels/config/backup/ha-config-backup-settings.ts
+++ b/src/panels/config/backup/ha-config-backup-settings.ts
@@ -295,7 +295,7 @@ class HaConfigBackupSettings extends LitElement {
rel="noreferrer"
appearance="plain"
>
-
+
${this.hass.localize(
"ui.panel.config.backup.settings.locations.more_locations"
)}
diff --git a/src/panels/config/cloud/account/dialog-cloud-tts-try.ts b/src/panels/config/cloud/account/dialog-cloud-tts-try.ts
index a16e0cd761..1d0ecbdb0e 100644
--- a/src/panels/config/cloud/account/dialog-cloud-tts-try.ts
+++ b/src/panels/config/cloud/account/dialog-cloud-tts-try.ts
@@ -122,10 +122,7 @@ export class DialogTryTts extends LitElement {
@click=${this._playExample}
.disabled=${this._loadingExample}
>
-
+
${this.hass.localize("ui.panel.config.cloud.account.tts.dialog.play")}
-
+
${this.hass.localize(
"ui.panel.config.cloud.account.tts.dialog.create_automation"
)}
diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts
index 469f409974..42e0cf44e3 100644
--- a/src/panels/config/devices/ha-config-device-page.ts
+++ b/src/panels/config/devices/ha-config-device-page.ts
@@ -781,7 +781,7 @@ export class HaConfigDevicePage extends LitElement {
`
: nothing}
diff --git a/src/panels/config/energy/components/ha-energy-battery-settings.ts b/src/panels/config/energy/components/ha-energy-battery-settings.ts
index dc2f5e5d95..92dd4582e5 100644
--- a/src/panels/config/energy/components/ha-energy-battery-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-battery-settings.ts
@@ -138,7 +138,7 @@ export class EnergyBatterySettings extends LitElement {
appearance="filled"
size="small"
>
-
+
${this.hass.localize(
"ui.panel.config.energy.battery.add_battery_system"
)}
- ${this.hass.localize(
"ui.panel.config.energy.device_consumption.add_device"
)}
- ${this.hass.localize(
"ui.panel.config.energy.gas.add_gas_source"
)}
-
+
${this.hass.localize(
"ui.panel.config.energy.grid.add_consumption"
)}
- ${this.hass.localize(
"ui.panel.config.energy.grid.add_return"
)}
-
+
${this.hass.localize(
"ui.panel.config.energy.grid.add_co2_signal"
)}
diff --git a/src/panels/config/energy/components/ha-energy-solar-settings.ts b/src/panels/config/energy/components/ha-energy-solar-settings.ts
index 41c5bb9978..0977857fc5 100644
--- a/src/panels/config/energy/components/ha-energy-solar-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-solar-settings.ts
@@ -137,7 +137,7 @@ export class EnergySolarSettings extends LitElement {
appearance="filled"
size="small"
>
-
+
${this.hass.localize(
"ui.panel.config.energy.solar.add_solar_production"
)}
diff --git a/src/panels/config/energy/components/ha-energy-water-settings.ts b/src/panels/config/energy/components/ha-energy-water-settings.ts
index 8671d9c28c..8cbbe018f8 100644
--- a/src/panels/config/energy/components/ha-energy-water-settings.ts
+++ b/src/panels/config/energy/components/ha-energy-water-settings.ts
@@ -126,7 +126,7 @@ export class EnergyWaterSettings extends LitElement {
appearance="filled"
size="small"
>
- ${this.hass.localize(
"ui.panel.config.energy.water.add_water_source"
)}
-
+
${this.hass.localize(
"ui.panel.config.energy.solar.dialog.add_forecast"
)}
diff --git a/src/panels/config/integrations/ha-config-flow-card.ts b/src/panels/config/integrations/ha-config-flow-card.ts
index 9f70e8deb9..e717f81bd2 100644
--- a/src/panels/config/integrations/ha-config-flow-card.ts
+++ b/src/panels/config/integrations/ha-config-flow-card.ts
@@ -51,7 +51,7 @@ export class HaConfigFlowCard extends LitElement {
: ""}
${this.hass.localize(
diff --git a/src/panels/config/integrations/ha-config-integration-page.ts b/src/panels/config/integrations/ha-config-integration-page.ts
index 325ed1e002..4677f90084 100644
--- a/src/panels/config/integrations/ha-config-integration-page.ts
+++ b/src/panels/config/integrations/ha-config-integration-page.ts
@@ -550,7 +550,7 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) {
.flowType=${flowType}
.disabled=${!normalEntries.length}
>
-
+
${this.hass.localize(
`component.${this.domain}.config_subentries.${flowType}.initiate_flow.user`
)}
-
+
${this.hass.localize(
"ui.panel.config.integrations.add_integration"
)}
@@ -643,7 +643,7 @@ class HaConfigIntegrationsDashboard extends KeyboardShortcutMixin(
size="small"
>
${this.hass.localize(
diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts
index 085defbdfa..b5eae151b0 100644
--- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts
+++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts
@@ -207,29 +207,27 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
@@ -410,6 +408,7 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
@@ -490,15 +490,16 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
"ui.panel.config.zwave_js.dashboard.nvm_backup.restoring"
)}
${this._restoreProgress}%`
- : html`
+ : html`
${this.hass.localize(
"ui.panel.config.zwave_js.dashboard.nvm_backup.download_backup"
)}
${this.hass.localize(
@@ -515,8 +516,9 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
/>
${this.hass.localize(
"ui.panel.config.zwave_js.dashboard.nvm_backup.migrate"
@@ -963,8 +965,8 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) {
}
.upload-button {
- display: inline-block;
position: relative;
+ display: flex;
}
.upload-button ha-button {
diff --git a/src/panels/config/network/ha-config-url-form.ts b/src/panels/config/network/ha-config-url-form.ts
index cbfef7ea74..b7ba8a3467 100644
--- a/src/panels/config/network/ha-config-url-form.ts
+++ b/src/panels/config/network/ha-config-url-form.ts
@@ -176,7 +176,7 @@ class ConfigUrlForm extends SubscribeMixin(LitElement) {
.url=${externalUrl}
@click=${this._copyURL}
>
-
+
${this.hass.localize("ui.panel.config.common.copy_link")}
diff --git a/src/panels/config/network/supervisor-network.ts b/src/panels/config/network/supervisor-network.ts
index 467a9987e9..dcc2f89e1f 100644
--- a/src/panels/config/network/supervisor-network.ts
+++ b/src/panels/config/network/supervisor-network.ts
@@ -455,7 +455,7 @@ export class HassioNetwork extends LitElement {
${this.hass.localize(
"ui.panel.config.network.supervisor.add_address"
)}
-
+
`
: nothing}
@@ -513,7 +513,7 @@ export class HassioNetwork extends LitElement {
"ui.panel.config.network.supervisor.add_dns_server"
)}
diff --git a/src/panels/config/person/ha-config-person.ts b/src/panels/config/person/ha-config-person.ts
index 6755985be2..f669c7c8ef 100644
--- a/src/panels/config/person/ha-config-person.ts
+++ b/src/panels/config/person/ha-config-person.ts
@@ -122,7 +122,7 @@ export class HaConfigPerson extends LitElement {
appearance="filled"
size="small"
>
-
+
${hass.localize(
"ui.panel.config.person.create_person"
)}
-
+
${this.hass.localize("ui.panel.config.script.editor.field.add_field")}
`;
diff --git a/src/panels/config/voice-assistants/assist-pref.ts b/src/panels/config/voice-assistants/assist-pref.ts
index 039a2aee40..4ce49e05b6 100644
--- a/src/panels/config/voice-assistants/assist-pref.ts
+++ b/src/panels/config/voice-assistants/assist-pref.ts
@@ -215,7 +215,7 @@ export class AssistPref extends LitElement {
${this.hass.localize(
"ui.panel.config.voice_assistants.assistants.pipeline.add_assistant"
)}
-
+
diff --git a/src/panels/lovelace/cards/hui-alarm-panel-card.ts b/src/panels/lovelace/cards/hui-alarm-panel-card.ts
index 144b6dfe62..5f89e76c35 100644
--- a/src/panels/lovelace/cards/hui-alarm-panel-card.ts
+++ b/src/panels/lovelace/cards/hui-alarm-panel-card.ts
@@ -265,7 +265,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard {
@click=${this._handleActionClick}
appearance="filled"
size="small"
- variant=${stateAction === "disarm" ? "danger" : "primary"}
+ variant=${stateAction === "disarm" ? "danger" : "brand"}
>
${this._actionDisplay(stateAction)}
diff --git a/src/resources/theme/color/color.globals.ts b/src/resources/theme/color/color.globals.ts
index ed9c461694..4745b922a0 100644
--- a/src/resources/theme/color/color.globals.ts
+++ b/src/resources/theme/color/color.globals.ts
@@ -296,32 +296,6 @@ export const colorStyles = css`
);
--chip-background-color: rgba(var(--rgb-primary-text-color), 0.15);
- /* ha-button */
- --ha-button-primary-color: var(--primary-color);
- --ha-button-primary-light-color: var(--light-primary-color);
- --ha-button-primary-dark-color: var(--dark-primary-color);
- --ha-button-primary-darker-color: var(--darker-primary-color);
-
- --ha-button-error-color: #b30532;
- --ha-button-error-light-color: #ffdedc;
- --ha-button-error-dark-color: #6e021f;
- --ha-button-error-darker-color: #530016;
-
- --ha-button-warning-color: var(--warning-color);
- --ha-button-warning-light-color: #fae3b9c1;
- --ha-button-warning-dark-color: #ce8600;
- --ha-button-warning-darker-color: #a36a00;
-
- --ha-button-success-color: var(--success-color);
- --ha-button-success-light-color: #add1ae;
- --ha-button-success-dark-color: #317534;
- --ha-button-success-darker-color: #225524;
-
- --ha-button-neutral-color: #545868;
- --ha-button-neutral-light-color: #d2d5e0;
- --ha-button-neutral-dark-color: #3c3f4b;
- --ha-button-neutral-darker-color: #262830;
-
/* Vaadin */
--material-body-text-color: var(--primary-text-color);
--material-background-color: var(--card-background-color);
diff --git a/src/resources/theme/color/core.globals.ts b/src/resources/theme/color/core.globals.ts
index 18669ae49d..953c566aa2 100644
--- a/src/resources/theme/color/core.globals.ts
+++ b/src/resources/theme/color/core.globals.ts
@@ -17,7 +17,7 @@ export const coreColorStyles = css`
--color-primary-60: #37c8fd;
--color-primary-70: #7bd4fb;
--color-primary-80: #b9e6fc;
- --color-primary-90: #b9e6fc;
+ --color-primary-90: #dff3fc;
--color-primary-95: #eff9fe;
/* neutral */
diff --git a/src/resources/theme/color/index.ts b/src/resources/theme/color/index.ts
index c67135235b..45328cae9b 100644
--- a/src/resources/theme/color/index.ts
+++ b/src/resources/theme/color/index.ts
@@ -8,6 +8,7 @@ import {
darkSemanticColorStyles,
semanticColorStyles,
} from "./semantic.globals";
+import { waColorStyles } from "./wa.globals";
export const darkColorVariables = {
...extractVars(darkColorStyles),
@@ -17,10 +18,12 @@ export const darkColorVariables = {
export const colorDerivedVariables = {
...extractDerivedVars(colorStyles),
...extractDerivedVars(semanticColorStyles),
+ ...extractDerivedVars(waColorStyles),
};
export const colorStylesCollection = [
coreColorStyles.toString(),
semanticColorStyles.toString(),
colorStyles.toString(),
+ waColorStyles.toString(),
];
diff --git a/src/resources/theme/color/semantic.globals.ts b/src/resources/theme/color/semantic.globals.ts
index 4209d73055..03754cd773 100644
--- a/src/resources/theme/color/semantic.globals.ts
+++ b/src/resources/theme/color/semantic.globals.ts
@@ -318,7 +318,7 @@ export const darkSemanticColorStyles = css`
/* on primary */
--color-on-primary-quiet: var(--color-primary-70);
- --color-on-primary-normal: var(--color-primary-80);
+ --color-on-primary-normal: var(--color-primary-60);
/* on neutral */
--color-on-neutral-quiet: var(--color-neutral-70);
diff --git a/src/resources/theme/color/wa.globals.ts b/src/resources/theme/color/wa.globals.ts
new file mode 100644
index 0000000000..43da990ad5
--- /dev/null
+++ b/src/resources/theme/color/wa.globals.ts
@@ -0,0 +1,55 @@
+import { css } from "lit";
+
+export const waColorStyles = css`
+ html {
+ --wa-color-brand-fill-loud: var(--color-fill-primary-loud-resting);
+ --wa-color-brand-fill-normal: var(--color-fill-primary-normal-resting);
+ --wa-color-brand-fill-quiet: var(--color-fill-primary-quiet-resting);
+ --wa-color-brand-border-loud: var(--color-border-loud);
+ --wa-color-brand-border-normal: var(--color-primary-50);
+ --wa-color-brand-border-quiet: var(--color-border-quiet);
+ --wa-color-brand-on-loud: var(--color-on-primary-loud);
+ --wa-color-brand-on-normal: var(--color-on-primary-normal);
+ --wa-color-brand-on-quiet: var(--color-on-primary-quiet);
+
+ --wa-color-neutral-fill-loud: var(--color-fill-neutral-loud-resting);
+ --wa-color-neutral-fill-normal: var(--color-fill-neutral-normal-resting);
+ --wa-color-neutral-fill-quiet: var(--color-fill-neutral-quiet-resting);
+ --wa-color-neutral-border-loud: var(--color-border-neutral-loud);
+ --wa-color-neutral-border-normal: var(--color-border-neutral-normal);
+ --wa-color-neutral-border-quiet: var(--color-border-neutral-quiet);
+ --wa-color-neutral-on-loud: var(--color-on-neutral-loud);
+ --wa-color-neutral-on-normal: var(--color-on-neutral-normal);
+ --wa-color-neutral-on-quiet: var(--color-on-neutral-quiet);
+
+ --wa-color-success-fill-loud: var(--color-fill-success-loud-resting);
+ --wa-color-success-fill-normal: var(--color-fill-success-normal-resting);
+ --wa-color-success-fill-quiet: var(--color-fill-success-quiet-resting);
+ --wa-color-success-border-loud: var(--color-border-success-loud);
+ --wa-color-success-border-normal: var(--color-border-success-normal);
+ --wa-color-success-border-quiet: var(--color-border-success-quiet);
+ --wa-color-success-on-loud: var(--color-on-success-loud);
+ --wa-color-success-on-normal: var(--color-on-success-normal);
+ --wa-color-success-on-quiet: var(--color-on-success-quiet);
+
+ --wa-color-warning-fill-loud: var(--color-fill-warning-loud-resting);
+ --wa-color-warning-fill-normal: var(--color-fill-warning-normal-resting);
+ --wa-color-warning-fill-quiet: var(--color-fill-warning-quiet-resting);
+ --wa-color-warning-border-loud: var(--color-border-warning-loud);
+ --wa-color-warning-border-normal: var(--color-border-warning-normal);
+ --wa-color-warning-border-quiet: var(--color-border-warning-quiet);
+ --wa-color-warning-on-loud: var(--color-on-warning-loud);
+ --wa-color-warning-on-normal: var(--color-on-warning-normal);
+ --wa-color-warning-on-quiet: var(--color-on-warning-quiet);
+
+ --wa-color-danger-fill-loud: var(--color-fill-danger-loud-resting);
+ --wa-color-danger-fill-normal: var(--color-fill-danger-normal-resting);
+ --wa-color-danger-fill-quiet: var(--color-fill-danger-quiet-resting);
+ --wa-color-danger-border-loud: var(--color-border-danger-loud);
+ --wa-color-danger-border-normal: var(--color-border-danger-normal);
+ --wa-color-danger-border-quiet: var(--color-border-danger-quiet);
+ --wa-color-danger-on-loud: var(--color-on-danger-loud);
+ --wa-color-danger-on-normal: var(--color-on-danger-normal);
+ --wa-color-danger-on-quiet: var(--color-on-danger-quiet);
+ }
+`;
diff --git a/yarn.lock b/yarn.lock
index f0fb432738..3536846d3a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -41,6 +41,23 @@ __metadata:
languageName: node
linkType: hard
+"@awesome.me/webawesome@npm:3.0.0-beta.3":
+ version: 3.0.0-beta.3
+ resolution: "@awesome.me/webawesome@npm:3.0.0-beta.3"
+ dependencies:
+ "@ctrl/tinycolor": "npm:^4.1.0"
+ "@floating-ui/dom": "npm:^1.6.13"
+ "@shoelace-style/animations": "npm:^1.2.0"
+ "@shoelace-style/localize": "npm:^3.2.1"
+ composed-offset-position: "npm:^0.0.6"
+ lit: "npm:^3.2.1"
+ nanoid: "npm:^5.1.5"
+ qr-creator: "npm:^1.0.0"
+ style-observer: "npm:^0.0.7"
+ checksum: 10/d01adab1e415f015c255e99e5ab7962eac3299bfafe3d6feb7dca0e44452b5e64f05d5c8b212ac1c513c8a0e2a9bdbe8dd68ec8b9ec1c216acf6a689dcc6cfc1
+ languageName: node
+ linkType: hard
+
"@babel/code-frame@npm:7.26.2":
version: 7.26.2
resolution: "@babel/code-frame@npm:7.26.2"
@@ -1651,7 +1668,7 @@ __metadata:
languageName: node
linkType: hard
-"@floating-ui/dom@npm:^1.6.12":
+"@floating-ui/dom@npm:^1.6.12, @floating-ui/dom@npm:^1.6.13":
version: 1.7.2
resolution: "@floating-ui/dom@npm:1.7.2"
dependencies:
@@ -9323,6 +9340,7 @@ __metadata:
version: 0.0.0-use.local
resolution: "home-assistant-frontend@workspace:."
dependencies:
+ "@awesome.me/webawesome": "npm:3.0.0-beta.3"
"@babel/core": "npm:7.28.0"
"@babel/helper-define-polyfill-provider": "npm:0.6.5"
"@babel/plugin-transform-runtime": "npm:7.28.0"
@@ -11516,6 +11534,15 @@ __metadata:
languageName: node
linkType: hard
+"nanoid@npm:^5.1.5":
+ version: 5.1.5
+ resolution: "nanoid@npm:5.1.5"
+ bin:
+ nanoid: bin/nanoid.js
+ checksum: 10/6de2d006b51c983be385ef7ee285f7f2a57bd96f8c0ca881c4111461644bd81fafc2544f8e07cb834ca0f3e0f3f676c1fe78052183f008b0809efe6e273119f5
+ languageName: node
+ linkType: hard
+
"natural-compare@npm:^1.4.0":
version: 1.4.0
resolution: "natural-compare@npm:1.4.0"
@@ -13979,6 +14006,13 @@ __metadata:
languageName: node
linkType: hard
+"style-observer@npm:^0.0.7":
+ version: 0.0.7
+ resolution: "style-observer@npm:0.0.7"
+ checksum: 10/bb57f98bae4463c1e1b57234f8ffe72ec0de27fb08b032c1919910129c210aacd1ddd615432b9453d491e10d3b719cf6c2a68a97165ca55d6fc9b86c0fca37fb
+ languageName: node
+ linkType: hard
+
"superstruct@npm:2.0.2":
version: 2.0.2
resolution: "superstruct@npm:2.0.2"