Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions gallery/src/components/demo-cards.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "@polymer/app-layout/app-toolbar/app-toolbar";
import "@polymer/paper-toggle-button/paper-toggle-button";

import "./demo-card";
import "../../../src/components/ha-switch";

class DemoCards extends PolymerElement {
static get template() {
Expand All @@ -26,9 +26,7 @@ class DemoCards extends PolymerElement {
</style>
<app-toolbar>
<div class="filters">
<paper-toggle-button checked="{{_showConfig}}"
>Show config</paper-toggle-button
>
<ha-switch checked="{{_showConfig}}">Show config</ha-switch>
</div>
</app-toolbar>
<div class="cards">
Expand Down
6 changes: 2 additions & 4 deletions gallery/src/components/demo-more-infos.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "@polymer/app-layout/app-toolbar/app-toolbar";
import "@polymer/paper-toggle-button/paper-toggle-button";

import "./demo-more-info";
import "../../../src/components/ha-switch";

class DemoMoreInfos extends PolymerElement {
static get template() {
Expand All @@ -26,9 +26,7 @@ class DemoMoreInfos extends PolymerElement {
</style>
<app-toolbar>
<div class="filters">
<paper-toggle-button checked="{{_showConfig}}"
>Show entity</paper-toggle-button
>
<ha-switch checked="{{_showConfig}}">Show entity</ha-switch>
</div>
</app-toolbar>
<div class="cards">
Expand Down
24 changes: 12 additions & 12 deletions hassio/src/addon-view/hassio-addon-info.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@ import "@polymer/iron-icon/iron-icon";
import "@material/mwc-button";
import "@polymer/paper-card/paper-card";
import "@polymer/paper-tooltip/paper-tooltip";
import "@polymer/paper-toggle-button/paper-toggle-button";
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";

import "../../../src/components/ha-label-badge";
import "../../../src/components/ha-markdown";
import "../../../src/components/buttons/ha-call-api-button";
import "../../../src/components/ha-switch";
import "../../../src/resources/ha-style";
import "../components/hassio-card-content";

import { EventsMixin } from "../../../src/mixins/events-mixin";
import { navigate } from "../../../src/common/navigate";

import { showHassioMarkdownDialog } from "../dialogs/markdown/show-dialog-hassio-markdown";
import "../components/hassio-card-content";

const PERMIS_DESC = {
rating: {
Expand Down Expand Up @@ -122,7 +122,7 @@ class HassioAddonInfo extends EventsMixin(PolymerElement) {
width: 16px;
color: var(--secondary-text-color);
}
paper-toggle-button {
ha-switch {
display: inline;
}
iron-icon.running {
Expand Down Expand Up @@ -348,26 +348,26 @@ class HassioAddonInfo extends EventsMixin(PolymerElement) {
<template is="dom-if" if="[[addon.version]]">
<div class="state">
<div>Start on boot</div>
<paper-toggle-button
<ha-switch
on-change="startOnBootToggled"
checked="[[computeStartOnBoot(addon.boot)]]"
></paper-toggle-button>
></ha-switch>
</div>
<div class="state">
<div>Auto update</div>
<paper-toggle-button
<ha-switch
on-change="autoUpdateToggled"
checked="[[addon.auto_update]]"
></paper-toggle-button>
></ha-switch>
</div>
<template is="dom-if" if="[[addon.ingress]]">
<div class="state">
<div>Show in sidebar</div>
<paper-toggle-button
<ha-switch
on-change="panelToggled"
checked="[[addon.ingress_panel]]"
disabled="[[_computeCannotIngressSidebar(hass, addon)]]"
></paper-toggle-button>
></ha-switch>
<template is="dom-if" if="[[_computeCannotIngressSidebar(hass, addon)]]">
<span>This option requires Home Assistant 0.92 or later.</span>
</template>
Expand All @@ -381,10 +381,10 @@ class HassioAddonInfo extends EventsMixin(PolymerElement) {
<paper-tooltip>Grant the add-on elevated system access.</paper-tooltip>
</span>
</div>
<paper-toggle-button
<ha-switch
on-change="protectionToggled"
checked="[[addon.protected]]"
></paper-toggle-button>
></ha-switch>
</div>
</template>
</div>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"@material/mwc-checkbox": "^0.8.0",
"@material/mwc-fab": "^0.8.0",
"@material/mwc-ripple": "0.8.0",
"@material/mwc-switch": "^0.8.0",
"@mdi/svg": "4.4.95",
"@polymer/app-layout": "^3.0.2",
"@polymer/app-localize-behavior": "^3.0.1",
Expand Down Expand Up @@ -63,7 +64,6 @@
"@polymer/paper-styles": "^3.0.1",
"@polymer/paper-tabs": "^3.0.1",
"@polymer/paper-toast": "^3.0.1",
"@polymer/paper-toggle-button": "^3.0.1",
"@polymer/paper-tooltip": "^3.0.1",
"@polymer/polymer": "3.1.0",
"@thomasloven/round-slider": "^0.2.2",
Expand Down
16 changes: 8 additions & 8 deletions src/components/entity/ha-entity-toggle.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import "@polymer/paper-icon-button/paper-icon-button";
import "@polymer/paper-toggle-button/paper-toggle-button";

import { STATES_OFF } from "../../common/const";
import computeStateDomain from "../../common/entity/compute_state_domain";
import {
LitElement,
TemplateResult,
Expand All @@ -15,8 +13,12 @@ import {
import { HomeAssistant } from "../../types";
import { HassEntity } from "home-assistant-js-websocket";
import { forwardHaptic } from "../../data/haptics";

import computeStateDomain from "../../common/entity/compute_state_domain";
import computeStateName from "../../common/entity/compute_state_name";

import "../ha-switch";

const isOn = (stateObj?: HassEntity) =>
stateObj !== undefined && !STATES_OFF.includes(stateObj.state);

Expand All @@ -29,7 +31,7 @@ class HaEntityToggle extends LitElement {
protected render(): TemplateResult | void {
if (!this.stateObj) {
return html`
<paper-toggle-button disabled></paper-toggle-button>
<ha-switch disabled></ha-switch>
`;
}

Expand All @@ -51,13 +53,13 @@ class HaEntityToggle extends LitElement {
}

return html`
<paper-toggle-button
<ha-switch
aria-label=${`Toggle ${computeStateName(this.stateObj)} ${
this._isOn ? "off" : "on"
}`}
.checked=${this._isOn}
@change=${this._toggleChanged}
></paper-toggle-button>
></ha-switch>
`;
}

Expand Down Expand Up @@ -149,9 +151,7 @@ class HaEntityToggle extends LitElement {
paper-icon-button[state-active] {
color: var(--paper-icon-button-active-color, var(--primary-color));
}
paper-toggle-button {
cursor: pointer;
--paper-toggle-button-label-spacing: 0;
ha-switch {
padding: 13px 5px;
margin: -4px -5px;
}
Expand Down
8 changes: 4 additions & 4 deletions src/components/ha-push-notifications-toggle.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import "@polymer/paper-toggle-button/paper-toggle-button";
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";

import { getAppKey } from "../data/notify_html5";

import { EventsMixin } from "../mixins/events-mixin";

import "./ha-switch";

export const pushSupported =
"serviceWorker" in navigator &&
"PushManager" in window &&
Expand All @@ -19,11 +19,11 @@ export const pushSupported =
class HaPushNotificationsToggle extends EventsMixin(PolymerElement) {
static get template() {
return html`
<paper-toggle-button
<ha-switch
disabled="[[_compDisabled(disabled, loading)]]"
checked="{{pushChecked}}"
on-change="handlePushChange"
></paper-toggle-button>
></ha-switch>
`;
}

Expand Down
37 changes: 37 additions & 0 deletions src/components/ha-switch.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { Constructor, customElement, CSSResult, css } from "lit-element";
import "@material/mwc-switch";
import { style } from "@material/mwc-switch/mwc-switch-css";
// tslint:disable-next-line
import { Switch } from "@material/mwc-switch";
// tslint:disable-next-line
const MwcSwitch = customElements.get("mwc-switch") as Constructor<Switch>;

@customElement("ha-switch")
export class HaSwitch extends MwcSwitch {
protected firstUpdated() {
super.firstUpdated();
this.style.setProperty("--mdc-theme-secondary", "var(--primary-color)");
}

protected static get styles(): CSSResult[] {
return [
style,
css`
.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb {
background-color: var(--paper-toggle-button-unchecked-button-color);
border-color: var(--paper-toggle-button-unchecked-button-color);
}
.mdc-switch:not(.mdc-switch--checked) .mdc-switch__track {
background-color: var(--paper-toggle-button-unchecked-bar-color;
border-color: var(--paper-toggle-button-unchecked-bar-color);
}
`,
];
}
}

declare global {
interface HTMLElementTagNameMap {
"ha-switch": HaSwitch;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import "@polymer/paper-dialog-scrollable/paper-dialog-scrollable";
import "@polymer/paper-input/paper-input";

import "../../components/dialog/ha-paper-dialog";
import "../../components/ha-switch";

import { HomeAssistant } from "../../types";
import { ConfigEntrySystemOptionsDialogParams } from "./show-dialog-config-entry-system-options";
import {
Expand All @@ -19,6 +21,8 @@ import {
} from "../../data/config_entries";
import { PolymerChangedEvent } from "../../polymer-types";
import { haStyleDialog } from "../../resources/styles";
// tslint:disable-next-line: no-duplicate-imports
import { HaSwitch } from "../../components/ha-switch";

@customElement("dialog-config-entry-system-options")
class DialogConfigEntrySystemOptions extends LitElement {
Expand Down Expand Up @@ -72,9 +76,9 @@ class DialogConfigEntrySystemOptions extends LitElement {
`
: ""}
<div class="form">
<paper-toggle-button
<ha-switch
.checked=${!this._disableNewEntities}
@checked-changed=${this._disableNewEntitiesChanged}
@change=${this._disableNewEntitiesChanged}
.disabled=${this._submitting}
>
<div>
Expand All @@ -87,7 +91,7 @@ class DialogConfigEntrySystemOptions extends LitElement {
"ui.dialogs.config_entry_system_options.enable_new_entities_description"
)}
</div>
</paper-toggle-button>
</ha-switch>
</div>
`}
</paper-dialog-scrollable>
Expand All @@ -109,9 +113,9 @@ class DialogConfigEntrySystemOptions extends LitElement {
`;
}

private _disableNewEntitiesChanged(ev: PolymerChangedEvent<boolean>): void {
private _disableNewEntitiesChanged(ev: Event): void {
this._error = undefined;
this._disableNewEntities = !ev.detail.value;
this._disableNewEntities = !(ev.target as HaSwitch).checked;
}

private async _updateEntry(): Promise<void> {
Expand Down Expand Up @@ -152,6 +156,7 @@ class DialogConfigEntrySystemOptions extends LitElement {
}

.form {
padding-top: 6px;
padding-bottom: 24px;
color: var(--primary-text-color);
}
Expand Down
6 changes: 3 additions & 3 deletions src/dialogs/more-info/controls/more-info-climate.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import "@polymer/iron-flex-layout/iron-flex-layout-classes";
import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox";
import "@polymer/paper-toggle-button/paper-toggle-button";
import {
LitElement,
html,
Expand All @@ -15,6 +14,7 @@ import {
import "../../../components/ha-climate-control";
import "../../../components/ha-paper-slider";
import "../../../components/ha-paper-dropdown-menu";
import "../../../components/ha-switch";

import { supportsFeature } from "../../../common/entity/supports-feature";

Expand Down Expand Up @@ -279,10 +279,10 @@ class MoreInfoClimate extends LitElement {
<div class="flex">
${hass.localize("ui.card.climate.aux_heat")}
</div>
<paper-toggle-button
<ha-switch
.checked=${stateObj.attributes.aux_heat === "on"}
@change=${this._auxToggleChanged}
></paper-toggle-button>
></ha-switch>
</div>
</div>
`
Expand Down
9 changes: 5 additions & 4 deletions src/dialogs/more-info/controls/more-info-fan.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@ import "@polymer/iron-flex-layout/iron-flex-layout-classes";
import "@polymer/paper-icon-button/paper-icon-button";
import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox";
import "@polymer/paper-toggle-button/paper-toggle-button";
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";

import "../../../components/ha-attributes";
import "../../../components/ha-paper-dropdown-menu";
import "../../../components/ha-switch";

import attributeClassNames from "../../../common/entity/attribute_class_names";
import { EventsMixin } from "../../../mixins/events-mixin";

import attributeClassNames from "../../../common/entity/attribute_class_names";
import LocalizeMixin from "../../../mixins/localize-mixin";

/*
Expand Down Expand Up @@ -68,11 +69,11 @@ class MoreInfoFan extends LocalizeMixin(EventsMixin(PolymerElement)) {
<div class="container-oscillating">
<div class="center horizontal layout single-row">
<div class="flex">[[localize('ui.card.fan.oscillate')]]</div>
<paper-toggle-button
<ha-switch
checked="[[oscillationToggleChecked]]"
on-change="oscillationToggleChanged"
>
</paper-toggle-button>
</ha-switch>
</div>
</div>

Expand Down
Loading