diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b1ab98e184dd..ebb7c49aef45 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -31,7 +31,7 @@ jobs: with: node-version-file: ".nvmrc" cache: yarn - - uses: actions/cache@v4.1.2 + - uses: actions/cache@v4.2.0 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: "node_modules" @@ -43,7 +43,7 @@ jobs: - name: Build resources run: ./node_modules/.bin/gulp gen-icons-json build-translations build-locale-data gather-gallery-pages - name: Setup lint cache - uses: actions/cache@v4.1.2 + uses: actions/cache@v4.2.0 with: path: | node_modules/.cache/prettier @@ -71,7 +71,7 @@ jobs: with: node-version-file: ".nvmrc" cache: yarn - - uses: actions/cache@v4.1.2 + - uses: actions/cache@v4.2.0 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: "node_modules" @@ -97,7 +97,7 @@ jobs: with: node-version-file: ".nvmrc" cache: yarn - - uses: actions/cache@v4.1.2 + - uses: actions/cache@v4.2.0 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: "node_modules" @@ -129,7 +129,7 @@ jobs: with: node-version-file: ".nvmrc" cache: yarn - - uses: actions/cache@v4.1.2 + - uses: actions/cache@v4.2.0 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: "node_modules" diff --git a/gallery/src/components/demo-card.ts b/gallery/src/components/demo-card.ts index 50234d11515f..584b32e32f14 100644 --- a/gallery/src/components/demo-card.ts +++ b/gallery/src/components/demo-card.ts @@ -18,7 +18,8 @@ class DemoCard extends LitElement { @property({ attribute: false }) public config!: DemoCardConfig; - @property({ attribute: false, type: Boolean }) public showConfig = false; + @property({ attribute: "show-config", type: Boolean }) + public showConfig = false; @state() private _size?: number; diff --git a/gallery/src/components/demo-more-info.ts b/gallery/src/components/demo-more-info.ts index 5e39ab9eac6f..0b6223531eb3 100644 --- a/gallery/src/components/demo-more-info.ts +++ b/gallery/src/components/demo-more-info.ts @@ -12,7 +12,8 @@ class DemoMoreInfo extends LitElement { @property({ attribute: false }) public entityId!: string; - @property({ attribute: false, type: Boolean }) public showConfig = false; + @property({ attribute: "show-config", type: Boolean }) + public showConfig = false; render() { const state = this._getState(this.entityId, this.hass.states); diff --git a/hassio/src/backups/hassio-backups.ts b/hassio/src/backups/hassio-backups.ts index 1250e62f886f..9a8116394129 100644 --- a/hassio/src/backups/hassio-backups.ts +++ b/hassio/src/backups/hassio-backups.ts @@ -58,7 +58,7 @@ export class HassioBackups extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @state() private _selectedBackups: string[] = []; diff --git a/hassio/src/components/hassio-card-content.ts b/hassio/src/components/hassio-card-content.ts index e9f3872e07bb..8f0b9fc123f5 100644 --- a/hassio/src/components/hassio-card-content.ts +++ b/hassio/src/components/hassio-card-content.ts @@ -16,7 +16,7 @@ class HassioCardContent extends LitElement { @property({ type: Boolean }) public available = true; - @property({ attribute: false, type: Boolean }) public showTopbar = false; + @property({ attribute: false }) public showTopbar = false; @property({ attribute: false }) public topbarClass?: string; diff --git a/hassio/src/components/supervisor-backup-content.ts b/hassio/src/components/supervisor-backup-content.ts index 03d1667d6ab2..a4491c3e800b 100644 --- a/hassio/src/components/supervisor-backup-content.ts +++ b/hassio/src/components/supervisor-backup-content.ts @@ -80,10 +80,9 @@ export class SupervisorBackupContent extends LitElement { @property({ attribute: false }) public addons?: AddonCheckboxItem[]; - @property({ attribute: false, type: Boolean }) public homeAssistant = false; + @property({ attribute: false }) public homeAssistant = false; - @property({ attribute: false, type: Boolean }) public backupHasPassword = - false; + @property({ attribute: false }) public backupHasPassword = false; @property({ type: Boolean }) public onboarding = false; diff --git a/hassio/src/ingress-view/hassio-ingress-view.ts b/hassio/src/ingress-view/hassio-ingress-view.ts index 98e62b4fafcf..b969a37b9faf 100644 --- a/hassio/src/ingress-view/hassio-ingress-view.ts +++ b/hassio/src/ingress-view/hassio-ingress-view.ts @@ -34,7 +34,7 @@ class HassioIngressView extends LitElement { @property({ attribute: false }) public route!: Route; - @property({ attribute: false, type: Boolean }) public ingressPanel = false; + @property({ attribute: false }) public ingressPanel = false; @property({ type: Boolean }) public narrow = false; diff --git a/package.json b/package.json index fcc47e201791..b235d96bacf2 100644 --- a/package.json +++ b/package.json @@ -176,7 +176,7 @@ "@types/glob": "8.1.0", "@types/html-minifier-terser": "7.0.2", "@types/js-yaml": "4.0.9", - "@types/leaflet": "1.9.14", + "@types/leaflet": "1.9.15", "@types/leaflet-draw": "1.0.11", "@types/lodash.merge": "4.6.9", "@types/luxon": "3.4.2", @@ -223,7 +223,7 @@ "object-hash": "3.0.0", "open": "10.1.0", "pinst": "3.0.0", - "prettier": "3.4.1", + "prettier": "3.4.2", "rspack-manifest-plugin": "5.0.2", "serve-handler": "6.1.6", "sinon": "19.0.2", diff --git a/src/auth/ha-auth-flow.ts b/src/auth/ha-auth-flow.ts index e12dcda037a1..2adce4d34786 100644 --- a/src/auth/ha-auth-flow.ts +++ b/src/auth/ha-auth-flow.ts @@ -40,7 +40,7 @@ export class HaAuthFlow extends LitElement { @property({ attribute: false }) public step?: DataEntryFlowStep; - @property({ attribute: false, type: Boolean }) public initStoreToken = false; + @property({ attribute: false }) public initStoreToken = false; @state() private _storeToken = false; diff --git a/src/components/chart/ha-chart-base.ts b/src/components/chart/ha-chart-base.ts index d219139741bf..69cbac9a7b6f 100644 --- a/src/components/chart/ha-chart-base.ts +++ b/src/components/chart/ha-chart-base.ts @@ -55,7 +55,8 @@ export class HaChartBase extends LitElement { @property({ attribute: false, type: Number }) public paddingYAxis = 0; - @property({ attribute: false, type: Boolean }) public externalHidden = false; + @property({ attribute: "external-hidden", type: Boolean }) + public externalHidden = false; @state() private _chartHeight?: number; diff --git a/src/components/chart/state-history-chart-line.ts b/src/components/chart/state-history-chart-line.ts index 85495c77f3df..afa913a4bed6 100644 --- a/src/components/chart/state-history-chart-line.ts +++ b/src/components/chart/state-history-chart-line.ts @@ -32,9 +32,11 @@ export class StateHistoryChartLine extends LitElement { @property() public identifier?: string; - @property({ attribute: false, type: Boolean }) public showNames = true; + @property({ attribute: "show-names", type: Boolean }) + public showNames = true; - @property({ attribute: false, type: Boolean }) public clickForMoreInfo = true; + @property({ attribute: "click-for-more-info", type: Boolean }) + public clickForMoreInfo = true; @property({ attribute: false }) public startTime!: Date; @@ -44,14 +46,14 @@ export class StateHistoryChartLine extends LitElement { @property({ attribute: false, type: Number }) public chartIndex?; - @property({ attribute: false, type: Boolean }) public logarithmicScale = - false; + @property({ attribute: "logarithmic-scale", type: Boolean }) + public logarithmicScale = false; @property({ attribute: false, type: Number }) public minYAxis?: number; @property({ attribute: false, type: Number }) public maxYAxis?: number; - @property({ attribute: false, type: Boolean }) public fitYData = false; + @property({ attribute: "fit-y-data", type: Boolean }) public fitYData = false; @state() private _chartData?: ChartData<"line">; diff --git a/src/components/chart/state-history-chart-timeline.ts b/src/components/chart/state-history-chart-timeline.ts index f8d19d3cb4a4..f619bea3b8f0 100644 --- a/src/components/chart/state-history-chart-timeline.ts +++ b/src/components/chart/state-history-chart-timeline.ts @@ -30,9 +30,10 @@ export class StateHistoryChartTimeline extends LitElement { @property() public identifier?: string; - @property({ attribute: false, type: Boolean }) public showNames = true; + @property({ attribute: "show-names", type: Boolean }) public showNames = true; - @property({ attribute: false, type: Boolean }) public clickForMoreInfo = true; + @property({ attribute: "click-for-more-info", type: Boolean }) + public clickForMoreInfo = true; @property({ type: Boolean }) public chunked = false; diff --git a/src/components/chart/state-history-charts.ts b/src/components/chart/state-history-charts.ts index c701167302fa..fb4ec0d4d391 100644 --- a/src/components/chart/state-history-charts.ts +++ b/src/components/chart/state-history-charts.ts @@ -61,20 +61,22 @@ export class StateHistoryCharts extends LitElement { @property({ attribute: false, type: Number }) public hoursToShow?: number; - @property({ attribute: false, type: Boolean }) public showNames = true; + @property({ attribute: "show-names", type: Boolean }) public showNames = true; - @property({ attribute: false, type: Boolean }) public clickForMoreInfo = true; + @property({ attribute: "click-for-more-info", type: Boolean }) + public clickForMoreInfo = true; - @property({ attribute: false, type: Boolean }) public isLoadingData = false; + @property({ attribute: "is-loading-data", type: Boolean }) + public isLoadingData = false; - @property({ attribute: false, type: Boolean }) public logarithmicScale = - false; + @property({ attribute: "logarithmic-scale", type: Boolean }) + public logarithmicScale = false; @property({ attribute: false, type: Number }) public minYAxis?: number; @property({ attribute: false, type: Number }) public maxYAxis?: number; - @property({ attribute: false, type: Boolean }) public fitYData = false; + @property({ attribute: "fit-y-data", type: Boolean }) public fitYData = false; private _computedStartTime!: Date; diff --git a/src/components/chart/statistics-chart.ts b/src/components/chart/statistics-chart.ts index d1e2ac5e7610..3673ec8cf5a8 100644 --- a/src/components/chart/statistics-chart.ts +++ b/src/components/chart/statistics-chart.ts @@ -72,17 +72,19 @@ export class StatisticsChart extends LitElement { @property({ attribute: false, type: Number }) public maxYAxis?: number; - @property({ attribute: false, type: Boolean }) public fitYData = false; + @property({ attribute: "fit-y-data", type: Boolean }) public fitYData = false; @property({ attribute: "hide-legend", type: Boolean }) public hideLegend = false; - @property({ attribute: false, type: Boolean }) public logarithmicScale = - false; + @property({ attribute: "logarithmic-scale", type: Boolean }) + public logarithmicScale = false; - @property({ attribute: false, type: Boolean }) public isLoadingData = false; + @property({ attribute: "is-loading-data", type: Boolean }) + public isLoadingData = false; - @property({ attribute: false, type: Boolean }) public clickForMoreInfo = true; + @property({ attribute: "click-for-more-info", type: Boolean }) + public clickForMoreInfo = true; @property() public period?: string; @@ -165,7 +167,7 @@ export class StatisticsChart extends LitElement { return html`
-
+
${name}
${this.inDialog @@ -108,7 +108,7 @@ class StateInfo extends LitElement { text-overflow: ellipsis; } - .name[inDialog], + .name.in-dialog, :host([secondary-line]) .name { line-height: 20px; } diff --git a/src/components/ha-assist-pipeline-picker.ts b/src/components/ha-assist-pipeline-picker.ts index 09ead83b80f7..ebfd33c691f1 100644 --- a/src/components/ha-assist-pipeline-picker.ts +++ b/src/components/ha-assist-pipeline-picker.ts @@ -26,7 +26,7 @@ export class HaAssistPipelinePicker extends LitElement { @property({ type: Boolean }) public required = false; - @property({ attribute: false, type: Boolean }) public includeLastUsed = false; + @property({ attribute: false }) public includeLastUsed = false; @state() _pipelines?: AssistPipeline[]; diff --git a/src/components/ha-base-time-input.ts b/src/components/ha-base-time-input.ts index 5a1629bb117b..c3e3fcc98529 100644 --- a/src/components/ha-base-time-input.ts +++ b/src/components/ha-base-time-input.ts @@ -36,7 +36,7 @@ export class HaBaseTimeInput extends LitElement { /** * auto validate time inputs */ - @property({ attribute: false, type: Boolean }) autoValidate = false; + @property({ attribute: "auto-validate", type: Boolean }) autoValidate = false; /** * determines if inputs are required @@ -106,22 +106,26 @@ export class HaBaseTimeInput extends LitElement { /** * show the sec field */ - @property({ attribute: false, type: Boolean }) enableSecond = false; + @property({ attribute: "enable-second", type: Boolean }) + public enableSecond = false; /** * show the milli sec field */ - @property({ attribute: false, type: Boolean }) enableMillisecond = false; + @property({ attribute: "enable-millisecond", type: Boolean }) + public enableMillisecond = false; /** * show the day field */ - @property({ attribute: false, type: Boolean }) enableDay = false; + @property({ attribute: "enable-day", type: Boolean }) + public enableDay = false; /** * limit hours input */ - @property({ attribute: false, type: Boolean }) noHoursLimit = false; + @property({ attribute: "no-hours-limit", type: Boolean }) + public noHoursLimit = false; /** * AM or PM diff --git a/src/components/ha-button-toggle-group.ts b/src/components/ha-button-toggle-group.ts index 69c92070b5fe..7ec98e8e6828 100644 --- a/src/components/ha-button-toggle-group.ts +++ b/src/components/ha-button-toggle-group.ts @@ -14,7 +14,8 @@ export class HaButtonToggleGroup extends LitElement { @property() public active?: string; - @property({ attribute: false, type: Boolean }) public fullWidth = false; + @property({ attribute: "full-width", type: Boolean }) + public fullWidth = false; @property({ type: Boolean }) public dense = false; diff --git a/src/components/ha-clickable-list-item.ts b/src/components/ha-clickable-list-item.ts index e50b6cf5aa87..d68c7d4b0c61 100644 --- a/src/components/ha-clickable-list-item.ts +++ b/src/components/ha-clickable-list-item.ts @@ -7,9 +7,10 @@ import { HaListItem } from "./ha-list-item"; export class HaClickableListItem extends HaListItem { @property() public href?: string; - @property({ attribute: false, type: Boolean }) public disableHref = false; + @property({ attribute: "disable-href", type: Boolean }) + public disableHref = false; - @property({ attribute: false, type: Boolean, reflect: true }) + @property({ attribute: "open-new-tab", type: Boolean, reflect: true }) public openNewTab = false; @query("a") private _anchor!: HTMLAnchorElement; diff --git a/src/components/ha-country-picker.ts b/src/components/ha-country-picker.ts index a84e96af6570..4e213ad8639e 100644 --- a/src/components/ha-country-picker.ts +++ b/src/components/ha-country-picker.ts @@ -277,7 +277,7 @@ export class HaCountryPicker extends LitElement { @property({ type: Boolean, reflect: true }) public disabled = false; - @property({ attribute: false, type: Boolean }) public noSort = false; + @property({ attribute: "no-sort", type: Boolean }) public noSort = false; private _getOptions = memoizeOne( (language?: string, countries?: string[]) => { diff --git a/src/components/ha-date-range-picker.ts b/src/components/ha-date-range-picker.ts index ef661583f33c..12601e2a4b50 100644 --- a/src/components/ha-date-range-picker.ts +++ b/src/components/ha-date-range-picker.ts @@ -53,17 +53,20 @@ export class HaDateRangePicker extends LitElement { @state() private _ranges?: DateRangePickerRanges; - @property({ attribute: false, type: Boolean }) public autoApply = false; + @property({ attribute: "auto-apply", type: Boolean }) + public autoApply = false; - @property({ attribute: false, type: Boolean }) public timePicker = true; + @property({ attribute: "time-picker", type: Boolean }) + public timePicker = true; - @property({ attribute: false, type: Boolean }) public disabled = false; + @property({ type: Boolean }) public disabled = false; @property({ type: Boolean }) public minimal = false; @state() private _hour24format = false; - @property({ attribute: false, type: Boolean }) public extendedPresets = false; + @property({ attribute: "extended-presets", type: Boolean }) + public extendedPresets = false; @property({ attribute: false }) public openingDirection?: | "right" diff --git a/src/components/ha-domain-icon.ts b/src/components/ha-domain-icon.ts index 7d85f53ed8cf..301a5cb1eaf4 100644 --- a/src/components/ha-domain-icon.ts +++ b/src/components/ha-domain-icon.ts @@ -18,7 +18,8 @@ export class HaDomainIcon extends LitElement { @property() public icon?: string; - @property({ attribute: false, type: Boolean }) public brandFallback?: boolean; + @property({ attribute: "brand-fallback", type: Boolean }) + public brandFallback?: boolean; protected render() { if (this.icon) { diff --git a/src/components/ha-duration-input.ts b/src/components/ha-duration-input.ts index 6306a926626a..6ecc9dddc680 100644 --- a/src/components/ha-duration-input.ts +++ b/src/components/ha-duration-input.ts @@ -23,10 +23,11 @@ class HaDurationInput extends LitElement { @property({ type: Boolean }) public required = false; - @property({ attribute: false, type: Boolean }) public enableMillisecond = - false; + @property({ attribute: "enable-millisecond", type: Boolean }) + public enableMillisecond = false; - @property({ attribute: false, type: Boolean }) public enableDay = false; + @property({ attribute: "enable-day", type: Boolean }) + public enableDay = false; @property({ type: Boolean }) public disabled = false; @@ -48,7 +49,7 @@ class HaDurationInput extends LitElement { .autoValidate=${this.required} .disabled=${this.disabled} errorMessage="Required" - enableSecond + enable-second .enableMillisecond=${this.enableMillisecond} .enableDay=${this.enableDay} format="24" @@ -58,7 +59,7 @@ class HaDurationInput extends LitElement { .seconds=${this._seconds} .milliseconds=${this._milliseconds} @value-changed=${this._durationChanged} - noHoursLimit + no-hours-limit dayLabel="dd" hourLabel="hh" minLabel="mm" diff --git a/src/components/ha-filter-domains.ts b/src/components/ha-filter-domains.ts index b6e892bbbfce..9afced8baede 100644 --- a/src/components/ha-filter-domains.ts +++ b/src/components/ha-filter-domains.ts @@ -75,7 +75,7 @@ export class HaFilterDomains extends LitElement { slot="graphic" .hass=${this.hass} .domain=${domain} - brandFallback + brand-fallback > ${domainToName(this.hass.localize, domain)} ` diff --git a/src/components/ha-filter-integrations.ts b/src/components/ha-filter-integrations.ts index 11e10d52442e..84c031421c7a 100644 --- a/src/components/ha-filter-integrations.ts +++ b/src/components/ha-filter-integrations.ts @@ -77,7 +77,7 @@ export class HaFilterIntegrations extends LitElement { slot="graphic" .hass=${this.hass} .domain=${integration.domain} - brandFallback + brand-fallback > ${integration.name || integration.domain} ` diff --git a/src/components/ha-form/compute-initial-ha-form-data.ts b/src/components/ha-form/compute-initial-ha-form-data.ts index b74ad95fe906..53e348832875 100644 --- a/src/components/ha-form/compute-initial-ha-form-data.ts +++ b/src/components/ha-form/compute-initial-ha-form-data.ts @@ -47,6 +47,8 @@ export const computeInitialHaFormData = ( data[field.name] = selector.entity?.multiple ? [] : ""; } else if ("area" in selector) { data[field.name] = selector.area?.multiple ? [] : ""; + } else if ("label" in selector) { + data[field.name] = selector.label?.multiple ? [] : ""; } else if ("boolean" in selector) { data[field.name] = false; } else if ( diff --git a/src/components/ha-markdown-element.ts b/src/components/ha-markdown-element.ts index d2400b74ce21..128bb220bd16 100644 --- a/src/components/ha-markdown-element.ts +++ b/src/components/ha-markdown-element.ts @@ -19,7 +19,7 @@ const _gitHubMarkdownAlerts = { class HaMarkdownElement extends ReactiveElement { @property() public content?; - @property({ attribute: false, type: Boolean }) public allowSvg = false; + @property({ attribute: "allow-svg", type: Boolean }) public allowSvg = false; @property({ type: Boolean }) public breaks = false; diff --git a/src/components/ha-markdown.ts b/src/components/ha-markdown.ts index 52dbdb8f40ea..0e12ff0f3aea 100644 --- a/src/components/ha-markdown.ts +++ b/src/components/ha-markdown.ts @@ -7,7 +7,7 @@ import "./ha-markdown-element"; export class HaMarkdown extends LitElement { @property() public content?; - @property({ attribute: false, type: Boolean }) public allowSvg = false; + @property({ attribute: "allow-svg", type: Boolean }) public allowSvg = false; @property({ type: Boolean }) public breaks = false; diff --git a/src/components/ha-navigation-list.ts b/src/components/ha-navigation-list.ts index 16139441ba7a..65cd96509219 100644 --- a/src/components/ha-navigation-list.ts +++ b/src/components/ha-navigation-list.ts @@ -19,7 +19,8 @@ class HaNavigationList extends LitElement { @property({ attribute: false }) public pages!: PageNavigation[]; - @property({ attribute: false, type: Boolean }) public hasSecondary = false; + @property({ attribute: "has-secondary", type: Boolean }) + public hasSecondary = false; @property() public label?: string; diff --git a/src/components/ha-password-field.ts b/src/components/ha-password-field.ts index f3074275cca3..4c7c294706c2 100644 --- a/src/components/ha-password-field.ts +++ b/src/components/ha-password-field.ts @@ -23,7 +23,8 @@ export class HaPasswordField extends LitElement { @property({ type: Boolean }) public icon = false; - @property({ attribute: false, type: Boolean }) public iconTrailing = false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) public iconTrailing = false; @property() public autocomplete?: string; @@ -42,32 +43,38 @@ export class HaPasswordField extends LitElement { @property({ type: Boolean }) required = false; - @property({ attribute: false, type: Number }) minLength = -1; + // eslint-disable-next-line lit/attribute-names + @property({ type: Number }) minLength = -1; - @property({ attribute: false, type: Number }) maxLength = -1; + // eslint-disable-next-line lit/attribute-names + @property({ type: Number }) maxLength = -1; @property({ type: Boolean, reflect: true }) outlined = false; @property({ type: String }) helper = ""; - @property({ attribute: false, type: Boolean }) validateOnInitialRender = - false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) validateOnInitialRender = false; - @property({ attribute: false, type: String }) validationMessage = ""; + // eslint-disable-next-line lit/attribute-names + @property({ type: String }) validationMessage = ""; - @property({ attribute: false, type: Boolean }) autoValidate = false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) autoValidate = false; @property({ type: String }) pattern = ""; @property({ type: Number }) size: number | null = null; - @property({ attribute: false, type: Boolean }) helperPersistent = false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) helperPersistent = false; - @property({ attribute: false, type: Boolean }) charCounter: - | boolean - | TextAreaCharCounter = false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) charCounter: boolean | TextAreaCharCounter = + false; - @property({ attribute: false, type: Boolean }) endAligned = false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) endAligned = false; @property({ type: String }) prefix = ""; @@ -78,7 +85,8 @@ export class HaPasswordField extends LitElement { @property({ type: String, attribute: "input-mode" }) inputMode!: string; - @property({ attribute: false, type: Boolean }) readOnly = false; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) readOnly = false; // eslint-disable-next-line lit/no-native-attributes @property({ attribute: false, type: String }) autocapitalize = ""; diff --git a/src/components/ha-selector/ha-selector-duration.ts b/src/components/ha-selector/ha-selector-duration.ts index 66f2e8d50db5..7fa96adf3e33 100644 --- a/src/components/ha-selector/ha-selector-duration.ts +++ b/src/components/ha-selector/ha-selector-duration.ts @@ -29,8 +29,8 @@ export class HaTimeDuration extends LitElement { .data=${this.value} .disabled=${this.disabled} .required=${this.required} - ?enableDay=${this.selector.duration?.enable_day} - ?enableMillisecond=${this.selector.duration?.enable_millisecond} + .enableDay=${this.selector.duration?.enable_day} + .enableMillisecond=${this.selector.duration?.enable_millisecond} > `; } diff --git a/src/components/ha-selector/ha-selector-label.ts b/src/components/ha-selector/ha-selector-label.ts index 72a5d8ee57b0..d2b40986833e 100644 --- a/src/components/ha-selector/ha-selector-label.ts +++ b/src/components/ha-selector/ha-selector-label.ts @@ -34,6 +34,7 @@ export class HaLabelSelector extends LitElement { no-add .hass=${this.hass} .value=${ensureArray(this.value ?? [])} + .required=${this.required} .disabled=${this.disabled} .label=${this.label} @value-changed=${this._handleChange} @@ -46,6 +47,7 @@ export class HaLabelSelector extends LitElement { no-add .hass=${this.hass} .value=${this.value} + .required=${this.required} .disabled=${this.disabled} .label=${this.label} @value-changed=${this._handleChange} diff --git a/src/components/ha-service-control.ts b/src/components/ha-service-control.ts index dfc26ed559c1..4bb944932393 100644 --- a/src/components/ha-service-control.ts +++ b/src/components/ha-service-control.ts @@ -92,7 +92,8 @@ export class HaServiceControl extends LitElement { @property({ attribute: false, type: Boolean, reflect: true }) public hidePicker = false; - @property({ attribute: false, type: Boolean }) public hideDescription = false; + @property({ attribute: "hide-description", type: Boolean }) + public hideDescription = false; @state() private _value!: this["value"]; diff --git a/src/components/ha-sidebar.ts b/src/components/ha-sidebar.ts index 3af1b5e4d8da..fe349178c1b9 100644 --- a/src/components/ha-sidebar.ts +++ b/src/components/ha-sidebar.ts @@ -184,9 +184,11 @@ class HaSidebar extends SubscribeMixin(LitElement) { @property({ attribute: false }) public route!: Route; - @property({ attribute: false, type: Boolean }) public alwaysExpand = false; + @property({ attribute: "always-expand", type: Boolean }) + public alwaysExpand = false; - @property({ attribute: false, type: Boolean }) public editMode = false; + @property({ attribute: "edit-mode", type: Boolean }) + public editMode = false; @state() private _notifications?: PersistentNotification[]; diff --git a/src/components/ha-target-picker.ts b/src/components/ha-target-picker.ts index f93148c0c31d..19efb2167de2 100644 --- a/src/components/ha-target-picker.ts +++ b/src/components/ha-target-picker.ts @@ -84,7 +84,7 @@ export class HaTargetPicker extends SubscribeMixin(LitElement) { @property({ type: Boolean, reflect: true }) public disabled = false; - @property({ attribute: false, type: Boolean }) public addOnTop = false; + @property({ attribute: "add-on-top", type: Boolean }) public addOnTop = false; @state() private _addMode?: | "area_id" diff --git a/src/components/ha-theme-picker.ts b/src/components/ha-theme-picker.ts index 510d9d188244..ebb8a9a1a863 100644 --- a/src/components/ha-theme-picker.ts +++ b/src/components/ha-theme-picker.ts @@ -15,7 +15,8 @@ export class HaThemePicker extends LitElement { @property() public label?: string; - @property({ attribute: false, type: Boolean }) includeDefault = false; + @property({ attribute: "include-default", type: Boolean }) + public includeDefault = false; @property({ attribute: false }) public hass?: HomeAssistant; diff --git a/src/components/ha-two-pane-top-app-bar-fixed.ts b/src/components/ha-two-pane-top-app-bar-fixed.ts index e42a96c3a36b..50ee9d87661e 100644 --- a/src/components/ha-two-pane-top-app-bar-fixed.ts +++ b/src/components/ha-two-pane-top-app-bar-fixed.ts @@ -32,7 +32,7 @@ export class TopAppBarBaseBase extends BaseElement { protected _scrollTarget!: HTMLElement | Window; - @property({ attribute: false, type: Boolean }) centerTitle = false; + @property({ attribute: "center-title", type: Boolean }) centerTitle = false; @property({ type: Boolean, reflect: true }) prominent = false; diff --git a/src/components/map/ha-locations-editor.ts b/src/components/map/ha-locations-editor.ts index 720b9ca666d9..0c46d79ffd55 100644 --- a/src/components/map/ha-locations-editor.ts +++ b/src/components/map/ha-locations-editor.ts @@ -51,7 +51,7 @@ export class HaLocationsEditor extends LitElement { @property() public helper?: string; - @property({ attribute: false, type: Boolean }) public autoFit = false; + @property({ attribute: "auto-fit", type: Boolean }) public autoFit = false; @property({ type: Number }) public zoom = 16; diff --git a/src/components/map/ha-map.ts b/src/components/map/ha-map.ts index 1b984590a77d..6f28738845ea 100644 --- a/src/components/map/ha-map.ts +++ b/src/components/map/ha-map.ts @@ -77,7 +77,7 @@ export class HaMap extends ReactiveElement { @property({ attribute: "interactive-zones", type: Boolean }) public interactiveZones = false; - @property({ attribute: false, type: Boolean }) public fitZones = false; + @property({ attribute: "fit-zones", type: Boolean }) public fitZones = false; @property({ attribute: "theme-mode", type: String }) public themeMode: ThemeMode = "auto"; diff --git a/src/components/trace/ha-timeline.ts b/src/components/trace/ha-timeline.ts index 4859fba87334..b7ab5b275702 100644 --- a/src/components/trace/ha-timeline.ts +++ b/src/components/trace/ha-timeline.ts @@ -14,7 +14,7 @@ export class HaTimeline extends LitElement { @property({ attribute: false, reflect: true, type: Boolean }) notEnabled = false; - @property({ attribute: false, type: Boolean }) public lastItem = false; + @property({ attribute: "last-item", type: Boolean }) public lastItem = false; @property({ type: String }) public icon?: string; diff --git a/src/components/trace/hat-trace-timeline.ts b/src/components/trace/hat-trace-timeline.ts index 6a12ceb1c80c..0552074560be 100644 --- a/src/components/trace/hat-trace-timeline.ts +++ b/src/components/trace/hat-trace-timeline.ts @@ -839,7 +839,7 @@ export class HaAutomationTracer extends LitElement { entries.push(html` diff --git a/src/data/scene.ts b/src/data/scene.ts index ee56c30c2d88..750fdf9135ab 100644 --- a/src/data/scene.ts +++ b/src/data/scene.ts @@ -17,6 +17,7 @@ export const SCENE_IGNORED_DOMAINS = [ "person", "scene", "schedule", + "script", "sensor", "sun", "update", diff --git a/src/dialogs/more-info/controls/more-info-script.ts b/src/dialogs/more-info/controls/more-info-script.ts index b1e84c106676..cacaeeca3d68 100644 --- a/src/dialogs/more-info/controls/more-info-script.ts +++ b/src/dialogs/more-info/controls/more-info-script.ts @@ -99,8 +99,7 @@ class MoreInfoScript extends LitElement { ${this.hass.localize("ui.card.script.run_script")}
; - @property({ attribute: false, type: Boolean }) public mobileApp = false; + @property({ attribute: "mobile-app", type: Boolean }) + public mobileApp = false; protected render(): TemplateResult { return html` `, key: `${SERVICE_PREFIX}${domain}`, diff --git a/src/panels/config/automation/condition/ha-automation-condition-editor.ts b/src/panels/config/automation/condition/ha-automation-condition-editor.ts index 06dfc7099c41..5b7bfe51e2a4 100644 --- a/src/panels/config/automation/condition/ha-automation-condition-editor.ts +++ b/src/panels/config/automation/condition/ha-automation-condition-editor.ts @@ -28,7 +28,7 @@ export default class HaAutomationConditionEditor extends LitElement { @property({ type: Boolean }) public disabled = false; - @property({ attribute: false, type: Boolean }) public yamlMode = false; + @property({ attribute: false }) public yamlMode = false; private _processedCondition = memoizeOne((condition) => expandConditionWithShorthand(condition) diff --git a/src/panels/config/automation/ha-automation-editor.ts b/src/panels/config/automation/ha-automation-editor.ts index 6f1b4c662ef6..aff655f7b553 100644 --- a/src/panels/config/automation/ha-automation-editor.ts +++ b/src/panels/config/automation/ha-automation-editor.ts @@ -91,7 +91,7 @@ export class HaAutomationEditor extends KeyboardShortcutMixin(LitElement) { @property({ attribute: false }) public automations!: AutomationEntity[]; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/automation/ha-automation-picker.ts b/src/panels/config/automation/ha-automation-picker.ts index cbcc207630e0..87d276890346 100644 --- a/src/panels/config/automation/ha-automation-picker.ts +++ b/src/panels/config/automation/ha-automation-picker.ts @@ -128,7 +128,7 @@ type AutomationItem = AutomationEntity & { class HaAutomationPicker extends SubscribeMixin(LitElement) { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/automation/ha-automation-trace.ts b/src/panels/config/automation/ha-automation-trace.ts index 1cf4acdd5c42..536cdbbf459c 100644 --- a/src/panels/config/automation/ha-automation-trace.ts +++ b/src/panels/config/automation/ha-automation-trace.ts @@ -53,7 +53,7 @@ export class HaAutomationTrace extends LitElement { @property({ attribute: false }) public automations!: AutomationEntity[]; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean, reflect: true }) public narrow = false; diff --git a/src/panels/config/automation/ha-config-automation.ts b/src/panels/config/automation/ha-config-automation.ts index ae8e5c5c76f4..af11d0405cea 100644 --- a/src/panels/config/automation/ha-config-automation.ts +++ b/src/panels/config/automation/ha-config-automation.ts @@ -24,9 +24,9 @@ class HaConfigAutomation extends HassRouterPage { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @property({ attribute: false }) public automations: AutomationEntity[] = []; diff --git a/src/panels/config/automation/manual-automation-editor.ts b/src/panels/config/automation/manual-automation-editor.ts index 3455fad61561..7799de380919 100644 --- a/src/panels/config/automation/manual-automation-editor.ts +++ b/src/panels/config/automation/manual-automation-editor.ts @@ -34,7 +34,7 @@ import { constructUrlCurrentPath } from "../../../common/url/construct-url"; export class HaManualAutomationEditor extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/blueprint/blueprint-generic-editor.ts b/src/panels/config/blueprint/blueprint-generic-editor.ts index a7cda69b9534..2c94a46be24a 100644 --- a/src/panels/config/blueprint/blueprint-generic-editor.ts +++ b/src/panels/config/blueprint/blueprint-generic-editor.ts @@ -24,7 +24,7 @@ import type { HomeAssistant } from "../../../types"; export abstract class HaBlueprintGenericEditor extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public disabled = false; diff --git a/src/panels/config/blueprint/ha-blueprint-overview.ts b/src/panels/config/blueprint/ha-blueprint-overview.ts index 294edb981401..e44b4a571d5b 100644 --- a/src/panels/config/blueprint/ha-blueprint-overview.ts +++ b/src/panels/config/blueprint/ha-blueprint-overview.ts @@ -81,7 +81,7 @@ const createNewFunctions = { class HaBlueprintOverview extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/blueprint/ha-config-blueprint.ts b/src/panels/config/blueprint/ha-config-blueprint.ts index ec7e5c7518c2..521e1fd9d5fe 100644 --- a/src/panels/config/blueprint/ha-config-blueprint.ts +++ b/src/panels/config/blueprint/ha-config-blueprint.ts @@ -20,9 +20,9 @@ class HaConfigBlueprint extends HassRouterPage { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @property({ attribute: false }) public blueprints: Record = {}; diff --git a/src/panels/config/cloud/account/cloud-account.ts b/src/panels/config/cloud/account/cloud-account.ts index 72ca38d002fb..5ccbe1ef604b 100644 --- a/src/panels/config/cloud/account/cloud-account.ts +++ b/src/panels/config/cloud/account/cloud-account.ts @@ -37,7 +37,7 @@ import "./cloud-webhooks"; export class CloudAccount extends SubscribeMixin(LitElement) { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/cloud/ha-config-cloud.ts b/src/panels/config/cloud/ha-config-cloud.ts index 2a0bfacd210e..780975332c88 100644 --- a/src/panels/config/cloud/ha-config-cloud.ts +++ b/src/panels/config/cloud/ha-config-cloud.ts @@ -14,7 +14,7 @@ const NOT_LOGGED_IN_URLS = ["login", "register", "forgot-password"]; class HaConfigCloud extends HassRouterPage { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/cloud/login/cloud-login.ts b/src/panels/config/cloud/login/cloud-login.ts index b12f1fd87e62..2190b8a388a9 100644 --- a/src/panels/config/cloud/login/cloud-login.ts +++ b/src/panels/config/cloud/login/cloud-login.ts @@ -31,7 +31,7 @@ import "../../ha-config-section"; export class CloudLogin extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/cloud/register/cloud-register.ts b/src/panels/config/cloud/register/cloud-register.ts index 789d549b443d..98606a936981 100644 --- a/src/panels/config/cloud/register/cloud-register.ts +++ b/src/panels/config/cloud/register/cloud-register.ts @@ -18,7 +18,7 @@ import "../../../../components/ha-password-field"; export class CloudRegister extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/core/ha-config-system-navigation.ts b/src/panels/config/core/ha-config-system-navigation.ts index 4065996f4cdc..3f6675e5b1af 100644 --- a/src/panels/config/core/ha-config-system-navigation.ts +++ b/src/panels/config/core/ha-config-system-navigation.ts @@ -38,11 +38,11 @@ class HaConfigSystemNavigation extends LitElement { @property({ type: Boolean, reflect: true }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public cloudStatus?: CloudStatus; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @state() private _latestBackupDate?: string; @@ -139,7 +139,7 @@ class HaConfigSystemNavigation extends LitElement { .hass=${this.hass} .narrow=${this.narrow} .pages=${pages} - hasSecondary + has-secondary .label=${this.hass.localize( "ui.panel.config.dashboard.system.main" )} diff --git a/src/panels/config/dashboard/ha-config-dashboard.ts b/src/panels/config/dashboard/ha-config-dashboard.ts index 5f5f0ca1c81d..281d3670a926 100644 --- a/src/panels/config/dashboard/ha-config-dashboard.ts +++ b/src/panels/config/dashboard/ha-config-dashboard.ts @@ -127,11 +127,11 @@ class HaConfigDashboard extends SubscribeMixin(LitElement) { @property({ type: Boolean, reflect: true }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public cloudStatus?: CloudStatus; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @state() private _tip?: string; diff --git a/src/panels/config/dashboard/ha-config-navigation.ts b/src/panels/config/dashboard/ha-config-navigation.ts index fcabf2148e15..0b0f926dadfb 100644 --- a/src/panels/config/dashboard/ha-config-navigation.ts +++ b/src/panels/config/dashboard/ha-config-navigation.ts @@ -57,7 +57,7 @@ class HaConfigNavigation extends LitElement { })); return html` ; - @property({ attribute: false, type: Boolean }) public showAsYaml = false; + @property({ attribute: "show-as-yaml", type: Boolean }) + public showAsYaml = false; @property() public summary!: string; diff --git a/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts b/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts index e7a9d7fed502..4e6801b1b7b2 100644 --- a/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts +++ b/src/panels/config/devices/device-detail/integration-elements/mqtt/mqtt-messages.ts @@ -15,10 +15,11 @@ class MQTTMessages extends LitElement { @property() public direction!: string; - @property({ attribute: false, type: Boolean }) public showAsYaml = false; + @property({ attribute: "show-as-yaml", type: Boolean }) + public showAsYaml = false; - @property({ attribute: false, type: Boolean }) public showDeserialized = - false; + @property({ attribute: "show-deserialized", type: Boolean }) + public showDeserialized = false; @property({ attribute: false }) public subscribedTopic!: string; diff --git a/src/panels/config/devices/ha-config-device-page.ts b/src/panels/config/devices/ha-config-device-page.ts index bc383bb7a754..f8961773ab4a 100644 --- a/src/panels/config/devices/ha-config-device-page.ts +++ b/src/panels/config/devices/ha-config-device-page.ts @@ -117,9 +117,9 @@ export class HaConfigDevicePage extends LitElement { @property({ type: Boolean, reflect: true }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @state() private _related?: RelatedResult; diff --git a/src/panels/config/devices/ha-config-devices-dashboard.ts b/src/panels/config/devices/ha-config-devices-dashboard.ts index f775364070d9..71e2a5e61033 100644 --- a/src/panels/config/devices/ha-config-devices-dashboard.ts +++ b/src/panels/config/devices/ha-config-devices-dashboard.ts @@ -104,7 +104,7 @@ export class HaConfigDeviceDashboard extends SubscribeMixin(LitElement) { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public entries!: ConfigEntry[]; diff --git a/src/panels/config/devices/ha-config-devices.ts b/src/panels/config/devices/ha-config-devices.ts index 815540ee4122..9532d2ba4865 100644 --- a/src/panels/config/devices/ha-config-devices.ts +++ b/src/panels/config/devices/ha-config-devices.ts @@ -15,9 +15,9 @@ class HaConfigDevices extends HassRouterPage { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; protected routerOptions: RouterOptions = { defaultPage: "dashboard", diff --git a/src/panels/config/energy/ha-config-energy.ts b/src/panels/config/energy/ha-config-energy.ts index a870e1fef9b8..c808dd82f2f0 100644 --- a/src/panels/config/energy/ha-config-energy.ts +++ b/src/panels/config/energy/ha-config-energy.ts @@ -38,9 +38,9 @@ class HaConfigEnergy extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @property({ attribute: false }) public route!: Route; diff --git a/src/panels/config/entities/ha-config-entities.ts b/src/panels/config/entities/ha-config-entities.ts index b6cab5ce8689..937dcfa30999 100644 --- a/src/panels/config/entities/ha-config-entities.ts +++ b/src/panels/config/entities/ha-config-entities.ts @@ -136,7 +136,7 @@ export interface EntityRow extends StateEntity { export class HaConfigEntities extends SubscribeMixin(LitElement) { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/ha-config-section.ts b/src/panels/config/ha-config-section.ts index 494a91543b04..f4c170ae6b0f 100644 --- a/src/panels/config/ha-config-section.ts +++ b/src/panels/config/ha-config-section.ts @@ -4,7 +4,7 @@ import { classMap } from "lit/directives/class-map"; @customElement("ha-config-section") export class HaConfigSection extends LitElement { - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public vertical = false; diff --git a/src/panels/config/hardware/ha-config-hardware.ts b/src/panels/config/hardware/ha-config-hardware.ts index 7d88ceb1716f..1d278c32ba31 100644 --- a/src/panels/config/hardware/ha-config-hardware.ts +++ b/src/panels/config/hardware/ha-config-hardware.ts @@ -301,7 +301,7 @@ class HaConfigHardware extends SubscribeMixin(LitElement) { diff --git a/src/panels/config/helpers/ha-config-helpers.ts b/src/panels/config/helpers/ha-config-helpers.ts index f8328902761c..3f8ffc70e39f 100644 --- a/src/panels/config/helpers/ha-config-helpers.ts +++ b/src/panels/config/helpers/ha-config-helpers.ts @@ -148,7 +148,7 @@ const getConfigEntry = ( export class HaConfigHelpers extends SubscribeMixin(LitElement) { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/info/ha-config-info.ts b/src/panels/config/info/ha-config-info.ts index d235a2229402..688ccb6f893b 100644 --- a/src/panels/config/info/ha-config-info.ts +++ b/src/panels/config/info/ha-config-info.ts @@ -83,9 +83,9 @@ class HaConfigInfo extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @property({ attribute: false }) public route!: Route; @@ -172,7 +172,7 @@ class HaConfigInfo extends LitElement { (page) => html`
- + ? html`` @@ -627,19 +630,18 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) { "ui.panel.config.integrations.integration_page.no_entries" )}
` - : nothing} - - ${normalEntries.map( - (item, index) => - html`${this._renderConfigEntry(item)} - ${index < normalEntries.length - 1 - ? html` ` - : nothing}` - )} - + : html` + ${normalEntries.map( + (item, index) => + html`${this._renderConfigEntry(item)} + ${index < normalEntries.length - 1 + ? html` ` + : nothing}` + )} + `}
${this._manifest?.integration_type @@ -1490,7 +1492,7 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) { padding-bottom: 0; } .no-entries { - padding-top: 12px; + padding: 12px 16px; } .logo-container { display: flex; @@ -1530,6 +1532,9 @@ class HaConfigIntegrationPage extends SubscribeMixin(LitElement) { .integration-info.warn ha-svg-icon { color: var(--warning-color); } + .integration-info.error ha-svg-icon { + color: var(--error-color); + } .integration-info.info ha-svg-icon { color: var(--info-color); } diff --git a/src/panels/config/integrations/ha-config-integrations-dashboard.ts b/src/panels/config/integrations/ha-config-integrations-dashboard.ts index 7da1540ef881..3b7c36db92ec 100644 --- a/src/panels/config/integrations/ha-config-integrations-dashboard.ts +++ b/src/panels/config/integrations/ha-config-integrations-dashboard.ts @@ -95,9 +95,9 @@ class HaConfigIntegrationsDashboard extends SubscribeMixin(LitElement) { @property({ type: Boolean, reflect: true }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @property({ attribute: false }) public route!: Route; diff --git a/src/panels/config/integrations/ha-config-integrations.ts b/src/panels/config/integrations/ha-config-integrations.ts index 7d2540f44b63..b8268cfcc425 100644 --- a/src/panels/config/integrations/ha-config-integrations.ts +++ b/src/panels/config/integrations/ha-config-integrations.ts @@ -49,9 +49,9 @@ class HaConfigIntegrations extends SubscribeMixin(HassRouterPage) { @property({ type: Boolean, reflect: true }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; protected routerOptions: RouterOptions = { defaultPage: "dashboard", diff --git a/src/panels/config/integrations/ha-integration-card.ts b/src/panels/config/integrations/ha-integration-card.ts index 3f24c7202f09..0187a9469005 100644 --- a/src/panels/config/integrations/ha-integration-card.ts +++ b/src/panels/config/integrations/ha-integration-card.ts @@ -38,7 +38,7 @@ export class HaIntegrationCard extends LitElement { @property({ attribute: false }) public entityRegistryEntries!: EntityRegistryEntry[]; - @property({ attribute: false, type: Boolean }) + @property({ attribute: "supports-diagnostics", type: Boolean }) public supportsDiagnostics = false; @property({ attribute: false }) public logInfo?: IntegrationLogInfo; diff --git a/src/panels/config/integrations/ha-integration-list-item.ts b/src/panels/config/integrations/ha-integration-list-item.ts index ae92254043ed..175fb05fab86 100644 --- a/src/panels/config/integrations/ha-integration-list-item.ts +++ b/src/panels/config/integrations/ha-integration-list-item.ts @@ -21,7 +21,8 @@ export class HaIntegrationListItem extends ListItemBase { @property({ type: String, reflect: true }) graphic: GraphicType = "medium"; - @property({ attribute: false, type: Boolean }) hasMeta = true; + // eslint-disable-next-line lit/attribute-names + @property({ type: Boolean }) hasMeta = true; @property({ type: Boolean }) brand = false; diff --git a/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts b/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts index 0fb4962a5cd0..14ec0bf728d2 100644 --- a/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts +++ b/src/panels/config/integrations/integration-panels/matter/matter-config-panel.ts @@ -22,7 +22,7 @@ export const configTabs: PageNavigation[] = [ class MatterConfigRouter extends HassRouterPage { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts index d3302dc3fe46..4bd0ad984619 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-add-devices-page.ts @@ -19,7 +19,7 @@ class ZHAAddDevicesPage extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public route?: Route; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts b/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts index acef31c196ab..832f28a10c18 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-cluster-commands.ts @@ -18,7 +18,7 @@ import type { IssueCommandServiceData } from "./types"; export class ZHAClusterCommands extends LitElement { @property({ attribute: false }) public hass?: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public device?: ZHADevice; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts index fa5a520dd4ea..9b5a54818b33 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard-router.ts @@ -8,7 +8,7 @@ import type { HomeAssistant } from "../../../../../types"; class ZHAConfigDashboardRouter extends HassRouterPage { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts index 6ef52a87acd8..0963a19b99e0 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts @@ -67,7 +67,7 @@ class ZHAConfigDashboard extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public configEntryId?: string; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts index 4b0f22450feb..c10f453ebde0 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-group-page.ts @@ -37,7 +37,7 @@ export class ZHAGroupPage extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false, type: Array }) public deviceEndpoints: ZHADeviceEndpoint[] = []; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts b/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts index 5f6352d932f5..bc4b9efa5938 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts @@ -34,7 +34,7 @@ export class ZHAGroupsDashboard extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @state() private _groups: ZHAGroup[] = []; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts b/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts index a7fa75e1ce6a..cf60f26d99ca 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-manage-clusters.ts @@ -31,7 +31,7 @@ const tabs = ["attributes", "commands"] as const; export class ZHAManageClusters extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public device?: ZHADevice; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts b/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts index 3250bd1398b8..ac32a166ae30 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-network-visualization-page.ts @@ -31,7 +31,7 @@ export class ZHANetworkVisualizationPage extends LitElement { @property({ type: Boolean, reflect: true }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public zoomedDeviceIdFromURL?: string; 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 0ecf4ba74ad0..77bb839d5a67 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 @@ -57,7 +57,7 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public configEntryId!: string; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts index 5e8577f54111..28e1110e46c3 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-router.ts @@ -24,7 +24,7 @@ export const configTabs: PageNavigation[] = [ class ZWaveJSConfigRouter extends HassRouterPage { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts index 8916ae030109..3ee719f3df0e 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts @@ -60,7 +60,7 @@ class ZWaveJSNodeConfig extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public configEntryId?: string; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts index 72936adc9f79..7664a4811bb7 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-installer.ts @@ -40,7 +40,7 @@ class ZWaveJSNodeInstaller extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public configEntryId?: string; diff --git a/src/panels/config/labels/ha-config-labels.ts b/src/panels/config/labels/ha-config-labels.ts index 48cb1307563a..b97cb8c5bdc4 100644 --- a/src/panels/config/labels/ha-config-labels.ts +++ b/src/panels/config/labels/ha-config-labels.ts @@ -47,7 +47,7 @@ import { showLabelDetailDialog } from "./show-dialog-label-detail"; export class HaConfigLabels extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/logs/ha-config-logs.ts b/src/panels/config/logs/ha-config-logs.ts index a173fd9f4477..9443be0f0650 100644 --- a/src/panels/config/logs/ha-config-logs.ts +++ b/src/panels/config/logs/ha-config-logs.ts @@ -51,7 +51,7 @@ export class HaConfigLogs extends LitElement { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ attribute: false }) public route!: Route; diff --git a/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts b/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts index 5023dd41e8ff..4169145d116e 100644 --- a/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts +++ b/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts @@ -65,7 +65,7 @@ type DataTableItem = Pick< export class HaConfigLovelaceDashboards extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/lovelace/ha-config-lovelace.ts b/src/panels/config/lovelace/ha-config-lovelace.ts index 4c5bb1cc502e..d5da7ea44d96 100644 --- a/src/panels/config/lovelace/ha-config-lovelace.ts +++ b/src/panels/config/lovelace/ha-config-lovelace.ts @@ -26,7 +26,7 @@ class HaConfigLovelace extends HassRouterPage { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; protected routerOptions: RouterOptions = { defaultPage: "dashboards", diff --git a/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts b/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts index 250f7e92eb38..faac1ab6db9e 100644 --- a/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts +++ b/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts @@ -38,7 +38,7 @@ import { storage } from "../../../../common/decorators/storage"; export class HaConfigLovelaceRescources extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/person/ha-config-person.ts b/src/panels/config/person/ha-config-person.ts index dac3d595c68a..04c87b1c21cb 100644 --- a/src/panels/config/person/ha-config-person.ts +++ b/src/panels/config/person/ha-config-person.ts @@ -37,7 +37,7 @@ import { export class HaConfigPerson extends LitElement { @property({ attribute: false }) public hass?: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/repairs/integrations-startup-time.ts b/src/panels/config/repairs/integrations-startup-time.ts index a065b182411c..3927e353708f 100644 --- a/src/panels/config/repairs/integrations-startup-time.ts +++ b/src/panels/config/repairs/integrations-startup-time.ts @@ -56,7 +56,7 @@ class IntegrationsStartupTime extends LitElement { graphic="avatar" twoline hasMeta - openNewTab + open-new-tab href=${docLink} > - - - ${this.hass.localize( - "ui.panel.config.voice_assistants.assistants.pipeline.detail.debug" - )} - - - + + ${this.hass.localize( + "ui.panel.config.voice_assistants.assistants.pipeline.detail.debug" + )} + + ; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts b/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts index d9fe8ca7758e..4241500ee8b7 100644 --- a/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts +++ b/src/panels/config/voice-assistants/ha-config-voice-assistants-expose.ts @@ -59,7 +59,7 @@ export class VoiceAssistantsExpose extends LitElement { @property({ attribute: false }) public cloudStatus?: CloudStatus; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/config/voice-assistants/ha-config-voice-assistants.ts b/src/panels/config/voice-assistants/ha-config-voice-assistants.ts index 4afde39c1b7f..33f77f2c76be 100644 --- a/src/panels/config/voice-assistants/ha-config-voice-assistants.ts +++ b/src/panels/config/voice-assistants/ha-config-voice-assistants.ts @@ -31,7 +31,7 @@ class HaConfigVoiceAssistants extends HassRouterPage { @property({ type: Boolean }) public narrow = false; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @state() @consume({ context: entitiesContext, subscribe: true }) diff --git a/src/panels/config/zone/ha-config-zone.ts b/src/panels/config/zone/ha-config-zone.ts index 101eb0f34d64..b59152a4fcbe 100644 --- a/src/panels/config/zone/ha-config-zone.ts +++ b/src/panels/config/zone/ha-config-zone.ts @@ -50,7 +50,7 @@ import { showZoneDetailDialog } from "./show-dialog-zone-detail"; export class HaConfigZone extends SubscribeMixin(LitElement) { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; diff --git a/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts b/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts index 3dfcb4681a47..61fcb1375e55 100644 --- a/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts +++ b/src/panels/developer-tools/yaml_configuration/developer-yaml-config.ts @@ -29,13 +29,13 @@ interface TranslatedReloadableDomain { export class DeveloperYamlConfig extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; - @property({ attribute: false, type: Boolean }) public isWide = false; + @property({ attribute: "is-wide", type: Boolean }) public isWide = false; @property({ type: Boolean }) public narrow = false; @property({ attribute: false }) public route!: Route; - @property({ attribute: false, type: Boolean }) public showAdvanced = false; + @property({ attribute: false }) public showAdvanced = false; @state() private _validating = false; diff --git a/src/panels/history/ha-panel-history.ts b/src/panels/history/ha-panel-history.ts index 75eb35e04861..1a735413c33e 100644 --- a/src/panels/history/ha-panel-history.ts +++ b/src/panels/history/ha-panel-history.ts @@ -177,14 +177,14 @@ class HaPanelHistory extends LitElement { ?disabled=${this._isLoading} .startDate=${this._startDate} .endDate=${this._endDate} - extendedPresets + extended-presets @change=${this._dateRangeChanged} >
diff --git a/src/panels/logbook/ha-logbook.ts b/src/panels/logbook/ha-logbook.ts index 7ac37ade1215..02466701821d 100644 --- a/src/panels/logbook/ha-logbook.ts +++ b/src/panels/logbook/ha-logbook.ts @@ -65,7 +65,8 @@ export class HaLogbook extends LitElement { @property({ type: Boolean, attribute: "relative-time" }) public relativeTime = false; - @property({ attribute: false, type: Boolean }) public showMoreLink = true; + @property({ attribute: "show-more-link", type: Boolean }) + public showMoreLink = true; @state() private _logbookEntries?: LogbookEntry[]; diff --git a/src/panels/logbook/ha-panel-logbook.ts b/src/panels/logbook/ha-panel-logbook.ts index 7d84a69a76b8..34d6da0f342f 100644 --- a/src/panels/logbook/ha-panel-logbook.ts +++ b/src/panels/logbook/ha-panel-logbook.ts @@ -99,7 +99,7 @@ export class HaPanelLogbook extends LitElement { .hass=${this.hass} .entityFilter=${filterLogbookCompatibleEntities} .value=${this._targetPickerValue} - addOnTop + add-on-top @value-changed=${this._targetsChanged} >
diff --git a/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts b/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts index 9e2dfd92b975..bb27c9e0dae7 100644 --- a/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts +++ b/src/panels/lovelace/cards/energy/hui-energy-devices-detail-graph-card.ts @@ -130,7 +130,7 @@ export class HuiEnergyDevicesDetailGraphCard })}" > ; - @property({ attribute: false, type: Boolean }) public hidePosition = false; + @property({ attribute: "hide-position", type: Boolean }) + public hidePosition = false; @storage({ key: "dashboardCardClipboard", diff --git a/src/panels/lovelace/components/hui-energy-period-selector.ts b/src/panels/lovelace/components/hui-energy-period-selector.ts index 5c8f2ef0b5fe..ccd7253ab780 100644 --- a/src/panels/lovelace/components/hui-energy-period-selector.ts +++ b/src/panels/lovelace/components/hui-energy-period-selector.ts @@ -248,7 +248,7 @@ export class HuiEnergyPeriodSelector extends SubscribeMixin(LitElement) { .endDate=${this._endDate || new Date()} .ranges=${this._ranges} @change=${this._dateRangeChanged} - .timePicker=${false} + time-picker minimal > diff --git a/src/panels/lovelace/components/hui-generic-entity-row.ts b/src/panels/lovelace/components/hui-generic-entity-row.ts index 449c3bd6e602..40ee38175bb5 100644 --- a/src/panels/lovelace/components/hui-generic-entity-row.ts +++ b/src/panels/lovelace/components/hui-generic-entity-row.ts @@ -32,7 +32,8 @@ export class HuiGenericEntityRow extends LitElement { // => static determination will not work => the caller has to pass the desired value in. // Same applies for custom components that want to override the default behavior. // Default behavior is controlled by DOMAINS_INPUT_ROW. - @property({ attribute: false, type: Boolean }) public catchInteraction?; + @property({ attribute: "catch-interaction", type: Boolean }) + public catchInteraction?; protected render() { if (!this.hass || !this.config) { diff --git a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts index 2555b2aaa786..1fe8292f5f41 100644 --- a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts +++ b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts @@ -82,7 +82,7 @@ export class HuiEntitiesCardRowEditor extends LitElement { : html` ` : ""} diff --git a/src/state-summary/state-card-alert.ts b/src/state-summary/state-card-alert.ts index 653b9f342077..fa8af96f6e3e 100755 --- a/src/state-summary/state-card-alert.ts +++ b/src/state-summary/state-card-alert.ts @@ -14,7 +14,7 @@ class StateCardAlert extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-button.ts b/src/state-summary/state-card-button.ts index 33f882fc8ed9..eb9203b7f865 100644 --- a/src/state-summary/state-card-button.ts +++ b/src/state-summary/state-card-button.ts @@ -15,7 +15,7 @@ class StateCardButton extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render() { const stateObj = this.stateObj; diff --git a/src/state-summary/state-card-climate.ts b/src/state-summary/state-card-climate.ts index 8ca20e855581..8c32836566b7 100644 --- a/src/state-summary/state-card-climate.ts +++ b/src/state-summary/state-card-climate.ts @@ -13,7 +13,7 @@ class StateCardClimate extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-configurator.ts b/src/state-summary/state-card-configurator.ts index 0e241d461cd3..d5dacddefc0f 100644 --- a/src/state-summary/state-card-configurator.ts +++ b/src/state-summary/state-card-configurator.ts @@ -13,7 +13,7 @@ class StateCardConfigurator extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-cover.ts b/src/state-summary/state-card-cover.ts index 3f734057a18b..d83737df0cd6 100644 --- a/src/state-summary/state-card-cover.ts +++ b/src/state-summary/state-card-cover.ts @@ -15,7 +15,7 @@ class StateCardCover extends LitElement { @property({ attribute: false }) public stateObj!: CoverEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-display.ts b/src/state-summary/state-card-display.ts index a84a76ed1514..3928af07421c 100755 --- a/src/state-summary/state-card-display.ts +++ b/src/state-summary/state-card-display.ts @@ -17,7 +17,7 @@ class StateCardDisplay extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; // property used only in CSS @property({ type: Boolean, reflect: true }) public rtl = false; diff --git a/src/state-summary/state-card-event.ts b/src/state-summary/state-card-event.ts index c954cdbffb91..970bb8fe4c7a 100644 --- a/src/state-summary/state-card-event.ts +++ b/src/state-summary/state-card-event.ts @@ -13,7 +13,7 @@ class StateCardEvent extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render() { return html` diff --git a/src/state-summary/state-card-humidifier.ts b/src/state-summary/state-card-humidifier.ts index 96e1b7e31077..e691ce795622 100644 --- a/src/state-summary/state-card-humidifier.ts +++ b/src/state-summary/state-card-humidifier.ts @@ -14,7 +14,7 @@ class StateCardHumidifier extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-input_button.ts b/src/state-summary/state-card-input_button.ts index 918dbee744c9..e44c9bf57623 100644 --- a/src/state-summary/state-card-input_button.ts +++ b/src/state-summary/state-card-input_button.ts @@ -15,7 +15,7 @@ class StateCardInputButton extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render() { const stateObj = this.stateObj; diff --git a/src/state-summary/state-card-input_number.ts b/src/state-summary/state-card-input_number.ts index e90cbabc3394..ae3c46348e68 100644 --- a/src/state-summary/state-card-input_number.ts +++ b/src/state-summary/state-card-input_number.ts @@ -16,7 +16,7 @@ class StateCardInputNumber extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; private _loaded?: boolean; diff --git a/src/state-summary/state-card-input_text.ts b/src/state-summary/state-card-input_text.ts index 9d8634c64554..f6f0695d4751 100644 --- a/src/state-summary/state-card-input_text.ts +++ b/src/state-summary/state-card-input_text.ts @@ -14,7 +14,7 @@ class StateCardInputText extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; @state() public value: string = ""; @@ -30,7 +30,6 @@ class StateCardInputText extends LitElement { .minlength=${this.stateObj.attributes.min} .maxlength=${this.stateObj.attributes.max} .value=${this.value} - .auto-validate=${this.stateObj.attributes.pattern} .pattern=${this.stateObj.attributes.pattern} .type=${this.stateObj.attributes.mode} @input=${this._onInput} diff --git a/src/state-summary/state-card-lawn_mower.ts b/src/state-summary/state-card-lawn_mower.ts index 7b7c9c840607..1a2c53d11f83 100644 --- a/src/state-summary/state-card-lawn_mower.ts +++ b/src/state-summary/state-card-lawn_mower.ts @@ -13,7 +13,7 @@ class StateCardLawnMower extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; public render() { const stateObj = this.stateObj; diff --git a/src/state-summary/state-card-lock.ts b/src/state-summary/state-card-lock.ts index ffa3e1e983af..3e73be74e5e0 100644 --- a/src/state-summary/state-card-lock.ts +++ b/src/state-summary/state-card-lock.ts @@ -15,7 +15,7 @@ class StateCardLock extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { const isLocked = this.stateObj.state === "locked"; diff --git a/src/state-summary/state-card-media_player.ts b/src/state-summary/state-card-media_player.ts index 4e8598ee4810..b5101cf28ae6 100644 --- a/src/state-summary/state-card-media_player.ts +++ b/src/state-summary/state-card-media_player.ts @@ -13,7 +13,7 @@ class StateCardMediaPlayer extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { const playerObj = new HassMediaPlayerEntity(this.hass, this.stateObj); diff --git a/src/state-summary/state-card-number.ts b/src/state-summary/state-card-number.ts index 502a2141f4c3..c72212784699 100644 --- a/src/state-summary/state-card-number.ts +++ b/src/state-summary/state-card-number.ts @@ -16,7 +16,7 @@ class StateCardNumber extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; private _loaded?: boolean; diff --git a/src/state-summary/state-card-scene.ts b/src/state-summary/state-card-scene.ts index 2805d1cb066d..cf42b3e284b9 100644 --- a/src/state-summary/state-card-scene.ts +++ b/src/state-summary/state-card-scene.ts @@ -14,7 +14,7 @@ class StateCardScene extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render() { return html` diff --git a/src/state-summary/state-card-script.ts b/src/state-summary/state-card-script.ts index af7f4ff3685e..ea076024209b 100644 --- a/src/state-summary/state-card-script.ts +++ b/src/state-summary/state-card-script.ts @@ -18,7 +18,7 @@ class StateCardScript extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render() { const stateObj = this.stateObj as ScriptEntity; diff --git a/src/state-summary/state-card-timer.ts b/src/state-summary/state-card-timer.ts index f299cce6ed2b..f83fdeb33f78 100644 --- a/src/state-summary/state-card-timer.ts +++ b/src/state-summary/state-card-timer.ts @@ -13,7 +13,7 @@ class StateCardTimer extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-toggle.ts b/src/state-summary/state-card-toggle.ts index cf9253dbc188..dbcd26777a05 100644 --- a/src/state-summary/state-card-toggle.ts +++ b/src/state-summary/state-card-toggle.ts @@ -13,7 +13,7 @@ class StateCardToggle extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-update.ts b/src/state-summary/state-card-update.ts index d31d709c9020..baa898d6bb34 100755 --- a/src/state-summary/state-card-update.ts +++ b/src/state-summary/state-card-update.ts @@ -13,7 +13,7 @@ export class StateCardUpdate extends LitElement { @property({ attribute: false }) public stateObj!: UpdateEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-vacuum.ts b/src/state-summary/state-card-vacuum.ts index abf06c08041d..5a856000b334 100644 --- a/src/state-summary/state-card-vacuum.ts +++ b/src/state-summary/state-card-vacuum.ts @@ -13,7 +13,7 @@ class StateCardVacuum extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/src/state-summary/state-card-water_heater.ts b/src/state-summary/state-card-water_heater.ts index 7f84397933d1..2fe2204b6ce5 100644 --- a/src/state-summary/state-card-water_heater.ts +++ b/src/state-summary/state-card-water_heater.ts @@ -13,7 +13,7 @@ class StateCardWaterHeater extends LitElement { @property({ attribute: false }) public stateObj!: HassEntity; - @property({ attribute: false, type: Boolean }) public inDialog = false; + @property({ attribute: "in-dialog", type: Boolean }) public inDialog = false; protected render(): TemplateResult { return html` diff --git a/yarn.lock b/yarn.lock index ab1a5748bcfe..ba9045762a41 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4661,12 +4661,12 @@ __metadata: languageName: node linkType: hard -"@types/leaflet@npm:*, @types/leaflet@npm:1.9.14": - version: 1.9.14 - resolution: "@types/leaflet@npm:1.9.14" +"@types/leaflet@npm:*, @types/leaflet@npm:1.9.15": + version: 1.9.15 + resolution: "@types/leaflet@npm:1.9.15" dependencies: "@types/geojson": "npm:*" - checksum: 10/70fbc69a4d6a3168a14072211e7738ad80954b8786105c4a0ec0615e88a5dbe131b1beff7b30594b293db2e1cb3f88a87d1ec1c89e128018bd42393dfcfcc69b + checksum: 10/b2ad97b8eae68be46b317350fd67bc5173db33be036c27d009b3e04bd7fb6fd52e9787a0825f45f35530faf5cb09ade98adc1836cbdbcf4089640f21ac53404f languageName: node linkType: hard @@ -9175,7 +9175,7 @@ __metadata: "@types/glob": "npm:8.1.0" "@types/html-minifier-terser": "npm:7.0.2" "@types/js-yaml": "npm:4.0.9" - "@types/leaflet": "npm:1.9.14" + "@types/leaflet": "npm:1.9.15" "@types/leaflet-draw": "npm:1.0.11" "@types/lodash.merge": "npm:4.6.9" "@types/luxon": "npm:3.4.2" @@ -9258,7 +9258,7 @@ __metadata: object-hash: "npm:3.0.0" open: "npm:10.1.0" pinst: "npm:3.0.0" - prettier: "npm:3.4.1" + prettier: "npm:3.4.2" proxy-polyfill: "npm:0.3.2" punycode: "npm:2.3.1" qr-scanner: "npm:1.4.2" @@ -12133,12 +12133,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:3.4.1": - version: 3.4.1 - resolution: "prettier@npm:3.4.1" +"prettier@npm:3.4.2": + version: 3.4.2 + resolution: "prettier@npm:3.4.2" bin: prettier: bin/prettier.cjs - checksum: 10/1ee4d1b1a9b6761cbb847cd81b9d87e51a0f4b2a4d5fe5755627c24828afe057a7ee9b764c3ee777d84abd46218d173d8a204ee9cb3acdd321ff9a6b25f99c1c + checksum: 10/a3e806fb0b635818964d472d35d27e21a4e17150c679047f5501e1f23bd4aa806adf660f0c0d35214a210d5d440da6896c2e86156da55f221a57938278dc326e languageName: node linkType: hard